Wednesday, November 23, 2011
I have been asked a lot about the difference between SharePoint Workflows, Event Receivers and Timer Job. When to use each of them, their limitations and of course their advantages. Before I start the actual explanation, please note that the scenarios or advantages or limitations listed below are only a few from the several others. As there is no limit on usage of SharePoint, similarly there is no limit to use the above mentioned techniques. This article is intended for newcomers who want to start using these techniques but don’t know where to start from.
SharePoint Workflow consist a set of task(s) which can be triggered both manually and automatically. In most of the scenarios, Workflows and Event Receives perform the same functionality. SharePoint Workflows are created in SharePoint Designer, Microsoft Visio and of course through Visual Studio. For the beginners, Workflows are the best option to start from as they can be easily created through SharePoint Designer or MS Visio. SharePoint Workflows are used to perform a set of tasks if an item is changed, created, deleted and etc. or in other words the workflow is triggered once an action is completed. The most common examples of workflows are to move an item to another List/Site once it is completed, or to generate custom emails through Workflows and etc.
SharePoint Event Receivers as from its name are triggered upon an event. Unlike Workflows, Event Receivers can be triggered even when an item is being created or modified or etc. To create an Event Receiver, you need to use Visual Studio. When it comes to robustness, Workflows are more robust than event receivers. They can survive system reboot and while in few cases Event receivers cant. Unlike Workflows, Event Receivers cannot be triggered manually.
Lastly, SharePoint Timer Jobs. Timer Jobs are triggered both automatically and manually after a defined period. Timer Jobs, like Event Receivers, are created through Visual Studio. Timer Jobs are different from above two in terms that they are triggered only at the mentioned time. They can also be triggered manually but that’s not why they are created. Let’s say you want to assign some administrative tasks to the users on daily or weekly basis, that’s where you use timer job.
Hope fully this brief overview of the above three can help you decide when to use each one of them. If you wish to learn more, do leave comments as we actively reply to your posts.