Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais

Infrastructure MVC et structure de l'application

Dans un site Web ASP.NET, les URL sont généralement mappées aux fichiers stockés sur le disque (qui correspondent habituellement à des fichiers .aspx). Ces fichiers .aspx incluent un balisage et du code qui sont traités pour répondre à la demande.

L'infrastructure ASP.NET MVC ne mappe pas les URL au code serveur comme une page Web Forms ASP.NET. Au lieu de mapper les URL aux gestionnaires ou aux pages ASP.NET, l'infrastructure les mappe aux classes de contrôleur. Les classes de contrôleur gèrent les demandes entrantes, telles que les entrées et interactions de l'utilisateur, et exécutent la logique d'application et de données appropriée, en fonction de ces entrées. Une classe de contrôleur appelle généralement un composant de vue séparé qui génère une sortie HTML comme réponse.

L'infrastructure ASP.NET MVC sépare les composants de modèle, de vue et de contrôleur. Le modèle représente la logique métier ou de domaine de l'application, avec des données généralement stockées par une base de données. La vue est sélectionnée par le contrôleur et restitue l'interface utilisateur appropriée. Par défaut, l'infrastructure ASP.NET MVC utilise les types de page ASP.NET (.aspx), de page maître (.master) et de contrôle utilisateur (.ascx) existants pour effectuer le rendu dans le navigateur. Le contrôleur recherche la méthode d'action appropriée dans le contrôleur, obtient des valeurs à utiliser comme arguments de la méthode d'action et gère les erreurs qui peuvent survenir lors de l'exécution de la méthode d'action. Il restitue ensuite la vue demandée. Par défaut, chaque ensemble de composants se trouve dans un dossier séparé d'un projet d'application Web MVC.

L'infrastructure ASP.NET MVC utilise le moteur de routage ASP.NET, qui permet de mapper des URL aux classes de contrôleur. Vous pouvez définir des règles de routage que l'infrastructure ASP.NET MVC utilise pour évaluer les URL entrantes et sélectionner le contrôleur approprié. Vous pouvez également faire en sorte que le moteur de routage analyse automatiquement les variables définies dans l'URL et que l'infrastructure ASP.NET MVC passe les valeurs au contrôleur en tant qu'arguments de paramètre. Pour plus d'informations, consultez ASP.NET Routing.

L'infrastructure ASP.NET MVC n'utilise pas le modèle de publication (postback) Web Forms ASP.NET pour les interactions avec le serveur. Au lieu de cela, toutes les interactions de l'utilisateur final sont routées vers une classe de contrôleur. Ce mécanisme permet de maintenir la séparation entre la logique de l'interface utilisateur et la logique métier tout en améliorant la testabilité. Par conséquent, l'état d'affichage ASP.NET et les événements de cycle de vie de page Web Forms ASP.NET ne sont pas intégrés aux vues basées sur MVC.

L'infrastructure ASP.NET MVC inclut un modèle de projet Visual Studio qui vous aide à créer des applications Web structurées pour prendre en charge le modèle MVC. Ce modèle crée une application Web MVC configurée pour inclure les dossiers, modèles d'élément et entrées de fichier de configuration requis.

RemarqueRemarque :

Les modèles de projet d'application Web ASP.NET MVC sont basés sur le modèle de projet d'application Web ASP.NET. Vous pouvez choisir un nouveau projet ASP.NET MVC en sélectionnant Nouveau projet dans le menu Fichier au lieu de sélectionner Nouveau site Web.

Lorsque vous créez une application Web MVC, Visual Studio vous permet de créer deux projets en même temps. Le premier projet est un projet Web dans lequel vous implémentez votre application. Le deuxième est un projet de test unitaire dans lequel vous pouvez écrire des tests unitaires pour les composants MVC du premier projet.

RemarqueRemarque :

Microsoft Visual Studio Standard et Microsoft Visual Web Developer Express Edition ne prennent pas en charge la création de projets de test unitaire. Par conséquent, ils ne permettent pas de créer un projet de test lors de la création d'une application MVC.

Vous pouvez utiliser toute infrastructure de tests unitaires compatible avec le .NET Framework pour tester des applications ASP.NET MVC. Visual Studio Professional inclut la prise en charge des projets de test pour MSTest. Pour plus d'informations sur MSTest, consultez Options de ligne de commande MSTest.exe.

Lorsque vous créez un projet d'application Web ASP.NET MVC, les composants MVC sont répartis dans les dossiers de projet affichés dans l'illustration suivante :

mvc_FolderStructure

Par défaut, les projets MVC incluent les dossiers suivants :

  • App_Data, qui est la base physique des données. Ce dossier a le même rôle que dans les sites Web ASP.NET qui utilisent des pages Web Forms.

  • Content, qui est l'emplacement recommandé pour l'ajout des fichiers de contenu tels que les fichiers de feuille de style en cascade, les images, etc. En général, le dossier Content est réservé aux fichiers statiques.

  • Controllers, qui est l'emplacement recommandé pour les contrôleurs. L'infrastructure MVC requiert que les noms de tous les contrôleurs se terminent par « Controller », tels que HomeController, LoginController ou ProductController.

  • Models, qui est fourni pour les classes représentant le modèle d'application de votre application Web MVC. Ce dossier inclut généralement du code définissant les objets et la logique utilisée pour l'interaction avec le magasin de données. En général, les objets de modèle réels sont placés dans des bibliothèques de classes séparées. Toutefois, lorsque vous créez une application, vous pouvez placer les classes dans ce dossier, puis les déplacer vers des bibliothèques de classes séparées ultérieurement dans le cycle de développement.

  • Scripts, qui est l'emplacement recommandé pour les fichiers de script prenant en charge l'application. Par défaut, ce dossier contient les fichiers de base ASP.NET AJAX et la bibliothèque jQuery.

  • Views, qui est l'emplacement recommandé pour les vues. Les vues utilisent les fichiers ViewPage (.aspx), ViewUserControl (.ascx) et ViewMasterPage (.master), en plus des autres fichiers liés au rendu des vues. Le dossier Views contient un dossier pour chaque contrôleur ; chaque dossier est nommé avec le préfixe du nom de contrôleur. Par exemple, si un contrôleur est nommé HomeController, le dossier Views contient un dossier appelé Home. Par défaut, lorsque l'infrastructure ASP.NET MVC charge une vue, elle recherche un fichier ViewPage (.aspx) portant le nom de vue requis dans le dossier Views\NomContrôleur. Par défaut, un dossier nommé Shared, qui ne correspond à aucun contrôleur, est également présent dans le dossier Views. Le dossier Shared est utilisé pour les vues partagées par plusieurs contrôleurs. Par exemple, vous pouvez placer la page maître de l'application Web dans le dossier Shared.

Outre les dossiers indiqués précédemment, une application Web MVC utilise le code du fichier Global.asax pour définir des valeurs par défaut de routage d'URL globales et fait appel au fichier Web.config pour configurer l'application.

Les itinéraires sont initialisés dans la méthode Application_Start du fichier Global.asax. L'exemple suivant présente un fichier Global.asax standard qui inclut la logique de routage par défaut.


public class MvcApplication : System.Web.HttpApplication
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default",                                              // Route name
            "{controller}/{action}/{id}",                           // URL with parameters
            new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
        );

    }

    protected void Application_Start()
    {
        RegisterRoutes(RouteTable.Routes);
    }
}


Ajouts de la communauté

AJOUTER
Afficher: