instituto politécnico da guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · c# É uma...

92

Upload: others

Post on 25-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte
Page 2: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

Instituto Politécnico da GuardaEscola Superior de Tecnologia e Gestão

Plataforma de anúncios online, Anuncie aqui já

Daniel Teixeira Gêgo - No 1009988

Projeto Aplicado no Cursode Engenharia Informática em contexto de estágio

15 de novembro de 2012

Page 3: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

Instituto Politécnico da GuardaEscola Superior de Tecnologia e Gestão

Plataforma de anúncios online, Anuncie aqui já

Daniel Teixeira Gêgo - No 1009988

Projeto Aplicado no Cursode Engenharia Informática em contexto de estágio

Supervisor: André Filipe Barata - Gerente - DotFlow Solutions, Lda

Orientador: Mestre Paulo Jorge Costa Nunes, Professor Adjunto da

Unidade Técnico-Cientí�ca de Informática da ESTG.

15 de novembro de 2012

Page 4: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

Agradecimentos

O desenvolvimento deste projeto, em contexto de estágio, foi me facilitado devidoà ajuda de alguns intervenientes aos quais gostaria de deixar aqui o meu agradeci-mento.

Em primeiro lugar, como não poderia deixar de ser, quero deixar um agradecimentoa todos os familiares e amigos que sempre me incentivaram ao longo de todo oprojeto.

Um agradecimento à Diretora da Escola Superior de Tecnologia e Gestão, ProfessoraDoutora Maria Clara Silveira por todo o seu apoio e disponibilidade.

Um agradecimento aos professores da Unidade Curricular do Projeto de Informática,Professor Paulo Nunes (Orientador do projeto), e ao Professor Noel Lopes.

Um agradecimento ao supervisor do projeto, Gerente da empresa DotFlow Solutions,Lda, André Filipe Barata, o qual sempre se mostrou disponível para qualquer assuntorelacionado com o projeto.

Por �m, um agradecimento muito especial à minha namorada, pelo apoio e paciênciaque sempre demonstrou.

Page 5: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

Resumo

Este documento descreve o trabalho realizado no âmbito da Unidade Curricular Pro-jeto de Informática, na Licenciatura em Engenharia Informática da Escola Superiorde Tecnologia e Gestão do Instituto Politécnico da Guarda.

Devido à evolução tecnológica e à necessidade de vender ou comprar produtos emsegunda mão, cada vez mais as pessoas procuram vários produtos ou serviços naInternet e para isso é necessário criar uma plataforma que facilite a procura ou apublicação dos anúncios a esses utilizadores.

O projeto consistiu em desenvolver uma aplicação em que os utilizadores podeminserir anúncios e visualizar os anúncios inseridos por outros utilizadores, sendoestas as principais funcionalidades da aplicação.

Foi ainda desenvolvida a parte de gestão da aplicação, onde os moderadores podem,por exemplo, validar os anúncios e responder a mensagens. Os administradorespodem, por exemplo, inserir novos funcionários e ver os anúncios con�rmados.

As ferramentas usadas no desenvolvimento do projeto foi o Microsof Visual Studioe o Microsoft Sql Server Management Studio. As principais tecnologias utilizadasforam: ASP.NET, C# e o SQL SERVER.

Palavras Chave

Anúncios online, ASP.NET, C#, LINQ to Entities, SQL SERVER

Page 6: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

Abstract

This document describes the work done under the discipline Projeto de Informáticain the graduation in Engenharia Informática from Escola Superior de Tecnologia eGestão in the Instituto Politécnico da Guarda.

Due to technological developments and need to sell or buy second-hand products,increasingly people are looking for various products or services on the Internet and todo it is necessary create a platform that facilitates the search or your advertisementsto those users.

The project was to develop an application that users can insert advertisements andview inserted advertisements by other users, which are the main features of theapplication.

It was developed too a management application area where moderators may, forexample, validate the advertisements and reply to messages. The Administratorscan, for example, insert new employees and see the advertisements con�rmed.

The tools used in the development of the project was Microsof Visual Studio and Mi-crosoft Sql Server Management Studio. The main technologies used were: ASP.NET,C# and SQL SERVER.

Key words

Online advertisements, ASP.NET, C#, LINQ to Entities, SQL SERVER

Page 7: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

Conteúdo

1 Introdução 131.1 Instituição de acolhimento . . . . . . . . . . . . . . . . . . . . . . . . 141.2 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.3 Solução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.4 Contribuição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.5 Estrutura do documento . . . . . . . . . . . . . . . . . . . . . . . . . 16

2 Estado da arte 172.1 Portugal Anúncios classi�cados grátis OLX . . . . . . . . . . . . . . . 172.2 Anúncios grátis Coisas . . . . . . . . . . . . . . . . . . . . . . . . . . 192.3 Custo Justo Portugal . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.4 Imovirtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.5 Standvirtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.6 Comparação das aplicações existentes da área . . . . . . . . . . . . . 23

3 Metodologia e resultados esperados 253.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.2 Descrição das tarefas . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.3 Resultados esperados . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4 Tecnologias utilizadas 284.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.2 Tecnologias web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

4.2.1 HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.2.2 CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294.2.3 Javascript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.2.4 ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304.2.5 C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.2.6 Microsoft SQL SERVER . . . . . . . . . . . . . . . . . . . . . 324.2.7 Linq to Entities . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.3 Software utilizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324.3.1 Microsoft Visual Studio 2010 . . . . . . . . . . . . . . . . . . . 324.3.2 SQL Server Management Studio . . . . . . . . . . . . . . . . . 33

5 Implementação da solução 345.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.2 A importância do login e do logout . . . . . . . . . . . . . . . . . . . 35

4

Page 8: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

5.3 Base de dados Anúncios . . . . . . . . . . . . . . . . . . . . . . . . . 355.3.1 Modelo Relacional . . . . . . . . . . . . . . . . . . . . . . . . 355.3.2 Dicionário de dados . . . . . . . . . . . . . . . . . . . . . . . . 40

5.3.2.1 Anuncios . . . . . . . . . . . . . . . . . . . . . . . . 405.3.2.2 Anuncios_Veiculos . . . . . . . . . . . . . . . . . . . 405.3.2.3 Anuncios_Imoveis . . . . . . . . . . . . . . . . . . . 415.3.2.4 Anuncios_Animais . . . . . . . . . . . . . . . . . . . 415.3.2.5 Anuncios_Empregos . . . . . . . . . . . . . . . . . . 425.3.2.6 Utilizadores . . . . . . . . . . . . . . . . . . . . . . . 425.3.2.7 Moderadores . . . . . . . . . . . . . . . . . . . . . . 435.3.2.8 Distritos . . . . . . . . . . . . . . . . . . . . . . . . . 435.3.2.9 Concelhos . . . . . . . . . . . . . . . . . . . . . . . . 435.3.2.10 Freguesias . . . . . . . . . . . . . . . . . . . . . . . . 445.3.2.11 SubCategorias . . . . . . . . . . . . . . . . . . . . . 445.3.2.12 Categorias . . . . . . . . . . . . . . . . . . . . . . . . 445.3.2.13 TiposAnuncio . . . . . . . . . . . . . . . . . . . . . . 455.3.2.14 CatTip . . . . . . . . . . . . . . . . . . . . . . . . . 455.3.2.15 Mensagens . . . . . . . . . . . . . . . . . . . . . . . 45

5.4 Aplicação ASP.NET em três camadas . . . . . . . . . . . . . . . . . . 465.5 FrontO�ce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.5.1 Visitante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.5.1.1 Mapa do site . . . . . . . . . . . . . . . . . . . . . . 475.5.1.2 Home Page . . . . . . . . . . . . . . . . . . . . . . . 485.5.1.3 Registo de utilizadores . . . . . . . . . . . . . . . . . 52

5.5.2 Utilizador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545.5.2.1 Mapa do site . . . . . . . . . . . . . . . . . . . . . . 545.5.2.2 Home Page . . . . . . . . . . . . . . . . . . . . . . . 555.5.2.3 Inserir anúncio . . . . . . . . . . . . . . . . . . . . . 575.5.2.4 Editar anúncio . . . . . . . . . . . . . . . . . . . . . 625.5.2.5 Os meus anúncios . . . . . . . . . . . . . . . . . . . . 655.5.2.6 Editar dados pessoais . . . . . . . . . . . . . . . . . 675.5.2.7 Editar password . . . . . . . . . . . . . . . . . . . . 685.5.2.8 Contactar . . . . . . . . . . . . . . . . . . . . . . . . 69

5.6 BackO�ce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705.6.1 Moderadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

5.6.1.1 Mapa do site . . . . . . . . . . . . . . . . . . . . . . 705.6.1.2 Home page . . . . . . . . . . . . . . . . . . . . . . . 705.6.1.3 Validar anúncios . . . . . . . . . . . . . . . . . . . . 715.6.1.4 Retirar/Colocar anúncios em destaque . . . . . . . . 735.6.1.5 Mensagens . . . . . . . . . . . . . . . . . . . . . . . 73

5.6.2 Administradores . . . . . . . . . . . . . . . . . . . . . . . . . . 755.6.2.1 Mapa do site . . . . . . . . . . . . . . . . . . . . . . 755.6.2.2 Home page . . . . . . . . . . . . . . . . . . . . . . . 765.6.2.3 Inserir funcionários . . . . . . . . . . . . . . . . . . . 765.6.2.4 Inserir subcategoria . . . . . . . . . . . . . . . . . . 775.6.2.5 Anúncios con�rmados . . . . . . . . . . . . . . . . . 78

Page 9: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

5.7 Colocação e divulgação online . . . . . . . . . . . . . . . . . . . . . . 785.7.1 IIS (Internet Information Services) . . . . . . . . . . . . . . . 785.7.2 Registo de domínios . . . . . . . . . . . . . . . . . . . . . . . 795.7.3 Servidor utilizado . . . . . . . . . . . . . . . . . . . . . . . . . 795.7.4 Divulgação online . . . . . . . . . . . . . . . . . . . . . . . . . 79

6 Conclusões e trabalho futuro 806.1 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806.2 Trabalho futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

A Listagem de programas 85A.1 Enviar email automaticamente . . . . . . . . . . . . . . . . . . . . . . 85A.2 Inserir imagens na pasta . . . . . . . . . . . . . . . . . . . . . . . . . 86

B Carregamento �cheiros externos 88B.1 Ficheiro dos distritos . . . . . . . . . . . . . . . . . . . . . . . . . . . 88B.2 Ficheiro dos concelhos . . . . . . . . . . . . . . . . . . . . . . . . . . 88B.3 Ficheiro das freguesias . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Page 10: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

Lista de Figuras

2.1 Página inicial do site de anúncios OLX . . . . . . . . . . . . . . . . . 182.2 Página inicial do site de anúncios Coisas . . . . . . . . . . . . . . . . 202.3 Página inicial do site de anúncios Custo Justo . . . . . . . . . . . . . 22

3.1 Tarefas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.2 Mapa de Gantt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

4.1 Interface principal do Microsoft Visual Studio 2010. . . . . . . . . . . 334.2 Exemplo de interface do Sql server Management Studio. . . . . . . . . 33

5.1 Arquitetura do projeto. . . . . . . . . . . . . . . . . . . . . . . . . . . 345.2 Modelo relacional da base de dados. . . . . . . . . . . . . . . . . . . . 365.3 Diagrama ER normalizado . . . . . . . . . . . . . . . . . . . . . . . . 375.4 Tabela mensagens. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385.5 Base de dados criada por omissão. . . . . . . . . . . . . . . . . . . . . 395.6 Representação das três camadas de uma aplicação ASP.NET. . . . . . 465.7 Home page (visitantes) . . . . . . . . . . . . . . . . . . . . . . . . . . 485.8 Icons usados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505.9 Categorias e subcategorias de anúncios. . . . . . . . . . . . . . . . . . 505.10 Página dos Anúncios por Categoria. . . . . . . . . . . . . . . . . . . . 515.11 Página dos Anúncios por Subcategoria. . . . . . . . . . . . . . . . . . 525.12 Formulário de registo para os utilizadores. . . . . . . . . . . . . . . . 535.13 Exemplo de email enviado ao utilizador com os dados. . . . . . . . . . 545.14 Exemplo de email enviado ao utilizador para con�rmação. . . . . . . 545.15 Home page (utilizadores) . . . . . . . . . . . . . . . . . . . . . . . . . 565.16 Dados relativos à categoria e tipo de anúncio . . . . . . . . . . . . . . 575.17 Dados relativos à localização do anúncio . . . . . . . . . . . . . . . . 585.18 Dados gerais de um anúncio . . . . . . . . . . . . . . . . . . . . . . . 595.19 Dados gerais de um anúncio de emprego . . . . . . . . . . . . . . . . 595.20 Dados especí�cos para apartamentos . . . . . . . . . . . . . . . . . . 605.21 Selecionar anúncio para destaque . . . . . . . . . . . . . . . . . . . . 605.22 Dados para colocar o anúncio em destaque . . . . . . . . . . . . . . . 615.23 Selecionar imagens para o anúncio . . . . . . . . . . . . . . . . . . . . 615.24 Inserir imagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 625.25 Selecionar anúncio a editar . . . . . . . . . . . . . . . . . . . . . . . . 635.26 Editar anúncio selecionado . . . . . . . . . . . . . . . . . . . . . . . . 645.27 Editar anúncio selecionado (emprego) . . . . . . . . . . . . . . . . . . 655.28 Os meus anúncios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

7

Page 11: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

5.29 Detalhes de um anúncio . . . . . . . . . . . . . . . . . . . . . . . . . 675.30 Editar dados pessoais . . . . . . . . . . . . . . . . . . . . . . . . . . . 685.31 Editar password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 695.32 Formulário para contactar a administração . . . . . . . . . . . . . . . 695.33 Home page (moderadores) . . . . . . . . . . . . . . . . . . . . . . . . 715.34 Anúncios pendentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715.35 Validar anúncio selecionado . . . . . . . . . . . . . . . . . . . . . . . 725.36 Ver anúncios em destaque e destacar outro . . . . . . . . . . . . . . . 735.37 Selecionar mensagem a responder . . . . . . . . . . . . . . . . . . . . 745.38 Responder à mensagem selecionada . . . . . . . . . . . . . . . . . . . 755.39 Home page (administradores) . . . . . . . . . . . . . . . . . . . . . . 765.40 Formulário para inserir funcionários . . . . . . . . . . . . . . . . . . . 775.41 Inserir subcategorias . . . . . . . . . . . . . . . . . . . . . . . . . . . 785.42 Anúncio con�rmado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

B.1 Distritos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88B.2 Concelhos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89B.3 Freguesias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Page 12: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

Lista de Tabelas

2.1 Comparação entre os vários sites . . . . . . . . . . . . . . . . . . . . . 24

5.1 Estrutura da tabela Anuncios . . . . . . . . . . . . . . . . . . . . . . 405.2 Estrutura da tabela Anuncios_Veiculos . . . . . . . . . . . . . . . . . 415.3 Estrutura da tabela Anuncios_Imoveis . . . . . . . . . . . . . . . . . 415.4 Estrutura da tabela Anuncios_Animais . . . . . . . . . . . . . . . . . 425.5 Estrutura da tabela Anuncios_Empregos . . . . . . . . . . . . . . . . 425.6 Estrutura da tabela Utilizadores . . . . . . . . . . . . . . . . . . . . . 435.7 Estrutura da tabela Moderadores . . . . . . . . . . . . . . . . . . . . 435.8 Estrutura da tabela Distritos . . . . . . . . . . . . . . . . . . . . . . 435.9 Estrutura da tabela Concelhos . . . . . . . . . . . . . . . . . . . . . . 445.10 Estrutura da tabela Freguesias . . . . . . . . . . . . . . . . . . . . . . 445.11 Estrutura da tabela SubCategorias . . . . . . . . . . . . . . . . . . . 445.12 Estrutura da tabela Categorias . . . . . . . . . . . . . . . . . . . . . 455.13 Estrutura da tabela TiposAnuncio . . . . . . . . . . . . . . . . . . . . 455.14 Estrutura da tabela CatTip . . . . . . . . . . . . . . . . . . . . . . . 455.15 Estrutura da tabela Mensagens . . . . . . . . . . . . . . . . . . . . . 46

9

Page 13: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

Lista de Códigos Fonte

1 Exemplo de código HTML. . . . . . . . . . . . . . . . . . . . . . . . . 292 Exemplo de código CSS. . . . . . . . . . . . . . . . . . . . . . . . . . 293 Exemplo de código Javascript. . . . . . . . . . . . . . . . . . . . . . . 304 Exemplo de código ASP.NET . . . . . . . . . . . . . . . . . . . . . . 315 Exemplo de código C#. . . . . . . . . . . . . . . . . . . . . . . . . . 316 Exemplo de query, Linq to Entities. . . . . . . . . . . . . . . . . . . . 327 Exemplo para colocar os anúncios em destaque. . . . . . . . . . . . . 498 Exemplo para mostrar os vários icons no destaque. . . . . . . . . . . 499 Exemplo para redirecionar para a página de anúncios por categoria. . 5110 Exemplo para redirecionar para os anúncios por subcategoria. . . . . 5211 Exemplo para carregar a dropdownlist tipos de anúncio. . . . . . . . 5712 Query que retorna os tipos de anúncio da uma dada categoria. . . . . 5813 Exemplo de função que insere na tabela anúncios. . . . . . . . . . . . 6214 Inserir o cargo para um funcionário. . . . . . . . . . . . . . . . . . . . 77

10

Page 14: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

Glossário

ASP.NET � Active Server Pages é a plataforma da Microsoft para o desenvolvi-mento de aplicações Web e é o sucessor da tecnologia ASP.

Base de dados � Conjunto de dados estruturados e relacionados entre si.

CSS � Cascading Style Sheets é uma linguagem de estilo utilizada para de�nir aapresentação de documentos escritos numa linguagem de marcação, como HTML.

C# � É uma linguagem de programação orientada a objetos, desenvolvida pelaMicrosoft como parte da plataforma .NET.

EDMX�Modelo que permite aceder à base de dados, SQL SERVER, usando Linqto Entities.

FCCN�Fundação para a Computação Cientí�ca Nacional é a entidade responsávelpela gestão, registo e manutenção de domínios em Portugal.

FK � Foreign Key é a chave estrangeira de uma tabela da base de dados, ou seja,é chave primária noutra tabela.

HTML � Hyper Text Markup Language, é uma linguagem de marcação para pro-dução de páginas Web.

HTTP � Hipertext Transfer Protocol (Protocolo de Transferência de Hipertexto)é um protocolo de comunicação.

IP � Internet Protocol (Protocolo de internet).

ISS� Internet Information Services, é um servidor web criado pela Microsoft, paraser usado com os seus sistemas operativos.

JavaScript � É uma linguagem de script e atualmente é a principal linguagempara programação do lado do cliente em navegadores web.

LINQ � Language Integrated Query, é um componente .NET que adiciona funci-onalidades de consulta nalgumas linguagens de programação.

Linq to Entities � É uma implementação especí�ca do LINQ e ajuda no acesso ena manipulação de uma base de dados relacional.

PK � Primary Key é a chave primária de uma tabela da base de dados.

Servidor Web � Um programa de computador responsável por aceitar pedidosHTTP de clientes, geralmente os navegadores, e servi-los com respostas HTTP, in-cluindo opcionalmente dados, que geralmente são páginas web, tais como documentosHTML com objetos embutidos.

11

Page 15: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

12

Site � Um website ou site é um conjunto de páginas web, isto é, de hipertextosacessíveis geralmente pelo protocolo HTTP na internet.

SQL SERVER � É um SGBD (Sistema de Gestão de Base de Dados) criado pelaMicrosoft e Sysbase que permite interação com os dados através da linguagem SQL.

Unicode � Padrão que permite aos computadores representar e manipular, deforma consistente, texto de qualquer sistema de escrita existente.

WWW � World Wide Web é um sistema de documentação em todos os formatos(textos, imagens, vídeos) que são interligados e executados na internet.

W3C� World Wide Web Consortium é um consórcio internacional que visa desen-volver padrões para a criação e interpretação de conteúdos para a Web.

Page 16: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

Capítulo 1

Introdução

O presente relatório descreve o projeto em contexto de estágio desenvolvido peloaluno Daniel Teixeira Gêgo, na empresa DotFlow Solutions, Lda, no âmbito da Uni-dade Curricular Projeto de Informática, na Licenciatura em Engenharia Informáticada Escola Superior de Tecnologia e Gestão do Instituto Politécnico da Guarda.

O conceito de Internet surgiu na década de 1960 e desde então, até aos dias dehoje, esteve sempre em constante evolução. Em 1969 ocorreu a transmissão dedados, o que pode ser considerado o primeiro E-mail da história a ser enviado erecebido (apesar de o texto não ter chegado todo ao destinatário) [20]. A partir doano de 2000, até agora, pode dizer-se que a Internet passou a ser conhecida comoum mercado, ou seja, cada vez mais passou a ser usada para fazer várias açõesque anteriormente teriam que ser feitas em locais especí�cos. Diversas tecnologiasinovadoras contribuíram para os interesses das empresas, que atuavam, ou passaramentão a atuar nesse mercado [10].

O marketing e a publicidade online também têm vindo a mudar muito. Hoje emdia a empresa já não deve comunicar, deve sim aprender a interagir. A publicidadedeixou de ser feita apenas num sentido, onde a empresa emitia uma mensagemque o consumidor devia receber. Como a Internet é constituída pelas pessoas, apublicidade passou a ser feita de forma a que as pessoas da empresa se relacionemcom os consumidores [25].

O projeto consistiu em desenvolver uma aplicação web (ASP.NET/C#) para anún-cios, denominada Anuncie Aqui Já. A aplicação destina-se às pessoas que pretendamcomprar ou vender produtos. Cada utilizador registado pode inserir os seus anún-cios e procurar outros anúncios pelas várias categorias ou subcategorias presentesno site.

O projeto enquadra-se no âmbito e complexidade adequada às competências adqui-ridas no curso:

• Autonomia e capacidade de de�nir objetivos;

• Capacidade de modelação de problemas;

• Saber elaborar relatórios de análise, desenho e implementação de soluções;

13

Page 17: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 1. INTRODUÇÃO 14

• Gestão de tempo e cumprimento de prazos.

O projeto realizado teve que ter em conta as seguintes regras:

• Ter um orientador docente da Unidade Técnico-Cientí�ca de Informática daEscola Superior de Tecnologia e Gestão do Instituto Politécnico da Guarda,assim como um supervisor na empresa;

• Ter um plano de desenvolvimento aprovado pelo diretor do curso;

• O tempo necessário para a realização do projeto foi �exível, dependendo ape-nas das datas de�nidas pelos professores da Unidade Curricular Projeto deInformática. Sendo assim, o projeto acabou por ter uma duração de váriosmeses, devido ao facto de o aluno ter outras Unidades Curriculares para fazere assim foi necessário fazer várias interrupções. O projeto teve início no mêsde Março e foi �nalizado no mês de Novembro.

1.1 Instituição de acolhimento

A empresa DotFlow Solutions, Lda situada no Largo Alberto Sampaio No 3 A,em Linda-a-Velha tem como missão a prestação de serviços de desenvolvimento desoluções de tecnologias de informação e a prestação de serviços em consultoria emsoluções de tecnologias de informação.

1.2 Motivação

A principal motivação para o desenvolvimento deste projeto foi o facto de ter aoportunidade de aprendizagem de competências pro�ssionais num contexto real detrabalho, podendo ter assim uma primeira impressão, mesmo que pequena ainda,sobre o que é trabalhar numa empresa. O facto de se poder trabalhar com novastecnologias, que ainda não se tinham usado, principalmente o Linq to Entities, oEntity Framework e o EDM (Entity Data Model) é também muito importante, jáque assim aprendem-se coisas novas.

Neste momento, devido à crise económica e às perspetivas de recuperação económicamuito sombrias, a procura e venda de produtos em segunda mão tem sido cada vezmaior. Prevendo-se um grande aumento neste tipo de negócio, a empresa vê aquiuma grande oportunidade. A empresa, pretende ainda, concorrer com outros portaisde serviços semelhantes, apostando fortemente em estratégias de marketing que seapoiam nas redes sociais. Ao longo do projeto surgiram outras motivações, taiscomo, em trabalho futuro, a pesquisa de anúncios noutros sites e lucrar com apublicidade.

Page 18: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 1. INTRODUÇÃO 15

1.3 Solução

A solução proposta consiste em desenvolver uma plataforma web de anúncios, ondea aplicação é composta pelo FrontO�ce e pelo BackO�ce.

Para os utilizadores não registados não há muitas funcionalidades disponíveis, po-dendo apenas visualizar os anúncios inseridos por utilizadores registados, pesquisaranúncios pelas várias categorias e subcategorias, e enviar mensagens para os funci-onários do site para pedir informações.

A aplicação tem outras funcionalidades para os utilizadores registados, tais como:pesquisa de anúncios pelas várias categorias e subcategorias, editar anúncios já in-seridos, ver todos os anúncios inseridos por si e qual o estado de cada um dessesanúncio no momento, entre outras.

As funcionalidades para os moderadores são as seguintes: validar anúncios, reti-rar/colocar anúncios em destaque, responder a mensagens recebidas, entre outras.

Para o administrador as funcionalidades são as seguintes: inserir novos funcionários,inserir novas subcategorias para as categorias, visualizar os anúncios pendentes,con�rmados e cancelados, sendo que para estes últimos dois casos consegue ver qualo moderador que fez a ação.

Por �m, cada um dos utilizadores registados pode ainda ver e editar os seus dadospessoais.

Para realizar o projeto será necessário resolver alguns problemas, enumerados deseguida:

• Como registar e autenticar os utilizadores;

• Que sistema de gestão de base de dados utilizar para armazenar os dados dosanúncios, nomeadamente as imagens;

• Como usar o Linq to Entities para poder comunicar com a base de dados,usando o modelo EDMX;

• Como retirar/colocar um anúncio em destaque;

• Como responder às mensagens enviadas pelos utilizadores.

1.4 Contribuição

A contribuição principal deste trabalho foi o desenvolvimento, implementação eteste de uma plataforma web de anúncios online, na plataforma ASP.NET/C# comarmazenamento de dados em bases de dados SQL SERVER e acesso hierárquico aosdados, através da tecnologia LINQ to Entities.

Page 19: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 1. INTRODUÇÃO 16

1.5 Estrutura do documento

Este documento compreende cinco capítulos para além do presente capítulo, e estáorganizado da seguinte forma:

• No segundo capítulo é descrito o Estado da arte - são apresentados alguns sitesque já existem relacionados com anúncios;

• No terceiro capítulo é descrita a Metodologia e resultados esperados - apresen-tação das metodologias usadas no projeto, a sua calendarização e os resultadosesperados;

• No quarto capítulo são descritas as Tecnologias utilizadas - descrição das tec-nologias usadas ao longo do projeto, detalhadamente;

• No quinto capítulo é descrita a Implementação da solução - descrição detalhadado trabalho realizado ao longo de todo o projeto;

• No sexto capítulo são descritas as Conclusões e trabalho futuro - considerações�nais sobre o trabalho realizado e trabalho a realizar no futuro para completaro projeto;

Page 20: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

Capítulo 2

Estado da arte

No âmbito dos anúncios já existem várias aplicações web em funcionamento commuito sucesso. Nestas aplicações, pode dizer-se que o preço dos anúncios é um poucoelevado. No projeto desenvolvido não foi implementada a parte dos pagamentos, masem trabalho futuro poderá ser implementada e conseguir ter melhores preços é umfator aliciante. Também o facto de pesquisar anúncios noutros sites e reuni-los nomesmo site é outro dos fatores que poderia ser relevante porque os existentes nãotêm esta funcionalidade.

2.1 Portugal Anúncios classi�cados grátis OLX

No site OLX podemos encontrar várias vantagens, tais como publicar anúncios grátis,mas estes apenas podem estar online durante uma semana. Para colocar anúncios emdestaque e por mais algum tempo terá que ser efetuado um pagamento. O site temtambém uma parte onde podem ser vistas as mensagens trocadas entre o utilizadore os interessados nos seus anúncios. Podem ser efetuadas pesquisas de anuncio deprodutos por distrito/concelho categoria/subcategoria. Alguns dos preços para os

serviços, são os seguintes:

• Anúncio em destaque na página inicial têm um custo de 15 e/semana;

• Anúncio sobressaído terá um custo de 3 e/semana;

• Anúncio de topo têm um custo de 7 e/semana.

Na �gura 2.1 podemos ver a página inicial do OLX. O endereço para aceder a estapágina é o seguinte: http://www.olx.pt/.

17

Page 21: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 2. ESTADO DA ARTE 18

Figura 2.1: Página inicial do site de anúncios OLX

Page 22: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 2. ESTADO DA ARTE 19

2.2 Anúncios grátis Coisas

As principais funcionalidades do Coisas é a possibilidade de inserir anúncios grátis,podendo também inserir anúncios pagos, e há também uma secção para a troca demensagens entre utilizadores. Podem ser efetuadas pesquisas de anuncio de produtospor distrito/concelho categoria/subcategoria.

Este site tem 3 pacotes, um deles grátis e dois pagos, sendo estes:

• Grátis - duração de 4 semanas;

• Standard - preço: 10 e, duração de 5 semanas, aprovação prioritária, o anúncioé sobressaído durante 1 semana e está no topo durante 1 semana;

• Premium - preço: 25 e, duração de 5 semanas, aprovação prioritária, o anúncioé sobressaído durante 1 semana, está no topo durante 1 semana e o anúncioestá em destaque na primeira página durante 1 semana, sendo esta a diferençapara o pacote anterior.

Na �gura 2.2 podemos ver a página inicial do Coisas. O endereço para aceder a estapágina é o seguinte: http://www.coisas.com/.

Page 23: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 2. ESTADO DA ARTE 20

Figura 2.2: Página inicial do site de anúncios Coisas

Page 24: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 2. ESTADO DA ARTE 21

2.3 Custo Justo Portugal

Aqui podem ser pesquisados os anúncios por distrito e há ainda vários serviços pagosno site. Podem ainda ser inseridos anúncios grátis e anúncios pagos.

Alguns dos serviços pagos deste site e as suas características são:

• Subir - permite a colocação imediata do seu anúncio no topo da lista como setivesse sido publicado de novo e tem um custo de 2 e;

• Subir x8 - permite a colocação imediata do seu anúncio no topo da lista, sendoque, a cada 7 dias o seu anúncio voltará ao topo da lista, durante 8 semanasconsecutivas, com um custo de 6 e;

• Montra - proporciona maior destaque e visibilidade ao anúncio, tendo um custode 10 e para 7 dias e de 30 e para 30 dias;

• Modi�car - permite alterar o anúncio sem ter de o eliminar, com um custo de2 e;

• Urgente - permite destacar o anúncio indicando tratar-se de uma venda ur-gente, com um logótipo especi�co, sendo que, durante 3 dias, a cada 24 horaso anúncio é colocado no topo da lista com um custo de 3 e.

Na �gura 2.3 podemos ver a página inicial do Custo Justo. O endereço para acedera esta página é o seguinte: http://www.custojusto.pt/.

Page 25: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 2. ESTADO DA ARTE 22

Figura 2.3: Página inicial do site de anúncios Custo Justo

Page 26: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 2. ESTADO DA ARTE 23

2.4 Imovirtual

Neste site, podem ser encontrados e publicados anúncios sobre imóveis, pelo que,este site não pode ser relacionado com o projeto já que, apesar de ser um site deanúncios apenas possui anúncios de imóveis. Este site pode ser visto em http:

//www.imovirtual.com/.

2.5 Standvirtual

Neste site, apenas podem ser encontrados e publicados anúncios sobre automóveis,ou seja, é uma plataforma de anúncios para automóveis, pelo que não pode serrelacionado diretamente com o projeto, apesar de também ser um site de anúncios.Este site pode ser visto em http://www.standvirtual.com/.

2.6 Comparação das aplicações existentes da área

Tal como já foi referido anteriormente, todos estes sites possuem funcionalidadesmuito semelhantes. Nos vários sites os preços dos serviços pagos, normalmente,variam com o tempo que se pretende usar um determinado serviço, sendo que,quanto mais tempo se quiser usar esse serviço mais elevado será o preço. Todosos sites referidos possuem várias formas para pesquisar os anúncios pretendidos.Na tabela 2.1 podemos ver algumas comparações entre os sites. Todos os dadossão relativos ao site português, já que alguns destes sites têm também sites noestrangeiro.

Page 27: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 2. ESTADO DA ARTE 24

OLX Coisas Custo Justo

Número de anún-cios

Cerca de 676.540 Cerca de 711.660 Cerca de 856.465

Anúncios grátis? Sim Sim SimPreços dos serviçospagos (e)

3 ou 7 ou 15 10 ou 25 2, 3, 6 ou 10

Formas de paga-mento

Multibanco, Visa,MasterCard,Payshop e Pay-Pal

Multibanco, Visa,MasterCard,Payshop e Pay-Pal

Multibanco e car-tão de crédito

Pesquisa de anún-cios noutros sites?

Não Sim, mas a um siteda mesma empresa

Não

Pesquisa por locali-dade?

Sim Sim Sim

Pesquisa por cate-goria?

Sim Sim Sim

Sistema de mensa-gens?

Sim Sim Sim

Utilizadores regis-tados?

Sim Sim Sim

Site no estrangeiro? Sim Não SimRanking em Portu-gal

13 [3] 46 [1] 22 [2]

Reputação 1714 [3] 283 [1] 429 [2]Gostos no facebook 303.033 [17] 158.828 [15] 100.005 [16]

Tabela 2.1: Comparação entre os vários sites

Os valores referentes ao facebook são muito relativos, já que, normalmente sobem atodo o instante. Quanto aos valores retirados do site http://www.alexa.com/, sãoestatísticas recolhidas pelo motor de busca e pela tollbar dos próprios, mas como têmuma boa amostra, supõe-se que a margem de erro não seja muito elevada. Todos osdados da tabela acima que não têm referência foram retirados da respetiva página.

Page 28: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

Capítulo 3

Metodologia e resultados esperados

3.1 Metodologia

Para o desenvolvimento deste projeto foi utilizada uma metodologia ágil, que con-sistiu em ter, de quando em quando, uma nova versão para apresentar à empresa,e apenas no �nal documentar tudo. Assim sendo, a metodologia para desenvolver,implementar e testar a aplicação web, é a seguinte:

1. Análise dos requisitos do projeto;

2. CSS para as folhas de estilo a usar;

3. Javascript no slide, que já vinha com o template e para veri�car quando assessões expiram;

4. ASP.NET para criação dinâmica das páginas HTML;

5. Utilizar o C# para programar as ações dos objetos das páginas;

6. Utilizar o SQL SERVER para fazer a base de dados;

7. Utilizar o LINQ to Entities para aceder à base de dados;

8. Realização de testes e análise da e�ciência e �abilidade da aplicação, colocandoo site online;

9. Visual Studio 2010 para a realização do projeto em si;

10. SQL Server Management Studio para carregar dados externos e criar a basede dados a partir do modelo;

11. Utilizar o latex para produzir um relatório pata documentar o projeto.

De forma a facilitar o acompanhamento do projeto, do supervisor da empresa, foramapresentadas as várias partes do projeto conforme iam sendo realizadas, para queno �nal o trabalho correspondesse ao que foi pedido pela empresa.

25

Page 29: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 3. METODOLOGIA E RESULTADOS ESPERADOS 26

3.2 Descrição das tarefas

As principais tarefas foram:

• Tarefa 1 � Análise dos requisitos da aplicação web;

• Tarefa 2 � Estudo da arte;

• Tarefa 3 � Estudo das tecnologias a utilizar;

• Tarefa 4 � Criar a base de dados, no SQL SERVER;

• Tarefa 5 � De�nir os estilos (CSS) para as várias páginas;

• Tarefa 6 � Criação das páginas HTML, com o ASP.NET e o C#;

• Tarefa 7 � Testes da aplicação;

• Tarefa 8 � Elaboração do relatório;

• Tarefa 9 � Colocação e divulgação online da aplicação web.

O agendamento das tarefas é apresentado na �gura 3.1.

Figura 3.1: Tarefas

O respetivo Mapa de Gantt é apresentado na �gura 3.2.

Figura 3.2: Mapa de Gantt

Page 30: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 3. METODOLOGIA E RESULTADOS ESPERADOS 27

3.3 Resultados esperados

No �nal do projeto espera-se que a aplicação web, a nível dos utilizadores, seja capazde:

• Permitir aos utilizadores registados inserir e editar anúncios;

• Permitir a inserção de dados especí�cos para os anúncios, dependendo da sub-categoria;

• Permitir a listagem dos anúncios, por categoria ou subcategoria;

• Permitir a visualização dos detalhes de cada anúncio;

• Permitir o registo de utilizadores;

• Permitir a pesquisa de anúncios.

Ao nível da administração, espera-se que a aplicação seja capaz de:

• Permitir a colocação de anúncios em destaque;

• Permitir a inserção de novas subcategorias para uma determinada categoria;

• Permitir o registo de novos funcionários;

• Consultar os anúncios pendentes;

• Consultar os anúncios con�rmados e cancelados, e veri�car qual o moderadorque efetuou essa ação.

Page 31: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

Capítulo 4

Tecnologias utilizadas

4.1 Introdução

Neste capítulo vão ser referidas, com algum detalhe, as tecnologias utilizadas aolongo do projeto.

Para desenvolver aplicações para a web é usado o consórcio W3C (Consórcio WorldWide Web), sendo que é um consórcio internacional no qual organizações �liadas,trabalham em tempo integral e com ajuda do público para desenvolver padrões paraa Web. Este consórcio tem como principal objetivo atingir todo o seu potencialdesenvolvendo protocolos e diretrizes que garantam o seu crescimento a longo prazo

4.2 Tecnologias web

4.2.1 HTML

O HTML (em inglês Hypertext Markup Language e em português Linguagem deMarcação de Hipertexto) é uma das linguagens que utilizamos para desenvolverweb sites, podendo ser considerada a linguagem base da Internet. Existem outraslinguagens mais avançadas para desenvolver sites, porém di�cilmente conseguimosencontrar um site que não utilize HTML, e o mais comum é encontrar sites queutilizam somente HTML [6]. Na listagem 1 podemos ver um pequeno exemplo decódigo html. Esta tecnologia foi usada em todas as páginas do projeto.

28

Page 32: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 4. TECNOLOGIAS UTILIZADAS 29

Listagem 1 Exemplo de código HTML.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"%"http://www.w3.org/TR/html4/strict.dtd"><html><head>

<title>Teste de HTML</title></head><body>

<h1>Olá Mundo</h1>

<br /><b>Exemplo Tabela</b><table>

<tr><td></td><td>

Coluna 1</td>

</tr><tr>

<td>Linha 1

</td><td>

Olá</td>

</tr></table>

</body></html>

4.2.2 CSS

O CSS (Cascading Style Sheets) é uma "folha de estilo"utilizada para de�nir aapresentação (aparência) nas páginas da Internet que optam por usar linguagensde marcação, como HTML, para o seu desenvolvimento. O CSS de�ne como vãoser exibidos os elementos contidos no código de uma página, tendo como maiorvantagem separar o formato e o conteúdo de um documento, ou seja, é feito umdocumento à parte só para o css, sendo que depois é chamado onde o queremos usar[18]. Na listagem 2 podemos ver um pequeno exemplo de código css. Esta tecnologiafoi usada para elaborar as folhas de estilo para o projeto.

Listagem 2 Exemplo de código CSS.#todoform th {background:#000000;/* a cor preta para o fundo do título */

padding:3px;/* um afastamento de 3px */

font: bold 15px arial, verdana, helvetica, sans-serif;/* letras em negrito com 15px e familia arial, verd....*/

border-bottom:1px solid #ff9900;/* uma borda inferior solida de 1px na cor laranja */}

Page 33: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 4. TECNOLOGIAS UTILIZADAS 30

4.2.3 Javascript

Javascript é uma linguagem de programação utilizada para criar pequenos programasencarregados de realizar ações dentro de uma página web, do lado do cliente, já queé o navegador que suporta a carga de processamento. Já que é compatível com amaioria dos navegadores, é a linguagem de programação, do lado do cliente, maisutilizada. É uma linguagem com várias potencialidades, entre elas: podemos criarefeitos especiais nas páginas e de�nir interatividades com o usuário [4]. Na listagem3 podemos ver um pequeno exemplo de código javascript. Esta tecnologia foi usada,por exemplo no slide dos anúncios em destaque, que já vinha incluído no template.

Listagem 3 Exemplo de código Javascript.<script>window.open("http://www.google.com","","width=550,height=420, menubar=no")</script>

4.2.4 ASP.NET

O ASP.NET (Active Server Pages) é um ambiente de desenvolvimento onde sãodesenvolvidos aplicativos para a Web, sendo uma tecnologia da Microsoft que éuma evolução do ASP. Os aplicativos feitos neste ambiente rodam no servidor Webespeci�camente dentro da Internet Information Services (IIS) e necessitam do .NETFramework, onde as páginas do aplicativo, vão �car disponíveis para poderem seracedidas por qualquer sistema operacional e navegador.

Vão agora ser mostradas algumas características do ASP.NET: é orientada a obje-tos, faz parte do .NET Framework podendo utilizar as classes do mesmo, as páginasASP.NET são compiladas antes da serem executadas, ganhando assim velocidade,segurança, estabilidade e interoperabilidade. As páginas ASP.NET são desenvolvi-das por diversos controlos de Interface, Validação, Data, HTML, entre outros.

Para completar o ASP.NET, deve ser escolhida, no Microssoft Visual Studio, umadas seguintes linguagens: C#, Visual Basic e J# [7]. Na listagem 4 podemos verum pequeno exemplo de código ASP.NET. Esta tecnologia foi usada em todas aspáginas do projeto, já que é a tecnologia sobre a qual o projeto foi elaborado.

Page 34: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 4. TECNOLOGIAS UTILIZADAS 31

Listagem 4 Exemplo de código ASP.NET<%@ Page Language="C#" AutoEventWireup="true"CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">

<title></title></head><body>

<form id="form1" runat="server"><div>

<asp:Label ID="Label1" runat="server" Text="Olá Mundo!"></asp:Label>

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></div></form>

</body></html>

4.2.5 C#

C# (CSharp) é uma linguagem de programação orientada a objetos criada pelaMicrosoft, fazendo parte da sua plataforma .Net. A linguagem C# baseou-se noC++ e no Java. Foi criada junto com a arquitetura .NET, embora existam váriasoutras linguagens que suportam essa tecnologia (como VB.NET, C++, J#). Éconsiderada a linguagem símbolo do .NET, por várias razões: foi criada de novopara funcionar logo na plataforma, o compilador da linguagem foi o primeiro a serdesenvolvido e a maior parte das classes do .NET Framework foram desenvolvidasna mesma linguagem [5]. Na listagem 5 podemos ver um pequeno exemplo de códigoC#. Esta tecnologia foi usada em todas as páginas do projeto, já que é uma dastecnologias principais.

Listagem 5 Exemplo de código C#.public class ClasseExemplo{

public static void Main(){

System.Console.WriteLine("Olá mundo!");calcula_media();

}}private double calcula_media(){

int j;double media, soma;soma = 0;for (j = 0; j < i; j++){

soma = soma + E[j].Velocidade;}return (media = soma / j);

}

Page 35: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 4. TECNOLOGIAS UTILIZADAS 32

4.2.6 Microsoft SQL SERVER

O SQL (Structured Query Language ou Linguagem de Consulta Estruturada), é umalinguagem de pesquisa declarativa para base de dados relacionais. [23] O MicrosoftSQL SERVER foi o SGBD (Sistema de Gestão de Base de dados) usado no projeto,já que é uma base de dados robusta que vem incluída no Microsoft Visual Studio(software usado na elaboração do projeto) [14]. Esta tecnologia foi usada para odesenvolvimento da base de dados.

4.2.7 Linq to Entities

O Linq to Entities foi usado no projeto principalmente pelo facto de poder usarherança entre tabelas. O linq to Entities pode ser usado com qualquer base dedados relacional, ao contrário do linq to sql, que apenas pode ser usado com o SQLSERVER. O LINQ to SQL é mapeado diretamente para as tabelas da base de dadose o LINQ to Entities permite criar um modelo de objetos baseados nas tabelas dequalquer base de dados [12]. Na listagem 6 podemos ver um pequeno exemplo deum query, linq to entities. Esta tecnologia foi usada para aceder à base de dados.

Listagem 6 Exemplo de query, Linq to Entities.public static IQueryable mostraFreguesiasConSel(int idConcelho)

{ModelBDClassificadosContainer classificadosBD = new ModelBDClassificadosContainer();var query = from freguesias in classificadosBD.Freguesias

where freguesias.Id_concelho == idConcelhoorderby freguesias.Freguesiaselect freguesias;

return query;}

4.3 Software utilizado

4.3.1 Microsoft Visual Studio 2010

O Microsoft Visual Studio é um pacote de programas da Microsoft para desenvol-vimento de software especialmente dedicado ao .NET Framework e às linguagensVisual Basic (VB), C, C++, C# (C Sharp) e J# (J Sharp). É também um grandeproduto de desenvolvimento na área web, usando a plataforma do ASP.NET. Aslinguagens usadas nesta plataforma são: VB.NET (Visual Basic.Net) e o C# (CSharp) [22].

O interface principal do Microsoft Visual Studio 2010 é apresentado na �gura 4.1.Pode dizer-se que todo o projeto foi desenvolvido sobre esta plataforma.

Page 36: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 4. TECNOLOGIAS UTILIZADAS 33

Figura 4.1: Interface principal do Microsoft Visual Studio 2010.

4.3.2 SQL Server Management Studio

O SQL Server Management Studio (SSMS) é uma aplicação de software lançadopela primeira vez com o Microsoft SQL SERVER 2005 , que é usado para con�gurar,gerir e administrar todos os componentes do Microsoft SQL SERVER. A ferramentainclui ferramentas grá�cas que trabalham com objetos e recursos do servidor. Estesoftware pode ser usado, por exemplo, para carregar �cheiros externos a partir deum �cheiro do excel [24].

Um exemplo de interface do Sql Server Management Studio é apresentado na �gura4.2.

Figura 4.2: Exemplo de interface do Sql server Management Studio.

Page 37: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

Capítulo 5

Implementação da solução

5.1 Introdução

A solução foi desenvolvida na plataforma ASP.NET, com recurso a várias tecnolo-gias, tais como: HTML, CSS, SQL SERVER e JavaScript. O projeto foi desenvolvidocom a arquitetura da �gura 5.1.

Figura 5.1: Arquitetura do projeto.

34

Page 38: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 35

5.2 A importância do login e do logout

Para efetuar algumas ações, depois de efetuado o registo, o utilizador terá que efe-tuar o login. Quando esse login é usado em locais públicos podem surgir algumasquestões relacionadas com segurança. Por exemplo, alguns utilizadores não efe-tuam o logout, pensando que o facto de fecharem as páginas é su�ciente. Hoje emdia, alguns browsers, ao reabrirem as páginas, onde não foi efetuado o logout, vãoabrir as páginas com o login efetuado e caso isso aconteça em locais públicos podeestar alguém a ter acesso à página de outra pessoa e até fazer-se passar por ela.Para resolver esta questão, as pessoas nunca se devem esquecer de fazer o logout,principalmente em locais públicos. [11]

5.3 Base de dados Anúncios

A base de dados foi criada com recurso ao SQL SERVER.

5.3.1 Modelo Relacional

Para criar a base de dados, inicialmente foi desenhado o modelo ER da aplicação,usando o modelo EDMX (ADO.NET Entity Data Model), tal como podemos ver na�gura 5.2.

Page 39: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 36

Figura 5.2: Modelo relacional da base de dados.

Page 40: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 37

O modelo foi criado para poder ser usada a herança entre tabelas, já que o SQLSERVER não suporta diretamente essa opção. O modelo permitiu também quefosse usado o Linq to Entities para aceder à base de dados (desta forma foi possívelelaborar a aplicação em três camadas, tal como já foi referido). Depois de criadoo modelo foi criado o script que posteriormente vai criar a base de dados no SQLSERVER. Com o uso da ferramenta Sql Server Management Studio, vai ser corridoo script criado anteriormente e desta forma será criada a base de dados, tal comopodemos ver na �gura 5.3.

Figura 5.3: Diagrama ER normalizado

Para além do diagrama anterior, a base de dados é ainda composta pela tabela da�gura 5.4.

Page 41: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 38

Figura 5.4: Tabela mensagens.

Para além da base de dados anterior, quando criamos os utilizadores, privilégios eroles (grupos), por defeito, a plataforma ASP.NET recorre a uma base de dadosSQL SERVER para guardar tudo isso, como podemos ver na �gura 5.5.

Page 42: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 39

Figura 5.5: Base de dados criada por omissão.

Page 43: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 40

Ainda com a mesma ferramenta, foram carregadas algumas tabelas a partir do Mi-crosoft Excel, usando a importação de dados, sendo as tabelas as seguintes: Distri-tos, Concelhos e Freguesias. Nos anexos do documento poderemos ver os prints dos�cheiros do Microsof excel.

5.3.2 Dicionário de dados

5.3.2.1 Anuncios

Na tabela 5.1 apresentam-se as várias características dos campos relativos aos anún-cios.

Campo Tipo Tamanho Obrigatório DescriçãoId_anuncio (PK) Inteiro 4 Sim / automático Número sequencial que identi-

�ca univocamente cada anún-cio

Id_utilizador (FK) Inteiro 4 Sim / automático Número que identi�ca o utili-zador a quem pertence o anún-cio

Id_tipo_anuncio (FK) Inteiro 4 Sim Número que identi�ca o tipo deanúncio

Id_sub_categoria (FK) Inteiro 4 Sim Número que identi�ca a subca-tegoria do anúncio

Data_publicacao Data - Sim / automática Data/hora da publicação doanúncio

Localizacao Texto MAX Sim Localização especí�ca do anún-cio

Id_freguesia (FK) Inteiro 4 Sim Número que identi�ca a fregue-sia relativa ao anúncio

Titulo Texto MAX Sim Título do anúncioDescricao Texto MAX Sim Descrição do anúncio

Id_moderador (FK) Inteiro 4 Não / automático Número que identi�ca o mode-rador que valida o anúncio

Estado Texto MAX Sim Estado do anúncioPreco Texto 10 Não Preço que aparece no anúncio

Tipo_contrato Texto 49 Não Tipo de contrato do empregoPara_destaque Booleano - Sim Indica se o anúncio é para des-

taque ou nãoDestaque Texto 50 Não Indica o estado do destaque do

anúncioTitulo_destaque Texto 15 Não Título do anúncio em destaque

Sub_titulo_destaque Texto 22 Não Subtítulo do anúncio em desta-que

Descricao_destaque Texto MAX Não Descrição do anúncio em des-taque

Imagem1 Texto MAX Não Caminho da imagem 1Imagem2 Texto MAX Não Caminho da imagem 2

Tabela 5.1: Estrutura da tabela Anuncios

5.3.2.2 Anuncios_Veiculos

Na tabela 5.2 apresentam-se as várias características dos campos relativos aos anún-cios de veículos, ou seja, esta é uma tabela que herda os atributos da tabela Anuncios.

Page 44: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 41

Campo Tipo Tamanho Obrigatório DescriçãoMarca Texto MAX Não Marca do veículoModelo Texto MAX Não Modelo do veículo

Primeiro_registo Inteiro 4 Não Primeiro registo do veículoCondicao Texto MAX Não Condição do veículo (novo,

usado)Tipo_carro Texto MAX Não Tipo de carro a que se refere o

anúncioQuilometros Inteiro 7 Não Número de quilómetros que o

veículo possuiCombustivel Texto MAX Não Tipo de combustível do veículoPotencia Texto MAX Não Potencia do veiculoTonalidade Texto MAX Não Cor predominante do veículoExtras Texto MAX Não Extras que fazem parte do veí-

culoCilindrada Texto MAX Não Indica a cilindrada do veículoTipo_barco Texto MAX Não Indica o tipo de barcoComprimento Texto MAX Não Comprimento do barco

Id_anuncio (PK) Inteiro 4 Sim / automático Número sequencial que identi-�ca o anúncio a que o veículose refere

Tabela 5.2: Estrutura da tabela Anuncios_Veiculos

5.3.2.3 Anuncios_Imoveis

Na tabela 5.3 apresentam-se as várias características dos campos relativos aos anún-cios de imóveis, ou seja, esta é uma tabela que herda os atributos da tabela Anuncios.

Campo Tipo Tamanho Obrigatório DescriçãoCondicao Texto MAX Não Condição do imóvelTipologia Texto MAX Não Tipologia do imóvel (T1, T2)Area_util Inteiro 7 Não Área útil do imóvel

Casas_banho Texto MAX Não Número de casas de banhoArea_bruta Inteiro 7 Não Área bruta do imóvel, toda a

área que lhe pertenceAno_construcao Inteiro 4 Não Ano de construção do imóvelCaracteristicas Texto MAX Não Principais características (ga-

ragem, aquecimento central)Area_Terreno Inteiro 4 Não Área do terreno em causaTipo_Terreno Texto MAX Não Tipo de terreno em causa (In-

dustrial, urbano)Finalidade Texto MAX Não Finalidade a que se destina o

terrenoLicença_const Texto MAX Não Indica se já tem licença de

construção e qual o seu estadoDeclive Texto MAX Não Declive do terreno em causaDivisoes Inteiro 2 Não Número de divisões do imóvel

em causaId_anuncio (PK) Inteiro 4 Sim / automático Número sequencial que identi-

�ca o anúncio a que o imóvel serefere

Tabela 5.3: Estrutura da tabela Anuncios_Imoveis

5.3.2.4 Anuncios_Animais

Na tabela 5.4 apresentam-se as várias características dos campos relativos aos anún-cios de animais, ou seja, esta é uma tabela que herda os atributos da tabela Anuncios.

Page 45: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 42

Campo Tipo Tamanho Obrigatório DescriçãoGenero Texto MAX Não Género do animalRaca Texto MAX Não Raça do animal em causa

Tipo_peixe Texto MAX Não Tipo de peixe, no caso da sub-categoria ser essa

Animal Texto MAX Não Indica o animal em causaId_anuncio (PK) Inteiro 4 Sim / automático Número sequencial que identi-

�ca o anúncio a que o animalse refere

Tabela 5.4: Estrutura da tabela Anuncios_Animais

5.3.2.5 Anuncios_Empregos

Na tabela 5.5 apresentam-se as várias características dos campos relativos aos anún-cios de empregos, ou seja, esta é uma tabela que herda os atributos da tabelaAnuncios.

Campo Tipo Tamanho Obrigatório DescriçãoEmpresa Texto MAX Não Empresa a que o emprego se re-

fereFuncao Texto MAX Não Função no empregoPer�l Texto MAX Não Per�l pretendido

Ofertas_bene�cios Texto MAX Não Ofertas ou benefícios dadospela empresa

Tipo_trabalho Texto MAX Não Tipo de trabalho pretendidoExperiencia_prof Texto MAX Não Experiência pro�ssional pre-

tendidaHabilitacoes Texto MAX Não Habilitações pretendidasLinguas Texto MAX Não Conhecimentos nas várias lín-

guasMensagem_intro Texto MAX Não Mensagem introdutória para o

empregoDisponibilidade Texto MAX Não Disponibilidade pretendida

Id_anuncio (PK) Inteiro 4 Sim / automático Número sequencial que identi-�ca o anúncio a que o empregose refere

Tabela 5.5: Estrutura da tabela Anuncios_Empregos

5.3.2.6 Utilizadores

Na tabela 5.6 apresentam-se as várias características dos campos relativos aos utili-zadores.

Page 46: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 43

Campo Tipo Tamanho Obrigatório DescriçãoId_utilizador (PK) Inteiro 4 Sim / automático Número sequencial que identi-

�ca univocamente cada utiliza-dor

Nome Texto MAX Sim Nome completo do utilizadorE_mail Texto MAX Sim Email do utilizadorTelefone Texto 9 Sim Número de telefone do utiliza-

dorMorada Texto MAX Sim Indica a morada do utilizador

Data_registo Data - Sim / automático Data e hora do registo do uti-lizador

Username Texto MAX Sim Nome de utilizador que o iden-ti�ca de forma única

Tabela 5.6: Estrutura da tabela Utilizadores

5.3.2.7 Moderadores

Na tabela 5.7 apresentam-se as várias características dos campos relativos aos mo-deradores.

Campo Tipo Tamanho Obrigatório DescriçãoId_moderador (PK) Inteiro 4 Sim / automático Número sequencial que identi-

�ca univocamente cada mode-rador

Nome Texto MAX Sim Nome completo do moderadorE_mail Texto MAX Sim Email do moderadorTelefone Texto 9 Sim Número de telefone do mode-

radorCargo Texto 50 Sim Indica o cargo do moderador

Username Texto 50 Sim Nome do moderador que oidenti�ca de forma única

Tabela 5.7: Estrutura da tabela Moderadores

5.3.2.8 Distritos

Na tabela 5.8 apresentam-se as várias características dos campos relativos aos dis-tritos.

Campo Tipo Tamanho Obrigatório DescriçãoId_distrito (PK) Inteiro 4 Sim / automático Número sequencial que identi-

�ca univocamente cada distritoDistrito Texto MAX Sim Nome do distrito

Tabela 5.8: Estrutura da tabela Distritos

5.3.2.9 Concelhos

Na tabela 5.9 apresentam-se as várias características dos campos relativos aos con-celhos.

Page 47: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 44

Campo Tipo Tamanho Obrigatório DescriçãoId_concelho (PK) Inteiro 4 Sim / automático Número sequencial que identi-

�ca univocamente cada conce-lho

Concelho Texto MAX Sim Nome do concelhoId_distrito (FK) Inteiro 4 Sim Número que identi�ca o dis-

trito do anúncio

Tabela 5.9: Estrutura da tabela Concelhos

5.3.2.10 Freguesias

Na tabela 5.10 apresentam-se as várias características dos campos relativos às fre-guesias.

Campo Tipo Tamanho Obrigatório DescriçãoId_freguesia (PK) Inteiro 4 Sim / automático Número sequencial que identi-

�ca univocamente cada fregue-sia

Freguesia Texto MAX Sim Nome da freguesiaId_concelho (FK) Inteiro 4 Sim Número que identi�ca o conce-

lho do anúncio

Tabela 5.10: Estrutura da tabela Freguesias

5.3.2.11 SubCategorias

Na tabela 5.11 apresentam-se as várias características dos campos relativos às sub-categorias dos anúncios.

Campo Tipo Tamanho Obrigatório DescriçãoId_sub_categoria (PK) Inteiro 4 Sim / automático Número sequencial que identi-

�ca univocamente cada subca-tegoria

Nome Texto MAX Sim Nome da subcategoriaId_categoria (FK) Inteiro 4 Sim Número que identi�ca a cate-

goria do anúncio

Tabela 5.11: Estrutura da tabela SubCategorias

5.3.2.12 Categorias

Na tabela 5.12 apresentam-se as várias características dos campos relativos às cate-gorias dos anúncios.

Page 48: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 45

Campo Tipo Tamanho Obrigatório DescriçãoId_categoria (PK) Inteiro 4 Sim / automático Número sequencial que identi-

�ca univocamente cada catego-ria

Nome Texto MAX Sim Nome da categoria

Tabela 5.12: Estrutura da tabela Categorias

5.3.2.13 TiposAnuncio

Na tabela 5.13 apresentam-se as várias características dos campos relativos aos tiposde anúncio de cada anúncio.

Campo Tipo Tamanho Obrigatório DescriçãoId_tipo_anuncio (PK) Inteiro 4 Sim / automático Número sequencial que identi-

�ca univocamente cada tipo deanúncio

Nome Texto MAX Sim Nome do tipo de anúncio

Tabela 5.13: Estrutura da tabela TiposAnuncio

5.3.2.14 CatTip

A tabela 5.14 é uma tabela intermédia, onde a cada categoria são atribuídos os tiposde anúncio que esta pode ter. Vamos obter uma tabela com uma chave primáriaconcatenada.

Campo Tipo Tamanho Obrigatório DescriçãoId_categoria (PK) Inteiro 4 Sim / automático Número sequencial que identi-

�ca cada categoriaId_tipo_anuncio (PK) Inteiro 4 Sim / automático Número sequencial que identi-

�ca cada tipo de anúncio

Tabela 5.14: Estrutura da tabela CatTip

5.3.2.15 Mensagens

Na tabela 5.15 apresentam-se as várias características dos campos relativos às men-sagens.

Page 49: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 46

Campo Tipo Tamanho Obrigatório DescriçãoId_mensagem (PK) Inteiro 4 Sim / automático Número sequencial que identi-

�ca univocamente cada mensa-gem

Nome Texto 50 Sim Nome de quem envia a mensa-gem

Email Texto 50 Sim Email de quem envia a mensa-gem

Assunto Texto 70 Sim Assunto da mensagemMensagem Texto MAX Sim Mensagem enviada pelo utili-

zadorData Data - Sim / automática Data e hora de envio da men-

sagemEstado Booleano - Sim Indica se a mensagem já foi res-

pondida ou não

Tabela 5.15: Estrutura da tabela Mensagens

5.4 Aplicação ASP.NET em três camadas

A arquitetura em três camadas é uma arquitetura cliente servidor na qual o interfacedo utilizador, processos de negócios e armazenamento de dados são desenvolvidos emantidos em módulos independentes, ou em plataforma separadas.

A �gura 5.6 procura mostrar de forma resumida as três camadas identi�cando cadauma delas.

Figura 5.6: Representação das três camadas de uma aplicação ASP.NET.

As três camadas referidas são as seguintes:

• Camada de apresentação - User Interface (Presentation Tier)

• Camada de Negócios - Business Logic Layer (Business Logic Tier)

Page 50: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 47

• Camada de Acesso a dados - Data Access Layer (Data Tier)

Cada camada pode ser desenvolvida e testada separadamente.

A camada de apresentação contém os elementos da interface do utilizador do sitee inclui ainda toda a lógica de interação entre o utilizador e as regras de negócio.(ASP .NET Web Forms, Users Controls e Master Pages).

A camada de negócio recebe a requisição da camada de apresentação e retorna oresultado dependendo da lógica de negócio. (Classes C#).

A camada de acesso a dados contém as classes que acedem à base de dados e retornamo resultado para a camada de negócio.(Classes C#) [13].

5.5 FrontO�ce

Neste capítulo vão ser mostradas as páginas que podem ser visíveis para todos osutilizadores e algumas das suas principais funcionalidades.

5.5.1 Visitante

Os visitantes são os utilizadores do site que ainda não efetuaram o seu login. Al-gumas das principais funcionalidades destes utilizadores são: efetuar o seu registo,contactar a administração do site, visualizar os anúncios, entre outras.

5.5.1.1 Mapa do site

• Home (Default/Default.aspx)

� Detalhes do anúncio (Default/DetalhesAnuncio.aspx)

� Anúncios por categoria (Default/AnunciosCat.aspx)

∗ Detalhes do anúncio (Default/DetalhesAnuncio.aspx)

� Anúncios por subcategoria (Default/AnunciosSubCat.aspx)

∗ Detalhes do anúncio (Default/DetalhesAnuncio.aspx)

• Missão (Default/Missao.aspx)

• Anúncios (Default/SelecionarCatSub.aspx)

� Anúncios por categoria (Default/AnunciosCat.aspx)

∗ Detalhes do anúncio (Default/DetalhesAnuncio.aspx)

� Anúncios por subcategoria (Default/AnunciosSubCat.aspx)

∗ Detalhes do anúncio (Default/DetalhesAnuncio.aspx)

• Registo (Default/Register.aspx)

• Log In (Default/Login.aspx)

• Contactar (Default/Mensagens.aspx)

Page 51: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 48

5.5.1.2 Home Page

A home page dos visitantes é a página principal do web site, ou seja, é a página queaparece quando entramos na plataforma web de anúncios.

Na �gura 5.7 podemos ver essa página.

Figura 5.7: Home page (visitantes)

Nesta página é onde podemos ver os anúncios em destaque. Tal como podemos ver,apenas podem estar quatro anúncios de cada vez em destaque. Um pequeno exemplodo código que permite visualizar no slide os anúncios que estão em destaque, estána listagem 7, sendo que aqui podemos ver como colocar um anúncio em destaque(para os outros três anúncios o código é semelhante).

Quanto aos destaques há ainda a salientar o icon que aparece, já que esse icondepende da categoria ou da subcategoria a que o anúncio, que está em destaque,pertence.

Na listagem 8 podemos ver um pequeno exemplo do código da função que coloca nodestaque o respetivo icon.

Page 52: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 49

Listagem 7 Exemplo para colocar os anúncios em destaque.foreach (Anuncios anuncio in ClassQueries.anunciosDestaque()){if (aux == 0){

mostraIcons(aux, anuncio);aux1 = anuncio.Id_anuncio;desc1.InnerText = anuncio.Descicao_destaque.ToString();titulo1.InnerText = anuncio.Titulo_destaque.ToString();subtitulo1.InnerText = anuncio.Sub_titulo_destaque.ToString();img1.Src = anuncio.Imagem1;aux = 1;

}}

Listagem 8 Exemplo para mostrar os vários icons no destaque.private void mostraIcons(int aux, Anuncios anuncio){

if (anuncio.SubCategorias.Nome.Equals("Carros")){

if (aux == 0){

imagem1.Src = "img/icons/carro.png";}else if (aux == 1){

imagem2.Src = "img/icons/carro.png";}else if (aux == 2){

imagem3.Src = "img/icons/carro.png";}else if (aux == 3){

imagem4.Src = "img/icons/carro.png";}

}}

Page 53: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 50

Os icons que foram usadas estão na �gura 5.8.

Figura 5.8: Icons usados

No slide, há ainda um botão "Mais detalhes", sendo que este botão é um LinkButtonque nos manda para a página dos detalhes do anúncio que está em destaque.

Na parte �nal da página estão as várias categorias e subcategorias dos anúncios, talcomo podemos ver na �gura 5.9.

Figura 5.9: Categorias e subcategorias de anúncios.

Quando se clica em cima de um nome, dependendo se é uma categoria ou sub-categoria há um reencaminhamento para as páginas de anúncios por categoria ousubcategoria, respetivamente.

Na listagem 9 podemos ver um pequeno exemplo do código usado no evento Clickde um LinkButton para chegar à página de anúncios por categoria (�gura 5.10).

Page 54: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 51

Listagem 9 Exemplo para redirecionar para a página de anúncios por categoria.foreach (Categorias categoria inClassQueries.mostraCategoria(LinkButtonVeiculos)){

{Session["id_cat"] = categoria.Id_categoria;

}}Response.Redirect("AnunciosCat.aspx");

Figura 5.10: Página dos Anúncios por Categoria.

Page 55: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 52

Na listagem 10 podemos ver um pequeno exemplo do código usado no evento Selecte-dIndexChanged de um DataList para chegar à pagina de anúncios por subcategoria(�gura 5.11).

Listagem 10 Exemplo para redirecionar para os anúncios por subcategoria.Session["id_sub"] = DataListAnimais.SelectedValue;Response.Redirect("AnunciosSubCat.aspx");

Figura 5.11: Página dos Anúncios por Subcategoria.

5.5.1.3 Registo de utilizadores

Nesta página os visitantes podem efetuar o seu registo, para desta forma passarema utilizadores registados. Para efetuarem o registo é necessário preencher um for-mulário, em que todos os campos são de preenchimento obrigatório. Os campos têmainda outras validações, sendo estas: o telefone terá que ter nove dígitos, o usernamenão pode ser repetido, terá que ser introduzido um email válido e a password teráque ter no mínimo seis carateres. É ainda usado o captacha para que não possam serinseridos utilizadores através de um programa para o efeito. O formulário descritoé o da �gura 5.12.

Page 56: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 53

Figura 5.12: Formulário de registo para os utilizadores.

Depois de submetido o formulário, o utilizador irá receber dois emails automatica-mente, num deles serão enviados os dados do utilizador (�gura 5.13), para que esteos veri�que e no outro o utilizador deverá validar o seu email (�gura 5.14) [9]. Emanexo pode ser consultado o código usado para enviar o email dos dados.

Page 57: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 54

Figura 5.13: Exemplo de email enviado ao utilizador com os dados.

Figura 5.14: Exemplo de email enviado ao utilizador para con�rmação.

5.5.2 Utilizador

Aqui vamos ver algumas das principais funcionalidades dos utilizadores que já efe-tuaram o login, sendo estas: inserir e editar anúncios, visualizar os vários anúnciospresentes, contactar a administração do site, visualizar os seus próprios anúncios,entre outras.

5.5.2.1 Mapa do site

• Home (Utilizador/DefaultUtilizador.aspx)

� Detalhes do anúncio (Utilizador/DetalhesAnuncio.aspx)

� Anúncios por categoria (Utilizador/AnunciosCat.aspx)

Page 58: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 55

∗ Detalhes do anúncio (Utilizador/DetalhesAnuncio.aspx)

� Anúncios por subcategoria (Utilizador/AnunciosSubCat.aspx)

∗ Detalhes do anúncio (Utilizador/DetalhesAnuncio.aspx)

• Missão (Utilizador/Missao.aspx)

• Os meus anúncios (Utilizador/MeusAnuncios.aspx)

� Detalhes do anúncio (Utilizador/DetalhesAnuncio.aspx)

• Dados pessoais (Utilizador/Dados.aspx)

� Editar dados (Utilizador/EditarDados.aspx)

� Editar password (Utilizador/AlterarPassword.aspx)

• Contactar (Utilizador/Mensagens.aspx)

• Inserir anúncio (Utilizador/InserirAnuncio.aspx)

• Editar anúncio (Utilizador/EditarAnuncioSelecionar.aspx)

� Selecionar anúncio a editar (Utilizador/EditarAnuncioSelecionar.aspx)

∗ Editar anúncio selecionado (Utilizador/EditarAnuncio.aspx)

5.5.2.2 Home Page

A home page dos utilizadores é a página para onde é reencaminhado um utilizadorque acabou de efetuar o seu login.

Na �gura 5.15 podemos ver essa página.

Page 59: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 56

Figura 5.15: Home page (utilizadores)

Page 60: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 57

Esta página é semelhante à home page dos visitantes, possuindo as mesmas funci-onalidades, apesar de ter ainda outras, que apenas são possíveis para utilizadoresregistados, tais como: inserir anúncio, editar anúncios, editar os seus dados e ver osanúncios inseridos por si.

5.5.2.3 Inserir anúncio

Nesta página é onde os utilizadores podem inserir os seus anúncios. Agora vai serexplicado passo a passo o formulário que é necessário preencher para inserir umanúncio. Todos os campos obrigatórios têm * e possuem validações para tal.

No início do formulário o utilizador tem que preencher os dados relativos à categoriae ao tipo de anúncio, tal como podemos ver na �gura 5.16.

Figura 5.16: Dados relativos à categoria e tipo de anúncio

Em primeiro lugar terá que ser selecionada a categoria do anúncio e só depois asubcategoria e o tipo de anúncio, já que estes campos dependem do primeiro. A dropdown list das subcategorias apenas carrega os dados relativos à categoria selecionada.Quanto ao tipo de anúncio, é usada a tabela CatTip, onde cada categoria tem osrespetivos tipos de anúncios. Na listagem 11 podemos ver um exemplo de comoé efetuado o carregamento da drop down list tipos de anúncio, neste caso para osimóveis. O query "mostraTiposAnuncio"vai buscar os tipos de anúncio relativos aosimóveis.

Listagem 11 Exemplo para carregar a dropdownlist tipos de anúncio.if (DropDownListCategoria.SelectedItem.Text.Equals("Imóveis")){DropDownListTipoAnuncio.DataSource = ClassQueries.mostraTiposAnuncio(3);DropDownListTipoAnuncio.DataBind();DropDownListTipoAnuncio.Items.Insert(0, new ListItem("Selecione o tipo de anúncio", ""));

}

O query "mostraTiposAnuncio"vai buscar os tipos de anúncio relativos a umacategoria passada por parâmetro, tal como podemos ver na listagem 12.

Page 61: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 58

Listagem 12 Query que retorna os tipos de anúncio da uma dada categoria.public static IQueryable mostraTiposAnuncio(int idCategoria){ModelBDClassificadosContainer classificadosBD = new ModelBDClassificadosContainer();var query = from tiposAnun in classificadosBD.TiposAnunciojoin categoriasTiposanuncio in classificadosBD.CatTipon tiposAnun.Id_tipo_anuncio equalscategoriasTiposanuncio.Id_tipo_anunciojoin categorias in classificadosBD.Categoriason categoriasTiposanuncio.Id_categoria equalscategorias.Id_categoriawhere categoriasTiposanuncio.Id_categoria == idCategoriaorderby tiposAnun.Nomeselect tiposAnun;

return query;}

Na �gura 5.17 podemos ver a parte do formulário onde são inseridos os dados rela-tivos à localização do anúncio.

Figura 5.17: Dados relativos à localização do anúncio

Para selecionar dados nesta parte do formulário, é necessário seguir a ordem, ou seja,primeiro é necessário selecionar o distrito, depois o concelho e por �m a freguesia, jáque há uma interligação entre esses dados. As drop down list são carregadas usandoas tabelas Distritos, Concelhos e Freguesias, onde foi usado o carregamento externode dados para efetuar o seu preenchimento.

Na �gura 5.18 podemos ver a parte do formulário onde são inseridos os dados geraispara o anúncio e para a maior parte das categorias dos anúncios. Neste caso, temosque inserir o preço para o anúncio.

Page 62: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 59

Figura 5.18: Dados gerais de um anúncio

Quando a categoria do anúncio é emprego, os dados gerais do anúncio são diferentes,tal como podemos ver na �gura 5.19. Neste caso já não é necessário inserir o preço,mas sim o tipo de contrato.

Figura 5.19: Dados gerais de um anúncio de emprego

Ao nível dos dados para um anúncio, há ainda a salientar que, dependendo dasubcategoria, há dados especí�cos que podem ser inseridos pelos utilizadores. Na�gura 5.20 podemos ver, um exemplo, onde neste caso, temos os dados que podemser inseridos para um anúncio de apartamentos.

Page 63: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 60

Figura 5.20: Dados especí�cos para apartamentos

Na parte seguinte do formulário o utilizador poderá escolher se quer colocar o anúncioem destaque, selecionando a check box, tal como podemos ver na �gura 5.21.

Figura 5.21: Selecionar anúncio para destaque

Caso o anúncio seja para destaque, o utilizador terá que preencher mais algunsdados, tal como podemos ver na �gura 5.22.

Page 64: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 61

Figura 5.22: Dados para colocar o anúncio em destaque

Para terminar o formulário, o utilizador poderá escolher se quer inserir imagens parao anúncio, selecionando a check box, tal como podemos ver na �gura 5.23.

Figura 5.23: Selecionar imagens para o anúncio

Caso o utilizador deseje inserir imagens para o anúncio, terá que selecionar o �cheiroa partir do seu computador, tal como podemos ver na �gura 5.24. Apenas são aceites�cheiros png e jpg, com um determinado tamanho. Em anexo poderá ser consultadoum exemplo do código que guarda as imagens numa pasta do sistema de �cheiros eo caminho dessas imagens na base de dados. Já que a pasta onde as imagens �camé sempre a mesma, para que não haja problemas com imagens que tenham o mesmonome, foi adicionado o dia, mês, ano, horas, minutos, segundos e milissegundos, pararesolver esse problema. O tempo é encriptado usando o algoritmo MD5Hash.

Page 65: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 62

Figura 5.24: Inserir imagens

Por �m vamos ver um exemplo de uma função que insere um anúncio na tabelaanúncios, na listagem 13.

Listagem 13 Exemplo de função que insere na tabela anúncios.public static void inserirAnuncio(int subCategoria, int tipoAnuncio, int freguesia,string textBoxLocalizacao, string titulo, string descricao, string preco,bool destaque, int id_utilizador, string tituloDest, string subDest,string descDest, string cam1, string cam2, string tipoContrato){

ModelBDClassificadosContainer classificadosBD = new ModelBDClassificadosContainer();Anuncios a = new Anuncios() { Id_sub_categoria = subCategoria,

Id_tipo_anuncio = tipoAnuncio, Id_freguesia = freguesia, Localizacao = textBoxLocalizacao,Titulo = titulo, Descricao = descricao, Preco = preco, Id_utilizador = id_utilizador,Data_publicacao = DateTime.Now, Estado = "Pendente", Para_destaque = destaque,Destaque = "Pendente", Titulo_destaque = tituloDest, Sub_titulo_destaque = subDest,Descicao_destaque = descDest, Imagem1 = cam1, Imagem2 = cam2, Tipo_contrato = tipoContrato };

classificadosBD.AddToAnuncios(a);classificadosBD.SaveChanges();

}

Alguns dos dados referidos nesta página possuem validações especí�cas, como porexemplo apenas podem inserir números.

5.5.2.4 Editar anúncio

Nesta página os utilizadores podem editar os dados gerais dos anúncios já inseridos,sendo que para tal, em primeiro lugar, é necessário escolher o anúncio do qual queremeditar os dados. Apenas os anúncios que não estão em destaque, no momento, podemser editados. Esta seleção é feita na página que podemos ver na �gura 5.25

Page 66: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 63

Figura 5.25: Selecionar anúncio a editar

Depois de selecionado o anúncio, podem ser editados alguns dados, tal comopodemos ver na �gura 5.26.

Page 67: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 64

Figura 5.26: Editar anúncio selecionado

Caso a categoria do anúncio selecionado seja emprego o formulário terá umapequena alteração, em vez do preço terá o tipo de contrato, tal como podemos verna �gura 5.27.

Page 68: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 65

Figura 5.27: Editar anúncio selecionado (emprego)

5.5.2.5 Os meus anúncios

Nesta página os utilizadores podem ver todos os anúncios que já foram inseridospor si. Tal como podemos ver na �gura 5.28 os utilizadores podem ainda ver qual oestado do seu anúncio, pendente ou con�rmado.

Page 69: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 66

Figura 5.28: Os meus anúncios

Page 70: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 67

Caso o utilizador clique no botão "Detalhes", este poderá ainda ver como apareceo seu anúncio aos restantes utilizadores, ou seja, qual a ordem dos vários detalhes.Na �gura 5.29 podemos ver um exemplo com os vários detalhes de um anúncio.

Figura 5.29: Detalhes de um anúncio

5.5.2.6 Editar dados pessoais

Nesta página os utilizadores podem editar os seus dados pessoais, tal como podemosver na �gura 5.30. Uma página semelhante a esta está também disponível para osmoderadores e para os administradores.

Page 71: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 68

Figura 5.30: Editar dados pessoais

5.5.2.7 Editar password

Nesta página os utilizadores podem editar a sua password, tal como podemos ver na�gura 5.31. Os moderadores e os administradores têm também esta possibilidade.

Page 72: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 69

Figura 5.31: Editar password

5.5.2.8 Contactar

Nesta página os utilizadores podem contactar a administração, preenchendo o formu-lário da �gura 5.32. A mensagem enviada �ca guardada na tabela Mensagens, como estado a False e deverá ser respondida pelos moderadores o mais rápido possível.

Figura 5.32: Formulário para contactar a administração

Page 73: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 70

5.6 BackO�ce

Neste capítulo vão ser mostradas as páginas que podem ser visíveis para os admi-nistradores e para os moderadores, ou seja toda a parte de gestão do site.

5.6.1 Moderadores

Vamos agora ver algumas das principais funcionalidades dos moderadores, sendo es-tas: validar anúncios, retirar/colocar anúncios em destaque e responder a mensagensdos utilizadores.

5.6.1.1 Mapa do site

• Home (Moderador/DefaultModerador.aspx)

� Anúncio (Moderador/Con�rmarAnunciosSelecionar.aspx)

� Destaque (Moderador/DestaquesApagar.aspx)

� Mensagem (Moderador/Mensagens.aspx)

• Anúncio (Moderador/Con�rmarAnunciosSelecionar.aspx)

� Anúncios pendentes

∗ Validar anúncio

• Destaque (Moderador/DestaquesApagar.aspx)

� Anúncio a tirar de destaque (Moderador/DestaquesApagar.aspx)

∗ Destacar um anúncio (Moderador/DestaquesInserir.aspx)

• Mensagem (Moderador/Mensagens.aspx)

� Selecionar a mensagem a responder (Moderador/Mensagens.aspx)

∗ Responder à mensagem (Moderador/ResponderMensagens.aspx)

• Dados pessoais (Moderador/Dados.aspx)

� Editar dados (Moderador/EditarDados.aspx)

� Editar password (Moderador/AlterarPassword.aspx)

5.6.1.2 Home page

A home page dos moderadores é a página para onde é reencaminhado um moderadorque acabou de efetuar o seu login.

Na �gura 5.33 podemos ver essa página.

Page 74: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 71

Figura 5.33: Home page (moderadores)

Nesta página os moderadores podem ver se têm algum anúncio, destaque ou men-sagem pendente, para que desta forma vejam logo o que têm de fazer. Tal como nosutilizadores podem ainda alterar os seus dados.

5.6.1.3 Validar anúncios

Nesta página os moderadores validam todos os anúncios inseridos. Em primeirolugar é necessário selecionar um anúncio a validar, tal como podemos ver na �gura5.34.

Figura 5.34: Anúncios pendentes

Em seguida o moderador deverá veri�car se os dados inseridos pelo utilizador nãocontêm palavras que não podem ser mostradas nos anúncios (�gura 5.35). Por �mdeverá selecionar o estado do anúncio, que pode ser Con�rmado ou Cancelado.

Page 75: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 72

Figura 5.35: Validar anúncio selecionado

Page 76: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 73

5.6.1.4 Retirar/Colocar anúncios em destaque

Nesta página são colocados e retirados os anúncios de destaque. De cada vez apenaspodem e devem estar quatro anúncios em destaque, ou seja, quando queremos colocarum anúncio em destaque em primeiro lugar é necessário �nalizar, ou seja, retirarde destaque, um dos anúncios. Na �gura 5.36 podemos ver que apenas estão trêsanúncios em destaque, pelo que devemos colocar mais um anúncio em destaque.

Figura 5.36: Ver anúncios em destaque e destacar outro

5.6.1.5 Mensagens

Nesta página os moderadores respondem ás varias mensagens enviadas pelos utili-zadores. Em primeiro lugar o moderador seleciona a mensagem a responder, quedeverá ser a mais antiga, tal como podemos ver na �gura 5.37.

Page 77: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 74

Figura 5.37: Selecionar mensagem a responder

Por �m, o moderador deverá responder à mensagem selecionada, tal como podemosver na �gura 5.38. A resposta será enviada para o email inserido pelo utilizadorno momento em que enviou a mensagem e o estado da mensagem, na tabela, serátambém alterado para True.

Page 78: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 75

Figura 5.38: Responder à mensagem selecionada

5.6.2 Administradores

Quanto aos administradores, estes têm outras funcionalidades, tais como: inserirfuncionários, visualizar os anúncio pelos vários estados (pendentes, con�rmados ecancelados) e ver ainda qual o moderador que con�rmou ou cancelou cada anúncio.

5.6.2.1 Mapa do site

• Home (Administrador/DefaultAdministrador.aspx)

• Anúncio (Administrador/SelecionarAnunciosEstado.aspx)

� Anúncios pendentes (Administrador/AnunciosPendentes.aspx)

� Anúncios con�rmados (Administrador/AnunciosCon�rmados.aspx)

� Anúncios cancelados (Administrador/AnunciosCancelados.aspx)

• Categoria (Administrador/InserirSubCategorias.aspx)

� Inserir subcategorias (Administrador/InserirSubCategorias.aspx)

• Funcionário (Administrador/RegistoFuncionário.aspx)

• Dados pessoais (Administrador/Dados.aspx)

Page 79: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 76

� Editar dados (Administrador/EditarDados.aspx)

� Editar password (Administrador/AlterarPassword.aspx)

5.6.2.2 Home page

A home page dos administradores é a página para onde é reencaminhado um admi-nistrador que acabou de efetuar o seu login.

Na �gura 5.39 podemos ver essa página.

Figura 5.39: Home page (administradores)

Nesta página os administradores podem aceder a todas as funcionalidades que têm,sendo estas: inserir novos funcionários, inserir subcategorias para uma categoria ever um histórico de anúncios por estado (pendentes, con�rmados e cancelados).

5.6.2.3 Inserir funcionários

Nesta página, os administradores podem inserir novos funcionários, sendo que paratal é necessário preencher o formulário da �gura 5.40.

Page 80: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 77

Figura 5.40: Formulário para inserir funcionários

Dependendo do cargo selecionado, os administradores podem inserir novos mode-radores ou administradores, tal como podemos ver na listagem 14. Aqui vai serinserido na tabela o role pretendido para o funcionário.

Listagem 14 Inserir o cargo para um funcionário.if (cargo.Equals("Administrador")){

Roles.AddUserToRole(username, "Administradores");}else{

Roles.AddUserToRole(username, "Moderadores");}

Depois de efetuado o registo, é enviado um email ao funcionário que acabou de serinserido, com os seus dados pessoais. O email é semelhante ao que é enviado quandoé efetuado o registo de um utilizador, com apenas a diferença de que o funcionáriodeverá alterar o mais rápido possível a sua password, já que a password por defeitoé sempre a mesma.

5.6.2.4 Inserir subcategoria

Nesta página, os administradores podem inserir novas subcategorias para a categoriaselecionada, tal como podemos ver na �gura 5.41.

Page 81: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 78

Figura 5.41: Inserir subcategorias

5.6.2.5 Anúncios con�rmados

Nesta página, os administradores podem ver os anúncios con�rmados e saber qualo moderador que efetuou essa ação. Na �gura 5.42 podemos ver um exemplo de umanúncio con�rmado e o moderador que o con�rmou.

Figura 5.42: Anúncio con�rmado

5.7 Colocação e divulgação online

Para colocar a aplicação web online, é necessário efetuar uma série de passos. Inici-almente foi instalado o IIS e o SQL SERVER 2008 no servidor que irá alojar o sitee de seguida foi necessário efetuar o registo de um domínio. Por �m, foram criadasas duas base de dados no servidor e foram transferidos todos os �cheiros relativos àaplicação web (páginas, imagens, css) para o servidor de alojamento.

5.7.1 IIS (Internet Information Services)

O IIS é um servidor web criado pela Microsoft, para ser usado com os seus sistemasoperativos, para os servidores. A primeira versão foi introduzida com o Windows

Page 82: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 5. IMPLEMENTAÇÃO DA SOLUÇÃO 79

NT (família dos sistemas operativos do Windows) Server versão 4, e passou porvárias atualizações. A versão mais recente é o IIS 7.5, que apenas está disponívelno Windows Server 2008 R2 e Windows 7.

Uma das características do IIS é a geração de páginas HTML dinâmicas, o que diferedos outros servidores web. É usada tecnologia proprietária, o ASP (Active ServerPages), apesar de também poder usar outras tecnologias.[21]

5.7.2 Registo de domínios

Domínio é o nome que serve para localizar e identi�car alguns computadores naInternet e foi feito com o objetivo de guardar, de forma mais fácil, os endereços dosvários computadores na Internet. Sem ele, seria necessário memorizar uma sequênciagrande de números.

Segundo as regras atuais, para que o registo de um domínio seja aceite, são neces-sários, pelo menos, dois servidores DNS (Servidor de nomes) conectados à Internete con�gurados para o domínio que está sendo solicitado.[19]

O registo de domínios em Portugal é feito pela FCCN, Fundação para a ComputaçãoCientí�ca Nacional. A FCCN é responsável pela gestão, registo e manutenção dedomínios sobre o .PT, domínio de topo correspondente a Portugal.[8]

5.7.3 Servidor utilizado

A empresa disponibilizou um servidor para poder alojar o web site. Nesse servidorfoi instalado o IIS (Internet Informations Service) e o SQL SERVER 2008, para queo web site pudesse ser alojado sem problemas.

5.7.4 Divulgação online

Para efetuar a divulgação do web site pelo maior número de pessoas, podiam serusados vários mecanismos, como por exemplo: utilização das redes sociais paraefetuar essa divulgação (já que estas são usadas cada vez mais e não haveria custosadicionais) e a utilização de alguns mecanismos de publicidade, ou seja, divulgaçãodo site noutros web sites.

Page 83: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

Capítulo 6

Conclusões e trabalho futuro

6.1 Conclusões

Ao longo da elaboração do projeto, em contexto de estágio, tive a oportunidade detrabalhar com algumas tecnologias com as quais já tinha trabalhado ao longo da li-cenciatura e desta forma aprofundar algumas das potencialidades destas tecnologias,que não são abordadas nas restantes unidades curriculares.

Quanto às várias funcionalidades previstas no início do projeto, basicamente, foramtodas realizadas, à exceção de alguns pormenores (como por exemplo, a inserção demais campos especí�cos para as várias subcategorias) que acabam por não ter granderelevância para o projeto. A implementação destes pormenores seria semelhante acoisas já realizadas.

Foram surgindo vários inconvenientes, ao longo da realização do projeto, como porexemplo: a inserção de imagens para um determinado anúncio, a utilização de umanova tecnologia, linq to entities, para aceder à base de dados usando o modelo. Estefoi um dos principais desa�os que me foi proposto pela empresa, sendo que no inícionão foi fácil, mas depois de começar a perceber encontrei várias vantagens, taiscomo: o mesmo query pode ser usado várias vezes e como os queries não são feitosautomaticamente, apenas serão usadas as tabelas necessárias. Com a ajuda destemecanismo, foi me permitido, de forma mais simples, elaborar a aplicação ASP.NETem três camadas.

Para concluir, pode dizer-se que este trabalho acabou por enriquecer a aprendizagemna licenciatura e obter uma primeira impressão do que é estar a fazer um projeto parauma empresa, apesar de pequena ainda. O projeto acabou por ser muito importantena aprendizagem �nal, na licenciatura.

6.2 Trabalho futuro

Em geral, pode dizer-se que todas as principais funcionalidades pensadas inicial-mente foram implementadas, mas ao longo do projeto foram surgindo novas ideias,sobre novas funcionalidades, que poderiam ser implementadas no futuro, tais como:

80

Page 84: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

CAPÍTULO 6. CONCLUSÕES E TRABALHO FUTURO 81

• Implementar um método de pagamento para os anúncios, onde pode haveroutras vantagens;

• Mostrar anúncios que estão em destaque noutros sites de anúncios;

• Implementar a troca de mensagens entre os utilizadores;

• Colocar mais campos especí�cos para as subcategorias, usando uma DDL ouuma tabela única, com ajuda de uma tabela sombra;

• Colocar e retirar os anúncios do destaque de forma automática, usando umalinha temporal;

• Enviar um email ao utilizador quando o anúncio é validado e se for caso disso,quando é colocado em destaque também;

• Possibilitar a inserção de mais imagens para cada anúncio;

• Mostrar aos utilizadores as condições e termos da plataforma de anúncios;

• Possibilitar a recuperação da password aos utilizadores.

Como podemos ver podem ainda ser implementadas mais algumas funcionalidadesna aplicação, para a completar.

Page 85: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

Bibliogra�a

[1] The Web Information Company Alexa. Coisas.com site info. http://www.

alexa.com/siteinfo/coisas.com#, Novembro 2012.

[2] The Web Information Company Alexa. Custojusto.pt site info. http://www.

alexa.com/siteinfo/custojusto.pt#, Novembro 2012.

[3] The Web Information Company Alexa. Olx.pt site info. http://www.alexa.

com/siteinfo/olx.pt#, Novembro 2012.

[4] Miguel Angel Alvarez. O que é javascript? http://www.criarweb.com/

artigos/184.php, Setembro 2004.

[5] Redaçao O�cina da Net. C# (csharp) o que é esta linguagem?http://www.oficinadanet.com.br/artigo/526/c_sharp_csharp_o_que_e_

esta_linguagem, Setembro 2007.

[6] Diego Eis. O que é html? http://tableless.com.br/o-que-html-basico/,Janeiro 2011.

[7] Erysson. O que é asp.net? http://www.erysson.com.br/post/2011/01/25/

O-que-e-ASPNET.aspx, Janeiro 2011.

[8] FCCN. Dns.pt. http://www.fccn.pt/pt/servicos/dominios-internet-pt/dns-pt/, Outubro 2012.

[9] Jonatas Freitas. Como enviar e-mail com asp.net e c#. http://thecodebr.

blogspot.pt/2010/05/como-enviar-e-mail-com-aspnet-e-c.html, Maio2010.

[10] Infonova. A evolução da internet. http://www.infonova.com.br/artigos/

a-evolucao-da-internet.html, Fevereiro 2011.

[11] Jonny Ken. A importância do logout. http://www.infopod.com.br/artigos/a-importancia-do-logout/, Junho 2007.

[12] José Carlos Macoratti. Apresentando linq to entities. http://www.macoratti.net/08/09/lnq_ent1.htm, Outubro 2012.

[13] José Carlos Macoratti. C# - criando uma aplicacao asp .net em 3 camadas.http://www.macoratti.net/11/05/c_aspn3c.htm, Outubro 2012.

82

Page 86: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

BIBLIOGRAFIA 83

[14] Microsot. Microsoft sql server. http://technet.microsoft.com/en-us/

library/bb545450.aspx, Outubro 2012.

[15] Coisas no facebook. Coisas.com. https://www.facebook.com/Coisas, No-vembro 2012.

[16] Custo Justo no facebook. Custojusto. http://www.facebook.com/

CustoJusto, Novembro 2012.

[17] OLX no facebook. Olx portugal. https://www.facebook.com/

olxclassificados, Novembro 2012.

[18] Ana Paula Pereira. O que é css? http://www.tecmundo.com.br/

programacao/2705-o-que-e-css-.htm, Setembro 2009.

[19] Wikipédia. Domínio. http://pt.wikipedia.org/wiki/Dom%C3%ADnio, Outu-bro 2012.

[20] Wikipédia. História da internet. http://pt.wikipedia.org/wiki/Hist%C3%

B3ria_da_Internet, Outubro 2012.

[21] Wikipédia. Internet information services. http://pt.wikipedia.org/wiki/

Internet_Information_Services, Junho 2012.

[22] Wikipédia. Microsoft visual studio. http://pt.wikipedia.org/wiki/

Microsoft_Visual_Studio, Outubro 2012.

[23] Wikipédia. Sql. http://pt.wikipedia.org/wiki/SQL, Outubro 2012.

[24] Wikipédia. Sql server management studio. http://en.wikipedia.org/wiki/SQL_Server_Management_Studio, Outubro 2012.

[25] Wikipédia. Web 2.0. http://pt.wikipedia.org/wiki/Web_2.0, Outubro2012.

Page 87: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

Anexos

84

Page 88: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

Anexo A

Listagem de programas

A.1 Enviar email automaticamente

string remetenteEmail = "[email protected]"; //O e-mail do remetente//Cria objeto string builderStringBuilder sbBody = new StringBuilder();

//Adiciona estrutura HTML do E-MailsbBody.Append("<html xmlns='http://www.w3.org/1999/xhtml'>");sbBody.Append("<head><title>Untitled Document</title>");sbBody.Append("<style type='text/css'>body {margin-left: 0px;margin-top: 0px;margin-right: 0px;margin-bottom: 0px;background-color: #E1E0F2;}");sbBody.Append("body,td,th{font-family: Verdana, Geneva, sans-serif;font-size: 12px;}</style></head><body>");

sbBody.Append("<strong><h3>.::REGISTO EFETUADO COM SUCESSO</h3></strong><br />");sbBody.Append("<b>Exmo(a) Senhor(a) <i>" + nome + "</i>,</b><br />");sbBody.Append("<b>Muito obrigado por ter efetuado o seu registona nossa plataforma de anúncios online, Anuncie aqui já!</b><br /><br />");sbBody.Append("<b>Por favor confirme os seus dados, e finalize o seu registonum outro email que irá receber.</b><br /><br />");sbBody.Append("<b>Nome completo</b><br />");//Adiciona textosbBody.Append(nome);sbBody.Append("<br /><br />");sbBody.Append("<b>Morada</b><br />");//Adiciona textosbBody.Append(morada);sbBody.Append("<br /><br />");sbBody.Append("<b>Telefone</b><br />");//Adiciona textosbBody.Append(telefone);sbBody.Append("<br /><br />");sbBody.Append("<b>Email</b><br />");//Adiciona textosbBody.Append(email);sbBody.Append("<br /><br />");sbBody.Append("<b>Username</b><br />");//Adiciona textosbBody.Append(username);sbBody.Append("<br /><br />");sbBody.Append("<b>Password</b><br />");//Adiciona textosbBody.Append("******");sbBody.Append("<br /><br /><br />");

85

Page 89: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

ANEXO A. LISTAGEM DE PROGRAMAS 86

sbBody.Append("<b><i>Atenciosamente</b></i>,<br />");sbBody.Append("<i>Anuncie aqui já</i><br />");sbBody.Append("<br /><br />");sbBody.Append("<br /></body></html>");

//Cria novo objeto MailMessageMailMessage mailMessage = new MailMessage();

//Define o remetentemailMessage.From = new MailAddress(remetenteEmail, "Anuncie aqui já!",System.Text.Encoding.UTF8);

//Define primeiro destinatáriomailMessage.To.Add(email);

//Define segundo destinatário, note que podemos adicionar infinitos destinatários//mailMessage.To.Add("E-MAIL DO DESTINATÁRIO");

//Define assunto do e-mailmailMessage.Subject = "Bem vindo à nossa equipa, anuncie aqui já!";

//Seta propriedade para enviar email em html como true(verdadeiro)mailMessage.IsBodyHtml = true;

//Seta o corpo do e-mail com a estrutura HTML gravada na stringbuilder sbBodymailMessage.Body = sbBody.ToString();

mailMessage.BodyEncoding = System.Text.Encoding.UTF8;

mailMessage.Priority = MailPriority.High; //Prioridade do E-Mail//Cria novo SmtpCliente e seta o endereçoSmtpClient smtpClient = new SmtpClient();

smtpClient.Port = 587; // Esta porta é a utilizada pelo Gmail para envio

smtpClient.Host = "smtp.gmail.com"; //Definindo o provedor que irá disparar o e-mail

smtpClient.EnableSsl = true; //Gmail trabalha com Server Secured Layer

//Credencial para envio por SMTP Seguro (APENAS QUANDO O SERVIDOR EXIGE AUTENTICAÃÃO)smtpClient.Credentials = new NetworkCredential(remetenteEmail, "anuncieaquija");

// Envia a mensagemsmtpClient.Send(mailMessage);

A.2 Inserir imagens na pasta

if (FileUploadImagens.PostedFile.ContentLength < 4000000 &&FileUploadImagens0.PostedFile.ContentLength < 4000000) //tamanho máximo para as fotos é de 4 MB{

int p = FileUploadImagens.FileName.LastIndexOf(".");string nome = FileUploadImagens.FileName.Substring(0, p);string extensao = FileUploadImagens.FileName.Substring(p);

int p1 = FileUploadImagens0.FileName.LastIndexOf(".");string nome1 = FileUploadImagens0.FileName.Substring(0, p1);string extensao1 = FileUploadImagens0.FileName.Substring(p1);

if ((extensao.Equals(".jpg") || extensao.Equals(".png")) &&(extensao1.Equals(".jpg") || extensao1.Equals(".png")))

{string tempo = CalculateMD5Hash(Convert.ToString(DateTime.Now) +

Convert.ToString(DateTime.Now.Millisecond));

FileUploadImagens.SaveAs(caminhoImagensAnuncios + "\\" + nome + tempo + extensao);

Page 90: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

ANEXO A. LISTAGEM DE PROGRAMAS 87

FileUploadImagens0.SaveAs(caminhoImagensAnuncios + "\\" + nome1 + tempo + extensao1);

string cam = ("../ImagensAnuncios/" + nome + tempo + extensao);

string cam1 = ("../ImagensAnuncios/" + nome1 + tempo + extensao1);

aux = true;}else{

LabelImagem.Text = "Tipo de ficheiro inválido";}

}

Page 91: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

Anexo B

Carregamento �cheiros externos

B.1 Ficheiro dos distritos

Na �gura B.1 podemos ver o �cheiro que foi usado para o carregamento da tabela Distritos, da base de dados.

Figura B.1: Distritos.

B.2 Ficheiro dos concelhos

Na �gura B.2 podemos ver o �cheiro que foi usado para o carregamento da tabela Concelhos, da base de dados.

88

Page 92: Instituto Politécnico da Guardabdigital.ipg.pt/dspace/bitstream/10314/1790/1... · C# É uma linguagem de programação orientada a objetos, desenvolvida pela Microsoft como parte

ANEXO B. CARREGAMENTO FICHEIROS EXTERNOS 89

Figura B.2: Concelhos.

B.3 Ficheiro das freguesias

Na �gura B.3 podemos ver o �cheiro que foi usado para o carregamento da tabela Freguesias, da base de dados.

Figura B.3: Freguesias.