Neste artigo vou mostrar como criar e implementar uma arquitetura em 3 camadas em uma aplicação ASP .NET Web Forms usando o VS Community 2015. |
O que é uma camada ? Uma camada é uma porção reutilizável de código que realiza uma tarefa específica. No ambiente da plataforma .NET, uma camada é usualmente definida como um projeto que representa esta função específica. Esta camada específica possui a responsabilidade de interagir com outras camadas para realizar um objetivo específico. A camada de Acesso a Dados (DAL - Data Access Layer) Contém métodos que ajudam a camada de Negócio (Business Layer) a se conectar com os dados e realizar operações para retornar ou manipular (incluir, atualizar, deletar) dados. A camada de Negócios (BLL - Business Logic Layer) A camada de negócios contém a lógica de negócio, validações ou cálculos relacionados com os dados. Embora um web site possa se comunicar diretamente com a camada de acesso a dados, isso é feito através da camada de negócios. Esta camada é vital pois é nela que são feitas as validações antes de realizar as chamadas aos métodos da camada de acesso a dados. Dessa forma assegura-se que os dados foram informados corretamente. Essas validações são conhecidas como regras de negócio. |
A camada de Apresentação (Presentation Layer - UI)
A camada de apresentação contém a interface do usuário que pode ser constituída de formulários em aplicações Windows Forms ou de páginas da web em projetos Web Forms ou MVC. Essa camada é a mais importante pois é a única que o usuário visualiza e utiliza diretamente.
Assim, mesmo com uma camada de acesso a dados e camada de negócios bem construída, uma camada de apresentação que ofereça uma experiência pobre ao usuário vai impactar todo o projeto de forma negativa.
A figura abaixo resume o fluxo da arquitetura em 3 camadas :
Camada : Tiers ou
Layers ? Na literatura encontram-se com frequência os termos tiers e layers, em inglês, que geralmente são traduzidos como camadas. Olhando com atenção, embora a diferença seja bem sutil, compreende-se que tiers refere-se a uma separação física dos componentes (diferentes Assemblies, DLLs, arquivos), enquanto layers aponta para uma separação lógica dos componentes com classes distintas e diferentes espaços de nomes.
|
As vantagens da abordagem em Camadas
De forma bem simples o desenvolvimento em camadas procurar dividir a funcionalidade, componentes e o código para uma aplicação, seja para web ou para desktop, em camadas distintas apresentando as seguintes vantagens:
Cada camada esta em um componente isolado
Cada camada depende apenas da camada seguinte
Permite alterações em qualquer uma das camadas sem interferir nas outras camadas
Potencia a separação das responsabilidades
Permite a especialização da equipe de desenvolvimento de software
Facilita a manutenção do código
Da teoria para a prática
Após toda essa teoria vamos para o que interessa. Vamos iniciar uma abordagem prática mostrando como desenvolver uma aplicação ASP .NET usando a linguagem C# no modelo da arquitetura em 3 camadas.
Poderíamos usar qualquer tipo de projeto, não é isso o que importa, mas sim a abordagem que daremos na criação das funcionalidades.
Vamos criar uma aplicação que gerencia as informações de Clientes realizando as operações CRUD - Create, Read, Update e Delete usando ADO .NET básico.
Nessa abordagem vamos criar uma tabela no banco de dados SQL Server e depois usar os objetos da ADO .NET : SqlConnection, SqlCommand, SqlDataAdapter, SqlDataReader, DataTable, DataSet para gerenciar as informações.
Recursos usados:
Visual Studio Community 2015 (update 3)
Nota: Baixe e use a versão Community 2015 do VS ela é grátis e é equivalente a versão Professional.
Criando a solução no VS 2015 Community
Abra o Visual Studio Community 2015 e clique em New Project;
Selecione Other Project Types -> Visual Studio Solution e Blank Solution
Informe o nome Aspnet3Camadas e clique no botão OK. Com isso criamos a solução.
1- Criando o projeto da camada de apresentação - UI
Vamos agora incluir o projeto que representa a camada de apresentação.
No menu File clique em Add -> New Project;
Você verá a janela abaixo exibindo dois novos tipos de projetos web:
Selecione ASP . NET Web Application (.NET Framework) Visual C# e informe o nome Aplicacao3Camadas;
A seguir escolha o template Empty e marque a opção WebForms de forma a criar uma solução vazia.
2- Criando o projeto da camada de negócios - BLL
No menu File clique em Add -> New Project;
Selecione Visual C# e o template Class Library e informe o nome Aspnet3Camadas.BLL e clique em OK;
3- Criando o projeto da camada de acesso a dados - DAL
No menu File clique em Add -> New Project;
Selecione Visual C# e o template Class Library e informe o nome Aspnet3Camadas.DAL e clique em OK;
4- Criando o projeto da camada de transferência - DTO
Vamos agora criar uma camada que podemos chamar de DTO - Camada de Transferência - que permite trocar informações entre o nosso modelo de domínio com as demais camadas.
No menu File clique em Add -> New Project;
Selecione Visual C# e o template Class Library e informe o nome Aspnet3Camadas.DTO e clique em OK;
Após concluir essas tarefas teremos a seguinte estrutura para a nossa solução na janela Solution Explorer :
Os arquivos Class1.cs deverão ser excluídos ou renomeados quando formos implementar as funcionalidades em cada camada. |
Definindo as dependências entre os projetos WebUI, BLL, DAL e DTO
Vamos agora definir as dependências entre os projetos de forma a que cada projeto (camada) seja visível pela camada apropriada.
Vamos iniciar com o projeto Aspnet3Camadas.WebUI.
Clique com o botão direito do mouse sobre o projeto WebUI e a seguir em Add -> Reference;
Na janela Add Reference clique em Projects e a seguir marque os projetos Aspnet3Camadas.BLL e Aspnet3Camadas.DTO.
Com isso estamos definindo que o projeto WebUI terá uma referência aos projetos BLL e DTO mas não ao projeto DAL.
Vamos agora selecionar o projeto Aspnet3Camadas.BLL.
Clique com o botão direito do mouse sobre o projeto BLL e a seguir em Add -> Reference;
Na janela Add Reference clique em Projects e a seguir marque os projetos Aspnet3Camadas.DAL e Aspnet3Camadas.DTO.
Com isso estamos definindo que o projeto BLL terá uma referência aos projetos DAL e DTO.
Para concluir selecione o projeto Aspnet3Camadas.DAL.
Repetindo as etapas anteriores marque o projeto Aspnet3Camadas.DTO.
Com isso estamos definindo que o projeto DAL terá uma referência ao projeto DTO.
Perceba que temos uma hierarquia definida pelas referências entre os projetos.
A figura a seguir exibe essa hierarquia onde vemos que o projeto WebUI acessa a BLL que acessa a DAL e todos acessam a DTO. ( Assim a DAL nunca acessa a BLL ou a WebUI, nem a WebUI acessa a DAL)
Já temos tudo pronto para iniciar a implementação das funcionalidades da nossa aplicação e vamos fazer isso na segunda parte do artigo.
Aguarde.
Porque a palavra da cruz é loucura para os que perecem; mas para nós, que
somos salvos, é o poder de Deus.
Porque está escrito: Destruirei a sabedoria dos sábios, E aniquilarei a
inteligência dos inteligentes.
1 Coríntios 1:18,19
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Visual Studio - Dica de produtividade - Quick Launch - Macoratti.net
Visual Studio - Dica de produtividade - Nuget - Macoratti.net
.NET - Dicas de site com livros gratuitos para estudo - Macoratti.net
ASP - Navegação com Site Map , Menu , TreeView e ... - Macoratti.net