Developpez.com - Microsoft DotNET
X

Choisissez d'abord la catégorieensuite la rubrique :


Comprendre le processus d'exécution des applications MVC

Date de publication : mai 2009

Par Philippe Vialatte (Traduction) (ma page DVP) (Blog)
 

Apprenez comment le Framework ASP.NET MVC traite une requête étape par étape.

               Version PDF (Miroir)   Version hors-ligne (Miroir)

Traduction
Comprendre le processus d'exécution de l'application MVC


Traduction

Cet article est la traduction la plus fidèle possible de l'article original : en  Understanding the ASP.NET MVC Execution Process


Comprendre le processus d'exécution de l'application MVC

Les requêtes envoyées à une application Web basée sur ASP.NET MVC passent d'abord dans l'objet UrlRoutingModule, qui est un module HTTP. Ce module analyse la requête et effectue une sélection sur la route. L'objet UrlRoutingModule sélectionne la première route qui correspond à la demande actuelle. (Un objet route est une classe qui implémente RouteBase, et est généralement une instance de la classe Route). Si aucune route ne correspond, l'objet UrlRoutingModule ne fait rien et laisse la demande retourner au système de traitement standard des demandes d'ASP.NET ou d'IIS.

L'objet UrlRoutingModule obtient depuis l'objet Route l'objet IRouteHandler qui est associé à l'objet Route. Généralement, dans une application MVC, ce sera une instance de MvcRouteHandler. L'instance de IRouteHandler crée un objet IHttpHandler et le passe à l'objet IHttpContext. Par défaut, l'instance de IHttpHandler pour MVC est l'objet MvcHandler. L'objet MvcHandler sélectionne le contrôleur qui, à terme, traitera la demande.

info Quand une application Web ASP.NET MVC s'exécute dans IIS 7.0, aucune extension de nom de fichier n'est requise pour les projets MVC. Toutefois, dans IIS 6.0, le gestionnaire exige que l'extension .mvc soit mappée à la DLL ASP.NET ISAPI.
L'UrlRoutingModule et l'IHttpHandler sont les points d'entrée du Framework ASP.NET MVC. Ils exécutent les actions suivantes :

Le tableau suivant présente les étapes de l'exécution d'un projet Web MVC.

Étape Détails
Réception de la première requête de l'application Dans le fichier Global.asax, les objets Route sont ajoutés à l'objet RouteTable.
Effectuer le routage Le module UrlRoutingModule utilise le premier objet Route correspondant à la requête dans la collection RouteTable pour créer un objet RouteData, qu'il utilise ensuite pour créer un objet RequestContext (IHttpContext) objet.
Créer un gestionnaire de requête (request handler) MVC Le module MvcRouteHandler crée une instance de la classe MvcHandler, et lui transmet l'instance de RequestContext.
Créer un contrôleur L'objet MvcHandler utilise l'instance de RequestContext pour identifier l'objet IControllerFactory (généralement une instance de la classe DefaultControllerFactory) pour créer une instance de contrôleur.
Exécuter un contrôleur L'instance de MvcHandler appelle la méthode Execute du contrôleur.
Invoquer une Action La plupart des contrôleurs héritent de la classe de base de Controller. Pour les contrôleurs pour lesquels c'est le cas, l'objet ControllerActionInvoker qui est associé au contrôleur détermine quelle méthode d'action de la classe du contrôleur appeler, puis appelle la méthode.
Exécuter une fonction résultat Une action typique de la méthode peut recevoir des entrées de l'utilisateur, préparer les données appropriées pour le contenu de la réponse, puis exécuter le résultat, en renvoyant un type Result. Les types de base de résultat qui peuvent être exécutés sont les suivants : ViewResult (qui rend une vue et qui est le type résultat le plus souvent utilisé), RedirectToRouteResult, RedirectResult, ContentResult, JsonResult et EmptyResult.


               Version PDF (Miroir)   Version hors-ligne (Miroir)

Valid XHTML 1.1!Valid CSS!

Copyright © 2009 Equipe dotnet. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.

Responsable bénévole de la rubrique Microsoft DotNET : Hinault Romaric -