Windows Workflow Foundation (WF) is a key component of the .NET Framework 3.0, and comes from the collection of API’s that were previously known as WinFX. It provides a robust framework that can be incorporated directly into a .NET application in order to provide workflow capabilities that would otherwise be complex and time consuming to develop.
On more than one occasion in the past, I have had to build custom workflow capabilities for my applications to use. So, when it was announced that WF was to become part of the .NET Framework, I became very interested in figuring out how to use it instead of always reinventing the wheel.
Foundations of WF: An Introduction to Windows Workflow Foundation by Brian R. Myers is the first book that I have read through on the topic. Brian has a conversational style of writing that I found easy to follow. He includes a lot of screenshots and source code snippets to break up the text into smaller, more palatable bites. This book is sure to become one of my standard reference manuals on the topic.
One good thing about this book is that there are examples in both VB.NET and C#, so you do not need to translate syntax in your mind if you know only one of these languages. But, this also becomes a bad thing when trying to use this book as a reference.
I personally prefer a single language version of books because I find it distracting to repeat sections of content for the sole purpose of displaying a different language’s syntax. In addition, I recall a couple of places in this book where the C# section refers you to something that was described in detail in the VB.NET section. If you tend to read a technical book sequentially from front to back, then this might be acceptable. I, on the other hand, tended to skip over the VB.NET sections of each chapter since the C# sections were found immediately after.
Aside from the dual code issue, and some minor stylistic/creative decisions that he made in creating the demo source code (i.e., his method of padding a purchase order number with leading zeros makes me cringe every time that I see that snippet of code), I found this book to be a great companion to step me through the “Hello World” and beyond of WF.
You will not only learn what is required to use WF in your application, but you will also become exposed to the different types of workflow provided by WF, the various out-of-the-box Activities, how to create your own custom Activities, and how to deploy your workflow-enabled application. As a bonus, Brian also includes a chapter on using WF with Office 2007 and SharePoint (chiefly by means of a single example scenario using an InfoPath form).
Full Disclosure: A review copy of this book was provided to me by Apress.