As we will see from topics on this site over the coming months, Windows WorkFlow Foundation (WF) is a great programming paradigm and technology for developing with where the execution speed of the process isn’t the critical factor of concern but where some of the following are of higher importance;
- process transparency and maintainability – have the ability to look at your code at a high level and understand the process flow
- multiple different paths based on decision tree’s which result in non linear execution – for example, if we had an approval flow then maybe we have to ask one more people for approvals based on criteria determined by the flow itself
- management of long running processes that could take hours, days or months to complete execution – WF has the ability to bookmark and persist flows to a data store for later retrieval
- tracking of code execution – WF provides mechanism that allow you to track the execution of each activity within the flow
- creating the program execution visually using a designer – WF has a built in designer and allow you to create your own activities
- regular rule or execution changes – if you are architecting an application where the rules of execution are regularly going to change then creating this application within WF will allow you to change the flow and use the built in version system so that all new flow get the changes where currently executing flows remain unchanged
Due to the ability that you are able to re-host the WF designer in your own application WF has become the foundation workflow engine to a few solutions including SharePoint WorkFlow and it is also included in the Microsoft Dynamics line of business products.
As of writing this post the current version of WF is 4.5 and this version is magnitudes better in both performance and functionality when compared to earlier versions especially version 3.
One of the developers most important roles at the start of any project is to define the technology that is too be used to deliver the business requirements and my belief is that WF should be at least one of the technologies considered and our hope is that WorkFlowExplained.com will at a minimum give enough information so that developers and analysts can make a more informed decision on whether WF is a fit for their requirements.