I've been thinking about some fundamental differences between WF and a few 3rd party workflow tools (Metastorm, Bluespring Software and others). In WF, describing a workflow process is conceptually similar to designing a Windows form. Utilizing the Visual Studio design time capabilities of activity classes we can configure our model. Code-behind implements the configuration and is eventually compiled into a "runnable" workflow. The 3rd party tools I've worked with provide a more explicit seperation of the process description metadata and the workflow engine runtime. Generally a process description tool allows the process to be modelled and published to a persistant store. At runtime, the workflow engine utilizes this metadata to execute an instance of a workflow.
Initially the WF approach seemed flawed. I instictively felt it was Microsoft's bias that everything should be source code and modelled in Visual Studio. But the more I've thought about it the more I l ...