Introdução

Desenvolver aplicações pode ser considerado uma “obra social”. O desenvolvedor trabalha em seu computador e em alguns dias, faz surgir um produto que, direta ou indiretamente, poderá ser útil a uma ou várias pessoas. O interessante disso é que para desenvolver este novo produto ou programa, ele utilizará uma ferramenta que também é um programa de computador e foi desenvolvido por outra pessoa ou equipe, e está ajudando-o a criar novas coisas. O fato é que o círculo não para. Novos programas surgem e dão suporte ao desenvolvimento de outros.

O processo de desenvolvimento apresenta uma característica muito interessante: a reutilização. Durante este processo, problemas vão surgindo e, consequentemente, soluções são encontradas. No momento que se inicia o desenvolvimento de uma nova aplicação, o mesmo problema pode acontecer novamente; idêntico ao que aconteceu no desenvolvimento de uma aplicação anterior. Nada mais natural do que aplicar a mesma solução, uma vez que o problema é o mesmo. Dessa forma a reutilização de conhecimento vai acontecendo. O problema é que, com o passar do tempo, esse processo de reutilização fica sem novidades, ou seja, o processo vai ficando desinteressante e muitas vezes se resume a um ‘copiar e colar’. Ninguém quer perder tempo com as coisas repetitivas. O que nos motiva são as novidades, e são elas que aumenta o aprendizado. Um problema que já foi solucionado não precisa mais se gastar tempo com ele, a não ser pelas pessoas que estão iniciando a caminhada. Mesmo essas pessoas irão aprender com a solução sem desprender muito esforço em tentar descobrir o que já foi descoberto.

Pensando nisso decidimos apresentar uma solução fácil e simples para aqueles que desejam aprender ou investir no desenvolvimento de aplicações 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. Esses padrões de projetos são soluções padronizadas para problemas recorrentes, ou seja, é comum certos problemas acontecerem repetidamente no desenvolvimento de aplicações e a solução para estes problemas recebeu o nome de padrões de projetos com direito a documentação, livros, etc.

Não vamos tratar de conceitos. Iremos apenas utilizar as ferramentas na aplicação dos mesmos. Na internet existe um vasto conteúdo sobre os assuntos aqui relacionados. Também é importante que o leitor tenha conhecimento da utilização do Visual Studio no desenvolvimento de aplicações, uma vez que não iremos explicar seu funcionamento detalhadamente.

Então vamos lá.

Montagem de Ambiente

Inicialmente vamos definir as configurações e requisitos para nosso trabalho:

  1. Ambiente de desenvolvimento sugerido: Visual Studio 2015 Profissional. Se desejar, poderá utilizar versões anteriores do Visual Studio. Os procedimentos aqui apresentados são praticamente equivalentes em qualquer versão.
  2. Banco de dados: Firebird 2.5.7.27050 (64 bits).
  3. Ferramenta para administração do banco de dados. Sugestão: FlameRobin v0.9.2.1850.
  4. RSCLass – Gerador de Classes. Esta aplicação irá nos apoiar na apresentação dos conceitos aqui discuidos. Ela irá gerar os arquivos que iremos utilizar em nossa explanação. Sugerimos que a mesma seja adquirida e dessa forma, além de contribuir com nosso trabalho, você estará investindo no seu próprio aprimoramento e evolução no processo de desenvolvimento de futuros sistemas. Antes de continuar essa leitura é importante conhecer a nossa aplicação clicando aqui.

Com tudo instalado e funcionando corretamente já podemos iniciar os trabalhos.

O Problema

Vamos imaginar o seguinte problema: a secretária do diretor não quer mais ser incomodada 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 discussã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 cadastrou o contato pode ter a permissão para excluí-lo. Porém, todos podem alterar, listar e consultar qualquer contato registrado. Se um contato for definido como confidencial, 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 modelo 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 gerência o contato.

Fiz também o diagrama de entidades relacionais.

Um ponto importante é que este modelo segue uma padronização definida em nosso post Padronização de Nomeclatura de Banco de Dados. Isso é importante e vamos descobrir o motivo posteriormente. Sugiro a leitura do post citado antes de continuar.

Ao adquirir o RSClass – Gerador de Classes, você receberá também todos os arquivos construídos nesse tutorial, passo a passo e separados por lição. O script do banco de dados foi gerado para Firebird segundo definição do ambiente e também está disponível no pacote. Utilize o FlameRobin (ou qualquer outra ferramenta de preferência) para criar o banco de dados e rodar o script. Para facilitar, um arquivo de banco de dados com a estrutura completa também está disponível.

O projeto foi, então, definido e o banco está pronto. No primeiro capítulo utilizaremos o Visual Studio para definir a aplicação.

Anúncios