Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source

Procédure pas à pas : organisation d'une application à l'aide de zones

Le modèle MVC sépare la logique (de données) de modèle d'une application de sa logique de présentation et de sa logique métier. Dans ASP.NET MVC, cette séparation logique est également implémentée physiquement dans la structure de projet, où les contrôleurs et les vues sont conservés dans des dossiers qui utilisent des conventions d'affectation de noms pour définir des relations. Cette structure répond aux besoins de la plupart des applications Web.

Toutefois, certaines applications peuvent comporter un grand nombre de contrôleurs et chaque contrôleur peut être associé à plusieurs affichages. Pour ces types d'applications, la structure de projet ASP.NET MVC par défaut peut devenir complexe.

Pour permettre la prise en charge des grands projets, ASP.NET MVC offre un moyen de partitionner les applications Web en unités plus petites, appelées zones. Les zones permettent de diviser une grande application Web MVC en regroupements fonctionnels plus petits. Une zone est en réalité une structure MVC incluse dans une autre application. Une application peut contenir plusieurs structures MVC (zones).

Par exemple, une application de commerce électronique peut être divisée en zones représentant la vitrine en ligne, les analyses de produits, l'administration des comptes d'utilisateurs et le système d'achat. Chaque zone représente une fonction séparée de l'ensemble de l'application.

Cette procédure pas à pas explique comment implémenter des zones dans une application ASP.NET MVC. La procédure pas à pas crée l'infrastructure fonctionnelle pour un blog qui inclut les zones suivantes :

  • Principal. Il s'agit du point d'entrée dans l'application Web. Cette zone inclut la page d'arrivée et une fonctionnalité de connexion.

  • Blog. Cette zone est utilisée pour l'affichage de publications de blog et la recherche dans l'archive.

  • Tableau de bord. Cette zone est utilisée pour créer et modifier des publications de blog.

Pour plus de simplicité, les zones de ce didacticiel n'incluent pas de logique permettant d'effectuer les tâches réelles pour le blog.

Un projet Visual Studio contenant du code source est disponible pour accompagner cette rubrique : Télécharger.

Pour exécuter cette procédure pas à pas, vous avez besoin des éléments suivants :

  • Microsoft Visual Studio 2008 Service Pack 1 ou Visual Web Developer 2008 Express Edition Service Pack 1, ou version ultérieure.

  • Infrastructure ASP.NET MVC 2. Si vous avez installé Visual Studio 2010, ASP.NET MVC 2 est déjà installé sur votre ordinateur. Pour télécharger la version la plus récente de l'infrastructure, consultez la page de téléchargement d'ASP.NET MVC.

Cette procédure considère que vous connaissez déjà ASP.NET MVC. Pour plus d'informations, consultez ASP.NET MVC 2.

Commencez par créer un projet ASP.NET MVC et par ajouter la structure de dossiers pour deux zones enfant (Blog et Tableau de bord).

Pour créer la structure de l'application

  1. Dans le menu Fichier de Visual Studio, cliquez sur Nouveau projet.

  2. Dans la fenêtre Types de projets, développez le nœud Visual Basic ou le nœud Visual C#, puis sélectionnez le nœud Web.

  3. Dans la fenêtre Modèles, sélectionnez Application Web ASP.NET MVC 2.

  4. Nommez le projet MvcAreasApplication, définissez un emplacement pour le projet, puis activez la case à cocher Créer le répertoire pour la solution.

  5. Cliquez sur OK.

  6. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet, cliquez sur Ajouter, puis sur Zone.

  7. Dans Nom de la zone, entrez Blog, puis cliquez sur Ajouter.

    Un dossier Zones est ajouté au projet. Le dossier Zones contient une structure de dossiers qui permet à chaque zone enfant d'avoir ses propres modèles, vues et contrôleurs.

  8. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le nom du projet, cliquez sur Ajouter, puis sur Zone.

  9. Dans Nom de la zone, entrez Tableau de bord, puis cliquez sur Ajouter.

    Lorsque vous avez terminé, le dossier Zones contient deux zones enfants, Blog et Tableau de bord.

À présent, vous allez ajouter des contrôleurs activés par la zone et des méthodes d'action pour chaque zone.

Pour ajouter des contrôleurs de zone

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit de la souris sur le sous-dossier Contrôleurs pour la zone Blog, cliquez sur Ajouter, puis sur Contrôleur.

  2. Attribuez au contrôleur le nom BlogController et cliquez sur Ajouter.

  3. Ajoutez le code suivant à la classe BlogController.

    Ce code crée deux méthodes d'action : ShowRecent et ShowArchive. Pour plus de simplicité, les méthodes d'action de ce didacticiel n'incluent pas de logique permettant d'effectuer des tâches spécifiques.

  4. Dans la zone Dashboard, cliquez avec le bouton droit de la souris sur le sous-dossier Contrôleurs, cliquez sur Ajouter, puis sur Contrôleur.

  5. Attribuez au contrôleur le nom DashboardController et cliquez sur Ajouter.

  6. Ajoutez le code suivant à la classe DashboardController.

    Ce code crée deux méthodes d'action : AddPost et EditPost. Pour plus de simplicité, les méthodes d'action de ce didacticiel n'incluent pas de logique permettant d'effectuer des tâches spécifiques.

Ensuite, vous allez ajouter des affichages activés par la zone pour chaque méthode d'action.

Pour ajouter des affichages de zone

  1. Ouvrez la classe BlogController, cliquez avec le bouton droit sur la méthode d'action ShowRecent, cliquez sur Ajouter une vue, puis sur Ajouter.

  2. Dans l'affichage ShowRecent, ajoutez la balise suivante au contenu de page après l'en-tête :

    <p><%= Html.ActionLink("Show Archive", "ShowArchive") %></p>
    

    Cette balise crée un lien vers la méthode d'action ShowArchive que vous avez préalablement créée.

  3. Cliquez avec le bouton droit de la souris dans la méthode ShowArchive, cliquez sur Ajouter un affichage, puis sur Ajouter.

  4. Dans l'affichage ShowArchive, ajoutez la balise suivante au contenu de page après l'en-tête :

    <p><%= Html.ActionLink("Show Recent", "ShowRecent") %></p>
    
  5. Ouvrez la classe DashboardController, cliquez avec le bouton droit sur la méthode d'action AddPost, cliquez sur Ajouter une vue, puis sur Ajouter.

  6. Dans l'affichage AddPost, ajoutez la balise suivante au contenu de page après l'en-tête :

    <p><%= Html.ActionLink("Edit Post", "EditPost") %></p>
    
  7. Cliquez avec le bouton droit de la souris dans la méthode EditPost, cliquez sur Ajouter un affichage, puis sur Ajouter.

  8. Dans l'affichage EditPost, ajoutez la balise suivante au contenu de page après l'en-tête :

    <p><%= Html.ActionLink("Add Post", "AddPost") %></p>
    

Lorsque vous ajoutez une zone à un projet, un itinéraire est défini pour la zone dans un fichier AreaRegistration. L'itinéraire envoie des demandes à la zone en fonction de l'URL de requête. Pour inscrire des itinéraires pour les zones, ajoutez du code au fichier Global.asax, qui recherche automatiquement les itinéraires de la zone dans le fichier AreaRegistration.

Pour enregistrer des itinéraires de zone

  1. Dans l'Explorateur de solutions, ouvrez le fichier Global.asax du projet.

  2. Insérez le code suivant dans la méthode Application_Start :

    AreaRegistration.RegisterAllAreas();
    

    AreaRegistration.RegisterAllAreas()
    

    Ce code appelle les méthodes d'inscription d'itinéraire pour chaque zone enfant.

Dans une application de zone ASP.NET MVC, vous pouvez créer un lien dans une zone comme vous le faites dans les autres applications MVC. Par exemple, vous pouvez appeler la méthode ActionLink ou toute autre routine qui prend un nom de contrôleur ou d'action (telle que la méthode RedirectToAction).

Toutefois, pour générer un lien vers une autre zone, vous devez explicitement passer le nom de la zone cible dans le paramètre routeValues pour ces méthodes. Par exemple, la balise suivante présente un lien vers la méthode d'action ShowBlog de la classe BlogController. Cet appel n'identifie pas de zone spécifique.

<%= Html.ActionLink("Show Blog", "ShowBlog", "Blog") %>

Le lien fonctionnera alors normalement, partout dans la zone Blog. Toutefois, si le lien précédent est ajouté à une vue dans la zone Dashboard, il échouera. Cela est dû au fait que l'infrastructure ASP.NET MVC ne parvient pas à trouver la classe BlogController dans la zone Dashboard.

L'exemple suivant explique comment créer un lien qui identifie la zone dans un objet anonyme passé dans le paramètre routeValues. Cet exemple est présenté à titre d'explication. Ne l'ajoutez pas à votre projet.

<%= Html.ActionLink("Show Blog", "ShowBlog", "Blog", new { area = "blog" }, null) %>
RemarqueRemarque :

Le dernier paramètre null (Nothing en Visual Basic) n'est requis que parce que les surcharges de la méthode ActionLink qui disposent d'un paramètre routeValues, disposent également d'un paramètre htmlAttributes. Toutefois, ce paramètre n'est pas requis afin de pouvoir définir des liens entre les zones.

Ajout de contenu au projet principal

Lorsque vous avez créé la solution Visual Studio pour cette procédure pas à pas, le modèle de solution a inclus un affichage maître faisant office de point d'entrée de l'application. Dans cette section de la procédure pas à pas, vous ajouterez des onglets à l'affichage maître qui établit un lien vers les zones enfant. Vous ajouterez également le code pour afficher les informations de diagnostic, notamment le nom du contrôleur, de la méthode d'action et de la zone qui a généré l'affichage actuel.

Pour ajouter du contenu au projet principal

  1. Ouvrez l'affichage maître (Affichages\Partagé\Site.Master).

  2. Insérez le code suivant directement après l'élément <asp:ContentPlaceHolder ID="MainContent" runat="server" />.

    Ce code ajoute des informations de diagnostic aux affichages.

  3. Dans le même fichier, recherchez l'élément <ul id="menu"> et remplacez l'intégralité de celui-ci par le code suivant :

    Ce code ajoute des onglets définissant des liens entre les zones.

À présent, vous pouvez générer et tester l'application.

Pour générer et exécuter l'application

  1. Appuyez sur CTRL+F5 pour générer la solution et exécuter l'application.

    La page d'accueil du modèle MVC par défaut s'affiche dans le navigateur. La page affiche le contrôleur actuel (Home), l'action qui a généré la page (Index) et la zone actuelle, qui est vide et qui indique la zone principale.

  2. Cliquez sur l'onglet Blog.

    La page ShowBlog s'affiche. La page ShowBlog contient un lien vers la page ShowArchive. Le contrôleur actuel est remplacé par Blog. L'action est ShowBlog et la zone est blog.

  3. Cliquez sur Afficher l'archive.

    Notez que le contrôleur et la zone restent les mêmes, mais que l'action est désormais ShowArchive.

  4. Cliquez sur l'onglet Tableau de bord.

    La page AddPost s'affiche. La page AddPost contient un lien vers la page EditPost. Le contrôleur est maintenant Dashboard, l'action est AddPost et la zone est dashboard.

  5. Continuez à naviguer sur le site Web et notez les changements du contrôleur, de l'action et de la zone.

Autres ressources

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2015 Microsoft