Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Diese Liste enthält Anleitungen und bewährte Methoden für die Plug-In- und Workflowentwicklung in Dataverse.
| Beste Praxis | Beschreibung |
|---|---|
| Vermeiden Sie die Verwendung von Batch-Requesttypen in Plugins und Workflow-Aktivitäten | Verwenden Sie im Kontext eines Plug-Ins oder einer Workflowaktivität keine ExecuteMultipleRequest- oder ExecuteTransactionRequest-Nachrichtenanforderungsklassen. |
Entwicklung von IPlugin-Implementierungen als zustandslose Systeme |
Mitglieder von Klassen, die IPlugin implementieren, sind potenziellen Thread-Sicherheitsproblemen ausgesetzt, die zu Dateninkonsistenz- oder Performanceproblemen führen können. |
| Plug-In-Schrittregistrierung nicht duplizieren | Die Doppelte Plug-In-Schritt-Registrierung bewirkt, dass das Plug-In mehrmals in derselben Nachricht oder einem Ereignis ausgelöst wird. |
| Verwenden Sie keine parallele Ausführung in Plug-Ins und Workflow-Aktivitäten | Multithreading oder parallele Threads innerhalb von Plug-Ins oder benutzerdefinierten Workflowaktivitäten werden nicht unterstützt. |
Implementierung aller Arten von Abfragen bei der Ergebnisfilterung mit PreOperationRetrieveMultiple |
Um optimale Leistung und konsistente Ergebnisse für alle Anwendungen zu erzielen, implementieren Sie die Filterung für alle Arten von Abfragen, die mit Plug-Ins verwendet werden können, die für die PreOperation-Phase RetrieveMultipleregistriert sind. |
| Einbeziehen von Filterattributen mit Plugin-Registrierung | Wenn Sie keine Filterattribute für einen Plug-In-Registrierungsschritt festlegen, wird das Plug-In jedes Mal ausgeführt, wenn eine Aktualisierungsmeldung für dieses Ereignis auftritt. |
| Einschränkung der Registrierung von Plugins für Retrieve- und RetrieveMultiple-Nachrichten | Das Hinzufügen synchroner Plug-In-Logik zu den Nachrichteneignissen Retrieve und RetrieveMultiple kann zu Leistungseinbußen führen. |
| Plug-Ins in einer einzigen Lösung verwalten | Verwalten Sie die Definition einer Plug-In-Assembly in einer einzigen Lösung. |
| Optimierung der Entwicklung kundenspezifischer Assemblies | Erwägen Sie das Zusammenführen separater Plug-Ins und benutzerdefinierter Workflowaktivitäten in einer einzigen benutzerdefinierten Assembly, um die Leistung und Wartung zu verbessern. Verschieben Sie Plug-Ins und benutzerdefinierte Workflowaktivitäten in mehrere benutzerdefinierte Assemblies, wenn die Größe einer Assembly nahe an den Größenbeschränkungen für Sandbox-Assemblies liegt. |
| KeepAlive auf falsch setzen, wenn Sie mit externen Hosts in einem Plug-in interagieren | Das Festlegen der Eigenschaft KeepAlive auf true im HTTP-Anforderungsheader oder das nicht explizite Definieren als false kann zu längeren Ausführungszeiten von Plug-Ins führen. |
| Timeout einstellen bei externen Anrufen in einem Plugin | Begrenzen Sie den Zeitraum, in dem externe Aufrufe eine Antwort innerhalb von Plug-Ins erwarten. |
| InvalidPluginExecutionException in Plug-Ins und Workflow-Aktivitäten verwenden | Verwenden Sie InvalidPluginExecutionException, wenn Sie Fehler im Kontext eines Plug-Ins oder einer Workflowaktivität auslösen. |
| ITracingService in Plug-Ins verwenden | Verwenden Sie die ITracingService Ins in Ihren Plug-Ins, um Einen Einblick in die Vorgänge zu erhalten, die beim Ausführen des Codes auftreten. |
| Überprüfen von Zertifizierungsabhängigkeiten für Plug-Ins, die ausgehende Anrufe tätigen | Stellen Sie sicher, dass alle Zertifikate, von denen Ihr Code für ausgehende Anrufe abhängt, über eine gültige Zertifikatkette verfügen. |
| Speichereffizienten Code schreiben | Rufen Sie nur Daten innerhalb Ihres Plug-Ins ab, die benötigt werden. |
Siehe auch
Geschäftslogik mit Code anwenden
Verwenden von Plug-Ins zur Erweiterung von Geschäftsprozessen
Workflowerweiterungen