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

Vue d'ensemble d'ASP.NET MVC

Le modèle architectural MVC (Model-View-Controller) sépare une application en trois composants principaux : le modèle, la vue et le contrôleur. L'infrastructure ASP.NET MVC offre une alternative au modèle Web Forms ASP.NET pour la création d'applications Web. ASP.NET MVC est une infrastructure de présentation simple et facilement testable, qui (comme celle des applications utilisant des Web Forms) est intégrée aux fonctionnalités ASP.NET existantes, telles que les pages maîtres et l'authentification basée sur appartenance. L'infrastructure MVC est définie dans l'assembly System.Web.Mvc.

Modèle de conception MVC

mvc_DesignPattern

MVC est un modèle de conception standard qui est connu par de nombreux développeurs. Certains types d'applications Web tireront parti de l'infrastructure MVC. D'autres continueront à utiliser le modèle d'application ASP.NET traditionnel qui est basé sur les Web Forms et les publications (postbacks). D'autres encore combineront les deux approches, l'une n'excluant pas l'autre.

L'infrastructure MVC inclut les composants suivants :

  • Modèles. Les objets de modèle sont les parties de l'application qui implémentent la logique du domaine de données de l'application. Souvent, ils récupèrent l'état du modèle et le stockent dans une base de données. Par exemple, un objet Product peut récupérer des informations dans une base de données, les exploiter, puis réécrire les informations mises à jour dans une table Products d'une base de données SQL Server.

    Dans les petites applications, le modèle est souvent une séparation conceptuelle plutôt qu'une séparation physique. Par exemple, si l'application sert uniquement à lire un groupe de données et à l'envoyer à la vue, elle ne comporte pas de couche de modèle physique ni de classe associée. Dans ce cas, le groupe de données joue le rôle d'un objet de modèle.

  • Vues. Les vues sont les composants qui affichent l'interface utilisateur (IU) de l'application. En général, cette interface utilisateur est créée à partir des données du modèle. Il peut s'agir par exemple d'une vue d'édition d'une table Products affichant des zones de texte, des listes déroulantes et des cases à cocher en fonction de l'état actuel d'un objet Product.

  • Contrôleurs. Les contrôleurs sont les composants qui gèrent les interventions de l'utilisateur, exploitent le modèle et finalement sélectionnent une vue permettant de restituer l'interface utilisateur. Dans une application MVC, la vue sert uniquement à afficher les informations ; le contrôleur gère les entrées et interactions de l'utilisateur, et y répond. Par exemple, il gère les valeurs de chaîne de requête et les passe au modèle, qui peut à son tour les utiliser pour interroger la base de données.

Le modèle MVC vous aide à créer des applications qui séparent les différents aspects de l'application (logique d'entrée, logique métier et logique de l'interface utilisateur) en assurant un couplage lâche entre ces éléments. Le modèle spécifie l'emplacement où chaque genre de logique doit figurer dans l'application. La logique de l'interface utilisateur appartient à la vue. La logique d'entrée appartient au contrôleur. La logique métier appartient au modèle. Cette séparation vous aide à gérer la complexité lorsque vous générez une application car elle vous permet de vous concentrer sur un aspect de l'implémentation à la fois. Par exemple, vous pouvez vous concentrer sur la vue sans dépendre de la logique métier.

Le couplage lâche entre les trois principaux composants d'une application MVC favorise également le développement en parallèle. Par exemple, un premier développeur peut se concentrer sur la vue, un deuxième sur la logique du contrôleur et un troisième sur la logique métier du modèle.

Le modèle MVC permet non seulement de gérer la complexité, mais également de simplifier le processus de test comparativement à celui d'une application Web ASP.NET basée sur des Web Forms. Par exemple, dans une application Web ASP.NET basée sur des Web Forms, une même classe est utilisée pour afficher la sortie et répondre aux interventions de l'utilisateur. L'écriture de tests automatisés pour les applications ASP.NET basées sur des Web Forms peut s'avérer complexe, car pour tester une page individuelle, vous devez instancier la classe de la page, tous ses contrôles enfants et les autres classes dépendantes dans l'application. Étant donné que de nombreuses classes sont instanciées pour exécuter la page, il peut s'avérer difficile d'écrire des tests centrés exclusivement sur des parties individuelles de l'application. Par conséquent, les tests des applications ASP.NET basées sur des Web Forms peuvent être plus complexes à implémenter que les tests d'une application MVC. En outre, les tests d'une application ASP.NET basée sur des Web Forms requièrent un serveur Web. L'infrastructure MVC dissocie les composants et utilise de façon intensive les interfaces, ce qui permet de tester des composants individuels en les isolant du reste de l'infrastructure.

Vous devez déterminer avec soin s'il convient d'implémenter une application Web à l'aide de l'infrastructure ASP.NET MVC ou du modèle Web Forms ASP.NET. L'infrastructure MVC ne remplace pas le modèle Web Forms ; vous pouvez utiliser l'une ou l'autre des infrastructures pour les applications Web. (Si certaines de vos applications sont basées sur des Web Forms, elles continuent à fonctionner exactement comme elles l'ont toujours fait.)

Avant de décider d'utiliser l'infrastructure MVC ou le modèle Web Forms pour un site Web spécifique, évaluez les avantages de chaque approche.

Avantages d'une application Web basée sur MVC

L'infrastructure ASP.NET MVC offre les avantages suivants :

  • Elle permet de gérer plus facilement la complexité en décomposant une application en modèle, vue et contrôleur.

  • Elle n'utilise pas l'état d'affichage ni les formulaires serveur. L'infrastructure MVC s'avère par conséquent idéale pour les développeurs souhaitant contrôler totalement le comportement d'une application.

  • Elle utilise un modèle de contrôleur frontal qui traite les requêtes de l'application Web par le biais d'un contrôleur unique. De cette façon, vous pouvez concevoir une application prenant en charge une infrastructure de routage complète. Pour plus d'informations, consultez Front Controller (Contrôleur frontal).

  • Elle offre une meilleure prise en charge du développement piloté par test (TDD).

  • Elle est parfaitement adaptée aux applications Web qui sont prises en charge par de grandes équipes de développeurs et aux concepteurs Web qui ont besoin d'un haut niveau de contrôle sur le comportement des applications.

Avantages d'une application Web basée sur des Web Forms

L'infrastructure basée sur des Web Forms offre les avantages suivants :

  • Elle prend en charge un modèle d'événement permettant la conservation de l'état via HTTP, mécanisme qui s'avère particulièrement utile pour le développement d'applications Web métier. L'application basée sur des Web Forms fournit des dizaines d'événements pris en charge dans des centaines de contrôles serveur.

  • Elle utilise un modèle de contrôleur de pages qui ajoute des fonctionnalités aux pages individuelles. Pour plus d'informations, consultez Page Controller (Contrôleur de pages).

  • Elle utilise l'état d'affichage et les formulaires serveur, ce qui peut faciliter la gestion des informations d'état.

  • Elle est parfaitement adaptée aux petites équipes de concepteurs et de développeurs Web qui souhaitent tirer parti des nombreux composants disponibles pour le développement rapide d'application.

  • En général, elle s'avère moins complexe pour le développement d'applications car les composants (la classe Page, les contrôles, etc.) sont étroitement intégrés et requièrent habituellement moins de code que le modèle MVC.

L'infrastructure ASP.NET MVC intègre les fonctionnalités suivantes :

  • Séparation des tâches d'application (logique d'entrée, logique métier et logique de l'interface utilisateur), testabilité et développement piloté par test (TDD). Tous les contrats de base de l'infrastructure MVC sont basés sur des interfaces et peuvent être testés à l'aide d'objets fictifs qui simulent le comportement d'objets réels de l'application. Les tests unitaires de l'application sont à la fois rapides et flexibles étant donné que vous pouvez les effectuer sans avoir à exécuter les contrôleurs dans un processus ASP.NET. Vous pouvez utiliser toute infrastructure de test unitaire compatible avec le .NET Framework.

  • Infrastructure extensible et enfichable. Les composants de l'infrastructure ASP.NET MVC sont conçus de façon à pouvoir être facilement remplacés ou personnalisés. Vous pouvez incorporer vos propres moteur d'affichage, stratégie de routage des URL et sérialisation des paramètres de méthode d'action, ainsi que d'autres composants. L'infrastructure ASP.NET MVC prend en charge également l'utilisation des modèles de conteneur Injection de Dépendance (DI, Dependency Injection) et Inversion de contrôle (IOC, Inversion of Control). L'injection de dépendance vous permet d'injecter des objets dans une classe, au lieu de faire appel à la classe pour qu'elle crée les objets eux-mêmes. L'inversion de contrôle spécifie que si un objet requiert un autre objet, le premier objet doit obtenir le deuxième à partir d'une source extérieure telle qu'un fichier de configuration. Ce processus facilite les tests.

  • Prise en charge complète du routage ASP.NET, qui est un composant de mappage d'URL puissant vous permettant de générer des applications dont les URL sont compréhensibles et peuvent faire l'objet de recherche. Les URL ne doivent pas nécessairement inclure des extensions de nom de fichier et sont conçues pour prendre en charge des modèles de dénomination d'URL adaptés à l'optimisation des moteurs de recherche (SEO, Search Engine Optimization) et à l'adressage au format REST (Representational State Transfer).

  • Prise en charge du balisage des fichiers de balisage de page ASP.NET (fichiers .aspx), de contrôle utilisateur (fichiers .ascx) et de page maître (fichiers .master) existants en tant que modèles de vue. Vous pouvez utiliser les fonctionnalités ASP.NET existantes avec l'infrastructure ASP.NET MVC, à savoir les pages maîtres imbriquées, les expressions en ligne (<%= %>), les contrôles serveur déclaratifs, les modèles, les liaisons de données, la localisation, etc.

  • Prise en charge des fonctionnalités ASP.NET existantes. ASP.NET MVC vous permet d'utiliser des fonctionnalités telles que l'authentification par formulaire et l'authentification Windows, l'autorisation d'URL, l'appartenance et les rôles, la mise en cache de sortie et de données, la gestion d'état de session et de profil, le contrôle d'état, le système de configuration et l'architecture du fournisseur.

Title

Description

Infrastructure MVC et structure de l'application

Décrit l'infrastructure et l'organisation d'une application MVC.

Fonctionnement de l'exécution d'applications MVC

Explique comment fonctionne une application MVC.

Walkthrough: Creating a Basic MVC Project with Unit Tests in Visual Studio

Montre comment créer une application MVC de base et comment ajouter des contrôleurs, des vues et des tests unitaires.

Compatibilité des pages Web Forms ASP.NET et MVC

Présente les différences entre ASP.NET MVC et les Web Forms ASP.NET.

Ajouts de la communauté

AJOUTER
Afficher: