A common question asked is should you use K2.net, Windows Workflow Foundation (WF) or SharePoint designer. The following is some quick things that should be considered.
1.1 General WF
WF architecturally has the look and feel of K2 and we know the K2 BlackPearl release is built completely on WF. Here is a high level context diagram of it.
A few things to keep in mind:
- Have to build low level interfaces to move data between applications and the workflow definitions.
- Have to build a hosting application to manage transactions (especially long-running transactions).
- Have to create a transaction management and logging database.
- Have to build ACID transaction management using WF activity library.
- Must create graceful and generic exception handling.
- No "out of the box" integration with any applications in the Microsoft stack.
This is not a comprehensive list and is based on observations and other projects I have seen try to do complete WF solutions from scratch. WF is great foundation to build solutions upon but it could be equated to "plumbing". If you have done work with BizTalk you may know it is a powerful Enterprise Service Bus pattern solution. BizTalk has orchestrations which would consistently confuse stakeholders into thinking that a simple diagram is drawn and configured and the project is done. We know this is not the case and the same analogy can be drawn for WF.
WF is similar in nature for the workflow world. It is very interface driven, requires lots of custom code and a high-level of effort. Some return on investment is gained with its activity library abstractions but not enough. As well, the level of adoption of pure WF solutions has not gotten off the ground when it comes to building custom applications.
1.2 SharePoint 2007 Workflow
SharePoint Designer 2007 is a rebuild of MS FrontPage made specifically to work with SharePoint. Some disadvantages of building workflow in SharePoint Designer 2007 are:
- Meant for business users as a code free workflow solution for managing items within SharePoint only.
- When using SharePoint Designer 2007 your site can become customized (unghosted). Allowing business users to have elevated privileges to use SharePoint Designer 2007 is not good either.
- Workflows are not reusable and are bound to the list (there are some known ways of doing it but it is not natural; the official answer is it is "NOT supported" - Porting SharePoint Designer Workflows to Visual Studio). Note this makes it difficult to move them between development, QA and production environments.
- Limited conditional logic.
- Cannot add custom code to workflow from designer (read whitepaper in called "Adding Activities to SharePoint Designer 2007" in the EMC Starter Kit).
- Form integration not robust (ASP.net or InfoPath).
- Centers around workflows to manage documents, sending emails and creating tasks only.
- Supports sequential flows only.
- No ability to debug.
The second option is to create custom WFs using the architecture discussed in the first section using Visual Studio. From information I have gathered from other colleagues whom have done pure MOSS WF solutions they we difficult. Some disadvantages of doing MOSS workflow in Visual Studio is:
- Provide basic activities and events for MOSS only.
- Difficult to deploy.
- Robust audit and metric data must be built up.
- Creating large multi-step processes difficult.
- Integration with other platforms must be built from scratch.
1.3 References to Learn About Both
To try your hand at both SharePoint Designer and Visual Studio Workflow try this virtual lab.
As well check out the book I recommended here.
Also recommend reviewing these two links Workflow Development in Office SharePoint Designer and Workflow Development Tools Comparison.
2. K2.net BlackPearl and MOSS
K2.net BlackPearl simply becomes an obvious choice once you start pealing back the layers. It is built completely on top of WF and removes every one of the issues stated above. Out of the box:
- Comes with event handlers to do every operation you need with a SharePoint List or Document Item. Updating metadata, moving, deleting, creating, batch operations, modifying the document permission, checking in/out, etc. They basically provide wizards to generate and customize Features requiring the developer to write less code.
- They provide several events for publishing content supporting the Content Management Server (CMS) features that were rolled into MOSS.
- They have some out of the box events to build workflow around Records Management.
- Creating complex multi-stage InfoPath 2007 processes is supported (this includes web enabled forms).
- Provide several events for SharePoint site administration. Events to managing users and permissions, managing lists/libraries and provisioning sites and workspaces, etc.
- They provide an Ajax tool to build workflows on the SharePoint site itself.
- Workflows can be authored inside of Visio.
There is really so much more as this is the tip of the iceberg for K2.net BlackPearl.