WF Assemblies and Namespaces

As you build workflow-enabled applications, you will undoubtedly notice a difference from building a typical
.NET application. For example, most applications begin by creating a new project workspace (Windows
Forms, WPF, ASP.NET) and authoring custom code to represent the program at large. A WF application also
consists of custom code. However you will also be modeling the business process itself directly into the
assembly.

Consider the initial workflow diagram generated by Visual Studio when selecting a new ‘Sequential Workflow
Console Application’ project. Notice you are invited to drag activities onto the designer surface. Here, the
top-most icon (a circle containing an arrow) represents the starting point of the sequential workflow. The
square with a circle icon at the bottom represents the ending point.




















WF is far more than a designer that enables you to model the activities of a business process. As you are
building your WF diagram, the designer tools are authoring code to represent the skeleton of your process.
Thus, a visual WF diagram is executable code, not just simply a Visio-like static image. As such, WF is
represented by a set of .NET assemblies, namespaces, and types, just like any other .NET API.

From a programmer’s point of view, Windows Workflow Foundation is represented by three core assemblies:
      •       
 System.Workflow.Activities.dll: Defines the intrinsic activities and the rules that drive them.
      •      
  System.Workflow.Runtime.dll: Defines types that represent the WF runtime engine and
                instances of your custom workflows.
      •        
System.Workflow.ComponentModel.dll: Defines numerous types that enable design-time
               support of WF applications and custom activities.

These assemblies define a number of .NET namespaces, but many of them are used behind the scenes by
various WF visual design tools. Other namespaces enable you to interact with a number of integrated WF
services, such as tracking and persistence. However, the following WF-centric namespaces will be common to
any sort of workflow-enabled application you may be constructing.
WF Assemblies and Namespaces
Table of Contents
Copyright (c) 2008.  Intertech, Inc. All Rights Reserved.  This information is to be used exclusively as an
online learning aid.  Any attempts to copy, reproduce, or use for training is strictly prohibited.
Courseware
Training Resources
Tutorials
Services


WF Namespace


Meaning in Life


System.Workflow.Runtime

This namespaces defines types that represent the WF
runtime engine (such as
WorkflowRuntime) and an
instance of a given workflow (via
WorkflowInstance).


System.Workflow.Activities

This is the core activity-centric namespace, which defines
type definitions for each of the items on the Windows
Workflow toolbox.  

System.Workflow.ComponentModel

This defines the core types used to build WF activities
(base classes, interfaces, and more).