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:
- klient wysyła żądanie do aplikacji.
- 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].
- Na jej podstawie wysyła odpowiedni widok (= odpowiedź) do klienta.
Interfejs prezentowany użytkownikowi może przybierać różne formy:
- aplikacja konsolowa: w tym przypadku widok stanowi ciąg wierszy tekstu.
- aplikacja graficzna dla systemu Windows: w tym przypadku widokiem jest okno systemu Windows
- aplikacja internetowa: w tym przypadku widokiem jest strona HTML
- ...
Napiszemy różne wersje tej aplikacji:
- wersja ASPNET zawierająca jeden formularz i zbudowana w architekturze jednowarstwowej.
- wersja identyczna z poprzednią, ale z rozszerzeniami Ajax
- 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.
- wersja 4 ASP.NET z wieloma widokami i jedną stroną, oparta na trójwarstwowej architekturze wersji 3.
- część serwerową aplikacji klient-serwer, w której serwer jest zaimplementowany jako usługa internetowa oparta na architekturze warstwowej z wersji 3.
- część kliencką poprzedniej aplikacji klient-serwer, zaimplementowaną przez warstwę ASP.NET.
- wersja 7 ASP.NET z wieloma widokami i wieloma stronami, oparta na trójwarstwowej architekturze wersji 3.
- wersja 8 ASP.NET z wieloma widokami i wieloma stronami, będąca częścią kliencką serwisu internetowego z wersji 5.
- 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.
- 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:
- Programowanie ASP.NET [Tworzenie aplikacji internetowych z wykorzystaniem ASP.NET 1.1 (2004)];
- Język C# 2008: [Nauka języka C# w wersji 3.0 z wykorzystaniem platformy .NET 3.5 (2008)]: klasy, interfejsy, dziedziczenie, polimorfizm
- [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].
- [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.
