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

Play Hosting a Workflow in a Local Executable using Workflow Services Part III
Sign in to queue


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



Download this episode

The Discussion

  • User profile image

    can anyone share how the poster managed to add the service reference named "ClientServiceProxies" into the workflow service "ExpenseReportWorkflowService"? The video literally opened up an existing project that already had this wired up.


Add Your 2 Cents