Meilleures pratiques et directives concernant le développement de plug-ins et de workflows pour Microsoft Dataverse

Cette liste ci-dessous contient les meilleures pratiques et des directives concernant le développement de plug-ins et de workflows dans Dataverse.

Conseil Description
N’utilisez pas les types de demandes par lots dans les plug-ins et les activités de workflow N’utilisez pas les classes de demande de message ExecuteMultipleRequest ou ExecuteTransactionRequest dans le contexte d’un plug-in ou d’une activité de workflow.
Développer les 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é de thread, qui peuvent conduire à une incohérence des données ou à des problèmes de performances.
Ne dupliquer pas l’inscription de l’étape du plug-in L’enregistrement d’une étape de plug-in en double entraînera le déclenchement du plug-in à plusieurs reprises sur le même message/événement.
Ne pas utiliser l’exécution en parallèle dans les plug-ins et les activités de workflow Le multithreading ou les threads en parallèle dans les plug-ins ou les activités de workflow personnalisés ne sont pas pris en charge.
Mettre en œuvre tous types de requêtes lors du filtrage des résultats à l’aide de PreOperation RetrieveMultiple Pour que les performances et les résultats soient cohérents pour toutes les applications, vous devez mettre en œuvre le filtrage pour tous les types de requêtes pouvant être utilisées avec des plug-ins enregistrés pour la phase PreOperation de RetrieveMultiple
Inclure des attributs de filtrage dans l’inscription du plug-in Si aucun attribut de filtrage n’est défini pour une étape d’enregistrement de plug-in, le plug-in s’exécute chaque fois qu’un message de mise à jour survient 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 de la lenteur.
Gérer les plug-ins dans une solution unique La définition d’un assembly de plug-in doit être conservée au sein d’une solution unique.
Optimiser le développement d’un assembly personnalisé Envisagez de fusionner les activités distinctes de plug-ins/workflow personnalisés en un seul assembly personnalisé pour améliorer les performances et la maintenabilité et déplacer les activités de plug-ins/workflows personnalisés en plusieurs assemblys personnalisés si une taille d’assembly se rapproche des contraintes de taille d’un assembly sandbox.
Définissez KeepAlive sur false lorsque vous interagissez avec des hôtes externes dans un plug-in La propriété de KeepAlive définie sur True dans l’en-tête de demande HTTP ou non explicitement définie comme False peut entraîner des délais 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 en cas d’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 Assurez-vous que tous les certificats dont dépend votre code pour les appels sortants ont une chaîne de certificats valide.

Voir aussi

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

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).