Skip to content

1. Wprowadzenie

Plik PDF tego dokumentu jest dostępny pod nazwą |TUTAJ|.

Przykłady zawarte w tym dokumencie są dostępne pod numerem |TUTAJ|.

Chcemy stworzyć aplikację .NET, która pozwoli użytkownikowi przeprowadzać symulacje obliczeń wynagrodzeń opiekunek dziecięcych ze stowarzyszenia „Maison de la petite enfance” w danej gminie. Zajmiemy się zarówno organizacją kodu aplikacji DotNet, jak i samym kodem.

Gotowa aplikacja, którą nazwiemy [SimuPaie], będzie miała następującą trójwarstwową strukturę:

  • warstwa [1-dao] (DAO = Data Access Object) będzie odpowiadać za dostęp do danych. Dane te zostaną umieszczone w bazie danych.
  • Warstwa [2-métier] będzie odpowiedzialna za aspekt biznesowy aplikacji, czyli obliczanie wynagrodzeń.
  • warstwa [3-ui] (ui = User Interface) będzie odpowiedzialna za prezentację danych użytkownikowi oraz realizację jego zapytań. Zbiór modułów zapewniających tę funkcję nazywamy [Application]. Jest to interfejs użytkownika.
  • Trzy warstwy zostaną uniezależnione dzięki zastosowaniu interfejsów .NET
  • Integracja poszczególnych warstw zostanie zrealizowana przez Spring IoC

Przetwarzanie żądania klienta przebiega zgodnie z następującymi etapami:

  1. klient wysyła żądanie do aplikacji.
  1. Aplikacja przetwarza to żądanie. W tym celu może potrzebować pomocy warstwy [métier], która z kolei może potrzebować warstwy [dao], jeśli konieczna jest wymiana danych z bazą danych. Aplikacja otrzymuje odpowiedź od warstwy [métier].
  2. Na jej podstawie wysyła odpowiedni widok (= odpowiedź) do klienta.

Interfejs prezentowany użytkownikowi może przybierać różne formy:

  1. aplikacja konsolowa: w tym przypadku widok stanowi ciąg wierszy tekstu.
  2. aplikacja graficzna dla systemu Windows: w tym przypadku widokiem jest okno systemu Windows
  3. aplikacja internetowa: w tym przypadku widokiem jest strona HTML
  4. ...

Napiszemy różne wersje tej aplikacji:

  1. wersja ASPNET zawierająca jeden formularz i zbudowana w architekturze jednowarstwowej.
  2. wersja identyczna z poprzednią, ale z rozszerzeniami Ajax
  3. wersja ASP.NET oparta na architekturze trójwarstwowej, w której warstwa dostępu do danych jest zaimplementowana przy użyciu frameworka NHibernate. Będzie ona nadal zawierała ten sam pojedynczy formularz, co wersja 1.
  4. wersja 4 ASP.NET z wieloma widokami i jedną stroną, oparta na trójwarstwowej architekturze wersji 3.
  5. część serwerową aplikacji klient-serwer, w której serwer jest zaimplementowany jako usługa internetowa oparta na architekturze warstwowej z wersji 3.
  6. część kliencką poprzedniej aplikacji klient-serwer, zaimplementowaną przez warstwę ASP.NET.
  7. wersja 7 ASP.NET z wieloma widokami i wieloma stronami, oparta na trójwarstwowej architekturze wersji 3.
  8. wersja 8 ASP.NET z wieloma widokami i wieloma stronami, będąca częścią kliencką serwisu internetowego z wersji 5.
  9. wersja 9 ASP.NET, wielowidokowa i wielostronicowa, z trójwarstwową architekturą z wersji 3, w której warstwa dostępu do danych jest zaimplementowana za pomocą klas Spring, co ułatwia korzystanie z frameworka NHibernate.
  10. wersja 10 zaimplementowana w FLEX i korzystająca z serwisu internetowego w wersji 5.

Wymagania wstępne


W strukturze [débutant-intermédiaire-avancé] niniejszy dokument znajduje się w sekcji [intermédiaire]. Jego zrozumienie wymaga spełnienia różnych warunków wstępnych, które można znaleźć w niektórych dokumentach mojego autorstwa:

  1. Programowanie ASP.NET [Tworzenie aplikacji internetowych z wykorzystaniem ASP.NET 1.1 (2004)];
  2. Język C# 2008: [Nauka języka C# w wersji 3.0 z wykorzystaniem platformy .NET 3.5 (2008)]: klasy, interfejsy, dziedziczenie, polimorfizm
  3. [Spring IoC], dostępny w URL i [Spring IoC dla .NET (2005)]. Przedstawia podstawy odwrócenia kontroli (Inversion of Control) lub wstrzykiwania zależności (Dependency Injection) w frameworku Spring.Net [http://www.springframework.net].
  4. [Tworzenie trójwarstwowej aplikacji internetowej przy użyciu Spring.NET i VB.NET (2005)]. Kurs ten przedstawia uproszczoną aplikację do zakupów produktów w Internecie. Jej trójwarstwowa architektura realizuje model MVC.

Na początku akapitów niniejszego dokumentu zamieszczono czasami wskazówki dotyczące lektury. Odwołują się one do poprzednich dokumentów.


Narzędzia


Narzędzia wykorzystane w niniejszym studium przypadku są ogólnodostępne w Internecie. Są to:

  • Visual C# 2008, Visual Web Developer Express 2008, SQL Server Express 2005 dostępne na stronie URL [http://www.microsoft.com/express/downloads/].
  • Spring IoC do instancjonowania usług niezbędnych dla aplikacji, dostępny na stronie URL [http://www.springframework.net/] – zob. również [3]
  • NHibernate dla warstwy dostępu do danych w SGBD [http://sourceforge.net/projects/nhibernate/]
  • NUnit: [http://www.nunit.org] do testów jednostkowych.