Ajouter un module (projet) à une solution basée sur la plateforme Nentang.wpf

Bonjour, bienvenue dans ce tutoriel vous permettant d'ajouter un module à une solution basée sur la plateforme nentang.wpf que vous avez créée précédemment

I. Ajout d'un module à votre solution

Votre solution est maintenant créé, plusieurs projets existent maintenant, ainsi qu'un dossier de solution Modules.
Nous allons maintenant ajouter un module pour notre application. Pour cela sélectionnez le dossier Modules et reprennez l'étape I. en choisissant EmptyModule dans les templates de projet de la catégorie Nentang.wpf, nommez le MyModule.

II. Restauration des packages NuGet

Comme pour la solution il faut que Visual Studio ré-installe les packages NuGet pour le module ajouté, votre solution étant correctement configurée à cette étape, cela est simple

Ouvrez la console du gestionnaire de package

Affichage ► Autres fenêtres ► Console du Gestionnaire de package

Cette fenêtre peut vous proposer, éventuellement, dans un bandeau jaune, un bouton Restaurer qui va télécharger les packages manquants utilisés par le module

Dans la console du gestionnaire de package tapez la commande suivante

update-package -reinstall MyModule

Visual Studio va ré-installer les packages utilisés dans le projet. Une fois cette étape réalisée, relancez Visual studio afin qu'il recharge correctement tous les projets.

Lancer une compilation de la solution

vous devez toujours compiler la solution entiére avant de l'éxécuter afin que votre projet de module soit compilé correctement pour l'éxécution, sinon votre module ne sera pas à jour lors de vos tests

Compiler la solution

Exécutez maintenant la solution

L'application se lance et créée la base de données la premiére fois. L'écran de connexion apparait, les logins sont admin/admin

Vous voila maintenant prêt à ajouter votre premier module dans votre application Nentang.wpf

III. Modification des fichiers du module et de la solution pour l'identification

III. 1. Valeur d'énumération pour le module

Afin de pouvoir identifier facilement votre module au sein de l'application, des droits et paramétres, vous devez ajouter une valeur d'énumération pour ce module. Pour cela ouvrez le fichier

CommonsInterfacesEnumsTypeModulesEnum.cs

Ensuite ajouter la valeur d'énumération suivante

MyModule = 1

Vous devez également modifier les fichiers suivants (présents dans le module) pour insérer la valeur d'énumération que vous venez de choisir :

  • Rights.cs : Ici vous pourrez définir les droits dont vous avez besoin dans votre module.
  • OpenObjectContract.cs : Ici vous pourrez définir la façon dont un de vos objet s'ouvre dans votre module (depuis une notification ou une recherche dans l'hôte de l'application).
  • AccueilContractViewModel.cs : Ici vous définissez le ViewModel de votre UserControl répondant au contrat de plugin d'accueil.
  • SearchContract.cs : Ici vous pourrez définir la façon dont un pattern doit être recherché dans votre module.
III. 2. Identification du module

Votre module est également identifié par l'application par une série d'informations se trouvant dans le fichier ViewModelsAccueilViewModel.cs du module. Ces informations sont celles de l'attribut Module

[Module("EmptyLocalized", 1, "da37644b-6249-43fe-9a02-2dd3df06c378", typeof(AccueilViewModel), TypeModulesEnum.Empty, "")]
  • EmptyLocalized : est la clé d'internationalisation du titre du module, vous la trouverez dans le fichier I18nFR.xaml où vous pourrez changer cette valeur.
  • 1 : défini la priorité d'affichage du module dans le menu.
  • da37644b-6249-43fe-9a02-2dd3df06c378 : représentre un GUID (unique donc) permettant l'identification du module par l'hôte de l'application. Pour le premier module vous pouvez conserver cette valeur, elle devra être modifiée dans les modules éventuels que vous ajouteriez.
  • typeof(AccueilViewModel) : représente le type (typeof) de module.
  • TypeModulesEnum.Empty : indique à l'application la valeur d'énumération associée au module.
  • "" : ici vous pouvez ajouter un nom de fonction à exécuter lors de l'ouverture du module par le menu.
  • Une valeur booléenne vous permez également d'indiquer si votre module est visible ou non dans le menu, par défaut cette valeur est true.

Vous devez également modifier les fichiers suivants (présents dans le module) pour insérer la valeur du GUID que vous venez de choisir :

  • AccueilContractViewModel.cs : Ici vous définissez le ViewModel de votre UserControl répondant au contrat de plugin d'accueil.
  • SearchContract.cs : Ici vous pourrez définir la façon dont un pattern doit être recherché dans votre module.

Lorsque vous avez modifié les informations que vous souhaitiez pour le module, vous pouvez compiler la solution et l'éxécuter

vous devez toujours compiler la solution entiére avant de l'éxécuter afin que votre projet de module soit compilé correctement pour l'éxécution, sinon votre module ne sera pas à jour lors de vos tests

 

Exécuter la solution

Last edited Dec 21, 2014 at 6:00 PM by marc_plessis, version 1