Bonnes pratiques et conseils pour le développement de plug-in et de flux de travail pour Microsoft Dataverse

Cette liste contient des conseils et des bonnes pratiques pour le développement de plug-in et de flux de travail dans Dataverse.

Meilleures pratiques Description
Ne pas utiliser les types de demandes par lots dans les plug-ins et les activités de workflow N’utilisez pas les classes de requête de message ExecuteTransactionRequest ou ExecuteMultipleRequest dans le contexte d’une activité de plug-in ou de workflow.
Développer des implémentations IPlugin en mode sans état Les membres des classes qui implémentent IPlugin sont exposés à des problèmes potentiels de sécurité du thread, qui peuvent conduire à une incohérence des données ou à des problèmes de performances.
Ne pas dupliquer l’étape d’inscription du plug-in Les inscriptions en double d’étapes de plug-in entraînent plusieurs déclenchements du plug-in pour le même message ou événement.
Ne pas utiliser l’exécution en parallèle dans les plug-ins et les activités de workflow L’utilisation de plusieurs threads ou de threads parallèles dans les plug-ins ou les activités de workflow personnalisées n’est pas prise en charge.
Mettre en œuvre tous les types de requêtes lors du filtrage des résultats à l’aide de PreOperationRetrieveMultiple Pour des performances optimales et des résultats cohérents pour toutes les applications, implémentez le filtrage pour tous les types de requêtes qui peuvent être utilisés avec des plug-ins inscrits pour la phase PreOperation de RetrieveMultiple.
Inclure des attributs de filtrage dans l’inscription du plug-in Si vous ne définissez pas d’attributs de filtrage pour une étape d’inscription de plug-in, le plug-in s’exécute chaque fois qu’un message de mise à jour se produit pour cet événement.
Restreindre l’inscription de plug-ins pour les messages Retrieve et RetrieveMultiple L’ajout d’une logique de plug-in synchrone aux événements de message Retrieve et RetrieveMultiple peut entraîner des lenteurs.
Gérer les plug-ins dans une solution unique Conservez la définition d’un assembly de plug-in dans une solution unique.
Optimiser le développement d’un assembly personnalisé Envisagez de fusionner des plug-ins distincts et des activités de flux de travail personnalisées dans un seul assembly personnalisé pour améliorer les performances et la maintenance. Déplacez les plug-ins et les activités de workflow personnalisées vers plusieurs assemblys personnalisés si la taille d’un assembly approche des limites de taille imposées aux assemblys dans le bac à sable.
Définissez KeepAlive sur false lorsque vous interagissez avec des hôtes externes dans un plug-in Définir la propriété KeepAlive sur true dans l’en-tête de requête HTTP, ou ne pas la définir explicitement sur false, peut entraîner une augmentation du temps d’exécution des plug-ins.
Définir le délai d’expiration lors d’appels externes dans un plug-in Limitez la période pendant laquelle les appels externes attendent une réponse dans les plug-ins.
Utilisation d’InvalidPluginExecutionException dans les plug-ins et les activités de workflow Utilisez InvalidPluginExecutionException pour générer des erreurs dans le contexte d’un plug-in ou d’une activité de workflow.
Utilisation d’ITracingService dans les plug-ins Utilisez ITracingService dans vos plug-ins pour mieux comprendre ce qui se passe lorsque votre code s’exécute.
Vérifier les dépendances de certification pour les plug-ins effectuant des appels sortants Vérifiez que les certificats dont dépend votre code pour les appels sortants ont une chaîne de certificats valide.
Écriture de code efficace en mémoire Récupérez uniquement les données nécessaires dans votre plug-in.

Voir aussi

Appliquer la logique métier avec du code
Utiliser des plug-ins pour étendre les processus d’entreprise
Extensions de workflow