Proposta de Arquitetura – Parte 2 – Camadas

No artigo anterior, apresentei o diagrama da estrutura de camadas que serão utilizadas no projeto do sistema de Cadastro. Agora passaremos à criação desta estrutura no Visual Studio 2010, o que nos ajudará a compreender na prática como o sistema será construído.

Inicialmente, no Visual Studio, vamos criar um novo Projeto, do tipo Class Library, e como será o primeiro projeto da estrutura, será a oportunidade de nomearmos a Solution a que este projeto pertencerá.

 

Observe os campos Name e Solution Name. No campo Name, estamos preenchendo o nome do projeto, que neste caso é do tipo Class Library, e em Solution Name, estamos informando o nome da solução, ou podemos dizer, o nome do software que estamos construíndo.

Se o projeto for versionado em um repositório, ou seja, durante todo o trabalho de desenvolvimento, haverá um controle de versões, e este controle for realizado por uma ferramenta de versionamento, então o Visual Studio normalmente apresenta esta opção para habilitar. Na tela vemos marcado o checkbox Add to Subversion. Subversion é a ferramenta que utilizo para versionamento de código, entretanto não apresentarei os detalhes sobre esta ferramenta aqui. Entretanto, se essa opção não aparecer no seu Visual Studio, não se preocupe, pois isto não atrapalhará no decorrer deste projeto.

Para facilitar a nossa apresentação, deixaremos para o final a criação das camadas visuais do sistema, e começaremos pelas camadas que realizam o processamento de dados e comunicação com o banco de dados. Todas as camadas serão todas do tipo Class Library, que nada mais é do que um repositório de classes e métodos que não possuem uma apresentação visual para o usuário, mas são importantíssimas para organizarmos o código de acordo com suas responsabilidades, facilitando a manutenção do código, além de serem responsáveis pelo tratamento de informações, como explicado anteriormente.

Depois de criada a camada CLN, o nosso projeto aparecerá na Solution Explorer desta maneira:

 

 

Observe que no topo da lista está a nossa Solution (HLMI.Cadastro) e abaixo dela está o primeiro projeto Class Library (HLMI.Cadastro.CLN).

Depois disso, basta clicar com o botão direito no nome da Solution para criar os outros projetos (CAD, CES e CUB). Todos devem ser Class Library, conforme indicado na imagem a seguir:

 

 

E assim observaremos na Solution a listagem dos projetos recem criados:

 

 

O próximo passo é indicar em alguns projetos quais são as suas referências. Começaremos pela camada CLN, que possuirá como referência as camadas CAD, CES e CUB.

 

 

 

Faça o mesmo na camada CAD, que receberá apenas como referência os projetos CES e CUB. Não deve ser adicionado o projeto CLN porque o Visual Studio acusará erro de referência cíclica.

Bem, agora vamos adicionar as camadas de apresentação e interface (CIA) ao projeto. Na criação de um software para ambientes Microsoft, normalmente são construidos três tipos de aplicação:

 

  1. Windows Forms
  2. Windows Presentation Foundation
  3. Web Application

 

Os dois primeiros tipos são aplicações que executam em desktop (WPF tem outras variações, mas não é o caso agora), e a Web Application fica hospedada em um servidor web, e é acessível através de um navegador.

Para cada uma das camadas de apresentação, indicaremos conforme mencionado no diagrama do primeiro artigo: CIA.Win, CIA.WPF e CIA.Web:

O projeto CIA.Win é do tipo Windows Forms Application:

 

 

O projeto CIA.WPF é do tipo WPF Application (também pode ser WPF.Ribbon Application):

 

 

O projeto CIA.Web é to tipo ASP.NET Web Application:

 

 

Como última tarefa, adicionaremos nos projetos CIA.Web, CIA.WPF e CIA.Win a referência aos projetos CES e CLN.

 

 

Com isto, concluímos a criação das camadas da aplicação no Visual Studio. Vejamos como ficou a listagem dos projetos na Solution Explorer:

 

 

No próximo artigo, criaremos o banco de dados no SQL Server e como criar as entidades usando Entity Framework na camada CES.