SharePoint Workflow Guidance and Best Practices

I had a question today about SharePoint Workflow "Dos and Don'ts" and I thought it might be a good idea to share the response more broadly. 

 

I'm also working on compiling a list of Best Practices for Custom Application Development in SharePoint, which will be published next month on MSDN as part of a larger MSDN/TechNet series on the subject of guidance and best practices. Stay tuned for updates...

 

 

SharePoint Workflow Resources

The Workflow Resource Center on MSDN is a good place to start for guidance: https://msdn.microsoft.com/en-us/office/bb421687.aspx.

 

**Update 8/29: Here is a great Workflow Best Practices paper as well:

Developing Workflow Solutions with SharePoint Server 2007 and Windows Workflow Foundation

This blogger also did a good job compiling links within the SDK and to other MSDN & Web resources, as well as other sources of Best Practices for Workflows:

https://blogs.msdn.com/socaldevgal/archive/2007/07/06/does-your-sharepoint-workflow-look-like-this.aspx

Also, the downloadable MOSS SDK has a lot of workflow templates and samples.

 

Knowing when to use SharePoint Designer (SPD) workflows v. Visual Studio (VS) workflows

A good place to start is with the freshly updated SDK: https://msdn.microsoft.com/en-us/library/ms461944.aspx

 

There is also this guidance offered in the SharePoint team blog:

SPD is geared toward the Web Designer/Business admin. It's easy to learn, and you don't have to write any code. You can put together a lot of workflows with just sequence of actions and conditions. The other cool thing about SPD is that you can deploy remotely (vs. VS, where you have to deploy on the server box)

However, there are a few limitations (deploys to one list at a time, no InfoPath forms, only sequential workflows). So you will want to use VS if…

· You need to create a workflow that can be deployed to all lists in a site collection.

· You want to use InfoPath forms for your workflow

· You need more actions than the ones available by default in SPD

· You want to use state machine workflows

Hope this helps,

Randall