Cycle de vie des pages MVC expliqué en langage simple

Publié: 2021-11-26

Cet article se concentrera sur le cycle de vie de l'application MVC et sur la manière dont l'application traite une demande en passant par les composants de l'application. Deux cycles de vie sont présents dans un cycle de vie MVC . Ces deux cycles de vie sont :

  • Le cycle de vie des applications
  • Le cycle de vie de la demande.

Table des matières

Cycle de vie des applications

Le cycle de vie de l'application désigne généralement le moment auquel le processus de l'application commence à s'exécuter. Pour indiquer le cycle de vie de l'application MVC , le début et la fin de l'application sont marqués.

Le cycle de vie de la demande

Le cycle de vie de la demande désigne la série d'événements qui se produisent chaque fois que l'application traite une demande HTTP. Le routage est le point d'entrée pour commencer toute application du MVC. Lorsqu'une demande est adressée à la plate-forme ASP.NET, la décision est prise sur la manière de traiter la demande via le module de routage. Le terme module désigne les composants de .NET, qui sont utilisés pour ajouter des fonctionnalités dans le code. Il est de la responsabilité des modules de routage de faire correspondre l'URL entrante aux routes respectives définies dans l'application. Un gestionnaire de route est associé à chaque route, ce qui marque le point d'entrée dans le cadre de MVC.

Le cadre de MVC est responsable de la gestion de la conversion des données d'itinéraire en contrôleurs qui traiteront ensuite les demandes. Une fois la création du contrôleur terminée, la prochaine étape consiste à passer à l'action. Cela se fait via le composant de l'invocateur d'action, qui sélectionne une méthode d'action pour invoquer le contrôleur.

Une fois la préparation du résultat de l'action terminée, l'étape suivante est l'exécution du résultat. Une étape de séparation est créée pour le résultat de l'exécution du résultat. Pour un résultat de type vue, l'application appellera le moteur de vue, et il trouvera et aidera à rendre la vue. Si le résultat n'est pas une vue, l'exécution de l'action se fera d'elle-même. C'est l'exécution du résultat qui génère la réponse réelle à la requête HTTP d'origine.

La plupart des composants sont connus des développeurs qu'ils sont utilisés pour traiter la demande. Dans la plupart des cas, les méthodes et les contrôleurs liés aux actions sont en cours d'élaboration. En outre, différents résultats d'action et points de vue sont en cours d'élaboration. Mais il existe également d'autres composants dans le cadre de MVC. Il peut y avoir de nombreuses questions dans l'esprit sur la façon dont le flux de demandes est effectué via les différents composants ou le rôle du module HTTP et le gestionnaire lors du traitement de la demande. Le framework MVC étant un framework de développement web, il doit y avoir des modules du HHTP et des gestionnaires HTTP dans le pipeline MVC du framework.

De nombreux composants sont présents dans le cycle de vie de la page MVC , mis à part le Controller et les méthodes d'action.

UrlRoutingModuleUrlRoutingModule

Il s'agit d'un type de module HTTP. Chaque fois qu'une demande est faite pour la première fois, elle est interceptée via UrlRoutingModule. Dans ce module, il est décidé si l'application MVC doit gérer la requête. Le UrlRoutingModule sélectionne la première route qui correspond.

Comment la requête est-elle mise en correspondance avec les routes présentes dans l'application MVC via UrlRoutingModule ?

En regardant la méthode de RegisterRoutes, qui est appelée depuis global.asax, les routes ajoutées à la RouteCollection des routes peuvent être vues. L'appel de la méthode est effectué à partir du gestionnaire d'événements à l'application_start de global.asax.

La source

Comment les routes sont-elles définies dans le RouteHandler ?

Les routes sont définies comme des méthodes d'extension, comme on a pu le voir dans la méthode de la maproute. Le gestionnaire de route est associé à toutes les routes.

La méthode du UrlRoutingModule est définie de la manière suivante.

La source

Grâce à l'explication ci-dessus, on peut savoir que UrlRoutingModule connaît toutes les routes définies dans l'application. Par conséquent, l'itinéraire correct peut être mis en correspondance avec la demande dans l'application.

Un point important à noter est que le module UrlRoutingModule est impliqué dans la sélection de la première route correspondante. Ainsi, chaque fois que la correspondance a été détectée, le processus de numérisation s'arrête. Si nous résumons ce qui se passe à ce stade, le gestionnaire de route est attaché aux routes via le U RLRoutingModule.

RouteHandler

Grâce à la méthode de maproute, les routes sont attachées aux instances de MvcRouteHandler. L'interface IRouteHandler est implémentée via MvcRouteHandler.

Par conséquent, l'objet du MvcRouteHandler est utilisé pour obtenir une référence pour la chose du MvcRouteHandler qui est le HTTPHandler de l'application.

La création du MvcRouteHandler, nécessite l'appel de la méthode PostResolveRequestCache(). Cette méthode PostResolveRequestCache() peut être définie de la manière suivante :

La source

Par conséquent, les événements suivants se produisent au niveau de la méthode PostResolveRequestCache().

  • Une méthode GetRouteData() est présente dans la propriété RouteCollection. La méthode est appelée et transmise via le HttpContext.
  • L'objet RouteData est renvoyé via la méthode GetRouteData().
  • une propriété RouteHandler est contenue dans la routeData qui renvoie le gestionnaire IRouteHandler pour la demande, qui est en cours, c'est-à-dire le MvcRouteHandler.
  • La méthode G etHttpHandler() est associée à la MvcRouteHandler qui renvoie une référence pour le MvcHandler.
  • Les contrôles sont ensuite délégués à l'instance de MvcHandler.

MvcHandler

Le MvcHandler est un gestionnaire normal de HTTP. Comme il s'agit d'un gestionnaire du HTTP, l'implémentation de la méthode ProcessRequest() est effectuée. Cette méthode ProcessRequest() peut être définie comme :

La source

La méthode ProcessRequest() est utilisée pour appeler la méthode ProcessRequestInit() comme défini dans l'image ci-dessous :

La source
Les événements suivants se produisent au niveau de la méthode ProcessRequest().

  • La ControllerFactory est créée par l'appel de la méthode ProcessRequestInit().
  • La ControllerFactory crée le Controller.
  • La méthode Execute() du Controller est appelée.

ContrôleurUsine

On peut observer que la ControllerFactory est obtenue via la méthode ProcessRequest(). La ControllerFactory est ensuite utilisée pour créer l'objet de l'objet Controller. L'interface IControllerFactory est implémentée par la fabrique du contrôleur.

PAR DÉFAUT, le framework MVC crée le type DefaultControllerFactory lorsque le ControllerBuilder est utilisé pour créer la ControllerFactory.

La ligne de code suivante crée la ControllerFactory dans la méthode ProcessRequestInit().

La source

Manette

Il a été observé que l'objet Controller est créé dans la ControllerFactory dans la méthode ProcessRequest() du MvcHandler. Le contrôleur créé contient les méthodes pour les actions qui doivent être prises par le framework. Chaque fois qu'une requête d'URL est faite dans le navigateur, il y a un appel de la méthode pour les actions. Les contrôleurs sont créés de sorte qu'il n'y ait pas d'implémentation explicite de l'interface de IControlle. La classe Controller est utilisée pour créer les contrôleurs qui fournissent plusieurs fonctionnalités. La classe de Controller peut hériter d'une autre classe de Controller appelée "ControllerBase" comme défini dans le code ci-dessous :

La source

L'ActionInvoker est utilisé pour appeler les méthodes des actions dans le Controller.

Les événements suivants se produisent après la création du contrôleur via la fabrique de contrôleur :

  • Appel de la méthode Execute() de controllerbase.
  • La méthode ExecuteCore() est appelée par la méthode Execute() qui est déclarée abstraite et est ensuite définie via la classe Controller.
  • Le nom de l'action est récupéré à partir de RouteData via la méthode ExecuteCore() par la classe Controller.
  • La méthode InvokeAction() d'ActionInvoker est appelée par la méthode ExecuteCore().

Invocateur d'action

Il est utilisé pour la sélection des actions.

La classe ActionInvoker a des responsabilités importantes qui incluent la recherche d'une méthode d'action, puis l'appel de la méthode d'action dans le contrôleur.

Les événements qui se produisent lorsque la méthode InvokeAction() d'ActionInvoker est appelée sont :

  • Les informations concernant le contrôleur doivent être obtenues par l'ActionInvoker et l'action qui est nécessaire pour effectuer.
  • L'objet descripteur fournit cette information.
  • Le nom du contrôleur et le nom de l'action sont fournis par la classe de descripteur de l'action et du contrôleur.
  • Il invoque ActionMethod .

ActionRésultat

L'ActionResult est un type de la classe abstraite. Étant une méthode abstraite, il existe différentes implémentations pour la méthode ExecuteResult() fournies par les différentes sous-classes.

Les événements suivants se produisent dans ActionResult

  • Il y a une invocation des méthodes de OnActionExecuting des ActionFilters.
  • Invocation de l'action de méthode.
  • Invocation des méthodes OnActionExecuted des méthodes ActionFilters.
  • Il y a un retour de l'ActionResult de l'ActionMethod
  • Appel de la méthode ExecuteResult() de l'ActionResult.

AfficherMoteur

La plupart des applications utilisent ViewResult comme type de retour. Une vue est rendue par le ViewEngine au client. A partir de cette vue, le HTML peut être généré. Le HTML est généré à partir de la vue via le ViewEngine.

conclusion

Comprendre le rôle de chaque composant dans l'application est une étape cruciale. De cette façon, les liens entre les composants et leur mode de fonctionnement peuvent être compris. Si vous voulez être un développeur expérimenté, maîtriser vos compétences est un moyen. Vous pouvez consulter les cours de génie logiciel en ligne d' upGrad qui vous donneront une certification et une formation d'expert dans le domaine du développement d'applications et de logiciels. Le cours est conçu pour les professionnels masculins et féminins et est certifié par l'IIIT-B, et vous obtiendrez leur statut d'ancien.

Pouvez-vous expliquer le cycle de vie des pages de MVC ?

Lorsque MVC est appliqué, l'application est divisée en trois couches : couche de données ou modèle, interface utilisateur ou vue et contrôleur. Chaque couche de MVC a une fonction différente. Premièrement, la couche UI ou View est l'interface utilisateur. C'est l'interface principale entre les utilisateurs et l'application. Il est chargé de recevoir les commentaires des utilisateurs et de présenter les résultats. Ensuite, le contrôleur est connecté à tous les composants de la couche de vue et traite les entrées de l'utilisateur, envoie les données à la couche de modèle et renvoie le résultat à l'utilisateur. La couche modèle est l'endroit où les données sont stockées. Il est responsable du contrôle des données. De plus, une couche de modèle est également responsable de la lecture et de l'écriture des données dans le stockage.

Comment pouvons-nous maintenir des sessions dans MVC ?

Le framework ASP.NET MVC utilise la puissance de l'état de session ASP.NET. L'état de session est un service Web intégré à la plate-forme ASP.NET. Il est responsable de la maintenance de tous les objets, données et autres informations associés à une session donnée. L'objet SessionState conserve les valeurs de l'état de la session. Il est également responsable du remplissage et de la maintenance des valeurs de l'objet Session. L'objet Session agit comme la passerelle vers l'état de la session. C'est une propriété de l'objet SessionState et c'est ce qui est utilisé pour stocker et récupérer les valeurs de l'état de la session.

Combien de types de filtres existe-t-il dans MVC ?

Les filtres dans MVC sont ceux qui se situent entre le contrôleur et le modèle et peuvent être utilisés pour valider l'entrée de l'utilisateur ou modifier la sortie du modèle. Voici quelques-uns des filtres dans MVC. 1. Filtres de validation - Les filtres de validation aident à valider l'entrée de l'utilisateur. 2. Filtres d'action - Les filtres d'action permettent de modifier les sorties du modèle. 3. Filtres de modèle - Les filtres de modèle aident à modifier les sorties du modèle. 4. Filtres de sortie - Les filtres de sortie sont utilisés pour modifier la sortie du modèle.