SharePoint workflow is an abstract implementation of WF (Workflow Foundation, part of .NET 3.0) and runs within the context of WSS. Hence, for an experienced .NET developer, implementing workflows in context of SharePoint simply means, to write a class, install in WSS using Features/Solutions.
Workflows are not stand alone applications. WF runtime provided by .NET Framework manages all the object instances currently active. Host applications like .NET console, windows, web or any SharePoint applications need to host these workflow activities.
SharePoint workflows can be authored in the following three ways. Though, Visual Studio gives more flexibility and extensibility, other two modes provide easier and quicker solutions for workflow implementations.
- User Interface
- SharePoint Designer
- Visual Studio Custom Workflows
Workflows can be invoked in multiple ways like by a specific user action, triggered by an event and also through timer jobs.
Built around lists/libraries, these are workflows employed by end user making use of out-of-the-box workflow activities and are not extendable. Click here to learn more about User Interface Workflows.
SharePoint Designer 2007
These workflows are wizard based and are defined by designers as well as developers. Click here to learn more about SharePoint Designer Workflows.
Visual Studio 2008 Custom Workflows
This type of workflows is implemented by experienced developers (Ex: .NET Developers). Click here to learn more about Visual Studio Custom Workflows.
Even though SharePointDesigner (SPD) could be used to author workflows, there are a few limitations to this approach.
- SPD workflows do not contain custom code (no-code workflows) and are not compiled and deployed as .NET assemblies. That means to custom activities possible.
- SPD workflows source files are stored in a special document library as part of SharePoint itself.
- SPD workflows are bound to a specific list or a library. It is NOT possible to associate a workflow to multiple lists or libraries.
- SPD workflows cannot be associated to a content type which can be used in multiple lists.
- SPD workflows are sequential ONLY.
- SPD workflows are not debuggable.
Windows Workflow Foundation provides the following benefits for workflow applications.
- WF runtime provides various services like persistence, transactions etc
- Workflow runtime engine manages workflow execution and allows workflows to remain active for long periods of time.
Workflows in SharePoint 2010
SPD 2010 allows to create three types of workflows
- List workflow
- Reusable workflow
- Site workflow