ASP .NET - Sistema para Imobiliária com Ajax - I


Neste artigo eu vou mostrar como criar um pequeno sistema web para imobiliária usando os recursos do ASP .NET e do AJAX.

Vamos supor que você possui uma pequena imobiliária e pretende oferecer o serviço de venda, compra e aluguel de imóveis na internet. Como atingir o seu objetivo sem gastar um centavo e usando recursos gratuitos ?

Pois bem , este artigo vai mostrar que você pode conseguir o seu objetivo usando a ferramenta para desenvolvimento Visual Web Developer Express Edition(VWD) sem precisar ser um guru no assunto. Vou dar um enfoque básico para iniciantes e desta forma não vou me ater à criação de documentos de requisitos, camada de acesso a dados, camada de negócio , etc. A idéia é por um sistema para funcionar o mais rápido possível , depois veremos como podemos aperfeiçoar o tal sistema. Primeiro o arroz com feijão depois o camarão...

Eis as ferramentas você deve ter instaladas no seu computador :

- Visual Web Developer 2008 Express Edition;
- Microsoft Access ou SQL Server 2005 Express;

Ao final dos artigos teremos um sistema para consulta de imóveis na web onde você poderá expor os imóveis de sua carteira imobiliária aos seus clientes.

Para iniciar vou mostrar a página inicial do site da imobiliária que eu já criei no VWD. Eu usei um template free para o leiaute do site e algumas imagens ilustrativas. O link para pegar os templates é http://www.freecsstemplates.org/  se você não aprovar o template que eu estou usando fique a vontade para escolher outro;

Na página principal o cliente pode realizar a busca por imóveis selecionando o Estado , Município , Bairro , tipo de negócio , tipo de imóvel e quantidade de quartos disponíveis.

O resultado da busca é exibida em um GridView onde temos a referência do imóvel, o código, o bairro o valor , a quantidade de garagens , a quantidade de quartos , a data de atualização e um ícone indicando se o imóvel possui fotos.

Naturalmente em qualquer projeto de software a primeira etapa a ser bem definida é o levantamento e definição de requisitos, mas como estamos tratando um sistema bem simples vamos criar as tabelas de dados que o sistema vai precisar para armazenar as informações. Para identificar as tabelas basta pensar um pouco no negócio que vamos implementar.

Com isso em mente identificamos que o sistema vai precisar guardar informações relativas a :

Podemos então começar criando as tabelas : Estados, Municipios, Bairros, Negocio, Categoria e Imoveis.

Obs: Você pode efetuar os ajustes que julgar necessário para adaptar o modelo a sua realidade.

Mas qual banco de dados vamos usar ?

Bem , a princípio poderíamos usar qualquer banco de dados relacional mas eu vou usar o Microsoft Access por questão de simplicidade e por que pretendo hospedar o sistema em meu servidor web e eu não tenho uma conta com suporte ao SQL Server. Ficamos então com o Access. ( O Firebrid ou MySQL seriam boas escolhas também).

Vamos criar um banco de dados chamado Imobiliaria.mdb e a seguir as tabelas abaixo:

Para saber mais como criar um banco de dados veja os artigos do site:

A seguir temos as tabelas criadas no Microsoft Access. (Você pode criar as tabelas também no utilitário Visdata do VB6):

Não esqueça de incluir o banco de dados na pasta App_Data. Clique sobre a pasta e selecione Add Existing Item e selecione o arquivo imobiliaria.mdb criado.

Preencha as tabelas com alguns dados apenas para poder usá-la na criação do nosso site protótipo e exibir alguns dados, mais a frente iremos criar a área de administração do site onde a manutenção destas tabelas poderá ser feita por você usando os recursos do sistema.

Abra o Visual Web Developer 2008 Express Edition e crie um novo web site com o nome que você achar mais adequado, para o exemplo deste artigo eu vou usar o nome MacImob.

Para facilitar o desenvolvimento e dar um padrão visual ao site da imobiliária vamos usar o recurso chamado Master Page que nada mais é do que criar um modelo de página que será usado por todas as páginas do site.

Para saber mais sobre o assunto Master Page veja os artigos:

Veja abaixo o modelo da master page que iremos usar no site da imobiliária:

O template que eu estou usando pode ser obtido no site http://www.freecsstemplates.org/. Se você não gostar do meu leiaute pode alterar e usar o seu próprio leiaute.

Criando a master Page

No menu Web Site selecione a opção Add New Item e a seguir selecione o template Master Page e informe o nome Imob.master clicando em Add;

Vamos incluir o template na master page deixando somente o que for do nosso interesse e em seguida vamos incluir cinco controles DropDownList a partir da ToolBox ; cada controle será preenchido por um datasource que é a respectiva tabela com os dados a serem exibidos, desta forma teremos:

Para saber mais sobre o assunto DropDownList veja os artigos:

Devemos definir um datasource para cada um dos DropDownList e configurá-lo da forma adequada. Fazemos isso começando pelo ddlEstados até o ddlQuartos;

A seguir vou mostrar como configurar o ddlEstados o procedimento é praticamente idêntico para os demais controles.

- Selecione o dropdownlist - ddlEstados ,selecione o checkbox "Enable AutoPostBack", o qual submete a página ao servidor assim que uma opção for selecionada;

- Em DropDownList Tasks clique em Choose Data Source;

- Em seguida selecione <Add new data source>

- Na janela do assistente selecione Access DataBase , pois estamos usando um banco padrão Access, e informe o nome dsEstados clicando em OK;

Na próxima janela informe a localização do banco de dados; Clique em Browse e selecione o arquivo Imobiliaria.mdb na pasta App_Data clicando em Next>;

A seguir selecione a tabela Estados e marque os campos codEstado e nomeEstado e clique em Next>;

Finalmente na janela Choose Data Source selecione o campo nomeEstado para ser exibido no controle e codEstado para ser usado como valor da seleção;

Pronto já temos o ddlEstados pronto para exibir os estados cadastrados na tabela Estados.

O procedimento adotado para o controle ddlMunicipios é o mesmo só tem uma pequena diferença: O controle ddlMunicipios deverá exibir somente os municípios do estado que foi selecionado anteriormente, para configurá-lo para agir desta forma fazemos o seguinte:

Selecione o segundo dropdownlist -  ddlMunicipios - e repita os mesmos passos efetuados para o primeiro:

- Em DropDownList Tasks e clique em Choose Data Source.../

- A seguir em Choose Data Source selecione <New data source...> e clique em OK;

- Na próxima janela do assistente marque a opção Access DataBase.  Informe o nome dsMunicipios e clique em OK;

- Na janela Configure Data Source clique no botão Browse e selecione o banco de dados Imobiliaria.mdb na pasta App_data;

- A seguir selecione a tabela Municipios e marque todos os campos; ( Agora preste atenção ...)

- Clique no botão WHERE para montar uma condição de exibição de dados para o controle;

Na janela add WHERE Clause selecione o campo para o qual deseja criar a condição , no nosso caso o campo codEstado;

Em seguida selecione de onde deverá sair o parâmetro para estipular a condição. No nosso caso o parâmetro virá do primeiro controle dropdownlist - ddl1;

Em seguida clique no botão Add e em OK;

Veja a consulta SQL criada contendo a cláusula Where indicando que será selecionado os campos da tabela Municipios onde o codEstado for igual ao valor selecionado no primeiro dropdownlist;

Na última janela do assistente selecione para exibir o nome do município e o campo codMunicipio para ser o valor do dropdownlist;

A  configuração dos demais controles repete o mesmo procedimento somente alterando o nome do DataSource a instrução SQL e os nomes dos campos que serão exibidos. Veja a seguir um resumo com as propriedades especificas para cada um dos dropdownlists:

ddlBairros data source => name = dsBairros

SQL = SELECT [codBairro], [codMunicipio], [Bairro] FROM [Bairros] WHERE ([codMunicipio] = ?)

ddlNegocio data source => name = dsNegocio

SQL = SELECT [codigo], [negocio] FROM [Negocio]

 

ddlCategorias data source => name = dsCategorias

SQL = SELECT [Codigo], [Categoria] FROM [Categorias]

ddlQuartos data source => name = dsQuartos

SQL = SELECT [Codigo], [Quantidade] FROM [Quartos]

Já temos os controles DropDownList configurados irei mostrar a seguir o código relacionado ao evento Click do botão OK e o código usado para efetuar a seleção padrão de valores nos controles quando da carga do formulário.

Você pode ver o site funcionando em : http://www.macoratti.net/imob/ (somente a opção padrão esta funcionando...)

Acompanhe a segunda parte do artigo em : ASP .NET - Sistema para Imobiliária com Ajax - II


José Carlos Macoratti