In the actual Enterprise architectures, workflows are always more an essential part and in a modern architecture there's always more the need to have a flexible way to manage the various business processes.
Microsoft has developed an interesting and powerful platform for modeling business workflows and lots of its new products are starting to use the new Windows Workflow platform. Also on the ERP side Microsoft has receive the need to manage workflow and in the last Dynamics NAV 5.0 magically has appeared a new feature called "Document Approval". Nothing revolutionary (our company for example has developed a custom and complex document approval workflow system from NAV 4.x) but it's an important sign.
However, despite the "built-in" workflow features that the actual products have (and will have always more), why not using Windows Workflow as a base to start building our custom enteprise workflows? Windows Workflow can permit us to model complex workflows that can bring together different systems (Dynamics NAV processes, Web, external application, Office world etc.).
Imagine a scenario like this (that comes from a simple needs that a business process of a customer has): when an offer for a service must be emitted, the document must be approved from a technical manager (it gives technical details about the service to offer) and from a commercial manager (it gives commercial details for the business). After the approval process (two signs on the document), the offer can be emitted.
We have a custom workflow inside Dynamics NAV that can manage this scenario very well, but imagine if we would like to extend this approval process to the external world, for example by integrating different applications (Dynamics NAV and an ASP.NET or Winform client). How to handle this needs in a flexible manner?
Windows Workflow can help us to solve this problem. We can model our business process in this way:
I don't want to give in details here about the Windows Workflow activities, but this workflow (written by using Visual Studio 2005 and .NET 3.0) can solve the scenario previously described. The advantage is that it's totally customizable and flexible, and we can modify the entire process to meet future needs.
This workflow use a ParallelActivity, waits for an approvation by the Technical Manager and by the Commercial Manager and then call an InvoceWebService activity to notify the approval result.
I'm seriously thinking on using Windows Workflow to model our future business processes... and I hope to have turn on a light on your mind for future applications. 
P.S. a little note about the ParallelActivity from the SDK:
The ParallelActivity activity lets you schedule two or more child SequenceActivity activity branches for processing at the same time. Although branch SequenceActivity activities are scheduled to start processing at the same time, they do not start processing at the same time. Processing begins with the execution of one activity that is contained in one of the SequenceActivity branches.
Although the SequenceActivity child branches are processed at the same time, the branch activities do not execute in a true concurrent manner. The Windows Workflow Foundation runtime uses one thread per workflow instance. All the separate branches in the ParallelActivity activity share the same single workflow instance thread. Therefore, only one activity of one branch executes at a time.
Technorati Tag:
Windows Workflow