MVC-Seitenlebenszyklus in einfacher Sprache erklärt

Veröffentlicht: 2021-11-26

Dieser Artikel konzentriert sich auf den Lebenszyklus der MVC-Anwendung und darauf, wie die Anwendung eine Anforderung verarbeitet, indem sie die Komponenten der Anwendung durchläuft. In einem MVC- Lebenszyklus sind zwei Lebenszyklen vorhanden . Diese beiden Lebenszyklen sind:

  • Der Anwendungslebenszyklus
  • Der Anforderungslebenszyklus.

Inhaltsverzeichnis

Anwendungslebenszyklus

Anwendungslebenszyklus bezeichnet im Allgemeinen den Zeitpunkt, zu dem der Prozess der Anwendung zu laufen beginnt. Um den MVC-Anwendungslebenszyklus zu kennzeichnen , werden der Beginn und das Ende der Anwendung markiert.

Der Anforderungslebenszyklus

Der Anforderungslebenszyklus bezeichnet die Reihe von Ereignissen, die auftreten, wenn die Anwendung eine HTTP-Anforderung verarbeitet. Das Routing ist der Einstiegspunkt für den Beginn jeder Anwendung des MVC. Wenn eine Anforderung an die ASP.NET-Plattform gestellt wird, wird die Entscheidung getroffen, wie die Anforderung über das Routingmodul verarbeitet wird. Der Begriff Modul bezeichnet Komponenten von .NET, die zum Hinzufügen von Funktionalität in den Code verwendet werden. Es liegt in der Verantwortung der Routing-Module, die eingehende URL mit den jeweiligen in der Anwendung definierten Routen abzugleichen. Jeder Route ist ein Route Handler zugeordnet, der den Eintrittspunkt in das Framework von MVC markiert.

Das Framework von MVC ist für die Verarbeitung der Konvertierung der Routendaten in Controller verantwortlich, die die Anfragen weiter bearbeiten. Sobald die Erstellung des Controllers abgeschlossen ist, besteht der nächste Schritt darin, Maßnahmen zu ergreifen. Dies erfolgt über die Komponente des Aktionsaufrufers, der eine Aktionsmethode zum Aufrufen des Controllers auswählt.

Sobald die Vorbereitung für das Aktionsergebnis abgeschlossen ist, ist der nächste Schritt die Ergebnisausführung. Für das Ergebnis aus der Ergebnisausführung wird ein Trennungsschritt erstellt. Für ein Ergebnis vom Ansichtstyp ruft die Anwendung die Ansichts-Engine auf, die die Ansicht findet und beim Rendern hilft. Wenn das Ergebnis keine Ansicht ist, wird die Aktion von selbst ausgeführt. Es ist die Ergebnisausführung, die die eigentliche Antwort auf die ursprüngliche HTTP-Anforderung generiert.

Die meisten Komponenten sind den Entwicklern bekannt, dass sie zur Verarbeitung der Anfrage verwendet werden. In den meisten Fällen wird an den Methoden und Steuerungen der Aktionen gearbeitet. Außerdem wird an unterschiedlichen Handlungsergebnissen und Sichtweisen gearbeitet. Aber es gibt auch andere Komponenten im Rahmen von MVC. Es gibt viele Fragen darüber, wie der Anfragefluss durch die verschiedenen Komponenten oder die Rolle des HTTP-Moduls und den Handler während der Verarbeitung der Anfrage ausgeführt wird. Da das MVC-Framework ein Framework der Webentwicklung ist, müssen Module des HHTP und der HTTP-Handler in der MVC-Pipeline des Frameworks vorhanden sein.

Abgesehen vom Controller und den Aktionsmethoden sind viele Komponenten im Lebenszyklus der MVC-Seite vorhanden.

UrlRoutingModul

Dies ist eine Art HTTP-Modul. Immer wenn eine Anfrage zum ersten Mal gestellt wird, wird sie durch das UrlRoutingModule abgefangen. In diesem Modul wird entschieden, ob die MVC-Anwendung die Anfrage bearbeiten soll. Das UrlRoutingModule wählt die erste übereinstimmende Route aus.

Wie wird die Anforderung über das UrlRoutingModule mit den in der MVC-Anwendung vorhandenen Routen abgeglichen?

Betrachtet man die Methode von RegisterRoutes, die von global.asax aufgerufen wird, sind die Routen zu sehen, die der RouteCollection der Routen hinzugefügt wurden. Der Aufruf der Methode erfolgt vom Event-Handler am application_start von global.asax.

Quelle

Wie sind die Routen im RouteHandler definiert?

Die Routen sind als Erweiterungsmethoden definiert, wie es in der Methode der Maproute zu sehen ist. Der Routenhandler ist allen Routen zugeordnet.

Die Methode des UrlRoutingModule ist wie folgt definiert.

Quelle

Durch die obige Erklärung kann bekannt sein, dass das UrlRoutingModule alle Routen kennt, die in der Anwendung definiert sind. Daher kann die richtige Route mit der Anforderung in der Anwendung abgeglichen werden.

Ein wichtiger Punkt, der beachtet werden muss, ist, dass das Modul UrlRoutingModule an der Auswahl der ersten passenden Route beteiligt ist. Wann immer also die Übereinstimmung erkannt wurde, stoppt der Scanvorgang. Wenn wir zusammenfassen, was in dieser Phase passiert, wird der Routenhandler über das U RLRoutingModule an die Routen angehängt.

RouteHandler

Durch die Methode der Maproute werden die Routen an die Instanzen des MvcRouteHandlers angehängt. Die Schnittstelle IRouteHandler wird durch den MvcRouteHandler implementiert.

Daher wird das Objekt des MvcRouteHandler verwendet, um eine Referenz für das Ding des MvcRouteHandler zu erhalten, das der HTTPHandler der Anwendung ist.

Die Erstellung des MvcRouteHandlers erfordert den Aufruf der Methode PostResolveRequestCache(). Diese Methode PostResolveRequestCache() kann folgendermaßen definiert werden:

Quelle

Daher treten die folgenden Ereignisse bei der Methode PostResolveRequestCache() auf.

  • Eine GetRouteData()-Methode ist in der RouteCollection-Eigenschaft vorhanden. Die Methode wird aufgerufen und durch den HttpContext geleitet.
  • Das RouteData-Objekt wird über die Methode von GetRouteData() zurückgegeben.
  • eine RouteHandler-Eigenschaft ist in den routeData enthalten, die den Handler IRouteHandler für die aktuelle Anfrage zurückgibt, dh den MvcRouteHandler.
  • Die Methode G etHttpHandler() ist mit dem verknüpft MvcRouteHandler, der eine Referenz für den MvcHandler zurückgibt.
  • Steuerelemente werden dann an die Instanz von MvcHandler delegiert.

MvcHandler

Der MvcHandler ist ein normaler Handler des HTTP. Da es sich um einen Handler des HTTP handelt, erfolgt die Implementierung der Methode ProcessRequest(). Diese Methode ProcessRequest() kann wie folgt definiert werden:

Quelle

Die Methode ProcessRequest() wird zum Aufrufen der Methode ProcessRequestInit() verwendet, wie im folgenden Bild definiert:

Quelle
Die folgenden Ereignisse treten bei der Methode ProcessRequest() auf.

  • Die ControllerFactory wird durch den Aufruf der Methode ProcessRequestInit() erstellt.
  • Die ControllerFactory erstellt den Controller.
  • Die Methode Execute() des Controllers wird aufgerufen.

ControllerFactory

Man kann beobachten, dass die ControllerFactory über die Methode ProcessRequest() abgerufen wird. Die ControllerFactory wird dann verwendet, um das Objekt des Controller-Objekts zu erstellen. Die Schnittstelle IControllerFactory wird von der Controller-Factory implementiert.

STANDARDMÄSSIG erstellt das MVC-Framework den Typ DefaultControllerFactory, wenn der ControllerBuilder zum Erstellen der ControllerFactory verwendet wird.

Die folgende Codezeile erstellt die ControllerFactory in der Methode ProcessRequestInit().

Quelle

Regler

Es wurde beobachtet, dass das Controller-Objekt in der ControllerFactory in der Methode ProcessRequest() des MvcHandler erstellt wird. Der erstellte Controller enthält die Methoden für die Aktionen, die vom Framework ausgeführt werden sollen. Immer wenn eine URL-Anfrage im Browser erfolgt, erfolgt ein Aufruf der Methode für die Aktionen. Die Controller werden so erstellt, dass es keine explizite Implementierung der Schnittstelle des IControlle gibt. Die Klasse Controller wird zum Erstellen der Controller verwendet , die mehrere Funktionen bereitstellen. Die Controller-Klasse kann eine andere Controller-Klasse erben, die als „ControllerBase“ bezeichnet wird, wie im unten gezeigten Code definiert:

Quelle

Der ActionInvoker wird verwendet, um die Methoden der Aktionen im Controller aufzurufen.

Die folgenden Ereignisse treten nach der Erstellung des Controllers durch die Controller-Factory auf:

  • Aufruf der Methode Execute() von controllerbase.
  • Die Methode ExecuteCore() wird von der als abstrakt deklarierten Methode Execute() aufgerufen und dann über die Klasse Controller definiert.
  • Der Aktionsname wird von der Klasse Controller über die Methode ExecuteCore() aus den RouteData abgerufen.
  • Die InvokeAction() der Methode ActionInvoker wird von der Methode ExecuteCore() aufgerufen.

ActionInvoker

Es dient zur Auswahl von Aktionen.

Die Klasse ActionInvoker hat einige wichtige Verantwortlichkeiten, die das Suchen einer Aktionsmethode und das anschließende Aufrufen der Aktionsmethode im Controller umfassen.

Die Ereignisse, die auftreten, wenn InvokeAction() der Methode ActionInvoker aufgerufen wird, sind:

  • Die Informationen über den Controller müssen vom ActionInvoker und der auszuführenden Aktion abgerufen werden.
  • Das Deskriptorobjekt liefert diese Informationen.
  • Der Controllername und der Aktionsname werden von der Deskriptorklasse der Aktion und des Controllers bereitgestellt.
  • Es wird die ActionMethod aufgerufen.

Aktionsergebnis

Das ActionResult ist ein Typ der abstrakten Klasse. Da es sich um eine abstrakte Methode handelt, gibt es verschiedene Implementierungen für die Methode ExecuteResult(), die von den verschiedenen Unterklassen bereitgestellt werden.

Die folgenden Ereignisse treten im ActionResult auf

  • Es erfolgt ein Aufruf der Methoden von OnActionExecuting der ActionFilters.
  • Aufruf der Methodenaktion.
  • Aufruf der Methoden OnActionExecuted Methoden von ActionFilters.
  • Es gibt eine Rückgabe des ActionResults von der ActionMethod
  • Aufruf der Methode ExecuteResult() des ActionResult.

ViewEngine

Die meisten Anwendungen verwenden ViewResult als Rückgabetyp. Eine Ansicht wird über die ViewEngine für den Client gerendert. Aus dieser Ansicht kann das HTML generiert werden. Das HTML wird aus der Ansicht durch die ViewEngine generiert.

Schlussfolgerungen

Das Verständnis der Rolle jeder Komponente in der Anwendung ist ein entscheidender Schritt. So lassen sich die Zusammenhänge zwischen den Komponenten und deren Arbeitsweise nachvollziehen. Wenn Sie ein erfahrener Entwickler werden möchten, dann ist die Beherrschung Ihrer Fähigkeiten eine Möglichkeit. Sie können sich die Online-Softwareentwicklungskurse von upGrad ansehen , die Ihnen Zertifizierungen und Expertenschulungen im Bereich der Entwicklung von Anwendungen und Software vermitteln. Der Kurs richtet sich sowohl an männliche als auch an weibliche Berufstätige und ist vom IIIT-B zertifiziert, und Sie erhalten deren Alumni-Status.

Können Sie den Seitenlebenszyklus von MVC erklären?

Wenn MVC angewendet wird, wird die Anwendung in drei Schichten unterteilt: Datenschicht oder Modell, UI oder View und Controller. Jede Schicht von MVC hat eine andere Funktion. Erstens ist die UI- oder View-Schicht die Benutzeroberfläche. Es ist die Hauptschnittstelle zwischen den Benutzern und der Anwendung. Es ist dafür verantwortlich, Benutzereingaben entgegenzunehmen und die Ergebnisse zu präsentieren. Dann wird der Controller mit allen Komponenten in der Ansichtsschicht verbunden und verarbeitet Benutzereingaben, sendet Daten an die Modellschicht und sendet das Ergebnis an den Benutzer zurück. Die Modellebene ist der Ort, an dem Daten gespeichert werden. Sie ist für die Kontrolle der Daten verantwortlich. Darüber hinaus ist eine Modellschicht auch für das Lesen und Schreiben von Daten in den Speicher verantwortlich.

Wie können wir Sitzungen in MVC aufrechterhalten?

Das ASP.NET MVC-Framework nutzt die Leistungsfähigkeit des ASP.NET-Sitzungszustands. Der Sitzungsstatus ist ein Webdienst, der in die ASP.NET-Plattform integriert ist. Es ist verantwortlich für die Pflege aller Objekte, Daten und anderer Informationen, die einer bestimmten Sitzung zugeordnet sind. Das SessionState-Objekt verwaltet die Werte des Sitzungsstatus. Es ist auch für das Füllen und Verwalten der Werte des Sitzungsobjekts verantwortlich. Das Sitzungsobjekt fungiert als Gateway zum Sitzungsstatus. Es ist eine Eigenschaft des SessionState-Objekts und dient zum Speichern und Abrufen der Werte für den Sitzungszustand.

Wie viele Arten von Filtern gibt es in MVC?

Die Filter in MVC befinden sich zwischen dem Controller und dem Modell und können verwendet werden, um Benutzereingaben zu validieren oder die Ausgabe des Modells zu ändern. Im Folgenden sind einige der Filter in MVC aufgeführt. 1. Validierungsfilter – Validierungsfilter helfen bei der Validierung von Benutzereingaben. 2. Aktionsfilter – Aktionsfilter helfen, die Ausgaben des Modells zu modifizieren. 3. Modellfilter – Modellfilter helfen, die Ausgaben des Modells zu modifizieren. 4. Ausgabefilter – Ausgabefilter werden verwendet, um die Ausgabe des Modells zu modifizieren.