Visão geral do desenvolvimento em Camadas: Trabalhando com Desenvolvimento em Camadas Utilizando C#

Veja neste artigo como funciona o desenvolvimento em camadas e aprenda na prática a criar o projeto.

Olá pessoal apaixonado por .NET, neste artigo faremos uma demonstração como criar uma aplicação utilizando o conceito de desenvolvimento em camadas.

Desde já gostaria de esclarecer que esse é um simples exemplo com o passo a passo da criação e implementação de funcionalidades em sua aplicação utilizando o desenvolvimento em camadas.

Para nosso exemplo utilizaremos o Visual Studio 2010, onde criaremos uma aplicação web utilizando como linguagem o C#.

Será um exemplo bem simples, onde o principal objetivo é demostrar desde a criação de vários projetos (camadas) e uma mesma Solution (aplicação) até o relacionamento e comunicação entre as camadas. Para nosso exemplo utilizaremos a metodologia de desenvolvimento em 3 camadas onde temos:

Segue abaixo uma imagem para ilustração do desenvolvimento em camadas:

Veja abaixo uma breve descrição sobre cada uma das camadas:

Agora que conhecemos um pouco mais sobre o desenvolvimento em camada, vamos começar a desenvolver nosso exemplo. Para isso abra o seu Visual Studio...

Clique no menu File/New/Project. Agora vamos selecionar o tipo de nosso projeto. Selecione ASP.NET Web Application...

No exemplo colocamos o nome como AplicacaoEmCamadas, mas você pode colocar o nome que achar mais confortável para seu entendimento.

Clique em OK. Observe que será criada a Solution de nossa aplicação contendo um projeto Web, que será nossa camada de apresentação (UI).

Agora iremos criar nossos outros dois projetos (camadas). Para isso, clique com o botão direito do mouse no Solution de sua aplicação na aba Solution Explorer, vá a Add/New Project;

Selecione o tipo de projeto Class Library e mude o nome do nosso novo projeto para BLL:

Clique em OK. Agora seu projeto BLL foi criado como mostra a imagem abaixo:

Vamos criar nosso último projeto (camada) para nossa aplicação, a DAO.

Siga os passos anteriores, clique com o botão direito do mouse no Solution de seu projeto localizado no Solution Explorer. Vá em Add/New Project.

Selecione o tipo de projeto Class Library e altere no nome de seu novo projeto para DAO:

Clique em OK. Nosso último projeto que faltava ser inserido na aplicação foi criado, como mostra a imagem abaixo:

Relacionamento entre camadas

Já que toda a estrutura de nosso projeto foi criada, temos agora que fazer o relacionamento entre as camadas, para que uma possa ser visível pela outra.

Observe o diagrama abaixo que demostra como será o relacionamento entre elas:

Veja que o diagrama exibe o relacionamento que uma camada possui com a outra. Repare que a nossa camada UI (AplicacaoEmCamada) possui uma relação de dependência com BLL, e BLL possui um relacionamento de dependência com DAO.

Tendo entendido como será o relacionamento entre nossas camadas, vamos fazer os nossos relacionamentos.

Vamos fazer o relacionamento entre a camada UI e a BLL. Para isso clique com o botão direito do mouse na sua camada de interface (UI ou AplicacaoEmCamada), depois clique em Add Reference:

Selecione o seu projeto (camada) BLL:

Após isso clique em OK. Uma nova referência a nossa camada BLL será criada na camada UI, como mostra a imagem abaixo:

Agora adicionaremos uma nova referência de nossa camada BLL com a camada DAO. Para isso siga os passos mostrados anteriormente, clique com o botão direito do mouse na camada BLL, depois clique em Add Reference...

Selecione o projeto DAO na janela que aparecerá, como mostra a imagem abaixo:

Pronto, todas as referências necessárias foram criadas. Agora já pode começar a codificar.

Funcionalidade de teste

Agora que todas as nossas referências foram criadas, já pode começar a codificar.

Como se trata somente de um exemplo de como funciona o desenvolvimento em camadas não utilizaremos nenhum banco de dados, somente criaremos uma lista contendo alguns dados na nossa camada DAO e a mesma será explorada e manipulada pela camada BLL, que por sua vez irá repassar os dados para a camada de interface que apresentará o resultado.

Criaremos uma lista contendo a descrição dos estados brasileiros na camada DAO:

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace DAO { public class Dao { public List<string> RetornaListaEstado() { List<string> listaEstados = new List<string>(); listaEstados.Add("Acre"); listaEstados.Add("Alagoas"); listaEstados.Add("Alagoas"); listaEstados.Add("Alagoas"); listaEstados.Add("Amapá"); listaEstados.Add("Amazonas"); listaEstados.Add("Bahia"); listaEstados.Add("Ceará"); listaEstados.Add("Distrito Federal"); listaEstados.Add("Distrito Federal"); listaEstados.Add("Distrito Federal"); listaEstados.Add("Espírito Santo"); listaEstados.Add("Goiás"); listaEstados.Add("Maranhão"); listaEstados.Add("Mato Grosso"); listaEstados.Add("Mato Grosso do Sul"); listaEstados.Add("Minas Gerais"); listaEstados.Add("Pará"); listaEstados.Add("Paraíba"); listaEstados.Add("Paraíba"); listaEstados.Add("Paraíba"); listaEstados.Add("Paraná"); listaEstados.Add("Pernambuco"); listaEstados.Add("Piauí"); listaEstados.Add("Rio de Janeiro"); listaEstados.Add("Rio Grande do Norte"); listaEstados.Add("Rio Grande do Sul"); listaEstados.Add("Rio Grande do Sul"); listaEstados.Add("Rio Grande do Sul"); listaEstados.Add("Rondônia"); listaEstados.Add("Roraima"); listaEstados.Add("Santa Catarina"); listaEstados.Add("São Paulo"); listaEstados.Add("São Paulo"); listaEstados.Add("São Paulo"); listaEstados.Add("Sergipe"); listaEstados.Add("Tocantins"); return listaEstados; } } }

Nossa lista foi criada. Observe que existem alguns itens repetidos, isso foi de propósito e iremos tratar isso em nossa camada BLL.

Agora vamos chamar o nosso método com a lista de estados que está na classe Dao da camada DAO. Essa chamada será feita dentro da camada BLL:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using DAO; namespace BLL { public class Bll { public List<string> RetornaEstadosTratados() { List<string> listaDosEstadosTratados = new List<string>(); Dao classeDao = new Dao(); listaDosEstadosTratados = classeDao.RetornaListaEstado().Distinct().ToList(); return listaDosEstadosTratados; } } }

Repare que colocamos uma diretiva Using para nossa camada DAO.

Agora vamos explicar o tratamento e chamada:

Agora vamos chamar na nossa UI (camada de interface) o nosso método que contém a lista tratada e que está na camada de negócios (BLL):

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using BLL; namespace AplicacaoEmCamadas { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Bll classeBll = new Bll(); ddlListaEstados.DataSource = classeBll.RetornaEstadosTratados(); ddlListaEstados.DataBind(); } } }

Repare que assim como anteriormente adicionamos uma diretiva using, agora para nossa camada BLL.

Foi muito simples o trabalho aqui. Primeiro crie um objeto que faz referência a classe Bll que está dentro de nossa camada BLL, que é nossa camada de Regra Negócio.

Depois popule um DropDownList criado na página com uma lista de dados retornados pelo meu método RetornaEstadosTratados, da classe Bll.

E eis o nosso resultado final. Como podem observar o nosso DropDownList foi populado com sucesso com os dados de nossa Lista:

O desenvolvimento em camadas é bastante utilizado nos dias atuais devido a sua praticidade e também devido a segurança que proporciona à aplicação, pois quando você subir sua aplicação para o servidor não precisará subir todas as camadas (projetos), apenas subirá a sua UI (camada de interface), as outras camadas estão em DLL na pasta Bin de sua camada de Apresentação.

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados