Markieren Sie das Kontrollkästchen Englisch, um die englische Version dieses Artikels anzuzeigen. Sie können den englischen Text auch in einem Popup-Fenster einblenden, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Übersicht über ASP.NET-MVC

Das Model View Controller-Architekturschema (MVC) trennt eine Anwendung in drei Hauptkomponenten: das Modell, die Ansicht und den Controller. Das ASP.NET-MVC-Framework stellt eine Alternative zum ASP.NET Web Forms-Schema zum Erstellen von Webanwendungen bereit. Das ASP.NET-MVC-Framework ist ein schlankes und leicht zu testendes Präsentationsframework, das (wie Web Forms-basierte Anwendungen) in vorhandene ASP.NET-Funktionen, z. B. Gestaltungsvorlagen und mitgliedschaftsbasierte Authentifizierung, integriert ist. Das MVC-Framework wird in der System.Web.Mvc-Assembly definiert.

MVC-Entwurfsschema

mvc_DesignPattern

MVC ist ein Standardentwurfsschema, mit dem viele Entwickler bereits vertraut sind. Bestimmte Arten von Webanwendungen profitieren vom MVC-Framework. Andere werden weiterhin das herkömmliche ASP.NET-Anwendungsschema verwenden, das auf Web Forms und Postbacks basiert. Andere Arten von Webanwendungen werden beide Ansätze kombinieren, da kein Ansatz den anderen ausschließt.

Das MVC-Framework beinhaltet die folgenden Komponenten:

  • Modelle. Modellobjekte sind die Teile der Anwendung, die die Logik für die Datendomäne der Anwendung implementieren. Häufig speichern und rufen Modellobjekte den Modellzustand aus einer Datenbank ab. Ein Product-Objekt kann z. B. Informationen aus einer Datenbank abrufen, diese verarbeiten und anschließend aktualisierte Informationen zurück in eine Produkttabelle in einer SQL Server-Datenbank schreiben.

    In kleinen Anwendungen ist das Modell häufig nur konzeptionell und nicht physisch von den anderen Komponenten getrennt. Wenn eine Anwendung z. B. nur ein Dataset liest und an die Ansicht sendet, verfügt die Anwendung über keine physische Modellebene und über keine zugeordneten Klassen. In diesem Fall übernimmt das Dataset die Rolle eines Modellobjekts.

  • Ansichten. Ansichten sind die Komponenten, die die Benutzeroberfläche der Anwendung anzeigen. In der Regel wird diese Benutzeroberfläche aus den Modelldaten erstellt. Ein Beispiel wäre eine Bearbeitungsansicht einer Produkttabelle, in der Textfelder, Dropdownlisten und Kontrollkästchen auf Grundlage des aktuellen Zustands eines Product-Objekts angezeigt werden.

  • Controller. Die Controller-Komponenten behandeln Benutzerinteraktionen, arbeiten mit dem Modell und wählen im letzten Schritt die Ansicht aus, mit der die Benutzeroberfläche gerendert wird. In einer MVC-Anwendung zeigt die Ansicht nur Informationen an. Der Controller übernimmt das Behandeln und das Reagieren auf Benutzereingaben und Interaktion. Der Controller behandelt z. B. Abfragezeichenfolgenwerte und leitet diese Werte an das Modell weiter, das diese Werte dann verwenden kann, um die Datenbank abzufragen.

Mithilfe des MVC-Schemas können Sie Anwendungen erstellen, in denen die verschiedenen Aspekte der Anwendung (Eingabelogik, Geschäftslogik und Benutzeroberflächen-Logik) getrennt voneinander verwaltet werden können. Zwischen diesen Elementen werden lose Verknüpfungen bereitgestellt. Das Schema gibt an, wo die verschiedenen Logikbereiche in der Anwendung gespeichert werden. Die Benutzeroberflächen-Logik ist Teil der Ansicht. Die Eingabelogik ist Teil des Controllers. Die Geschäftslogik ist Teil des Modells. Durch diese Trennung lässt sich bei der Erstellung die Komplexität einer Anwendung leichter überblicken, da Sie sich jeweils auf einen Aspekt der Implementierung konzentrieren können. Sie können z. B. unabhängig von der Geschäftslogik die Ansicht entwickeln und optimieren.

Die lose Verknüpfung zwischen den drei Hauptkomponenten einer MVC-Anwendung begünstigt auch die parallele Entwicklung. Ein Entwickler kann z. B. an der Ansicht arbeiten, ein zweiter Entwickler an der Controllerlogik, und ein dritter Entwickler kann sich auf die Geschäftslogik im Modell konzentrieren.

Zusätzlich zur Verwaltung der Komplexität erleichtert das MVC-Schema das Testen von Anwendungen im Vergleich zu Web Forms-basierten ASP.NET-Webanwendungen. In einer Web Forms-basierten ASP.NET-Webanwendung wird z. B. eine einzelne Klasse sowohl für die Anzeigeausgabe als auch für das Reagieren auf Benutzereingaben verwendet. Das Schreiben automatisierter Tests für Web Forms-basierte ASP.NET-Anwendungen kann sehr schwierig sein, da bereits zum Testen einer einzelnen Seite die Seitenklasse, alle untergeordneten Steuerelemente und zusätzliche abhängige Klassen in der Anwendung instanziiert werden müssen. Da zum Ausführen der Seite so viele Klassen instanziiert werden müssen, kann es schwierig werden, spezifische Tests für einzelne Teile der Anwendung zu schreiben. Tests für Web Forms-basierte ASP.NET-Anwendungen sind daher ggf. schwieriger zu implementieren als Tests in einer MVC-Anwendung. Darüber hinaus ist für Tests in einer Web Forms-basierten ASP.NET-Anwendung ein Webserver erforderlich. Das MVC-Framework entkoppelt die Komponenten und nutzt intensiv Schnittstellen, sodass einzelne Komponenten isoliert vom Rest des Frameworks getestet werden können.

Sie müssen sorgfältig prüfen, ob eine Webanwendung besser mit dem ASP.NET-MVC-Framework oder mit dem ASP.NET Web Forms-Modell implementiert werden kann. Das MVC-Framework ist kein Ersatz für das Web Forms-Modell. Sie können jedes der beiden Frameworks für Webanwendungen verwenden. (In der Funktionsweise vorhandener Web Forms-basierter Anwendungen gibt es keine Änderungen.)

Bevor Sie sich bei einer bestimmten Website für die Verwendung des MVC-Frameworks oder des Web Forms-Modells entscheiden, wägen Sie die Vorteile beider Ansätze gegeneinander ab.

Vorteile einer MVC-basierten Webanwendung

Die ASP.NET-MVC-Framework bietet die folgenden Vorteile:

  • Komplexe Anwendungen können leichter verwaltet werden, indem die Anwendung in die Komponenten Modell, Ansicht und Controller unterteilt wird.

  • Es verwendet keine Ansichtszustände und severbasierten Formulare. Dadurch eignet sich das MVC-Framework für Entwickler, die das Verhalten einer Anwendung präzise kontrollieren möchten.

  • Es verwendet ein Frontcontroller-Schema, das Webanwendungsanforderungen durch einen einzelnen Controller verarbeitet. Auf diese Weise können Sie im Anwendungsentwurf eine umfangreiche Routinginfrastruktur unterstützen. Weitere Informationen finden Sie unter Front Controller.

  • Es bietet eine bessere Unterstützung für die testgesteuerte Entwicklung.

  • Es eignet sich für Webanwendungen, die von großen Entwicklerteams betreut werden, und für Webdesigner, die das Anwendungsverhalten präzise kontrollieren möchten.

Vorteile einer Web Forms-basierten Webanwendung

Das Web Forms-basierte Framework bietet die folgenden Vorteile:

  • Es unterstützt ein Ereignismodell, das den Zustand über HTTP beibehält. Dies bietet Vorteile für die Entwicklung von webbasierten Geschäftsanwendungen. Die Web Forms-basierte Anwendung stellt Dutzende von Ereignissen bereit, die in Hunderten von Serversteuerelementen unterstützt werden.

  • Es verwendet ein Seitencontroller-Schema, mit dem Funktionalität für einzelne Seiten hinzugefügt wird. Weitere Informationen finden Sie unter Page Controller.

  • Es verwendet Ansichtszustände auf severbasierten Formularen. Dies kann die Verwaltung von Zustandsinformationen vereinfachen.

  • Es eignet sich gut für kleine Webentwicklerteams und für Designer, die auf die große Anzahl verfügbarer Komponenten zurückgreifen möchten, um die Anwendungsentwicklung zu beschleunigen.

  • Im Allgemeinen ist die Anwendungsentwicklung weniger komplex, da die Komponenten (die Page-Klasse, Steuerelemente usw.) stark integriert sind und normalerweise weniger Code als das MVC-Modell erfordern.

Die ASP.NET-MVC-Framework stellt die folgenden Funktionen bereit:

  • Trennung von Anwendungsaufgaben, (Eingabelogik, Geschäftslogik und Benutzeroberflächen-Logik) Prüfbarkeit und testgesteuerter Entwicklung. Alle Kernverträge im MVC-Framework sind schnittstellenbasiert und können mit Pseudoobjekten getestet werden. Dabei handelt es sich um simulierte Objekte, die das Verhalten tatsächlicher Objekte in der Anwendung imitieren. Sie können Komponententests der Anwendung schnell und flexibel durchführen, ohne die Controller in einem ASP.NET-Prozess ausführen zu müssen. Sie können jedes Komponententestframework verwenden, das mit .NET Framework kompatibel ist.

  • Ein erweiterbares und austauschbares Framework. Die Komponenten des ASP.NET-MVC-Frameworks wurden so entworfen, dass sie leicht ausgetauscht oder angepasst werden können. Sie können ein eigenes Ansichtsmodul, eigene URL-Routingrichtlinien, eine eigene Serialisierung für Aktionsmethodenparameter und andere Komponenten einbinden. Das ASP.NET-MVC-Framework unterstützt auch die Verwendung der Abhängigkeitseinfügung (Dependency Injection, DI) und die Steuerungsumkehrung bei Containermodellen (Inversion of Control, IOC). Mithilfe der Abhängigkeitseinfügung können Objekte in eine Klasse eingefügt werden. Das Objekt muss nicht von der Klasse selbst erstellt werden. IOC gibt an, dass ein Objekt ein benötigtes anderes Objekt aus einer externen Quelle, z. B. einer Konfigurationsdatei, abrufen soll. Tests werden dadurch einfacher.

  • Umfangreiche Unterstützung für ASP.NET-Routing. Mit dieser leistungsstarken Komponente für die URL-Zuordnung können Sie Anwendungen mit verständlichen und durchsuchbaren URLs erstellen. URLs müssen keine Dateinamenerweiterungen beinhalten und sind so konzipiert, dass die URL-Benennungsschemas für Suchmaschinen und REST (Representational State Transfer)-Adressierung optimiert werden können.

  • Unterstützung für das Verwenden von Markup aus vorhandenen Markupdateien für ASP.NET-Seiten (ASPX-Dateien), Benutzersteuerelemente (ASCX-Dateien) und Gestaltungsvorlagen (MASTER-Dateien) als Ansichtsvorlagen. Sie können vorhandene ASP.NET-Funktionen mit dem ASP.NET-MVC-Framework weiterverwenden, z. B. verschachtelte Gestaltungsvorlagen, Inlineausdrücke (<%= %>), deklarative Serversteuerelemente, Vorlagen, Datenbindung, Lokalisierung usw.

  • Unterstützung für vorhandene ASP.NET-Funktionen. Mit ASP.NET-MVC können Sie bereits vorhandene Funktionen weiterverwenden, z. B. Formular- und Windows-Authentifizierung, URL-Autorisierung, Mitgliedschaft und Rollen, Zwischenspeichern von Ausgaben und Daten, Sitzungs- und Profilzustandsverwaltung, Systemüberwachung, das Konfigurationssystem und die Anbieterarchitektur.

Titel

Beschreibung

MVC-Framework und -Anwendungsstruktur

Erklärt das Framework und den Aufbau einer MVC-Anwendung.

Grundlegendes zur MVC-Anwendungsausführung

Erklärt die Funktionsweise einer MVC-Anwendung.

Walkthrough: Creating a Basic MVC Project with Unit Tests in Visual Studio

Veranschaulicht, wie eine grundlegende MVC-Anwendung erstellt und Controller, Ansichten und Komponententests hinzugefügt werden.

Kompatibilität von ASP.NET-Web Forms und MVC

Erklärt, wie sich ASP.NET-MVC von ASP.NET Web Forms unterscheidet.

Community-Beiträge

HINZUFÜGEN
Anzeigen: