Microsoft has announced workflow technology to be part of the base framework you get with WinFx (I already hinted at it in this post). So what does it mean? Basically, it is designed to offer human workflow as well as systems workflow. Because it is a framework you can host it in any application and use it. Think of it as having the BizTalk orchestration functionality at your fingertips to be used without a BizTalk server. Even functionality such as transactions, tracking and persistence of the workflow instance (hydration/dehydration) is supported, and the really cool thing is that you are allowed to plug in your own classes to support these things. For instance, for an Oracle shop you could just persist to Oracle, instead of needing to buy SQL Server.
Also, all the design time support which is somewhat like the BizTalk orchestration designer is delivered with the product.
This is a really powerful concept as lots of Line of Business applications need to support some type of workflow. Think of the following use cases:
- Page or Form flow in a WinForms or Web application (or even Avalon)
- Using it inside services to coordinate work across other services (we call this type of service a Process Service at Info Support in our reference architecture)
- Using it to describe and enforce a Message Exchange Pattern (MEP) for your service (First call PlaceOrderTentative, then call either CancelOrder or PlaceOrderDefinitive within one day or Cancellation will automatically take place)
So as you can see this is pretty powerful stuff. Microsoft also announced that the BizTalk Orchestration and Business Rules engine will be replaced by this functionality.
I really like the way Microsoft is going, by providing us with the frameworks to apply in the shape we think is useful, and them also using it for their own products.