Plugin Development Flashcards
7 cards from real PL 400 practice questions. Tap to flip, then mark Knew It or Still Learning — missed cards come back until you master them.
Read the first 7 Plugin Development flashcards as text
Which NuGet package provides the core assemblies needed to build a Dataverse plugin?
Answer: Microsoft.CrmSdk.CoreAssemblies
Microsoft.CrmSdk.CoreAssemblies contains Microsoft.Xrm.Sdk.dll and related assemblies required for plugin development.
What is the maximum allowed execution time for a synchronous plugin before Dataverse terminates it?
Answer: 2 minutes
Synchronous plugins must complete within 2 minutes; exceeding this limit causes Dataverse to throw a timeout exception.
In plugin development, what is the role of the PluginBase class pattern promoted by the Power Platform plugin template?
Answer: It provides helper methods for tracing, service resolution, and context extraction
PluginBase (or LocalPluginContext) encapsulates boilerplate service resolution and tracing setup, leaving subclasses to implement only business logic.
A plugin needs to access a secure configuration value (e.g., an API key). Where should this value be stored?
Answer: In the Secure Configuration field of the plugin step
The Secure Configuration field is encrypted and only accessible to plugin code at runtime, making it the appropriate place for secrets.
What is the primary difference between Pre-Operation and Post-Operation pipeline stages for a plugin?
Answer: Pre-Operation fires before the database write; Post-Operation fires after the write but within the same transaction
Pre-Operation runs after core platform validation but before the data is persisted, while Post-Operation runs after the write — both inside the transaction.
When deploying a plugin assembly using the Plugin Registration Tool, which signing requirement must the assembly meet?
Answer: The assembly must be strong-named
Dataverse requires plugin assemblies to be strong-named (signed with a key pair) before they can be registered.
Which execution context property tells a plugin whether it was triggered by another plugin or workflow rather than a direct user action?
Answer: context.Depth
context.Depth increments each time a plugin triggers another plugin, so a value greater than 1 indicates the plugin was invoked indirectly.