Hosting a Workflow in a Local Executable using Workflow Services Part I

Download this episode

Download Video


When the Windows Workflow Foundation (WF) was first introduced in the .NET Framework 3.0, the only way to host a workflow in a client application was to use the WorkflowRuntime class programmatically, start the runtime, and create/start an instance of a workflow.  Furthermore, if you wanted to communicate between the client code and the workflow logic, you needed to ues a ExternalDataExchangeService.  This required a fair amount coding effort to get even the simplest of workflows up and running.  The .NET Framework 3.5 introduced Workflow Services which are Windows Communication Foundation (WCF) Services authored as workflows.  Workflow Services give you a new way to accomplish this scenario using a much simpler, cleaner, and arguably more elegant approach.  In this three part screencast, I show you how to improve on the more manual hosting + ExternalDataExchangeServices approach by hosting a workflow in a client executable using Workflow Service.

Part I - Reviewing the SimpleExpenseReport application from the Create a Sequential Workflow tutorial so we can compare the two approaches. The application explicitly hosts the WorkflowRuntime & uses ExternalDataExchangeService

Part II - Walking through the fundamentals of creating a Workflow Service and hosting the Workflow Service locally

Part III - Walking through my rewrite of the SimpleExpenseReport application using Workflow Services.

Source code for the Workflow Services version of SimpleExpenseReport is available at



Available formats for this video:

Actual format may change based on video formats available and browser capability.

    The Discussion

    Comments closed

    Comments have been closed since this content was published more than 30 days ago, but if you'd like to send us feedback you can Contact Us.