3. Tanguy Touzard
• Travaille sur Dynamics CRM/365 depuis
15 ans
• Lead technique chez Javista depuis 7 ans
• Créateur de l’application XrmToolBox
• Auteur de 29 plugins
• MVP depuis 9 ans
4. Agenda
• Introduction / Historique XrmToolBox
• Principes de XrmToolBox
• Comment développer un plugin
• Développons un plugin ensemble
• Q&A
5. Introduction / Historique XrmToolBox
• Existence de plusieurs outils individuels
• Volonté d’améliorer la découverte et l’utilisation de tous les outils
• Volonté de sauvegarder/partager les connexions entre les outils
• Première tentative de méta outil : SolutionExtender => Echec!
• Rassemblement des outils existants dans XrmToolBox
• Mis en ligne en Décembre 2012
6. Principes de XrmToolBox
• Les plugins doivent:
• Automatiser des tâches répétitives
• View Layout Replicator
• Bulk Workflow Execution
• Contourner les limitations de l’application
• User Settings Utility
• Plugin Trace Viewer
• Exposer des traitements accessibles uniquement au travers du SDK ou
inexistants
• AutoNumber Generator
• Attribute Usage Inspector
7. Comment développer un plugin
• Avoir une idée ou un besoin!
• Installer le modèle de plugin dans Visual Studio
• Lire la documentation sur le portail
• Développer la logique métier et l’interface utilisateur
• Optimiser la mise en forme
• Implémenter les interfaces d’extension
• Tester, tester et tester!
• Créer un package Nuget
• Enregistrer son plugin sur le portail
8. Installer le modèle de plugin dans Visual
Studio
https://marketplace.visualstudio.com/items?itemName=TanguyTMVPCRM.XrmToolBoxPluginProjectTemplate-
19499
9. Lire la documentation sur le portail
• La documentation permet de
suivre les bonnes pratiques:
• S’assurer de la présence d’une
organisation connectée
• Réaliser les traitements longue durée
en mode asynchrone
• Lien
• https://www.xrmtoolbox.com/docum
entation/for-developers/
10. Développer la logique métier et l’UI
• En termes d’interface utilisateur, bien penser à personnaliser son
plugin avec un logo et un jeu de couleurs
11. Optimiser la mise en forme
• Pas de vrai responsive design
(WinForms)
• Utiliser des conteneurs
• Panel
• SplitContainer
• GroupBox
• DockContent
• Adapter les contrôles en fonction
du conteneur parent
• Anchors : Positionnement d’un
contrôle pas rapport au conteneur
parent
• Dock : Occupation de l’espace dans le
contrôle parent
12. Implémenter les interfaces d’extension
• Permet d’ajouter des informations dans l’interface de l’application
principale (optionnel):
• Lien vers le projet Github
• Lien vers PayPal
• Lien vers la documentation
• Ajout d’information de progression dans la barre de statut
• Documentation:
https://www.xrmtoolbox.com/documentation/for-developers/interfaces/
13. Tester, tester et tester!
• Pour vous aider, une checklist est disponible sur le portail:
• https://www.xrmtoolbox.com/documentation/for-developers/deploy-your-
plugin-in-plugins-store/plugin-validation-check-list/
14. Créer un package Nuget
• Seule manière de proposer un plugin dans le Plugins Store
• Le Plugins Store liste les packages Nuget référencés et validés sur le
portail XrmToolBox
• Possibilité de créer le package:
• Manuellement : Nuget Package Explorer
• Deploy your plugin in Plugins Store
• Automatiquement : Azure DevOps (ou autre build)
• Use Azure DevOps to publish XrmToolBox plugins
15. Enregistrer son plugin sur le portail
• L’enregistrement se fait à l’aide
de l’id du package Nuget
• Le portail récupère toutes les
informations à partir du
package
• Le processus de validation est
manuel, peut prendre du
temps.
16. Passons à la pratique!
Quelqu’un a-t-il une idée?
17. Passons à la pratique!
• Une idée? Afficher le contenu
XAML d’un workflow
• Pourquoi? Contrôler que les
champs dynamiques sont
correctement implémentés
• Comment?
• Afficher la liste des workflows
• A la sélection d’un workflow, afficher
le contenu XAML
Liste des
workflows
Contenu XAML du
workflow