What Plug-ins Are
Server-side .NET code that runs on Dataverse events — create, update, delete, assign. Synchronous (inline with the transaction) or async (queued).
Pre vs Post
Pre-validation runs before the transaction, with access to input and pre-image. Post-operation runs after the write, with access to the target record. Pick based on whether you need to mutate input or react to the outcome.
Development
Plugin Registration Tool registers assemblies to Dataverse. ALM-friendly workflow: code in Visual Studio, unit test, deploy via Azure DevOps pipelines.
Testing
FakeXrmEasy and similar frameworks unit-test plug-ins without a live Dataverse. Integration tests hit a dev environment. Both layers matter.
Performance
Plug-ins run in-transaction. Slow plug-ins slow user saves. Cap synchronous plug-in runtime; move heavy work async.