Monday, June 13, 2011

Difference between Workflow and Plug-in

Both async plugins and workflows are executed by the asynchronous processing service and implement custom logic. the basic difference is how they are designed: Plugins are implemented using .Net code and uploading a plugin assembly while workflows are mostly designed using the web application (workflow designer). Workflows can therefore be modified/created by end users without requiring to compile and upload code.
It may also be the case that a combination of both approaches is required; a plug-in can trigger a workflow and a vice versa. From the above matrix the most decisive factor is whether you need a synchronous action or not; if you do, plug-ins are the way to go, if you don’t then other factors need to be pondered.
Workflows and by extension, custom workflow activities, execute totally asynchronously. Plugins can execute both asynchronously and synchronously. Workflows can be manually executed, or automatically triggered by selected events.Workflows can be limited to automatically execute within specific organizational scopes (ie. Org, BU, Parent and Child BUs, or for the Owner only).Plugins are always triggered by the messages to which they’re subscribed, though some Messages allow limiting execution based on whether certain attributes have been passed into the Message.Workflows can be turned off (by unpublishing). Plugins are always on. Custom workflow activities can be used in many Workflows.
Workflows can be developed through the Workflow design interface. Plugins must be developed in Visual Studio. Workflows do not require compiling (though custom workflow activities do). Plugins and custom workflow activities must be compiled and deployed through processes external to CRM.
In short: though only asynchronous in nature, Workflows allow an unimpeachable degree of flexibility and ease of configuration which Plugins do not afford, and their administration can be granted to power users of CRM without necessary access to the server or platform code. Plugins offer the highest degree of security and performance and surpass Workflows in capability and ability to augment platform operations.When speed of execution, security of process, and validity of data are integral, I choose Plugins. When flexibility, functionality reuse, and optional user involvement are integral, I choose Workflows.

No comments:

Post a Comment