Aplicações em N Camadas com ASP.

NET
Aplicações em n camadas são desenvolvidas de forma distribuída, onde cada camada tem sua responsabilidade dentro do contexto. Para um modelo de aplicação Web são comumente usadas 3 camadas: Presentation(Apresentação), Business(Lógica do negócio) e Data(Responsável pelas transações com o banco da dados). Para este artigo, iremos usar uma camada a mais chamada Entity(nossa biblioteca de entidades). Vamos criar um controle de clientes simples, onde nosso objetivo é focar no aprendizado de aplicações em n camadas.

Figura 1: Exemplo de aplicação em N Camadas. Para começar o desenvolvimento, iremos abrir o Visual Studio 2008 ou 2010 e criar um novo projeto do tipo Blank Solution.

Figura 2: Criando uma solução em branco. Com a solução criada, é hora de criar as camadas. Vamos começar com a camada que será a biblioteca de entidades. É nela que definiremos todas as entidades que vamos usar nesse exemplo. Para adicionar a camada ao projeto, vamos clicar com o botão direito na solução e adicionar um novo projeto.

Figura 3: Adicionando um novo projeto a solução (Add > New Project). Esse novo projeto vai ser do tipo Class Library, pois será apenas a biblioteca de entidades.

Figura 4: Projeto do tipo Class Library. Com o projeto adicionado a solução, podemos agora trabalhar na entidade principal que será a classe Cliente.

Figura 5: Projeto criado.

pois iremos utilizar um ótimo recurso do Visual Studio chamado View Class Diagram. Pronto.Por padrão. já é criada no projeto uma nova classe onde você poderá deletá-la. responsável em gerenciar as classes do projeto conforme mostra a figura a baixo: Figura 6: Visualizando o diagrama de classes da camada de entidades (View Class Diagram). com o diagrama de classes aberto vamos criar a classe Cliente de maneira muito fácil: .

vamos trabalhar com atributos simples pra não prolongar muito nosso tempo. Como o foco é estudar aplicações em n camadas. Figura 8: Visualização da classe Cliente dentro do diagrama. iremos adicionar os atributos e as propriedades necessárias para manipular a entidade Cliente. Mais uma vez vamos contar com recursos do Visual Studio para facilitar nossa vida: . Essa é a visualização da classe Cliente dentro do diagrama.Figura 7: Adicionando uma nova classe ao diagrama (Add > Class). Dando continuidade.

Vamos encapsular os atributos para manter a segurança na persistência das entidades do projeto. id.Figura 9: Adicionando atributos na classe Cliente (Add > Field). telefone. . Crie mais esses atributos seguindo os passos acima: cpf. email.

Figura 10: Encapsulando os atributos da classe Cliente (Add > Encapsulate Field > Ok > Apply). Faça isso para todos os atributos utilizados na entidade Cliente. O resultado final será esse: .

Figura 11: Classe Cliente com todos os atributos e propriedades definidas Para visualizar o código da entidade Cliente. basta dar um duplo clique na classe: .

.

podemos mudar a qualquer momento nosso sistema de banco de dados. Na segunda parte desse artigo vamos criar a camada de dados (Data) que ficará responsável pelas transações SQL com o banco de dados. Para adicionar a camada ao projeto. Com a classe Cliente definida.Figura 12: Código da classe Cliente. Figura 2: Adicionando um novo projeto a solução (Add > New Project). Uma de suas grandes vantagens é que através dela. vamos clicar com o botão direito na solução e adicionar um novo projeto. . sem prejudicar a lógica do negocio. temos nossa camada de entidades concluída utilizando apenas uma entidade nesse exemplo. Iremos adicionar a camada Data juntamente com a primeira parte criada neste artigo. Esse novo projeto vai ser do tipo Class Library. pois aqui serão criadas somente as classes responsáveis pela comunicação com o banco de dados.

podemos agora trabalhar na camada Data da qual receberá uma entidade através da camada business. . Com o projeto adicionado a solução. executando as transações com o banco de dados.Figura 3: Projeto do tipo Class Library.

Figura 4: Projeto criado. para criar a classe Clientes da maneira que aprendemos na primeira parte deste artigo: Figura 5: Visualizando o diagrama de classes da camada de Data (View Class Diagram). A classe Clientes vai conter apenas um atributo e os métodos responsáveis pelas transações SQL. vamos criar um atributo que irá receber a string de conexão com o banco de dados: connectionString . já que nossa entidade foi definida na camada Entity. Como aprendemos na primeira parte deste artigo. Vamos utilizar a opção View Class Diagram.

pois o mesmo já está encapsulado. basta dar um duplo clique na classe. Mais uma vez vamos contar com recursos do Visual Studio para facilitar nossa vida para a criação dos métodos: Figura 6: Adicionando métodos na classe Clientes (Add > Method). Obter. não sendo preciso criar uma propriedade para acessá-lo. O resultado final será esse: Figura 7: Classe Clientes com todos os métodos e atributos definidos. Crie mais esses métodos seguindo os passos acima: Alterar.Este é um atributo de uso exclusivo da classe Clientes. . Para visualizar o código da classe Clientes. Excluir. Listar.

os métodos da classe Clientes foram criados. porém não estão implementados. como o foco é estudar aplicações em n camadas. vamos agora implementar cada método sem a preocupação de estudar ADO. onde no final do artigo você encontra referências para aprofundar os conhecimentos sobre o mesmo. Como podemos ver na Figura 8. . Neste caso.Figura 8: Visualização do código da classe Clientes.NET.

Data e System. Figura 10: namespace System.SqlClient adicionados a classe Clientes.NET. . Figura 9: Adicionando referencia da camada Entity na camada Data (Add Reference > Projects > OK).Data. é necessário adicionar a referencia da camada Entity na camada Data.Data e System.SqlClient do Framework para trabalharmos com as classes do ADO. System.Data. Agora vamos adicionar na classe Clientes os namespaces.Para a camada Data reconhecer uma entidade da camada Entity.

Vamos atribuir a string de conexão ao atributo “connectionString”. Vamos implementar agora os métodos da classe Clientes. acompanhe abaixo: Inserir: . Figura 11: atributo connectionString recebendo a string de conexão com o banco.

Excluir: .Figura 12: implementação do método Inserir. Alterar: Figura 13: implementação do método Alterar.

Figura 14: implementação do método Excluir. Obter: .

Listar: .Figura 15: implementação do método Obter.

.Figura 16: implementação do método Listar.

vamos clicar com o botão direito na solução e adicionar um novo projeto.Concluímos que ao final de mais uma etapa. teremos a classe Clientes definida juntamente com a camada Data finalizada. Figura 2: Adicionando um novo projeto a solução (Add > New Project). executando assim as transações com o banco. Na terceira parte desse artigo vamos criar a camada de negócio (Business) que ficará responsável pela comunicação e validação dos dados. assim como as camadas Data e Entity. Para adicionar a camada ao projeto. podemos validar algumas informações e enviar a entidade para camada de dados. . Esse novo projeto também será do tipo Class Library. Uma de suas grandes vantagens é que através dela. entre a apresentação (Presentation) e a camada de dados (Data). Iremos adicionar a camada Business juntamente com a segunda parte criada neste artigo.

Figura 3: Projeto do tipo Class Library. podemos agora trabalhar na camada Business da qual receberá uma entidade através da camada Presentation. . Com o projeto adicionado a solução. executando as validações necessárias e enviando a entidade para a camada Data.

Figura 4: Projeto criado. tenham o mesmo nome. . vamos criar agora os métodos da classe Clientes. Vamos utilizar a opção View Class Diagram para criar a classe Clientes. Como aprendemos na segunda parte deste artigo. realizada da mesma maneira da qual aprendemos na primeira parte deste artigo. A classe Clientes vai conter apenas os métodos responsáveis pelas validações de dados e pela transferência da entidade para a camada Data. Recomendo que os métodos que vão transportar as entidades para a camada Data.

basta dar um duplo clique na classe. O resultado final será esse: Figura 6: Classe Clientes com todos os métodos definidos. Listar.Figura 5: Adicionando métodos na classe Clientes (Add > Method). Para visualizar o código da classe Clientes. FormataCpf. . Crie mais esses métodos seguindo os passos acima: Alterar. Obter. Excluir.

Figura 7: Visualização do código da classe Clientes. devemos adicionar as referencias das camadas Entity e Data na camada Business. assim como os objetos da camada Data. Para a camada Business reconhecer uma entidade da camada Entity. mas não implementados. Vamos agora implementar cada método de acordo com sua responsabilidade. os métodos da classe Clientes foram criados. Como podemos ver na Figura 7. .

.Figura 8: Adicionando referencias das camadas Entity e Data na camada Business (Add Reference > Projects > OK).

nessa terceira parte iremos utilizar o exemplo de uma implementação e formatação de CPF. .Segue abaixo a implementação dos métodos da classe Clientes: FormataCpf Como o foco deste artigo é o estudo de aplicações em N camadas e suas respectivas responsabilidades. para demonstrar como cada camada pode ser utilizada.

Inserir Figura 10: implementação do método Inserir.Figura 9: implementação do método FormataCpf. .

.Alterar Figura 11: implementação do método Alterar.

Excluir Figura 12: implementação do método Excluir. Obter .

Figura 13: implementação do método Obter. Listar .

vamos criar a camada de apresentação (Presentation) juntamente com a aplicação Web. teremos a classe Clientes definida juntamente com a camada de negócio (Business) finalizada. Iremos adicionar a camada Presentation em nosso projeto da mesma maneira que aprendemos a adicionar as outras camadas.Figura 14: implementação do método Listar. vamos clicar com o botão direito na solução e adicionar um novo projeto. que utilizará de todos os recursos das camadas construídas ao longo deste estudo. Para adicionar a camada ao projeto. Participe desse artigo deixando seu comentário. . Na quarta e última parte deste artigo. Concluímos que ao final de mais uma etapa.

Como o foco desse artigo é o entendimento de aplicações em N camadas.Figura 2: adicionando um novo projeto a solução (Add > New Project). Esse novo projeto não será mais do tipo Class Library. vamos desenvolver a camada de apresentação utilizando um projeto do tipo ASP. que será nossa aplicação. . e sim um projeto do tipo ASP.NET Web Application. mas a mesma poderia ser desenvolvida utilizando outros tipos de projetos oferecidos pela tecnologia.NET Web Application.

NET Web Application.Figura 3: projeto do tipo ASP. .

Para evitar erros na hora da execução da aplicação. vamos seta-lá como StartUp de nosso projeto. .Com o projeto adicionado a solução. podemos agora trabalhar na camada Presentation. Figura 4: projeto criado.

Figura 5: configurando o projeto como StartUp. Para a camada Presentation reconhecer uma entidade da camada Entity. é necessário adicionar as referências das camadas Entity e Business na camada Presentation. . assim como os objetos da camada Business.

aspx que foi criado junto com o projeto. . Listando dados A primeira coisa a ser feita é construirmos uma página onde serão listados todos os clientes cadastrados no banco de dados. nesse WebForm vamos adicionar um componente GridView que irá receber como DataSource o método listar da classe Clientes pertencente a camada Business.Figura 6: adicionando referências das camadas Entity e Business na camada Presentation (Add Reference > Projects > OK). já que a camada Business é responsável pela comunicação entre elas. Essa página será o WebForm Default. A camada Presentation não precisa de uma referência da camada Data.

aspx (Tollbox > Data > GridView). Vamos então.Figura 7: adicionando o componente GridView ao WebForm Default. um Button para adicionar um novo Cliente a base de dados. Vamos utilizar também no WebForm. para isso vamos utilizar o TemplateField. Para que as colunas do GridView não sejam criadas automaticamente vamos atribuir na propriedade AutoGenerateColumns o valor "False". Depois disso o código deve ficar assim: . vamos adicionar um LinkButton com um link para edição do registro. customizar o GridView adicionando um BoundField para o Nome e outro para o Email.

. a janela com o Code-Behind será aberta. Para implementar a codificação da página tecle F7 com o WebForm Default.aspx do WebForm Default.aspx aberto.Figura 8: visualização do código .aspx.

.

onde vamos ter os detalhes de cada Cliente cadastrado no banco.Figura 9: implementação do WebForm Default. . a página será exibida: Figura 10: visualização da página Default. Vamos rodar a aplicação e se deu tudo certo até aqui. vamos criar um novo WebForm.aspx.aspx. Visualização detalhada do dados Para a edição e visualização dos registros.

Figura 11: Adicionando um novo WebForm ao projeto (Add > New Item > Web Form). .

.Com o WebForm criado.aspx do WebForm Cliente_Edit. Figura 12: visualização do código .aspx. podemos adicionar os componentes que vamos utilizar na edição dos dados.

Page_Load Figura 13: implementação do método Page_Load.Para implementar as funcionalidades do WebForm vamos teclar F7. .

Figura 15: visualização do formulário de edição executando uma inserção. Alterar .Salvar Figura 14: implementação do método btnSalvar_Click.

Figura 17: visualização do formulário de edição executando uma alteração. Excluir .Figura 16: implementação do método btnAlterar_Click.

Figura 19: visualização do formulário de edição executando uma exclusão.Figura 18: implementação do método btnExcluir_Click. alguns detalhes como tratamento de erros e outras funcionalidades foram deixadas de lado para não perdermos o foco do entendimento. Lembrando que o objetivo desse artigo foi demonstrar o funcionamento de aplicações em N camadas. teremos todas as camadas implementadas e funcionando de forma independente. o uso de boas práticas e outras funcionalidades que você usaria no desenvolvimento de sua . Fica aqui então a dica: Como você implementaria cada camada de seu projeto? Tratamento de erros. Concluímos que ao final de mais uma etapa.

ao amigo Ramon Durães pelo incentivo nessa caminhada para aprender cada vez mais. a comunidade Codificando.aplicação em N camadas.codificando.net/profiles/blogs/aplicacoes-em-n-camadas-com-4 . http://comunidade.Net. aos meus amigos que apoiaram a idéia e me ajudaram. Participe. Agradecimentos: A todos que acompanharam as outras partes deixando seu comentário. a revista Codificando. a minha grande amiga Ana Clara Nogi que me ajudou com as correções do artigo. escreva seu artigo e compartilhe conhecimento.Net e-Magazine e claro.

Sign up to vote on this title
UsefulNot useful