ASP.Net MVC-Übersicht
Model-View-Controller ( Das MVC-Architekturmuster unterteilt eine Anwendung in drei Hauptkomponenten: Modell, Ansicht und Controller. Das ASP.NET MVC-Framework bietet einen alternativen Modus zum ASP.NET Web Forms-Modus zum Erstellen von Webanwendungen. Das ASP.NET MVC-Framework ist ein sehr testbares, leichtes Präsentationsframework, das (wie Web Forms-basierte Anwendungen) in vorhandene ASP.NET-Funktionen wie Masterseiten und mitgliedschaftsbasierte Authentifizierung integriert werden kann. Das MVC-Framework wird in der System.Web.Mvc-Assembly definiert.
MVC-Entwurfsmuster
MVC ist ein Standard-Entwurfsmuster, mit dem viele Entwickler vertraut sind. Einige Arten von Webanwendungen profitieren vom MVC-Framework. Einige Typen verwenden weiterhin das traditionelle ASP.NET-Anwendungsmuster basierend auf Web Forms und Postbacks. Andere Arten von Webanwendungen kombinieren diese beiden Methoden; die beiden Methoden schließen sich gegenseitig aus.
MVC-Framework umfasst die folgenden Komponenten:
Modell. Modellobjekte sind Anwendungskomponenten, die Anwendungsdatendomänenlogik implementieren. Typischerweise rufen Modellobjekte den Modellstatus ab und speichern ihn in einer Datenbank. Beispielsweise könnte ein Produktobjekt Informationen aus einer Datenbank abrufen, diese Informationen bearbeiten und dann die aktualisierten Informationen zurück in die Tabelle „Produkte“ in der SQL Server-Datenbank schreiben.
In kleinen Anwendungen werden Modelle häufig eher konzeptionell als tatsächlich getrennt. Wenn eine Anwendung beispielsweise nur einen Datensatz liest und ihn an eine Ansicht sendet, verfügt die Anwendung nicht über eine physische Modellschicht und zugehörige Klassen. In diesem Fall fungiert der Datensatz als Modellobjekt.
Ansehen. Ansichten sind Komponenten, die die Benutzeroberfläche (UI) der Anwendung anzeigen. Normalerweise wird diese Benutzeroberfläche mithilfe von Modelldaten erstellt. Ein Beispiel für eine Ansicht ist die Bearbeitungsansicht der Tabelle „Produkte“, in der Textfelder, Dropdown-Listen und Kontrollkästchen basierend auf dem aktuellen Status des Produktobjekts angezeigt werden.
Controller. Controller sind die Komponenten, die die Benutzerinteraktion verarbeiten, Modelle verwenden und letztendlich auswählen, welche Ansichten gerendert werden sollen, um die Benutzeroberfläche anzuzeigen. In einer MVC-Anwendung zeigen Ansichten nur Informationen an; Controller verarbeiten und reagieren auf Benutzereingaben und -interaktionen. Beispielsweise verarbeitet der Controller Abfragezeichenfolgenwerte und übergibt diese Werte an das Modell, das diese Werte möglicherweise zum Abfragen der Datenbank verwendet.
Das MVC-Muster hilft Ihnen beim Erstellen von Anwendungen, die verschiedene Aspekte der Anwendung (Eingabelogik, Geschäftslogik und UI-Logik) trennen und gleichzeitig eine lose Kopplung zwischen diesen Elementen bereitstellen. Dieses Muster gibt an, wo sich jeder Logiktyp in der Anwendung befinden soll. Die UI-Logik befindet sich in Ansichten. Die Eingangslogik befindet sich im Controller. Die Geschäftslogik befindet sich im Modell. Die Verwendung dieser Trennung hilft Ihnen, den komplexen Aufbau Ihrer Anwendung zu vereinfachen, da Sie sich so auf die Implementierung jeweils eines Aspekts Ihrer Anwendung konzentrieren können. Sie können sich beispielsweise auf Ansichten konzentrieren, die unabhängig von der Geschäftslogik sind.
Eine lose Kopplung zwischen diesen drei Hauptkomponenten einer MVC-Anwendung erleichtert auch die parallele Entwicklung. Beispielsweise kann ein Entwickler an den Ansichten arbeiten, ein zweiter Entwickler kann an der Controller-Logik arbeiten und ein dritter Entwickler kann sich auf die Geschäftslogik im Modell konzentrieren.
Unterstützung für testgetriebene Entwicklung
Die Verwendung des MVC-Musters kann nicht nur die Komplexität vereinfachen, sondern auch dafür sorgen, dass die Anwendungstests schneller funktionieren als bei denen, die auf Web Forms basieren. Das Testen von ASP.NET-Webanwendungen wird einfacher. Beispielsweise wird in einer Web Forms-basierten ASP.NET-Webanwendung eine einzelne Klasse sowohl zum Anzeigen der Ausgabe als auch zum Reagieren auf Benutzereingaben verwendet. Das Schreiben automatisierter Tests für Web Forms-basierte ASP.NET-Anwendungen kann ein komplexes Unterfangen sein, da Sie zum Testen einer einzelnen Seite die Seitenklasse, alle ihre untergeordneten Steuerelemente und andere verwandte Klassen in der Anwendung instanziieren müssen. Da zum Ausführen einer Seite so viele Klassen instanziiert werden, kann es schwierig sein, Tests zu schreiben, die sich speziell auf einen einzelnen Teil der Anwendung konzentrieren. Daher ist das Testen von Web Forms-basierten ASP.NET-Anwendungen schwieriger zu implementieren als das Testen von MVC-Anwendungen. Darüber hinaus ist zum Testen von Web Forms-basierten ASP.NET-Anwendungen ein Webserver erforderlich. Das MVC-Framework ermöglicht die Trennung von Komponenten und die starke Nutzung von Schnittstellen, sodass einzelne Komponenten getrennt vom Rest des Frameworks getestet werden können.
Wann Sie eine MVC-Anwendung erstellen sollten
Sie müssen sorgfältig abwägen, ob Sie das ASP.NET MVC-Framework oder das ASP.NET Web Forms-Modell verwenden, um Ihre Webanwendung zu implementieren . Das MVC-Framework ersetzt nicht das Web Forms-Modell; Sie können jedes Framework für Ihre Webanwendungen verwenden. (Wenn Sie bereits über Web Forms-basierte Anwendungen verfügen, funktionieren diese Anwendungen weiterhin genauso wie bisher.)
Bevor Sie sich für die Verwendung des MVC-Frameworks oder Web Forms-Modells für eine bestimmte Website entscheiden, wägen Sie bitte ab die Vorzüge jedes Ansatzes.
Das ASP.NET MVC-Framework bietet die folgenden Vorteile:
Erleichterung der Komplexität durch die Aufteilung Ihrer Anwendung in Modelle, Ansichten und Controller.
Es werden keine Ansichtsstatus- oder serverbasierten Formulare verwendet. Dadurch eignet sich das MVC-Framework besonders für Entwickler, die vollständige Kontrolle über das Anwendungsverhalten wünschen.
Es verwendet ein Front-Controller-Muster, das Webanwendungsanforderungen über einen einzigen Controller verarbeitet. Dadurch können Sie eine Anwendung entwerfen, die eine umfassende Routing-Infrastruktur unterstützt. Weitere Informationen finden Sie unter Front-Controller.
Es bietet eine bessere Unterstützung für testgetriebene Entwicklung (TDD).
Es ist ideal für Webanwendungen, die von großen Entwicklerteams unterstützt werden, sowie für Webdesigner, die eine strenge Kontrolle über das Anwendungsverhalten benötigen.
Das Web Forms-basierte Framework bietet die folgenden Vorteile:
Es unterstützt ein Ereignismodell, das den Status über HTTP beibehält, was für die Entwicklung von Geschäftsbereichen von Vorteil ist Webanwendungen. Web Forms-basierte Anwendungen stellen viele Ereignisse bereit, die in Hunderten von Serversteuerelementen unterstützt werden.
Es verwendet das Seiten-Controller-Muster, um einer einzelnen Seite Funktionalität hinzuzufügen. Weitere Informationen finden Sie unter Seitencontroller.
Es verwendet den Ansichtsstatus für serverbasierte Formulare, was die Verwaltung von Statusinformationen erleichtert.
Es ist ideal für kleine Teams von Webentwicklern und Designern, die schnell Anwendungen mit einer großen Anzahl von Komponenten entwickeln möchten.
Im Allgemeinen ist die Anwendungsentwicklung einfacher, da die Komponenten (Seitenklassen, Steuerelemente usw.) eng integriert sind und im Allgemeinen weniger Code erfordern als das MVC-Modell.
ASP.NET MVC Framework verfügt über die folgenden Funktionen:
Trennung von Anwendungsaufgaben (Eingabelogik, Geschäftslogik und UI-Logik), Testbarkeit und testgetriebene Entwicklung ( TDD). Alle Kernprotokolle im MVC-Framework basieren auf Schnittstellen und können mithilfe von Scheinobjekten getestet werden. Dabei handelt es sich um Scheinobjekte, die das Verhalten realer Objekte in der Anwendung nachahmen. Sie können Ihre Anwendung einem Unit-Test unterziehen, ohne den Controller im ASP.NET-Prozess ausführen zu müssen, was Unit-Tests schnell und flexibel macht. Sie können jedes Unit-Test-Framework verwenden, das mit dem .NET Framework kompatibel ist.
Erweiterbares und steckbares Framework. Die Komponenten des ASP.NET MVC-Frameworks sind so konzipiert, dass sie leicht ausgetauscht oder angepasst werden können. Sie können Ihre eigenen Ansichts-Engines, URL-Routing-Strategien, die Serialisierung von Aktionsmethodenparametern und andere Komponenten einbinden. Das ASP.NET MVC-Framework unterstützt auch die Verwendung von Dependency-Injection- (DI) und Inversion-of-Control-Containermodellen (IOC). Mit DI können Sie Objekte in eine Klasse einfügen, anstatt sich darauf zu verlassen, dass die Klasse das Objekt selbst erstellt. IOC gibt an, ob ein Objekt andere Objekte benötigt. Das erste Objekt sollte das zweite Objekt von einer externen Quelle wie einer Konfigurationsdatei erhalten. Auf diese Weise wird das Testen einfacher.
Umfassende Unterstützung für ASP.NET Routing, eine leistungsstarke URL-Zuordnungskomponente, mit der Sie Anwendungen mit leicht verständlichen durchsuchbaren URLs erstellen können. URLs enthalten nicht unbedingt eine Dateierweiterung und sind so konzipiert, dass sie URL-Benennungsmuster unterstützen, die sich gut für Suchmaschinenoptimierung (SEO) und Representational State Transfer (REST)-Adressierung eignen.
Unterstützt die Verwendung von Markup aus vorhandenen ASP.NET-Seiten (.aspx-Datei), Benutzersteuerungsdateien (.ascx-Datei) und Masterseiten-Markupdateien (.master-Datei) als Ansichtsvorlagen. Sie können vorhandene ASP.NET-Funktionen wie verschachtelte Masterseiten, Inline-Ausdrücke (), deklarative Serversteuerelemente, Vorlagen, Datenbindung, Lokalisierung usw. mit dem ASP.NET MVC-Framework kombinieren.
Unterstützt vorhandene ASP.NET-Funktionalität. Mit ASP.NET MVC können Sie Funktionen wie Formularauthentifizierung und Windows-Authentifizierung, URL-Autorisierung, Mitgliedschaft und Rollen, Ausgabe- und Datencache, Sitzungs- und Profilstatusverwaltung, Gesundheitsüberwachung, Konfigurationssystem und Anbieterarchitektur nutzen.
[Verwandte Empfehlungen]
1. Vertiefendes Verständnis der Unterschiede zwischen ASP.NET MVC und WebForm
2 🎜>Detaillierte Einführung ASP.NET MVC--Controller Detaillierte EinführungASP.NET MVC--AnsichtDas obige ist der detaillierte Inhalt vonWas ist ASP.NET MVC? Zusammenfassung ASP.NET MVC. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!