1. Introdução
O PDF deste documento está disponível |AQUI|.
Os exemplos deste documento estão disponíveis |AQUI|.
Pretendemos escrever uma aplicação .NET que permita a um utilizador realizar simulações de cálculo dos salários das amas da associação «Maison de la petite enfance» de um município. Iremos centrar-nos tanto na organização do código DotNet da aplicação como no próprio código.
A aplicação final, a que chamaremos [SimuPaie], terá a seguinte estrutura de três camadas:
![]() |
- a camada [1-dao] (DAO = Data Access Object) encarregar-se-á do acesso aos dados. Estes serão armazenados numa base de dados.
- A camada [2-métier] encarregar-se-á da parte funcional da aplicação, ou seja, o cálculo da folha de pagamentos.
- A camada [3-ui] (ui = Interface do Utilizador) encarregar-se-á da apresentação dos dados ao utilizador e da execução das suas solicitações. Designamos por [Application] o conjunto de módulos que asseguram esta função. Esta camada é o ponto de contacto com o utilizador.
- As três camadas serão tornadas independentes graças à utilização de interfaces .NET
- A integração das diferentes camadas será realizada pelo Spring IoC
O processamento de um pedido de um cliente decorre de acordo com as seguintes etapas:
- o cliente envia um pedido à aplicação.
- A aplicação processa essa solicitação. Para tal, pode necessitar da ajuda da camada [métier], que, por sua vez, pode necessitar da camada [dao] caso seja necessário trocar dados com a base de dados. A aplicação recebe uma resposta da camada [métier].
- De acordo com essa resposta, envia a vista (= a resposta) adequada ao cliente.
A interface apresentada ao utilizador pode assumir várias formas:
- uma aplicação de consola: neste caso, a vista é uma sequência de linhas de texto.
- uma aplicação gráfica do Windows: neste caso, a vista é uma janela do Windows
- uma aplicação web: neste caso, a vista é uma página HTML
- ...
Iremos escrever diferentes versões desta aplicação:
- uma versão ASPNET que inclui um único formulário e é construída com uma arquitetura de camada única.
- uma versão idêntica à anterior, mas com extensões Ajax
- uma versão ASP.NET baseada numa arquitetura de três camadas, em que a camada de acesso aos dados é implementada com o framework NHibernate. Esta versão continuará a ter o único formulário da versão 1.
- uma versão 4 ASP.NET com múltiplas vistas e uma única página, com a arquitetura de três camadas da versão 3.
- a parte do servidor de uma aplicação cliente/servidor, em que o servidor é implementado por um serviço web baseado na arquitetura em camadas da versão 3.
- a parte cliente da aplicação cliente/servidor anterior, implementada por uma camada ASP.NET.
- uma versão 7 ASP.NET com múltiplas vistas e múltiplas páginas, com a arquitetura de três camadas da versão 3.
- uma versão 8 ASP.NET com múltiplas vistas e múltiplas páginas, cliente do serviço web da versão 5.
- uma versão 9 ASP.NET com múltiplas vistas e páginas, com a arquitetura de três camadas da versão 3, em que a camada de acesso aos dados é implementada por classes do Spring que facilitam a utilização do framework NHibernate.
- uma versão 10 implementada em FLEX e cliente do serviço web da versão 5.
Pré-requisitos
Numa escala [débutant-intermédiaire-avancé], este documento encontra-se na parte [intermédiaire]. A sua compreensão requer vários pré-requisitos que podem ser encontrados em alguns dos documentos que escrevi:
- Programação ASP.NET [Desenvolvimento Web com ASP.NET 1.1 (2004)];
- Linguagem C# 2008: [Aprender C# versão 3.0 com o .NET Framework 3.5 (2008)]: classes, interfaces, herança, polimorfismo
- [Spring IoC], disponível no URL [Spring IoC para .NET (2005)]. Apresenta os conceitos básicos da inversão de controlo (Inversion of Control) ou injeção de dependências (Dependency Injection) do framework Spring.Net [http://www.springframework.net].
- [Construction d'une application web à trois couches avec Spring et VB.NET], disponíveis em URL e [Construir uma Aplicação Web de Três Camadas com ASP.NET 2.0, C#, Spring.NET e NHibernate (2010)]. Este curso apresenta uma aplicação simplificada de compras de produtos na Web. A sua arquitetura de três camadas implementa o modelo MVC.
Por vezes, são fornecidas sugestões de leitura no início dos parágrafos deste documento. Estas remetem para os documentos anteriores.
Ferramentas
As ferramentas utilizadas neste estudo de caso estão disponíveis gratuitamente na Internet. São as seguintes:
- Visual C# 2008, Visual Web Developer Express 2008, SQL Server Express 2005, disponíveis no URL [http://www.microsoft.com/express/downloads/].
- Spring IoC para a instanciação dos serviços necessários à aplicação, disponível em URL [http://www.springframework.net/] — ver também [3]
- NHibernate para a camada de acesso aos dados do SGBD [http://sourceforge.net/projects/nhibernate/]
- NUnit: [http://www.nunit.org] para os testes unitários.
