Dynamics 365

Plugin Registration Tool: complete gids voor ontwikkelaars

26 december 2024
Sabhat Qureshi
9 min. leestijd

Wat is de Plugin Registration Tool?

De Plugin Registration Tool (PRT) is het offici毛le hulpprogramma van Microsoft om plugins, aangepaste workflowactiviteiten, dataproviders voor virtuele tabellen, webhooks en service-endpoints te registreren en te beheren in Dynamics 365- en Dataverse-omgevingen.

Anders dan bij het uitrollen van code naar een klassieke webserver moeten Dynamics 365-plugins via de PRT worden geregistreerd. Zo laat u het platform weten welke eigen assemblies er zijn en legt u precies vast onder welke voorwaarden ze moeten worden uitgevoerd. basisprincipes van pluginregistratie.

Installatie en configuratie

De Plugin Registration Tool wordt verspreid als onderdeel van het pakket met ontwikkeltools voor Power Platform.

Installatiemethodes:

  • Power Platform CLI: Voer pac tool prt uit om PRT te downloaden en te starten
  • Rechtstreeks downloaden: Download de ontwikkeltools van Microsoft en pak PluginRegistration.exe uit
  • Via XrmToolBox: Gebruik de PRT als plugin binnen XrmToolBox, zodat alles in 茅茅n omgeving zit

Verbinding maken met uw omgeving

Klik op "Create New Connection" en geef de URL van uw Dynamics 365-omgeving en uw inloggegevens op. De tool ondersteunt authenticatie via Office 365, OAuth en on-premises Active Directory.

Een pluginassembly registreren

Voor u afzonderlijke pluginstappen kunt registreren, moet u eerst de gecompileerde assembly (DLL-bestand) met uw plugincode registreren.

Registratieproces:

  1. Klik op "Register" > "Register New Assembly"
  2. Blader naar de gecompileerde DLL van uw plugin
  3. Selecteer de isolatiemodus (Sandbox is aanbevolen voor cloudomgevingen)
  4. Kies de opslaglocatie (Database voor de cloud, Disk voor on-premises)
  5. Controleer de gedetecteerde pluginklassen en klik op "Register Selected Plugins"

馃挕 Best practice:

Gebruik voor plugins altijd de isolatiemodus Sandbox, tenzij u specifieke redenen hebt voor full trust. Sandboxplugins zijn beter ge茂soleerd en dus veiliger, en ze zijn verplicht in Dynamics 365 Online-omgevingen.

Bestaande assemblies bijwerken

Wanneer u de plugincode wijzigt, moet u de geregistreerde assembly bijwerken. Klik met de rechtermuisknop op de assembly in de PRT en kies "Update". Selecteer uw nieuwe DLL: alle bestaande stapregistraties gebruiken dan automatisch de bijgewerkte code.

Pluginstappen registreren

Een pluginstap bepaalt wanneer en hoe uw plugin wordt uitgevoerd. Elke stap legt het bericht (message), de entiteit, de uitvoeringsfase en de uitvoeringsmodus van uw plugin vast. de event execution pipeline.

Configuratieparameters van een stap

  • Message: De bewerking die de plugin activeert (Create, Update, Delete, Retrieve, Associate enz.)
  • Primary Entity: De entiteit die de plugin bewaakt (laat leeg voor alle entiteiten)
  • Event Pipeline Stage: Wanneer de plugin wordt uitgevoerd (PreValidation, PreOperation, PostOperation)
  • Execution Mode: Synchroon (blokkeert de actie van de gebruiker) of asynchroon (draait op de achtergrond)
  • Filtering Attributes: Geef voor Update-berichten aan welke veldwijzigingen de plugin activeren
  • User Context: Uitvoeren als de aanroepende gebruiker of als een specifieke systeemgebruiker

鈿狅笍 Cruciale keuze:

Kies de uitvoeringsfase zorgvuldig. PreOperation draait v贸贸r de commit van de databasetransactie (u kunt de data nog wijzigen voor ze wordt opgeslagen). PostOperation draait na de commit (de data is al opgeslagen). PreValidation draait v贸贸r de beveiligingscontroles.

Filtering attributes voor betere prestaties

Geef voor plugins op het Update-bericht altijd filtering attributes op om het aantal uitvoeringen te beperken. Zonder filters draait uw plugin bij elke veldwijziging, wat onnodige verwerking en slechtere prestaties oplevert.

Step images: momentopnamen van de data vastleggen

Met step images kan uw plugin de gegevens van een record opvragen zoals ze waren v贸贸r (PreImage) of na (PostImage) de bewerking. documentatie over entity images.

Configuratie van images

  • PreImage: Legt de toestand van het record v贸贸r de bewerking vast (beschikbaar in de fasen PreOperation en PostOperation)
  • PostImage: Legt de toestand van het record na de bewerking vast (alleen beschikbaar in de fase PostOperation)
  • Image-alias: De naam waarmee u de image in code opvraagt (bijv. "PreImage", "PostImage")
  • Attributen: Geef aan welke velden worden opgenomen (kleinere payload en betere prestaties)

Webhooks: HTTP-callbacks voor externe integratie

Met webhooks kan Dynamics 365 externe HTTP-endpoints aanroepen wanneer specifieke gebeurtenissen optreden. Zo integreert u met externe systemen zonder eigen plugincode. mogelijkheden van webhooks.

Een webhook registreren

  1. Klik op "Register" > "Register New Webhook"
  2. Geef de naam van de webhook en de endpoint-URL op (moet HTTPS zijn)
  3. Selecteer het authenticatietype (HttpHeader, WebhookKey, HttpQueryString)
  4. Registreer een stap op de webhook, net zoals bij een pluginstap

Aangepaste workflowactiviteiten

Aangepaste workflowactiviteiten breiden workflows uit met .NET-code. Na registratie verschijnen ze als activiteiten in de workflowdesigner.

Registratiestappen

  • Ontwikkel een workflowactiviteit die erft van CodeActivity
  • Registreer de assembly op dezelfde manier als een pluginassembly
  • De activiteit verschijnt in de workflowdesigner onder de aangepaste activiteiten
  • Configureer de invoer- en uitvoerparameters via de workflowdesigner

Plugin Profiler: debuggen in de praktijk

De Plugin Profiler legt de uitvoeringscontext van een plugin vast in uw live omgeving en maakt een lokaal profiel dat u in Visual Studio opnieuw kunt afspelen om te debuggen.

Werkwijze voor profiling

  1. Selecteer in de PRT de pluginstap die u wilt profilen
  2. Klik op "Start Profiling" en kies de profilingmodus (Exception of Persist to Entity)
  3. Voer in Dynamics 365 de bewerking uit die de plugin activeert
  4. Ga terug naar de PRT en klik op "Debug" om het uitvoeringsprofiel te downloaden
  5. Open uw pluginproject in Visual Studio en koppel het profiel
  6. Plaats breakpoints en doorloop de code stap voor stap met de vastgelegde context

馃挕 Tip voor de profiler:

Gebruik in productie de modus "Exception Only" om de impact op de prestaties te beperken. Gebruik in ontwikkeling "Persist to Entity" om alle uitvoeringen vast te leggen. Vergeet niet de profiling te stoppen wanneer u klaar bent.

Service-endpoints voor integratie met Azure

Met service-endpoints stuurt u eventdata uit Dynamics 365 naar Azure Service Bus-queues, -topics of Event Hubs voor verdere verwerking.

Service-endpoints configureren

  • Registreer het service-endpoint met de Azure-verbindingsreeks
  • Kies het berichtformaat (JSON, XML, Binary)
  • Registreer een stap op het service-endpoint (net zoals bij pluginstappen)
  • Berichten worden automatisch naar Azure gestuurd wanneer de stap wordt uitgevoerd

Best practices voor pluginregistratie

Beveiliging en governance

  • Werk solution-aware, zodat plugins correct worden verpakt
  • Beperk de toegang tot de productieomgeving tot bevoegde personen
  • Documenteer alle geregistreerde plugins en hun zakelijke doel
  • Voorzie een changemanagementproces voor plugin-updates

Aandachtspunten voor prestaties

  • Geef voor plugins op het Update-bericht altijd filtering attributes op
  • Gebruik de asynchrone modus wanneer real-time uitvoering niet nodig is
  • Neem alleen de noodzakelijke attributen op in step images
  • Volg de plugin trace logs op om uitvoeringstijden te analyseren

Ontwikkelworkflow

  • Test plugins eerst in ontwikkelomgevingen
  • Zorg voor degelijk versiebeheer bij assembly-updates
  • Schakel tracing in tijdens de ontwikkeling en beperk het in productie tot exceptions
  • Ruim ongebruikte pluginregistraties op om de complexiteit te beperken

Veelvoorkomende problemen oplossen

Time-outs van het sandboxworkerproces

Plugins in de sandbox hebben een uitvoeringslimiet van 2 minuten. Ontwerp plugins zodat ze snel klaar zijn en verplaats langlopende bewerkingen naar asynchrone processen.

Conflicten tussen isolatiemodi

De isolatiemodi Sandbox en None kunnen niet samen in dezelfde assembly voorkomen. Plaats sandboxplugins en full-trustplugins in aparte assemblies.

Ontbrekende afhankelijkheden

Pluginassemblies moeten op zichzelf staan. Gebruik ILMerge of neem afhankelijkheden op als embedded resources. In de sandbox zijn alleen de SDK-assemblies beschikbaar.

Conclusie

De Plugin Registration Tool is onmisbaar voor maatwerk in Dynamics 365: hij vormt de brug tussen uw eigen .NET-code en het event framework van het platform. Wie als Dynamics 365-ontwikkelaar oplossingen voor ondernemingen bouwt, moet de PRT door en door kennen.

Wie de registratieconcepten begrijpt (assemblies, stappen, images en de fasen van de execution pipeline), bouwt robuuste, performante plugins die naadloos met het platform samenwerken. Samen met debugmogelijkheden zoals de Plugin Profiler biedt de PRT alles wat nodig is om plugins professioneel te ontwikkelen en te onderhouden.

Hulp nodig bij je Dynamics 365-project?

We helpen je graag om deze werkwijzen toe te passen in je eigen Dynamics 365-omgeving.