Skip to content

1. Introdução

O PDF deste documento está disponível |AQUI|.

Os exemplos deste documento estão disponíveis |AQUI|.

Pretendemos criar uma aplicação .NET que permita ao utilizador simular cálculos de folhas de pagamento para prestadores de cuidados infantis na associação «Maison de la petite enfance» de um município. Iremos centrar-nos tanto na organização do código .NET 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) irá tratar do acesso aos dados. Os dados serão armazenados numa base de dados.
  • A camada [2-business] irá gerir a lógica de negócio da aplicação, nomeadamente o cálculo das folhas de pagamento.
  • A camada [3-ui] (ui = Interface do Utilizador) irá tratar da apresentação dos dados ao utilizador e da execução dos pedidos do utilizador. Referimo-nos ao conjunto de módulos que desempenham esta função como [Aplicação]. Esta funciona como a interface do utilizador.
  • As três camadas serão tornadas independentes através da utilização de interfaces .NET
  • A integração das diferentes camadas será gerida pelo Spring IoC

O processamento de um pedido do cliente segue estes passos:

  1. O cliente faz uma solicitação à aplicação.
  1. A aplicação processa esta solicitação. Para tal, pode necessitar da assistência da camada [business], 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 [business].
  2. Com base nessa resposta, envia a vista apropriada (= a resposta) ao cliente.

A interface apresentada ao utilizador pode assumir várias formas:

  1. uma aplicação de consola: neste caso, a visualização é uma série de linhas de texto.
  2. uma aplicação GUI do Windows: neste caso, a visualização é uma janela do Windows
  3. uma aplicação web: neste caso, a visualização é uma página HTML
  4. ...

Iremos escrever diferentes versões desta aplicação:

  1. uma versão ASP.NET contendo um único formulário e construída com uma arquitetura de camada única.
  2. uma versão idêntica à anterior, mas com extensões Ajax
  3. uma versão ASP.NET baseada numa arquitetura de três camadas, em que a camada de acesso aos dados é implementada utilizando o framework NHibernate. Continuará a ter o formulário único da versão 1.
  4. uma versão 4 ASP.NET multi-view, aplicação de página única com a arquitetura de três camadas da versão 3.
  5. O lado do servidor de uma aplicação cliente/servidor, em que o servidor é implementado como um serviço web com base na arquitetura em camadas da versão 3.
  6. O lado do cliente da aplicação cliente/servidor anterior, implementado utilizando uma camada ASP.NET.
  7. Uma versão 7 do ASP.NET com múltiplas vistas e múltiplas páginas, com a arquitetura de três camadas da versão 3.
  8. Uma versão cliente ASP.NET 8 com múltiplas vistas e múltiplas páginas do serviço web da Versão 5.
  9. Uma versão ASP.NET 9 com múltiplas vistas e páginas, com a arquitetura de três camadas da versão 3, onde a camada de acesso aos dados é implementada utilizando classes Spring que facilitam a utilização do framework NHibernate.
  10. Uma versão 10 implementada em FLEX e que funciona como cliente para o serviço web da versão 5.

Requisitos prévios


Numa escala de [iniciante-intermédio-avançado], este documento enquadra-se na categoria [intermédio]. A sua compreensão requer vários pré-requisitos que podem ser encontrados em alguns dos documentos que escrevi:

  1. Programação ASP.NET [Desenvolvimento Web com ASP.NET 1.1];
  2. C# 2008: [Aprendendo C# Versão 3.0 com o .NET Framework 3.5]: classes, interfaces, herança, polimorfismo
  3. [Spring IoC], disponível em [Spring IoC para .NET]. Abrange os conceitos básicos de Inversão de Controlo (IoC) ou Injeção de Dependências (DI) na estrutura Spring.NET [http://www.springframework.net].
  4. [Criação de uma Aplicação Web de Três Camadas com Spring e VB.NET], disponível no URL [Criação de uma Aplicação Web de Três Camadas com Spring.NET e VB.NET]. Este curso apresenta uma aplicação simplificada de compra de produtos baseada na Web. A sua arquitetura de três camadas implementa o padrão MVC.

Recomendações de leitura são, por vezes, fornecidas 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 instanciar os serviços necessários à aplicação, disponível em [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 testes unitários.