2. It’s not an easy comparison:
Workflow Plugin
Background Asynchronous
Real-time Synchronous
On the other side we have Custom workflow activities which are extension point for workflows
3. Similarity:
• Both run on server
• Both can run synchronous (on w3wp) or Asynchronous(on async service)
• Both can be deployed on CRM online or on premise (except XAML WFs created in VS)
• Both included in solution and transferable
• Both can post data context to Azure service bus (azure aware)
4. Workflow Plugin
End user and non-developers to create process on the server Only done thorough coding by software engineer or developer
No special security access outside of CRM needed to create workflow
(for real time workflow “Activate Real-time Processes” & “execute RTWF“ in security
roles)
Only System admin or customizer with membership in deployment admin group can
register a plugin
Can be written & extended without coding skills (unless extended with custom workflow
activity)
Needs coding and developer skills
Workflows have to be associated to only a single entity
(custom workflow activates can be used for all entities in different workflows)
One Plugin can be associated to all entities in the system and it’s not tied to one entity
Integrated with Windows workflow foundation 4 Coded in C# as .NET assemblies, which the main class inherited from IPlugin interface
Workflow can be start from dialogs or actions (also custom workflow activities ) Can not be used in CRM processes through web editor UI
Can run as child workflow No child plugin but they can call each other and trigger each other execution
Do not execute when offline (outlook) – only triggered online Both offline and online are supported
Works well for either short or log process with use of wait step in background workflow.
Wait step is not available in real-time workflow.
If in sandbox the execution limit is 2min
5. Workflow Plugin
Build in web editor through UI or Visual studio (XAML workflows in Visual Studio only
on premise)
Developed in Visual studio and does not have UI
Stored as XAML in workflow entity only stored in database It’s a compiled C# code which will be registered to CRM server. It can be placed on disk,
GAC or database
Can run on demand Something needs to triggers the plugin to run
Async workflow are queued to execute after core operation (post operation)
Real-time similar to sync plugin
Async plugin can execute immediately after the core operation
sync plugin can execute immediately after or before core operation
In CRM 2013 and after you can use real time Can be sync or async
Background workflow only runs in the context of workflow owner Sync or Async Can impersonate at different point during transcation
Real time workflow can be run as the owner of workflow or user who triggers it Sync or Async Can impersonate at different point during transcation
Limited trigger points: assign, attribute change, create and delete 100s of them (plugin messages)
6. • Over the new releases of the CRM (2013 and later), workflows has become more powerful.
• Plugin offer deeper level of extensibility by tapping into CRM event execution pipeline
• Setting aside the differences, in lot of scenarios they can be used interchangeably.