1. Einführung
Das PDF dieses Dokuments ist |HIER| verfügbar.
Die Beispiele in diesem Dokument sind |HIER| verfügbar.
Wir möchten eine .NET-Anwendung schreiben, mit der ein Benutzer die Lohnabrechnung für Kinderbetreuer beim Verein „Maison de la petite enfance“ in einer Gemeinde simulieren kann. Wir werden uns ebenso sehr auf die Organisation des .NET-Codes der Anwendung konzentrieren wie auf den Code selbst.
Die fertige Anwendung, die wir [SimuPaie] nennen werden, wird die folgende dreistufige Struktur aufweisen:
![]() |
- Die [1-DAO]-Schicht (DAO = Data Access Object) wird den Datenzugriff übernehmen. Die Daten werden in einer Datenbank gespeichert.
- Die [2-business]-Schicht wird die Geschäftslogik der Anwendung, nämlich die Lohn- und Gehaltsabrechnung, übernehmen.
- Die [3-ui]-Schicht (ui = User Interface) übernimmt die Darstellung der Daten für den Benutzer und die Ausführung von Benutzeranfragen. Die Gesamtheit der Module, die diese Funktion ausführen, bezeichnen wir als [Application]. Sie dient als Benutzeroberfläche.
- Die drei Schichten werden durch die Verwendung von .NET-Schnittstellen voneinander unabhängig gemacht
- Die Integration der verschiedenen Schichten wird durch Spring IoC gewährleistet
Die Verarbeitung einer Client-Anfrage erfolgt in folgenden Schritten:
- Der Client sendet eine Anfrage an die Anwendung.
- Die Anwendung verarbeitet diese Anfrage. Dazu benötigt sie möglicherweise Unterstützung von der [Business]-Schicht, die ihrerseits die [DAO]-Schicht benötigt, wenn Daten mit der Datenbank ausgetauscht werden müssen. Die Anwendung erhält eine Antwort von der [Business]-Schicht.
- Auf der Grundlage dieser Antwort sendet sie die entsprechende Ansicht (= die Antwort) an den Client.
Die dem Benutzer präsentierte Oberfläche kann verschiedene Formen annehmen:
- eine Konsolenanwendung: In diesem Fall besteht die Ansicht aus einer Reihe von Textzeilen.
- eine Windows-GUI-Anwendung: In diesem Fall ist die Ansicht ein Windows-Fenster
- eine Webanwendung: In diesem Fall besteht die Ansicht aus einer HTML-Seite
- ...
Wir werden verschiedene Versionen dieser Anwendung schreiben:
- eine ASP.NET-Version, die ein einziges Formular enthält und mit einer einschichtigen Architektur erstellt wurde.
- eine Version, die mit der vorherigen identisch ist, jedoch über Ajax-Erweiterungen verfügt
- eine ASP.NET-Version, die auf einer dreischichtigen Architektur basiert, wobei die Datenzugriffsschicht mithilfe des NHibernate-Frameworks implementiert wird. Sie wird weiterhin das einzelne Formular aus Version 1 enthalten.
- eine Version 4 als ASP.NET-Multi-View-Single-Page-Anwendung mit der dreischichtigen Architektur von Version 3.
- Die serverseitige Komponente einer Client/Server-Anwendung, bei der der Server als Webdienst auf Basis der mehrschichtigen Architektur von Version 3 implementiert ist.
- Die Client-Seite der vorherigen Client/Server-Anwendung, implementiert unter Verwendung einer ASP.NET-Schicht.
- Eine Multi-View-, mehrseitige ASP.NET-Version 7 mit der dreischichtigen Architektur von Version 3.
- Eine Multi-View-, Multi-Page-ASP.NET-8-Client-Version des Webdienstes der Version 5.
- Eine Multi-View-, Multi-Page-ASP.NET-9-Version mit der dreischichtigen Architektur von Version 3, bei der die Datenzugriffsschicht mithilfe von Spring-Klassen implementiert ist, die die Verwendung des NHibernate-Frameworks erleichtern.
- Eine in FLEX implementierte Version 10, die als Client für den Webdienst der Version 5 dient.
Voraussetzungen
Auf einer Skala von [Anfänger – Mittelstufe – Fortgeschrittene] fällt dieses Dokument in die Kategorie [Mittelstufe]. Um es zu verstehen, sind verschiedene Voraussetzungen erforderlich, die in einigen der von mir verfassten Dokumente zu finden sind:
- ASP.NET-Programmierung [Webentwicklung mit ASP.NET 1.1];
- C# 2008: [C# Version 3.0 mit dem .NET Framework 3.5 lernen]: Klassen, Schnittstellen, Vererbung, Polymorphismus
- [Spring IoC], verfügbar unter [Spring IoC für .NET]. Behandelt die Grundlagen von Inversion of Control (IoC) oder Dependency Injection (DI) im Spring.NET-Framework [http://www.springframework.net].
- [Erstellen einer dreischichtigen Webanwendung mit Spring und VB.NET], verfügbar unter der URL [Erstellen einer dreischichtigen Webanwendung mit Spring.NET und VB.NET]. Dieser Kurs stellt eine vereinfachte webbasierte Anwendung zum Kauf von Produkten vor. Ihre dreischichtige Architektur implementiert das MVC-Muster.
Leseempfehlungen werden in diesem Dokument manchmal am Anfang von Absätzen angegeben. Sie beziehen sich auf die vorangegangenen Dokumente.
Tools
Die in dieser Fallstudie verwendeten Tools sind im Internet frei verfügbar. Es handelt sich um folgende:
- Visual C# 2008, Visual Web Developer Express 2008, SQL Server Express 2005, verfügbar unter der URL [http://www.microsoft.com/express/downloads/].
- Spring IoC zur Instanziierung der von der Anwendung benötigten Dienste, verfügbar unter [http://www.springframework.net/] – siehe auch [3]
- NHibernate für die DBMS-Datenzugriffsschicht [http://sourceforge.net/projects/nhibernate/]
- NUnit: [http://www.nunit.org] für Unit-Tests.
