To immerse yourself in the Windows Workflow Foundation API, you need to know what namespaces are available and what kind of classes you can expect to find in each. The following namespaces are available in Windows Workflow Foundation:
System.Workflow.Activities - Contains classes that represent the concrete activities included with Windows Workflow Foundation, such as the Code activity and the IfElse activity.
System.Workflow.Activities.Rules - Contains classes related to rules in Windows Workflow Foundation, including classes for conditions and their associated actions.
System.Workflow.Activities.Rules.Design - Contains classes that represent the Rule Set Editor and Rule Condition Editor user-interface dialog boxes in Visual Studio. These dialog boxes are discussed in greater detail in Chapter 9.
System.Workflow.ComponentModel - Contains all of the classes and interfaces that are used as the basis for workflows and activities. This includes the base class for all activities, which is aptly called Activity. Other supporting elements such as delegates and enumerations are located here as well.
System.Workflow.ComponentModel.Compiler - Contains classes that support the compilation process of activities and workflows. In addition, the classes that perform validation of activities during design time are located here.
System.Workflow.ComponentModel.Design - Contains classes and constructs to create and extend design-time components. (Visual design is a core concept of Windows Workflow Foundation.) Classes of note include WorkflowTheme, which provides properties related the look and feel of a workflow during design time, and ActivityToolboxItem, which is the base class for all Toolbox activity items.
System.Workflow.ComponentModel.Serialization - Contains classes that support the serialization of workflows and activities.
System.Workflow.Runtime - Contains classes and interfaces related to the workflow runtime. The most notable class in this namespace is WorkflowRuntime, which is responsible for the execution and maintenance of running workflow instances. The WorkflowInstance class is also important because it represents an active workflow.
System.Workflow.Runtime.Configuration - Contains classes that allow the runtime to access predefined configuration data. (Configuration is an important part of Windows Workflow Foundation.)
System.Workflow.Runtime.Hosting - Contains classes related to the workflow runtime services introduced previously. All workflow runtime hosting classes are located here, from the base WorkflowRuntimeService class to the concrete default classes for treading and transactions.
System.Workflow.Runtime.Tracking - Contains the actual runtime service classes as well as classes that define tracking profiles and channels. (Even though tracking falls under the umbrella of runtime services, this concept is sizeable enough to warrant its own namespace.)