Introduction | ||||||||||||||||||||||||
Whenever we need to extend the OOB functionality of Microsoft Dynamics CRM 2011. We can write custom plugins which can run before an event performs it operations and after an event completes its operations. It can be executed synchronously or asynchronously from managed queue. With the help, can perform data validations; integrate with other legacy applications, auto number generations and writing complex business logic. We can write custom plugin in Microsoft .net 4.0 framework writing code in Microsoft C# or VB .net. | ||||||||||||||||||||||||
We can register the Plugin or custom workflow activity using Plugin Registration tool. It can be registered in online and offline mode [Microsoft Dynamics CRM for Outlook with offline access client]. However, registering custom workflow activities with Microsoft Dynamics CRM Online is not supported using the registration tool. | ||||||||||||||||||||||||
The Plug-in Registration tool is provided as a source code sample in the Tools folder of the Microsoft Dynamics CRM SDK download. Review the instructions provided in the Tools/Plugin Registration/Readme.docx file for more information about the tool and instructions on how to build the tool. | ||||||||||||||||||||||||
Framework | ||||||||||||||||||||||||
The Microsoft Dynamics CRM 2011 event processing subsystem executes plug-ins based on a message pipeline execution model. A user action or an SDK method call or other application results in a message being sent to the organization Web service contains business entity and core operation information. The message is passed through the event execution pipeline where it can be read or modified by the platform core operation and any registered plug-ins. | ||||||||||||||||||||||||
The below figure depicts the overall architecture of the Microsoft Dynamics CRM 2011 platform with respect to both synchronous and asynchronous event processing: | ||||||||||||||||||||||||
The plugins registered synchronously will be executed immediately whereas plugins registered asynchronous will be queued with asynchronous service and executed later. The event pipeline is divided into 5 stages are as follows: | ||||||||||||||||||||||||
| ||||||||||||||||||||||||
The Microsoft Dynamics CRM 2011 execution pipeline is organization specific. Server can host multiple organizations. There will be virtual pipeline for every organization. This means a plugin must be registered with each organization execution where it has to execute. We can register plugin in sandbox or outside sandbox. The difference if plugin registered within sandbox [known as partial trust] it will not have access to external endpoints other case if plugin registered outside the sandbox [known as full trust] it will support on-premise and Internet facing deployments. Whereas for online deployment plugin must be registered in sandbox only. |