1. Einführung
Die PDF-Datei dieses Dokuments ist verfügbar |HIER|.
Die Beispiele dieses Dokuments sind unter |HIER| verfügbar.
Wir möchten hier anhand von Beispielen die wichtigen Konzepte von ASP.NET MVC, einem Web-Framework, vorstellen.NET, das einen Rahmen für die Entwicklung von Webanwendungen nach dem MVC-Modell (Model-View-Controller) bietet.
Das Verständnis der Beispiele in diesem Dokument erfordert nur wenige Vorkenntnisse. Es sind lediglich Grundkenntnisse der Programmiersprache C# erforderlich. Diese finden Sie im Dokument „Einführung in die Programmiersprache C#“ unter URL [C# Version 3.0 lernen mit dem .NET Framework 3.5 (2008)]. Es wird eine Fallstudie angeboten, um die erworbenen Kenntnisse unter ASP.NET MVC in die Praxis umzusetzen. Dabei kommt der ORM (Objekt-Relational-Mapper) Entity Framework zum Einsatz. Dieser ORM wird im Dokument „Einführung in Entity Framework 5 – Code First“ vorgestellt, das unter URL [Einführung in Entity Framework 5 Code First anhand von Beispielen (2012)] verfügbar ist.
Die verschiedenen Beispiele dieses Dokuments stehen unter URL [HIER] in Form einer herunterladbaren Datei zip zur Verfügung.
Dieses Dokument ist in vielerlei Hinsicht unvollständig. Zur Vertiefung der Themen ASP.NET und MVC können die folgenden Quellen herangezogen werden:
- [ref1]: das Buch „Pro ASP.NET MVC 4“ von Adam Freeman, erschienen bei Apress. Es ist ein ausgezeichnetes Buch. Wäre es kostenlos und auf Französisch online verfügbar, hätte dieses Dokument keinen Grund zu existieren. Ich empfehle allen, die die Möglichkeit dazu haben, sich mithilfe dieses Buches in ASP.NET MVC einzuarbeiten. Die Quellcodes der Beispiele aus dem Buch sind kostenlos auf der URL [http://www.apress.com/9781430242369] verfügbar;
- [ref2]: der Website des Frameworks [http://www.asp.net/mvc]. Dort findet man alles, was man für das Selbststudium benötigt. Eine französische Version ist unter URL [http://dotnet.developpez.com/mvc/ ] verfügbar;
- die Website von [developpez.com], die sich mit ASP.NET und [http://dotnet.developpez.com/aspnet/ ] befasst.
Das Dokument wurde so verfasst, dass es auch ohne Computer gelesen werden kann. Daher enthält es zahlreiche Screenshots.
1.1. Die Rolle von ASP.NET und MVC in einer Webanwendung
Zunächst wollen wir ASP.NET MVC in den Kontext der Entwicklung einer Webanwendung einordnen. Meistens basiert diese auf einer mehrschichtigen Architektur wie der folgenden:
![]() |
- Die Schicht [Web] ist die Schicht, die mit dem Benutzer der Webanwendung in Kontakt steht. Dieser interagiert mit der Webanwendung über Webseiten, die in einem Browser angezeigt werden. In dieser Schicht befinden sich ASP.NET und MVC – und zwar ausschließlich in dieser Schicht;
- die Schicht [métier] implementiert die Geschäftsregeln der Anwendung, wie beispielsweise die Berechnung eines Gehalts oder einer Rechnung. Diese Schicht nutzt Daten, die vom Benutzer über die Schicht [Web] und von SGBD über die Schicht [DAO] bereitgestellt werden;
- Die Schicht [DAO] (Data Access Objects), die Schicht [ORM] (Object Relational Mapper) und der Konnektor ADO.NET verwalten den Zugriff auf die Daten der Schicht SGBD. Die Schicht [ORM] bildet eine Brücke zwischen den von der Schicht [DAO] verarbeiteten Objekten und den Zeilen und Spalten der Tabellen einer relationalen Datenbank. Weltweit werden üblicherweise zwei ORM verwendet: NET, NHibernate (http://sourceforge.net/projects/nhibernate/) und Entity Framework (http://msdn.microsoft.com/en-us/data/ef.aspx);
- die Integration der Schichten kann über einen Dependency-Injection-Container wie Spring (http://www.springframework.net/) erfolgen;
Die meisten der im Folgenden aufgeführten Beispiele verwenden nur eine einzige Schicht, nämlich die Schicht [Web]:
![]() |
Dieses Dokument endet jedoch mit der Erstellung einer mehrschichtigen Webanwendung:
![]() |
1.2. Das Entwicklungsmodell von ASP.NET MVC
ASP.NET MVC implementiert das sogenannte MVC-Architekturmodell (Model – View – Controller) wie folgt:
![]() |
Die Bearbeitung einer Kundenanfrage läuft wie folgt ab:
- Anfrage – die angeforderten URL haben die Form http://machine:port/contexte/Controlleur/Action/param1/param2/....?p1=v1&p2=v2&.... Das [Front Controller] verwendet eine Konfigurationsdatei, um die Anfrage an den richtigen Controller und die richtige Aktion innerhalb dieses Controllers weiterzuleiten. Dazu verwendet er den Pfad [Controlleur/Action] aus dem URL. Der Rest des URL und des [/param1/param2/...] besteht aus optionalen Parametern, die an die Aktion weitergeleitet werden. Das „C“ in MVC ist hier die Zeichenfolge [Front Controller, Contrôleur, Action]. Wenn der Pfad [Controlleur/Action] nicht zu einem vorhandenen Controller oder einer vorhandenen Aktion führt, antwortet der Webserver, dass die angeforderte URL nicht gefunden wurde.
- Verarbeitung
- Die ausgewählte Aktion kann die Parameter parami nutzen, die ihr von [Front Controller] übergeben wurden. Diese können aus verschiedenen Quellen stammen:
- aus dem Pfad [/param1/param2/...] des URL,
- aus den Parametern [p1=v1&p2=v2] des URL,
- aus Parametern, die der Browser mit seiner Anfrage übermittelt hat;
- Bei der Bearbeitung der Benutzeranfrage benötigt die Aktion möglicherweise die Schichten [métier] und [2b]. Sobald die Anfrage des Clients bearbeitet wurde, kann dies verschiedene Antworten auslösen. Ein klassisches Beispiel ist:
- eine Fehlerseite, wenn die Anfrage nicht korrekt verarbeitet werden konnte
- ansonsten eine Bestätigungsseite
- die Aktion fordert die Anzeige einer bestimmten Ansicht an: [3]. Diese Ansicht zeigt Daten an, die als Modell der Ansicht bezeichnet werden. Das ist das M in MVC. Die Aktion erstellt dieses Modell M [2c] und fordert eine Ansicht V auf, sich anzuzeigen [3];
- Antwort – die ausgewählte Ansicht V verwendet das von der Aktion erstellte Modell M, um die dynamischen Teile der Antwort HTML zu initialisieren, die sie an den Client senden muss, und sendet diese Antwort anschließend.
Lassen Sie uns nun den Zusammenhang zwischen der Webarchitektur MVC und der Schichtenarchitektur näher erläutern. Je nachdem, wie man das Modell definiert, stehen diese beiden Konzepte in einem Zusammenhang oder auch nicht. Nehmen wir eine einschichtige Webanwendung ASP.NET MVC:
![]() |
Wenn wir die Schicht [Web] mit ASP.NET und MVC implementieren, erhalten wir zwar eine Webarchitektur MVC, jedoch keine mehrschichtige Architektur. Hier übernimmt die Schicht [Web] alles: Darstellung, Geschäftslogik, Datenzugriff. Diese Aufgaben werden von den Aktionen ausgeführt.
Betrachten wir nun eine mehrschichtige Webarchitektur:
![]() |
Die Schicht [Web] kann ohne Framework und ohne Befolgung des Modells MVC implementiert werden. Man hat dann zwar eine mehrschichtige Architektur, aber die Webschicht implementiert das Modell MVC nicht.
Somit kann die oben genannte Schicht [Web]oben mit ASP.NET und MVC implementiert werden, und man erhält dann eine mehrschichtige Architektur mit einer Schicht [Web] vom Typ MVC. Ist dies geschehen, kann man diese Schicht ASP.NET MVC durch eine klassische Schicht ASP.NET (WebForms) ersetzen, während der Rest (Geschäftslogik, DAO, ORM) unverändert beibehalten. Man erhält somit eine Schichtenarchitektur mit einer Schicht [Web], die nicht mehr vom Typ MVC ist.
In MVC haben wir festgelegt, dass das Modell M dem der Ansicht V, c.a.d, entspricht – also der Gesamtheit der von der Ansicht V angezeigten Daten. Eine weitere Definition des Modells M von MVC lautet:
![]() |
Viele Autoren sind der Ansicht, dass das, was sich rechts von der Ebene [Web] befindet, das Modell M von MVC bildet. Um Mehrdeutigkeiten zu vermeiden, kann man sprechen von:
- vom Domänenmodell, wenn man alles bezeichnet, was rechts von der Schicht [Web] liegt
- vom Modell der Ansicht, wenn man die von einer Ansicht V angezeigten Daten bezeichnet
Im Folgenden bezeichnet der Begriff „M-Modell“ ausschließlich das Modell einer Ansicht V.
1.3. Die verwendeten Tools
Im Folgenden verwenden wir (Stand: September 2013) die Express-Versionen von Visual Studio 2012:
- [http://www.microsoft.com/visualstudio/fra/products/visual-studio-express-for-windows-desktop ] für Desktop-Anwendungen;
- [http://www.microsoft.com/visualstudio/fra/products/visual-studio-express-for-Web ] für Webanwendungen.
Zur Installation der neuesten Versionen dieser Produkte kann das Microsoft-Produkt [Web Platform Installer] (http://www.microsoft.com/Web/downloads/platform.aspx) verwendet werden.
Außerdem wird der Chrome-Browser von Google (http://www.google.fr/intl/fr/chrome/browser/) verwendet. Dazu wird die Erweiterung [Advanced Rest Client] hinzugefügt. Gehen Sie dazu wie folgt vor:
- Rufen Sie die Website von [Google Web store] (https://chrome.google.com/webstore) mit dem Chrome-Browser auf;
- suchen Sie nach der Anwendung [Advanced Rest Client]:
![]() |
- Die Anwendung steht dann zum Download bereit:
![]() |
- Um sie zu erhalten, müssen Sie ein Google-Konto erstellen. [Google Web Store] fordert anschließend die Bestätigung von [1] an:
![]() |
- In [2] ist die hinzugefügte Erweiterung in der Option [Applications] [3] verfügbar. Diese Option wird auf jedem neuen Tab angezeigt, den Sie im Browser erstellen (CTRL-T).
1.4. Beispiele
Die meisten Lernbeispiele beschränken sich ausschließlich auf die Web-Ebene:
![]() |
Nach Abschluss dieses Lernmoduls stellen wir eine mehrschichtige Webanwendung vor:
![]() |











