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.
|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).|
Copyright (c) 2008-2013. 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.