Usando arquiteturas em camadas em asp.net

Uma abordagem para aplicações web design é se concentrar em camadas bem definidas de arquitetura do aplicativo. Esta abordagem é semelhante à maneira como um arquiteto projeta um edifício. Se você já viu os planos de construção detalhados para um arranha-céu, você sabe os planos de construção incluem projetos separados para a fundação, estrutura, telhado, canalização, electricidade e outros pisos do edifício.

Com uma arquitetura em camadas, os especialistas podem projetar e desenvolver os “andares” - chamada camadas - independentemente, desde que as ligações entre as camadas (a Interfaces) São cuidadosamente pensado.

As camadas devem ser independentes um do outro, tanto quanto possível. Entre outras coisas, isso significa atendendo algumas deve-dos e te pobres:

Video: Programação em Camadas com C# (Aula 1)

  • Cada camada deve ter um foco definido. Para projetar as camadas corretamente, você deve definir claramente as tarefas e responsabilidades de cada camada.
  • Camadas deve se ocupar de seu próprio negócio. Se uma camada é responsável pela interacção com o utilizador, apenas aquela camada é permitido para comunicar com o utilizador. Outras camadas que precisam obter informações do usuário deve fazê-lo através da camada de interface do usuário.
  • Claramente protocolos definidos deve ser configurado para as camadas de interagir uma com a outra. A interacção entre as camadas ocorre apenas através destes protocolos.

Note-se que as camadas não estão ligados directamente para qualquer aplicação em particular. Por exemplo, uma arquitetura pode funcionar igualmente bem para um sistema de encomendas on-line e para um fórum online. Como resultado, a arquitetura em camadas não tem nada a ver com o ERDs que definir um banco de dados ou os diagramas de fluxo de dados que definem como os dados fluem dentro do aplicativo. É uma estrutura separada.

Quantas camadas?

Existem várias abordagens comuns a arquitetura de aplicação que variam dependendo do número de camadas usado. Um esquema comum é quebrar a aplicação em duas camadas:

  • Camada de aplicação: O design da interface do usuário e da implementação de políticas de negócios são tratados nesta camada. Esta camada pode também lidar lógica de transação - o código que as atualizações do banco de dados grupos em transações e garante que todas as atualizações dentro de uma transação são feitas de forma consistente.
  • Acesso a Dados Camada: O motor de banco de dados subjacente que suporta a aplicação. Esta camada é responsável por manter a integridade da base de dados. Alguns ou todos a lógica de transação pode ser implementado nesta camada.

No modelo de duas camadas, a camada de aplicação é as páginas da Web ASP.NET que definem as páginas apresentadas ao usuário, bem como os arquivos de código-behind que implementam a lógica do aplicativo. A camada de acesso a dados é o servidor de banco de dados que gerencia o banco de dados, como o Microsoft SQL Server ou Oracle.



Note-se que ASP.NET 2.0 não exige que você colocar código da lógica do aplicativo em um arquivo separado de código. Em vez disso, você pode intercalar o código da lógica com o código de apresentação no mesmo arquivo. No entanto, é quase sempre uma boa idéia usar os arquivos de código-behind separados para separar a lógica do aplicativo a partir do seu código de apresentação. Todos os aplicativos apresentados neste livro usar arquivos de código-behind separados.

A divisão entre o aplicativo e camadas de acesso a dados nem sempre é tão clara quanto poderia ser. Por motivos de desempenho, a lógica transacção é muitas vezes deslocado para o servidor de banco de dados (na forma de procedimentos armazenados), e regras de negócios são muitas vezes implementado no servidor de banco de dados com restrições e gatilhos. Assim, o servidor de banco de dados, muitas vezes lida com alguns dos lógica da aplicação.

Se esta desordem o incomoda, você pode usar um arquitectura de três camadas, que acrescenta uma camada adicional de lidar com regras e políticas de negócios:

Video: Modelo de aplicação em três camadas

  • Camada de apresentação: Esta camada lida com a interface do usuário.
  • Regras de Negócio da camada: Esta camada lida com as regras de negócios do aplicativo e políticas. Por exemplo, se um aplicativo de vendas concede descontos para determinados usuários, a política de descontos é implementado nesta camada.
  • Acesso a Dados Camada: O modelo de banco de dados subjacente que suporta a aplicação.

Criando uma camada separada para regras de negócios permite que você separe as regras do projeto de banco de dados ea lógica de apresentação. As regras de negócios estão sujeitos a alterações. Colocando-os em uma camada separada, você tem uma tarefa mais fácil de mudar-los mais tarde do que se eles estão incorporados na interface do usuário ou de design de banco de dados.

MVC

Outro modelo comum para a concepção de aplicações Web é chamado MVC (MVC). Nesta arquitetura, o aplicativo é dividido em três partes:

  • Modelo: O modelo é, com efeito, camada de negócios do aplicativo. Ele geralmente consiste de objetos que representam as entidades empresariais que compõem o aplicativo, como clientes e produtos.
  • Visão: o Visão é a interface de usuário do aplicativo. Em um aplicativo Web, este consiste em uma ou mais páginas HTML que definem a aparência do aplicativo.
  • Controlador: o controlador gerencia os eventos processados ​​pela aplicação. Os eventos normalmente são gerados por acções de interface do usuário, tais como o usuário clicar em um botão ou selecionando um item de uma lista drop-down.

Numa aplicação típica ASP.NET, o arquivo.aspx implementa o vista- as funções de modelo e do controlador são combinadas e tratadas pelo ficheiro de código subjacente. Assim, o arquivo code-behind pode ser pensado como o modelo de controlador.

Você pode, é claro, separar as funções de modelo e controlador através da criação de classes separadas para as entidades empresariais. Para simplificar, as aplicações neste livro manter o modelo e controlador de funções combinadas no arquivo code-behind.


Publicações relacionadas