| I started working with the new Microsoft WinFX technology stack early in the beta and Community Technology Preview (CTP) stages. The foundations that began their life as WinFX (Windows Presentation, Windows Communication, and Windows Workflow) became a shipping Microsoft product named .NET Framework 3.0 in November 2006. I actually started to learn and use all three of these foundations at the same time in my day job. Talk about a massive learning curve.
While I was impressed with the flexibility and capabilities of Windows Presentation Foundation (WPF) and Windows Communication Foundation (WCF), I was somehow inexplicably drawn to Windows Workflow Foundation (WF). WF isn’t just a new way to implement a user interface or a new way to communicate between applications and services. WF represents a completely new way to develop applications. It is declarative, visual, and infinitely flexible. It promotes a model that cleanly separates what to do from when to do it. This separation allows you to change the workflow model (the when) without affecting the what. Business logic is implemented as a set of discrete, testable components that are assembled into workflows like building blocks.
Workflow isn’t a new concept. But when Microsoft spends years developing a workflow foundation and provides it to us without cost, it is an event worth noting. Other workflow frameworks exist, but WF is the de facto standard workflow framework for Windows applications.
I originally wrote the first edition of this book because I was excited about workflow, and about WF in particular. I was excited about the opportunities that it held for application developers like us. And that excitement continues today, especially with the release of .NET Framework 3.5. With this release, Microsoft has continued to provide additional enhancements to WF. In particular, .NET 3.5 includes support for workflow services. These are Windows Communication Foundation services that are implemented as workflows.
My hope is that this book will help you to use WF to build an exciting new generation of workflow-enabled applications. |