ASP .NET  - Criando um projeto em 3 Camadas - UI, BLL e DAL (revisão) - I


Este é um artigo que mostra uma forma básica mas efetiva de como criar uma aplicação com 3 camadas, a saber : Camada de Acesso a Dados - DAL, Camada de Negócios - BLL e camada de interface - UI em um projeto ASP .NET.

No exemplo do artigo eu vou utilizar o Visual Studio Express 2012 for Web e criar um projeto ASP .NET 4.5 Web Forms usando a linguagem VB .NET.

Recursos usados:

Como o assunto já foi exaustivamente abordado em meu site não vou me ater muito a certos detalhes para tornar o artigo mais simples e objetivo possível para aqueles que estão tendo o seu primeiro contato com um projeto ASP .NET em 3 camadas.

Para mais detalhes veja as referências no final do artigo.

Conceitos

Quando você trabalha com um projeto em camadas você tem que ter em mente uma coisa : as camadas são usadas para separar responsabilidades e tornar o código mais fácil de manter e ser reutilizado.

Nossa aplicação será composta de 3 camadas :

  1. Camada de Interface - responsável pela interação e apresentação de dados ao usuário
  2. Camada de Negócios - responsável em tratar as regras de negócio da aplicação
  3. Camada de Acesso aos dados - responsável em acessar e persistir os dados da aplicação

Dessa forma a camada de interface deverá conter as páginas para interagir com o usuário obtendo informações da camada de negócios que por sua vez faz o tratamento das regras de negócio da aplicação e obtém informações dos dados da camada de acesso a dados. A camada de interface não pode conhecer nada da camada de acesso a dados.

Assim, existe um nível de abstração entre as camadas. Isto torna possível alterar ou atualizar uma camada sem ter que interferir com a outra camada.

Portanto em  uma arquitetura em 3 camadas você separa as responsabilidades da seguinte forma:

  1. User Interface ou Interface do usuário - UI - (um formulário windows form, wpf, uma página web, uma aplicação mobile, etc...) - que realiza a interface com o usuário;
  2. Bussiness Logic Layer - Camada de negócios - BLL - responsável por armazenar a lógica da sua aplicação;
  3. Data Acess Layer - Camada de acesso a dados - DAL - responsável por realizar o acesso e a persistência aos dados fazendo a comunicação entre a BLL e UI;

Abaixo temos ume esquema simplificado desta arquitetura ao lado da imagem do bolo para comparação entre as camadas:


Além disso podemos usar uma camada que será responsável pela transferência de dados entre as camadas sendo assim visível e acessível por todas as demais camadas.

 

Podemos chamar essa 'camada' de DTO - Data Transfer Object - que geralmente é composta por classes que representam o domínio da aplicação.

Criando a Solução e definindo a arquitetura da aplicação

Abra o Visual Studio Express 2012 for Web e clique em New Project;

 

A seguir selecione o template : Other Project Types -> Blank Solution e informe o nome ASPNET_3Camadas e clique no botão OK;

 

Temos assim uma solução vazia na qual iremos incluir 3 projetos que representam cada camada.

1- Criando a camada de Interface - UI

No menu FILE clique em Add -> New Project;

Selecione a linguagem Visual Basic -> Web e o template ASP .NET Empty Web Application e informe o nome UI e clique em OK;

2- Criando a camada de Negócios - BLL

No menu FILE clique em Add -> New Project;

Selecione a linguagem Visual Basic e o template Class Library e informe o nome BLL e clique em OK;

3- Criando a camada de Acesso aos dados - DAL

No menu FILE clique em Add -> New Project;

Selecione a linguagem Visual Basic e o template Class Library e informe o nome DAL e clique em OK;

Ao final teremos uma solução e 3 projetos com a seguinte estrutura:

Em cada projeto iremos definir as funcionalidades das respectivas camadas.

Definindo o domínio da aplicação e a camada DTO

A nossa aplicação irá tratar do gerenciamento de informações sobre Clientes. Dessa forma vamos criar uma classe Cliente que representará um cliente do nosso domínio.

Para tornar as coisas simples a classe será definida com apenas algumas propriedades em um projeto chamado DTO que iremos incluir em nossa solução.

No menu FILE clique em Add -> New Project;

Selecione a linguagem Visual Basic e o template Class Library e informe o nome DTO e clique em OK;

A seguir renomeie a classe Class1.vb criada por padrão para Cliente.vb e defina o código abaixo nesta classe:

Public Class Cliente
    Public Property Id As Integer
    Public Property nome As String
    Public Property endereco As String
    Public Property telefone As String
    Public Property email As String
    Public Property observacao As String
End Class

Dessa forma nossa solução ficou agora com 4 projetos assim mostrados na janela Solution Explorer:

Definindo as dependências entre os projetos

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 UI.

Clique com o botão direito do mouse sobre o projeto UI e a seguir em Add Reference;

Na janela Add Reference clique em Projects e a seguir marque os projetos BLL e DTO.

Com isso estamos definindo que o projeto UI terá uma referência aos projetos BLL e DTO mas não ao projeto DAL.

Vamos agora selecionar o projeto 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 BLL e DTO.

Com isso estamos definindo que o projeto BLL terá uma referência aos projetos DAL e DTO.

Vamos agora selecionar o projeto DAL.

Clique com o botão direito do mouse sobre o projeto DAL e a seguir em Add Reference;

Na janela Add Reference clique em Projects e a seguir marque os projetos DTO.

Com isso estamos definindo que o projeto DAL terá uma referência ao projeto DTO.

Após realizadas essas tarefas estamos prontos para definir as funcionalidades de cada camada em cada projeto.

Na próxima parte do artigo iremos iniciar com a camada de acesso a dados: DAL

João 3:26 E foram ter com João e disseram-lhe: Rabi, aquele que estava contigo além do Jordão, do qual tens dado testemunho, eis que está batizando, e todos vão ter com ele.

João 3:27 Respondeu João: O homem não pode receber coisa alguma, se não lhe for dada do céu.

João 3:28 Vós mesmos me sois testemunhas de que eu disse: Não sou o Cristo, mas sou enviado adiante dele.

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

 

Referências:


José Carlos Macoratti