ASP.NET MVC-Tutorial für Anfänger: Was ist, Architektur

⚡ Intelligente Zusammenfassung

ASP.NET MVC ist die Open-Source-Plattform. Microsoft Ein Framework, das eine Webanwendung in Model-, View- und Controller-Schichten unterteilt und Entwicklern die volle Kontrolle über HTML, testbaren Code, sauberes Routing und eine schlanke Alternative zu klassischen Web Forms bietet.

  • ArchiStruktur: Das Model enthält Domänendaten, die View rendert die Benutzeroberfläche mit Razor, und der Controller vermittelt zwischen den beiden.
  • Warum MVC? Es behebt den ViewState- und Performance-Overhead von Web Forms und ermöglicht sauberes Routing sowie testgetriebene Entwicklung.
  • 🔀 Routing: Routenbasiert URLs ordnet eingehende Anfragen Controller-Aktionen zu und ersetzt dateibasierte .aspx-Dateien. URLs mit SEO-freundlichen Pfaden.
  • 🧪 Testbarkeit: Controller und Model können isoliert voneinander getestet werden, da Views keine Geschäftslogik enthalten.
  • Vergleich von Webformularen: Web Forms verwendet ereignisgesteuerte Serversteuerelemente; MVC verwendet anforderungsgesteuerte Aktionen mit manueller Zustandsverwaltung.
  • Best Practice: Die Geschäftslogik sollte im Model verbleiben, die Controller schlank gehalten und partielle Views oder Layouts zur Wiederverwendung von Markup verwendet werden.

ASP.NET MVC-Tutorial

Was ist ASP.NET MVC?

ASP.NET MVC ist ein Open-Source-Webentwicklungs-Framework von Microsoft ASP.NET MVC bietet eine Model-View-Controller-Architektur und stellt eine Alternative zu ASP.NET Web Forms für die Entwicklung von Webanwendungen dar. Es ist Bestandteil der .NET-Plattform und dient der Erstellung, Bereitstellung und Ausführung von Webanwendungen. Mithilfe von HTML, CSS und jQuery können Sie Webanwendungen und Websites entwickeln. JavaSkript usw.

Lernen Sie MVC mit diesem ASP.NET MVC-Tutorial, das alle grundlegenden Konzepte von MVC für Anfänger abdeckt:

Warum ASP.NET MVC?

Obwohl Webformulare sehr erfolgreich waren, Microsoft Gedanke an die Entwicklungping ASP.NET MVC. Das Hauptproblem bei ASP.NET webForms ist die Performance.

Kurz und Web-AnwendungEs gibt vier Hauptaspekte, die die Leistung definieren:

  • Probleme mit der Reaktionszeit
  • Problem des Unit-Tests
  • HTML-Anpassung
  • Wiederverwendbarkeit der Code-Behind-Klasse

ASP.NET MVC zeichnet sich durch die oben genannten Parameter aus.

Versionsgeschichte von MVC

ASP.NET MVC1

  • Veröffentlicht am 13. März 2009
  • Es läuft unter .NET 3.5
  • Visual Studio 2008
  • MVC-Musterarchitektur mit WebForm Engine
  • Zu den Hauptfunktionen gehören HTML und Unit Tests, Ajax-Helfer, Routing usw.

ASP.NET MVC2

  • Diese Version wurde am 10. März 2010 veröffentlicht
  • Läuft unter .NET 3.5, 4.0 und mit Microsoft Visual Studio 2008
  • Funktionen wie Vorlagenhilfen, UI-Hilfsfunktionen mit automatischem Gerüst und anpassbaren Vorlagen einbeziehen
  • Es unterstützt DataAnnotations-Attribute, um die Modellvalidierung auf Client- und Serverseite anzuwenden

ASP.NET MVC3

  • Es wurde am 13. Januar 2011 veröffentlicht
  • Läuft unter .NET 4.0 und mit Microsoft Visual Studio 2010
  • Verwendung von NuGet zur Bereitstellung von Software und ermöglicht Ihnen die Verwaltung von Abhängigkeiten auf der gesamten Plattform
  • Arbeitsumgebungen JavaSkriptunterstützung mit jQuery-Validierung und JSON-Bindung
  • Es bietet Funktionen wie die Razor-View-Engine und erweiterte Datenanmerkungsattribute für die Modellvalidierung sowohl client- als auch serverseitig.

ASP.NET MVC4

  • Diese Version wurde im August 2012 veröffentlicht
  • Es läuft auf .NET 4.0, 4.5 und mit Visual Studio 2010 und Visual Studio 2012
  • Verbesserungen an Standardprojektvorlagen
  • Bietet Funktionen wie mobile Projektvorlagen mit jQuery Mobile, Task-Unterstützung für asynchrone Controller, Bündelung, Minimierung usw.

ASP.NET MVC5

  • Veröffentlicht am 17. Oktober 2013
  • Läuft unter .NET 4.5, 4.5.1 und mit Visual Studio 2012 & Visual Studio 2013
  • Unterstützt Attributrouting in MVC

Funktionen von MVC

  • Einfache und reibungslose Testbarkeit
  • Volle Kontrolle über Ihr HTML, JavaSkript und URLs
  • Vorhandenes nutzen ASP.Netto Eigenschaften
  • Eine neue Präsentationsoption für ASP.NET
  • Eine einfachere Art, ASP.NET zu programmieren
  • Klare Trennung der Logik: Modell, Ansicht, Controller
  • Testgetriebene Entwicklung
  • Unterstützung für parallele Entwicklung

Dinge, die Sie beim Erstellen einer MVC-Anwendung beachten sollten

Hier sind einige nützliche Dinge in diesem ASP.NET MVC-Tutorial, die Sie beim Erstellen einer MVC-Anwendung beachten müssen:

  • Sie sollten sich vor Augen halten, dass ASP.NET MVC kein Ersatz für ASP.NET-Webforms-basierte Anwendungen ist.
  • Die Vorgehensweise bei der MVC-Anwendungsentwicklung muss auf der Grundlage der Anwendungsanforderungen und der von ASP.NET MVC bereitgestellten Funktionen gewählt werden, um den spezifischen Entwicklungsbedürfnissen gerecht zu werden.
  • Der Anwendungsentwicklungsprozess mit ASP.NET MVC ist komplexer als bei webformularbasierten Anwendungen.
  • Durch die Trennung der Anwendungsaufgaben ist die Wartbarkeit der Anwendung immer höher.

MVC-Architekturmuster

MVC-Architekturmuster

MVC ist ein Softwarearchitekturmuster, das dem Prinzip der Trennung von Belangen folgt. In diesem Modell werden .NET-Anwendungen in drei miteinander verbundene Teile unterteilt: Model, View und Controller.

Das Ziel des MVC-Musters besteht darin, dass jeder dieser Teile relativ isoliert entwickelt, getestet und auch kombiniert werden kann, um eine sehr robuste Anwendung zu erstellen.

Schauen wir sie uns alle im Detail an:

Models

Modellobjekte sind Teile der Anwendung, die die Logik für die Anwendung implementieren Datendomäne. Es ruft den Modellstatus ab und speichert ihn in einer Datenbank. Beispielsweise könnte ein Produktobjekt Informationen von einem abrufen Datenbank, bearbeiten Sie es. Schreiben Sie dann die Informationen zurück in die Produkttabelle im SQL-Server.

Aufrufe

Views sind die Komponenten, die zur Anzeige der Benutzeroberfläche (UI) der Anwendung verwendet werden, im MVC-Modell auch ViewModel genannt. Sie zeigen die Benutzeroberfläche der .NET MVC-Anwendung an, die aus den Modelldaten erstellt wird.

Ein typisches Beispiel wäre die Bearbeitungsansicht einer Artikeltabelle. Sie zeigt Textfelder, Popups und Kontrollkästchen basierend auf dem aktuellen Status von Produkten und Objekten an.

Controller

Controller verarbeiten die Benutzerinteraktion, arbeiten mit dem Modell und wählen eine Ansicht aus, die die Benutzeroberfläche darstellt. In einer .NET MVC-Anwendung zeigt die Ansicht lediglich Informationen an; der Controller verwaltet und reagiert auf Benutzereingaben und -interaktionen mithilfe von Aktionsfiltern in MVC.

Beispielsweise verwaltet der Controller Abfragezeichenfolgenwerte und übergibt diese Werte an das Modell.

Webformulare vs. MVC

Kenngrößen Webformulare MVC
Modell ASP.NET Web Forms folgen dem ereignisgesteuerten Entwicklungsmodell. ASP.NET MVC verwendet ein auf dem MVC-Muster basierendes Entwicklungsmodell.
Benutzt seit Gibt es seit 2002 Es wurde erstmals 2009 veröffentlicht
Unterstützung für den Ansichtsstatus ASP.NET Web Forms unterstützt ViewState für die Zustandsverwaltung auf Clientseite. .NET MVC unterstützt keinen Ansichtszustand.
URL tippe ASP.NET Web Forms ist dateibasiert. URLs. Es bedeutet, dass der Dateiname in der Datei existiert. URLs und sie müssen physisch existieren. ASP.NET MVC verfügt über routenbasierte Architekturen. URLDas bedeutet URLs, die an Controller und Aktionen weitergeleitet werden.
Syntax ASP.NET Web Forms folgen der Web Forms Syntax. ASP.NET MVC folgt der anpassbaren Syntax.
Ansichtstyp Webformular, Ansichten sind eng miteinander verknüpft Code hinter (ASPX-CS), d.h. Logik. MVC, Ansichten und Logik werden immer getrennt gehalten.
Einheitliches Erscheinungsbild Es verfügt über Masterseiten für ein einheitliches Erscheinungsbild. ASP.NET MVC verfügt über Layouts für ein einheitliches Erscheinungsbild.
Code Wiederverwendbarkeit Web Form bietet Benutzersteuerelemente für die Wiederverwendbarkeit von Code. ASP.NET MVC bietet partielle Ansichten zur Wiederverwendbarkeit von Code.
Steuerung für HTML Less Kontrolle über gerendertes HTML. Volle Kontrolle über HTML
Staatliche Verwaltung Automatische Zustandsverwaltung von Kontrollen. Manuelle Zustandsverwaltung.
TDD-Unterstützung Schwaches oder benutzerdefiniertes TDD erforderlich. Fördert und beinhaltet TDD.

Vorteile von ASP.NET MVC

  • Standardmäßig äußerst wartbare Anwendungen
  • Es ermöglicht Ihnen, jede beliebige Komponente der Anwendung zu ersetzen.
  • Bessere Unterstützung für testgetriebene Entwicklung
  • Komplexe Anwendungen sind aufgrund der Aufteilung in Modell, Ansicht und Controller leicht zu verwalten.
  • Bietet einen robusten Routing-Mechanismus mit Front-Controller-Muster
  • Bietet eine bessere Kontrolle über das Anwendungsverhalten durch Eliminierung von Ansichtsstatus und serverbasierten Formularen
  • .NET MVC-Anwendungen werden von großen Entwicklerteams und Webdesignern unterstützt.
  • Es bietet mehr Kontrolle über das Verhalten der Anwendung. Außerdem wird eine optimierte Bandbreite für Anfragen an den Server verwendet

Nachteile von ASP.NET MVC

  • Sie können keine Designseitenvorschau wie bei der .aspx-Seite sehen.
  • Sie müssen das Programm jedes Mal ausführen, um sein tatsächliches Design zu sehen.
  • Den Ablauf der Anwendung zu verstehen, kann eine Herausforderung sein
  • Die Implementierung ist ziemlich kompliziert und daher keine ideale Option für Anwendungen auf kleinem Niveau
  • Es ist schwierig, MVC für ASP.NET zu erlernen, da hierfür ein umfassendes Verständnis des MVC-Musters erforderlich ist

Bewährte Vorgehensweisen bei der Verwendung von ASP.NET MVC

  • Erstellen Sie bei großem und komplexem Code eine separate Assembly für MODEL, um unerwünschte Situationen zu vermeiden.
  • Das Modell sollte Geschäftslogik, Sitzungswartung, Validierungsteil und Datenlogikteil umfassen.
  • VIEW sollte keine Geschäftslogik und Sitzungswartung enthalten. Verwenden Sie ViewData, um auf Daten in View zuzugreifen
  • Geschäftslogik und Datenzugriff sollten niemals im Controller erfolgen.
  • Der Controller sollte nur für die Vorbereitung und Rückgabe einer Ansicht, den Aufruf des Modells, die Weiterleitung zur Aktion usw. verantwortlich sein.
  • Löschen Sie den Demo-Code aus der Anwendung, wenn Sie sie erstellen (AccountController löschen).
  • Verwenden Sie nur eine bestimmte Ansichts-Engine, um HTML-Markup aus Ihrer Ansicht zu erstellen, da es sich um eine Kombination aus HTML und Programmiercode handelt.

Häufig gestellte Fragen

Ja. GitHub Copilot kann eine Controller-Klasse mit Aktionsmethoden, Routenattributen und passenden Razor-Ansichten generieren. RevPrüfen Sie den generierten Code auf korrekte Modellbindung und Autorisierung, bevor Sie ihn dem Projekt hinzufügen.

Assistenten für maschinelles Lernen können Web Forms-Seiten Controllern und Views zuordnen, Code-Behind in Aktionsmethoden übersetzen und die Verwendung von ViewState kennzeichnen. Der Entwickler validiert weiterhin Routing, Modellbindung und jede migrierte Geschäftsregel.

ViewData ist ein Wörterbuch mit Objekten, die über Zeichenketten als Schlüssel verknüpft sind und eine Anfrage überstehen. ViewBag ist ein dynamischer Wrapper für ViewData. TempData verwendet den Sitzungsstatus und übersteht eine Weiterleitung; es dient daher zum Datenaustausch zwischen zwei aufeinanderfolgenden Anfragen.

Die Routing-Engine gleicht eine eingehende Anfrage ab URL Die Routen werden anhand der in der RouteConfig registrierten Vorlagen abgeglichen. Wenn eine Vorlage übereinstimmt, wählt MVC den Controller und die Aktion aus, bindet alle Parameter und ruft die Aktion auf, um ein ActionResult zurückzugeben.

Razor ist eine kompakte Syntax zum Einbetten von C# oder VB.NET in .cshtml- oder .vbhtml-Dateien. Es verwendet das @-Zeichen, um zwischen HTML und Code zu wechseln, sorgt für lesbare Vorlagen und kompiliert zur Laufzeit zu schnellen, stark typisierten Klassen.

Klassisches ASP.NET MVC läuft auf dem vollständigen .NET Framework und Windows ausschließlich. ASP.NET Core MVC läuft auf .NET Core. Windows, Linux und macOSEs verwendet ein einheitliches Controller-Modell mit Web-API und bietet eine integrierte Abhängigkeitsinjektion.

Verwenden Sie ASP.NET Identity oder einen externen Anbieter wie z. B. Azure AD für die Anmeldung. Kennzeichnen Sie einen Controller oder eine Aktion mit dem Attribut [Authorize], um den Zugriff einzuschränken, und verwenden Sie Rollen- oder Richtlinienparameter für feinere Regeln.

Instanziieren Sie den Controller in einer Testmethode, injizieren Sie gefälschte oder simulierte Dienste über den Konstruktor, rufen Sie die Aktion auf und stellen Sie sicher, dass das zurückgegebene ActionResult mit dem erwarteten Ansichtsnamen, Modell oder Umleitungsziel übereinstimmt.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: