This chapter covers the workflow building blocks - activities. First, the chapter provides an overview of the activity architecture and relevant components of Windows Workflow Foundation. After that, the chapter presents a detailed list and discussion of each out-of-the-box activity. The chapter names each activity, and discusses important relationships between it and other activities.
The second half of the chapter covers custom activity development. The chapter describes pertinent steps and pitfalls related to creating new activities and provides examples to illustrate the text.
As previously mentioned, activities are the basic building blocks of a workflow definition. An activity represents a discrete piece of functionality that generally does only one thing, but it does that one thing very well. Your goal is to make activities as reusable and generic as possible so that you can use them across many different workflows. Although the previous sentence is generally true, you can also use activities in very specific problem domains. For example, you could implement a library of custom activities related to a very narrow field, such as organic chemistry or a specific process at a healthcare institution.
Generally, activities come in two flavors: standard and composite. Standard activities are standalone components, such as the Code or CallExternalMethod activity. Composite activities contain child activities that are executed according to the logic implemented in the parent. For example, the IfElse activity can have many branches, each representing a particular path to be executed according to specified Boolean logic. A composite activity can also be something like a Sequence activity, which simply executes its children in the order in which they are defined.