Plug-in Development

banner art

[Applies to: Microsoft Dynamics CRM 4.0]

Find the latest SDK documentation: CRM 2015 SDK

A plug-in is custom business logic that you can integrate with Microsoft Dynamics CRM 4.0 to modify or augment the standard behavior of the platform. Another way to think about plug-ins is that they are extension points made available by the Microsoft Dynamics CRM platform. You can subscribe a plug-in to a published set of events to have your code run when the event occurs. As part of the subscription, you must specify an event handler. The event handler is a segment of code that runs in response to the platform event that is fired. Your event handler must implement the IPlugin interface.

The plug-in model supports both pre-events and post-events. Pre-event plug-ins are run before a core system operation occurs; post-event plug-ins are run after a core system operation has been completed. There can be any number of pre-event plug-ins or post-event plug-ins registered for a given entity.

Because of their very nature, plug-in assemblies must be readable by everyone in order to work correctly when registered in the Microsoft Dynamics CRM system. Therefore it is a security best practice not to develop plug-in code which contains any system logon information, confidential information, or company trade secrets.

For more information about plug-in run-time execution, refer to the Event Execution Pipeline section of this document.

In this Section

Quickstart Guide to Plug-in Development

Provides a quick introduction to writing, deploying, and debugging a plug-in.

Registering Plug-ins

Provides information about registering plug-ins with the Event Execution Pipeline.

Writing the Plug-in Constructor

Provides information about how to pass custom data to a plug-in's constructor.

Passing Data Between Plug-ins

Provides information about how to pass custom data between registered plug-ins at runtime.

Using Dynamic Entity in Plug-ins

Describes why you should use the DynamicEntity class in plug-ins.

Plug-in Context

Describes the different kinds of information passed to a plug-in at run-time.

Online vs. Offline Plug-ins

Provides an overview about how to develop a plug-in for offline execution.

Impersonation in Plug-ins

Describes how your plug-in can execute business logic (code) on behalf of a Microsoft Dynamics CRM system user.

Error Handling in Plug-ins

Describes how to handle exceptions in plug-ins.

Logging and Tracing in Plug-ins

Describes how to enable error logging and tracing to help in debugging a plug-in at run-time.

Related Sections

Event Execution Pipeline

Provides information about event notification and event handling at run time.

Web Service Authentication and Impersonation

Provides information about using impersonation when accessing the Web services.


Programming reference for the IPlugin interface.

List of Samples in the SDK Download

Describes the complete plug-in samples available in the SDK download.

© 2010 Microsoft Corporation. All rights reserved.