Comment créer une application Web modulaire en C # MVC

Scénario

Lorsqu'une application Web comporte plusieurs modules (ou sous-applications / fonctionnalités), elle a tendance à s'agrandir. Ainsi, plus vous connectez d’applications à vos applications, plus la partition et la maintenance du code deviennent complexes.

Quel est le truc pour résoudre ça?

Une solution au problème ci-dessus consiste à développer des modules d’application indépendamment, sans aucune dépendance directe entre eux et également sur le code principal de l’application. Les développeurs doivent toujours opter pour une solution modulaire, dans laquelle des modules plus grands sont facilement gérés au fil du temps, séparément. Une fois que chaque module est prêt à être intégré, il peut être branché à l’application principale avec peu d’ajustements, voire aucun.

En bref, la structure d’une application asp.net MVC complexe peut être très facilement conservée à l’aide de zones. Le concept de ceci est de nous permettre de décomposer une grande application complexe en plusieurs petites sections appelées zones.

Ces zones peuvent avoir leur propre ensemble de:
 1. modèles
 2. Vues
 3. Contrôleurs
 4. Routes

Dans cet article, nous allons développer une application ASP.NET MVC contenant des modules faiblement couplés (indépendants de l'application principale), que nous allons ensuite brancher dans l'application principale.

Avantages de cette approche

Cette approche est extrêmement utile pour le développement de produits. En utilisant cette approche, chaque module peut être développé et déployé séparément pour le produit. Cela aide à créer différentes versions du produit, telles que les versions de base, professionnelle, premium et d'entreprise. Il permet également aux développeurs de produits de créer l’isolation requise pour

ü Construisez des programmes d’installation séparés avec les fonctionnalités requises pour chaque version.

ü Une configuration principale qui ne peut installer que des fonctionnalités définies par clé de licence utilisée lors de l'installation, ou

ü Une autre configuration nécessitant la technique de séparation modulaire.

Démo pour une application modulaire

Nous allons créer ici une application Web contenant les modules suivants:

· Vente

· Achat

· Entretien

· Commercialisation

· Stock

· Importer

· Exportation

Étape 1:

Ouvrez Visual Studio 2015 et créez un projet ASP.NET MVC comme suit. Donnez-lui un nom significatif (dans mon cas, j'ai utilisé MVCPluggableDemo).

Une fois créée, votre solution devrait ressembler à ceci:

Étape 2:

Cliquez avec le bouton droit de la souris sur le dossier "Contrôleurs" et sélectionnez "Ajouter -> Contrôleur". Nommez-le HomeController, puis sélectionnez «Contrôleur MVC vide» pour le modèle:

Cliquez avec le bouton droit de la souris sur la méthode d'indexation du contrôleur et sélectionnez «Ajouter une vue». À l'aide des valeurs par défaut, créez la vue Index pour HomeController afin de constituer la page d'arrivée de l'application:

Étape 3:

Maintenant, éditez la section en surbrillance dans _Layout.cshtml (sous le dossier Views \ Shared) afin de créer des éléments de menu pointant vers les modules souhaités:

Étape 4:

Exécutez l'application et vous obtiendrez le résultat comme suit:

Nous allons maintenant nous concentrer sur la création de modules distincts pour notre application, puis les brancher sur le module principal.

Étape 5:

Cliquez avec le bouton droit sur le titre du projet principal de l'application (comme dans notre cas, MVCPluggableDemo) dans l'Explorateur de solutions et sélectionnez "Ajouter-> Zone" dans le menu contextuel. Cela créera une structure de dossier de base pour le cadre Zone. Spécifiez «Vente» comme nom de domaine et cliquez sur «Ajouter».

Ensuite, nous avons une structure de solution de dossier qui ressemble à:

Étape 6:

Effectuez une sauvegarde du fichier SaleAreaRegistration.cs. Ce fichier sera nécessaire ultérieurement lorsque nous ajouterons le module Vente à la solution en tant que projet séparé.

Supprimez maintenant le sous-dossier Sale du dossier Areas, en maintenant le dossier Areas en place.

Ajoutez ensuite le nouveau module enfichable pour «Vente», cliquez avec le bouton droit de la souris sur la solution et choisissez «Ajouter-> Nouveau projet».

· Sélectionnez une application ASP.NET MVC vide

· Nom du projet 'Vente'

· Définir l'emplacement comme “… \ MVCPluggableDemo \ MVCPluggableDemo \ Areas \”

· Un nouveau projet doit être créé dans le dossier Aires (créé précédemment).

Après cette étape, votre solution devrait ressembler à celle ci-dessous:

Lorsque nous avons enregistré le nouveau projet Sale dans le dossier Areas, il apparaît en tant que dossier caché dans le dossier MVCPluggableDemo / Areas dans l’explorateur de solutions:

Étape 7:

Ajustez le fichier RouteConfig.cs de MVCPluggableDemo afin d’ajouter correctement la surcharge d’espace de noms correcte à la méthode routes.MapRoute ():

Nous allons également utiliser l'autre méthode surchargée de la méthode routes.MapRoute () qui prend l'espace de noms du contrôleur.

Étape 8:

Définissez le répertoire de sortie du projet Sale sur .. \ .. \ bin \ afin que ses DLL compilées soient placées dans le répertoire bin de l'application MVCPluggableDemo:

Les paramètres liés aux chaînes de connexion, à l'authentification, à l'appartenance, au gestionnaire de rôles, au profil et à l'état de la session seront placés dans le fichier web.config de votre répertoire racine. Supprimez donc toutes ces sections du Web.config de la vente.

Étape 9:

· Créez le contrôleur Vente dans le projet Vente.

· Créez une vue d'index et placez le contenu «Bienvenue dans le module de vente» dans son en-tête.

Étape 10:

Ajoutez maintenant le fichier SaleAreaRegistration.cs (fichier de sauvegarde de l’étape 6) au répertoire racine du projet Sale et remplacez son espace de noms par MVCPluggableDemo. utilisez la version surchargée de la méthode context.MapRoute () qui accepte l'espace de noms du contrôleur à utiliser comme suit:

Étape 11:

Générez maintenant la solution et vérifiez le dossier MVCPluggableDemo \ bin et vous y trouverez les DLL compilées pour le module Vente:

Étape 12:

Maintenant, lancez l'application! Si vous avez suivi toutes les étapes correctement, cela fonctionnera comme prévu.

Vous pouvez suivre les mêmes étapes, créer séparément d’autres modules plus volumineux et les brancher à votre application. N’est-ce pas simple et pourtant une fonctionnalité aussi puissante pour le développement de produits?

Postez vos commentaires, doutes et questions ci-dessous. L'application de démonstration est également disponible au téléchargement ici. Bonne codage!