How does Windows Workflow Foundation (WF) compare to product X?

I get asked this question a bit from people who have heard of WF but have not read much about it. This applies to BizTalk Server 2006, Office SharePoint Server 2007, SourceCode K2, Skelta, Captaris, other BPM products, etc. Here's how I explain it. I'll try to avoid the million analogies that could be used here.

WF is a software developer technology

  • It's the programming model, engine and tools for building workflow-enabled software on Windows
  • It gives software developers a model driven tool which is higher level but still integrated with .NET code
  • It's seriously extensible to enable a wide range of software development projects that require process execution or business logic execution
  • It's targetted at Independand Software Vendors (ISVs) both Microsoft products and external product developers. We spend a lot of time planning the features for this audience
  • It's been successfully used by many MS products and customer projects despite only being released in Nov 2006

WF is not a software product

  • It doesn't have a server process that you can directly run in a data center, you have to build this or integrate with IIS
  • It doesn't have administrative tools, reporting tools, management tools or monitoring tools. We have some samples for these that you can work into your softwareproducts
  • The workflow designer is best suited to developers, not business analysts. Though I have heard of some projects using our designer with a business analyst buddying with a software developer and our designer is freely redistributable.
  • It doesn't have tools that IT Pros need or end users need. It's focussed only on what software developers need

To review WF is a great technology for building software that has process, workflow or business logic requirements. Software products can benefit from this by using a common low level engine and focus on implementing business value for their users. But don't think WF is a product you can directly deploy for an end customer.

Build versus Buy

Instead of asking whether you want to use WF or some product for your solution. I would recommend another question. Ask yourself whether you want to build a software development project or whether you would prefer to buy software from a vendor. WF is a technology that you could use to build the software yourself and by releasing it as part of the .NET Framework Microsoft has essentially made the build argument stronger. But we also made WF available for ISVs who are building the products you might otherwise consider. And that means they can build on top of it to provide all the higher level features and business value that isn't in WF.

Related Questions

I'll try to answer these in later posts. Feel free to comment on this post with other questions about WF you might have.

  • How does WF work with process related software products?
  • What types of software development is WF best suited to?