Devido a grande quantidade de dúvidas recebidas, decidi escrever um pequeno tutorial de como construir uma aplicação em camadas utilizando o NHibernate no Visual Studio. Vamos construir uma aplicação completa utilizando estes recursos e o conceito de camadas. Tentaremos fazer uso de alguns padrões de projeto para enriquecer nosso tutorial.
Por outro lado, quem preferir aplicar os conceitos relacionados a projeto de sistemas em camadas utilizando SQL nativo no Visual Studio pode acessar o tutorial específico: Visual Studio + SQL Nativo: Contruindo aplicações em camadas. Mas é importante que leia os posts deste artigo para entender a arquitetura.
Não vamos tratar de conceitos. Iremos apenas utilizar as ferramentas na aplicação dos mesmos. Na internet existe uma vasto conteúdo sobre os assuntos aqui relacionados. Também é importante que o leitor tenha conhecimento da utilização do Visual Studio já que não iremos explicar seu funcionamento detalhamente no desenvolvimento da nossa aplicação.
Então vamos lá.
Montagem de Ambiente
Inicialmente vamos definir as configurações e requisitos para nosso trabalho:
- Ambiente de desenvolvimento: Visual Studio 2008 SP1 profissional com suporte a C#.
- Banco de dados: Firebird 2.1.3.18185.
- Ferramenta para administração do banco de dados: FlameRobin v0.9.3.1870 .
- Framework de persistência: NHibernate v2.1.2 GA.
- RSCLass – Gerador de Classes. Baixe e instale esse programa. Ele irá gerar os arquivos que iremos utilizar em nossa aplicação. Além disso esta instalação vem com o kit de bibliotecas necessário para utilização do tutorial, inclusive a nossa (Regisoft Library – clique e baixa a documentação).
Com tudo instalado e funcioando corretamente já podemos iniciar os trabalhos.
O Problema
Vamos imaginar o seguinte problema: a secretária do diretor não quer mais ser encomodada pelo resto da empresa, que toda hora liga para ela perguntando dados e telefones de clientes e pessoas em outras filiais. Ela explicou a situação para o diretor e ele concordou. O diretor então chamou o gerente de TI e determinou que ele resolvesse o problema.
Especificação de Requisitos
Após análise e discursão, chegou-se a conclusão que deveria existir na empresa uma Agenda Telefônica na intranet, para que todos possam acessar, cadastrar, alterar, consultar e listar contatos. Mas, para ter acesso a agenda, cada usuário precisaria de uma senha. Uma regra importante é que somente o usuário que incluio o contato pode ter a permissão para excluí-lo. Porém, todos podem alterar, listar e consultar quaquer contato registrado. Se um contato for definido como confidêncial, somente o usuário que cadastrou teria o direito a visualizar, modificar, consultar ou excluir. Se um usuário for excluído, seus contatos passam a ser de domínio público, ou seja, todos ganham o direito de gerenciar os contatos do usuário excluído.
Vamos construir este sistema para WEB e em camadas.
A Modelagem
Fiz um pequeno diagrama do módelo conceitual do sistema.
Como pode ser visto o sistema terá 4 classes: Usuario, Contato, Cidade e UF. UF compõe Cidade que, por sua vez, compõe Contato. Usuário gerencia o contato.
Fiz também o diagrama de entidades relacionais.
Todos os arquivos necessários para execução do tutorial podem ser encontrados em http://tutorialagendatelefonica.googlecode.com. Baixe o script do banco que foi gerado para o Firebird. Utilize o FlameRobim para criar o banco de dados e rodar o script ou, então, utilize um banco de dados e ferramenta administrativa de sua preferência.
OK! O projeto foi definido e o banco está pronto. No próximo post utilizaremos o Visual Studio para definir a aplicação. Fique a vontade para comentar e registrar suas dúvidas até aqui.


0 Respostas para “Visual Studio + NHibernate: Construindo aplicações em camadas”