Recursos especiais neste artigo:
Artigo no estilo Curso Online
O desenvolvimento de sistemas em camadas é uma prática que prioriza a implementação de aplicações em um formato bem estruturado, enfatizando a separação dos diferentes componentes de uma aplicação em partes lógicas. Na primeira parte deste artigo discutimos tais conceitos, além de iniciarmos a construção de uma aplicação multicamadas. Para isto, foram codificados os tipos empregados na manipulação de informações (DTOs), assim como definidas as classes da camada de Acesso a Dados. Nesta edição estaremos finalizando este exemplo, através da implementação das camadas de Negócios e de Apresentação (com esta última baseando-se na utilização do framework ASP.NET MVC).
Quando o processo de implementação é conduzido de uma forma organizada e em conformidade com boas práticas, a execução de atividades de implementação acontece quase sempre sem maiores dificuldades; tais aspectos ainda continuam válidos ao considerar tarefas que envolvam a manutenção de funções pré-existentes.
Vários são os tipos de abordagens que fornecem meios para conseguir uma maior qualidade no código que define um sistema. Todas essas técnicas possuem em comum características como uma forte ênfase no reuso de funcionalidades genéricas, além de priorizarem todo um esforço em evitar a duplicação de trechos de código ao longo de uma aplicação. Um bom exemplo de prática em conformidade com estes conceitos é o desenvolvimento de aplicações em camadas.
Em termos práticos, uma camada nada mais é do que uma parte lógica que agrupa classes e outras estruturas que possuam um comportamento semelhante. Um típico sistema implementado sob este paradigma pode contar com as camadas de Apresentação, Negócios e Acesso a Dados; a comunicação entre tais camadas pode ser feita por meio de classes conhecidas como DTOs (Data Transfer Objects), estruturas estas destinadas à transferência de informações.
A camada de apresentação corresponde à interface gráfica de um sistema. Dentro da plataforma .NET, diversas tecnologias como ASP.NET Web Forms, ASP.NET MVC e Windows Forms podem ser utilizadas na implementação desta parte de uma aplicação. Já a camada de Negócios é acessada a partir de elementos da camada de Apresentação, centralizando todas as regras de negócios de um software. Por fim, caberá à camada de Acesso a Dados (invocada pela camada de Negócios) a interação com algum tipo de repositório visando a manipulação e/ou o armazenamento de informações; o comum é que esta parte do sistema seja implementada a partir do uso de um banco de dados relacional, com o processo de comunicação ocorrendo através de recursos como o ADO.NET ou algum mecanismo ORM (BOX 1).
Nesta segunda parte do artigo sobre desenvolvimento de aplicações multicamadas estaremos finalizando o projeto iniciado na última edição. Isto será feito a partir da implementação das camadas de Negócios e de Apresentação (com esta última sendo construída sob a forma de um site ASP.NET MVC).
Frameworks ORM (Mapeamento objeto-relacional) permitem a representação de estruturas de um banco de dados relacional sob a forma de classes. Alguns exemplos de mecanismos ORM bastante populares no mundo .NET são o Entity Framework (o qual também integra a plataforma .NET), o NHibernate (ferramenta gratuita baseada no Hibernate da plataforma Java) e o Enterprise Library (solução open source também disponibilizada pela Microsoft).
Concluindo a implementação da aplicação de exemplo
Na primeira parte deste artigo iniciamos a construção de uma aplicação multicamadas, a fim de demonstrar os diferentes conceitos que envolvem este tipo de abordagem. O sistema em questão consiste, basicamente, em um cadastro para o gerenciamento de dados de profissionais de Tecnologia vinculados a uma empresa hipotética.
Criamos uma solução chamada TesteMultiCamadas, sendo que dentro desta já foram definidos os seguintes projetos:
· TesteMultiCamadas.DTO: Class Library em que estão definidas as classes empregadas na transferência de informações entre as diferentes camadas da aplicação;
· TesteMultiCamadas.DAL: corresponde à camada de Acesso a Dados.
Nesta edição finalizaremos a Solution TesteMultiCamadas, através da implementação de dois projetos:
· TesteMultiCamadas.BLL: camada de Negócios da aplicação, contendo classes que fazem uso das estruturas de acesso a dados, além de regras de negócio;
· TesteMultiCamadas.MVC: camada de Apresentação, sendo uma aplicação baseada no framework ASP.NET MVC.
Implementando a camada de Negócios
A implementação da camada de Negócios será feita a partir de um projeto do tipo Class Library chamado “TesteMultiCamadas.BLL” (o termo “BLL” corresponde à abreviação do nome em inglês desta camada, no caso “Business Logic Layer”). Para isto, clique com o botão direto do mouse sobre a solução TesteMultiCamadas, selecionando em seguida “Add” e, por fim, “New Project”.
Dentro da janela “Add New Project”, marque o item “Class Library” da seção “Visual C#”, preenchendo em “Name” o valor “TesteMultiCamadas.BLL”. Para finalizar clique em “OK”.
Antes de iniciar a codificação dos tipos que farão parte da Class Library TesteMultiCamadas.BLL, será necessário adicionar referências a esta biblioteca que apontem para os projetos TesteMultiCamadas.DTO e TesteMultiCamadas.DAL. Dentro da janela Solution Explorer, clique com o botão direito do mouse sobre o item “References” de TesteMultiCamadas.BLL e, a partir disto, acione a opção “Add References” no menu que irá aparecer; localize então as bibliotecas TesteMultiCamadas.DTO e TesteMultiCamadas.DAL, selecionando as mesmas e clicando em seguida no botão “OK” (Figura 1).
Figura 1. Adicionando referências aos projetos TesteMultiCamadas.DTO e TesteMultiCamadas.DAL
A primeira das classes a ser implementada no projeto TesteMultiCamadas.BLL é o tipo OcupacaoBO (o sufixo “BO” é uma abreviação de “Business Object”, nomenclatura em inglês utilizada para designar classes empregadas na geração de objetos de negócios). Essa estrutura tem o objetivo de retornar informações das ocupações que poderão ser desempenhadas por profissionais de TI.
Para criar a classe clique, dentro do Solution Explorer, com o botão direito do mouse sobre a Class Library TesteMultiCamadas.BLL, escolhendo no menu de atalho a opção “Add”, subopção “New Item”. Aparecerá então a tela “Add New Item”; preencha no campo Name o valor “OcupacaoBO.cs”, gerando o arquivo em que constará a definição do tipo OcupacaoBO.
Na Listagem 1 está a implementação da classe OcupacaoBO. Foi definido neste tipo um método chamado ListarOcupacoes (linha 12), o qual devolve como resultado de sua execução uma coleção com todas as ocupações cadastradas na base de dados.
Como é possível observar, a operação ListarOcupacoes aciona um método de mesmo nome a partir de uma instância da classe OcupacaoDAO (linha 14), delegando a essa estrutura a tarefa de manipular as informações armazenadas na base de dados de testes (BOX 2).
Listagem 1. Classe OcupacaoBO
01 using System;
02 using System.Collections.Generic;
03 using System.Linq;
04 using System.Text;
05 using TesteMultiCamadas.DTO;
06 using TesteMultiCamadas.DAL;
07
08 namespace TesteMultiCamadas.BLL
09 {
10 public class OcupacaoBO
11 {
12 public List<OcupacaoDTO> ListarOcupacoes()
13 {
14 return new OcupacaoDAO().ListarOcupacoes();
15 }
16 }
17 }
...
Confira outros conteúdos:
Perguntas frequentes
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.