.NET - Considerações sobre arquitetura e desenho de
aplicações
Com o aumento da utilização de linguagens e
técnicas de programação orientada a objetos temos ouvido falar com frequência em
desenvolvimento de aplicações em duas camadas , três camadas e n-camadas . Este
artigo tem como objetivo abordar em linhas gerais a descrição de cada uma destas
arquiteturas , falar das vantagens e desvantagens de cada uma bem como das
opções de implementação pertinentes a plataforma .Net.
1-) A arquitetura de aplicação para
duas camadas
Esta arquitetura é uma das
mais simples ; um exemplo bem conhecido seria uma aplicação usando ADO.NET
acessando diretamente um banco de dados SQL Server, Oracle , MySQL, etc. Ao
lado temos a figura que representa esta arquitetura.
Não há camadas intervindo entre a aplicação
cliente e o banco de dados a não ser a camada ADO.NET. |
|
Quando usar a arquitetura de duas camadas
- indicada para pequenas aplicações que não
possuem muitos formulários ou até mesmo sem formulários.
- apropriada para protótipos onde a versão
final da aplicação usa uma arquitetura mais complexa (três camada, n-camadas)
Opções de implementação
- Utilizar as técnicas de vinculação de dados
para conectar um DataSet ADO.NET diretamente aos controles dos formulários
- Acessar via código os objetos ADO.NET para
carregar os dados para os controles na interface com o usuário.
- Colocar as regras de negócio via código nos
formulários da aplicação usando uma das técnicas acima.
Vantagens
- O desenvolvimento da aplicação é feita de
forma rápida , simples , fácil e com um custo muito baixo.
- Você pode ter uma visão geral da sua
aplicação apenas no código dos formulários sem qualquer outro componente.
Desvantagens
- Todas as regras de negócio estão na
interface com o cliente. Se você precisar alterar qualquer regra todos os
clientes precisarão ser alterados.
- Haverá uma grande quantidade de código
repetido através da aplicação pois vários formulários irão usar as mesmas
informações (tabelas, instruções SQL , conexões). Manter a aplicação pode se
tornar uma tarefa muito complexa pois qualquer alteração em um nome de campo
ou de tabela terá que ser feita em diversas partes da sua aplicação.
- Se houver mudanças na lógica de acesso a
dados sua aplicação pode se tornar inviável. Se você esta usando arquivos
textos ou XML para guardar os dados e depois deseja migrar para um banco de
dados SQL Server , MySQL , Oracle , etc. haverá necessidade de reescrever todo
o código de acesso a dados de sua aplicação.
2-) A arquitetura de aplicação para
três camadas
A arquitetura em três camadas
é outra opção no desenho de aplicações .NET. Neste modelo podemos usar um
serviço Web XML para separar o acesso a fonte de dados para outro componente
que retorna as informações para a aplicação de frente.
Ao lado temos a figura que representa este
modelo.
Esta arquitetura pode ser usada tanto para
aplicações baseadas em Web Forms como Windows Forms. |
|
Quando usar a arquitetura de duas camadas
- Indicada quando você precisa dos recursos de
uma aplicação desktop mas os usuários se conectam a sua aplicação de
diferentes locais e acessam os dados através de uma interface HTTP
Opções de implementação
- Todo o código SQL reside em um seviço Web
XML. Os DataSets são construídos no servidor e retornados como um fluxo XML
para o cliente onde são novamente reconstruídos em um DataSet
- Os DataSets retornados de um serviço Web XML
podem ser vinculados manual ou diretamente aos controles de formulário.
- Todas as regras de negócios são codificadas
diretamente nos formulários
Vantagens
- O desenvolvimento da aplicação é feita de
forma rápida , simples , fácil e com um custo muito baixo.
- Os usuários podem rodar sua aplicação de
qualquer (internet ou intranet)
- O acesso a fonte de dados esta separada em
seu próprio componente de forma que o código da aplicação de frente não possuí
código SQL embutido.
- A informação da conexão é mantida somente no
serviço XML , minimizando a manutenção do cliente.
- A camada de acesso a dados pode ser
atualizada em um único local centralizado. Você não precisa distribuir
componentes ao cliente quando houver alterações nesta camada.
Desvantagens
- Todas as regras de negócio estão na camada
de frente (front-end) ou interface com o usuário. Se você precisar alterar uma
regra todos os clientes deverão ser atualizados.
- Manter a aplicação pode se tornar uma
tarefa muito complexa pois qualquer alteração em um nome de campo ou de tabela
terá que ser feita em diversas partes da sua aplicação.
- O desempenho usando uma interface HTTP é
mais lento do que acessar diretamente a fonte de dados.
- Se não houver acesso a internet ou intranet
sua aplicação fica indisponível
3-) A lógica da arquitetura de
aplicação para n-camadas
O melhor modelo para construir aplicações usando a plataforma .NET é o de
n-camadas. Nele estamos separando todos os processos lógicos em classes.
Em uma aplicação de negócios isto
geralmente envolve um componente para a regra de negócios , um componente
para a camada de dados e a camada da interface com o cliente que usa estes
componentes.
Na figura ao lado temos o desenho dos
processos separados em classes o que torna mais fácil criar e manter a
aplicação
|
|
Quando usar a arquitetura de duas camadas
- Este modelo é indicado para todos os tipos
de aplicações pois tem um bom desempenho tanto para pequenas , médias como
grandes aplicações.
Opções de implementação
- Criar a interface com o usuário usando Web
Forms ou Windows Forms
- Criar as regras de negócios como um
componente separado em um projeto do tipo Class Library
- Cria a camada de dados como um componente
separado em um projeto do tipo Class Library. Esta camada usa classes
que encapsulam o acesso a cada tabela. Os dataset tipados devem ser usados
pois fornecem a flexibilidade do dataset e tipagem para cada coluna nas
tabelas.
Vantagens
- Centraliza a regra de negócios em um
componente facilita a manutenção , uso e reusabilidade.
- Centralizar a camada de dados em um
componente evita repetição de código na aplicação. Cada formulário que precisa
de acesso aos dados usa o mesmo componente
- Os dataset tipados fornecem o benefício da
tipagem de dados e do intelliSense no código.
- A centralização das rotinas de acesso aos
dados ajuda a manutenção pois é preciso alterar somente um único local.
- Fornece a flexibilidade de separar os
componentes em diferentes máquinas físicas em qualquer momento.
Desvantagens
- O desenvolvimento é mais demorado devido a
necessidade de criar componentes separados
- Com mais componentes para o tratamento , a
lógica e o entendimento da aplicação tende a ser mais complexo.
Conclusão
Dei uma rápida visão geral dos principais tipos
de arquitetura que podem ser consideradas na modelagem de aplicações .NET; suas
vantagens , desvantagens e métodos de implementação. Com isto espero
contribuir para que você possa criar aplicações mais robustas , confiáveis e de
fácil manutenção
Até mais...
José Carlos
Macoratti