Windows Workflow Foundation (WF) is a
Microsoft
Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
technology that provides an
API
An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
, an in-process
workflow engine A workflow engine is a software application that manages business processes. It is a key component in workflow technology and typically makes use of a database server.
A workflow engine manages and monitors the state of activities in a workflow, su ...
, and a rehostable designer to implement long-running processes as workflows within
.NET applications. The latest version of WF was released as part of the
.NET Framework
The .NET Framework (pronounced as "''dot net"'') is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until bein ...
version 4.5 and is referred to as (WF45).
A workflow, as defined here, is a series of distinct programming steps or phases. Each step is modeled in WF as an Activity. The .NET Framework provides a library of activities (such as WriteLine, an activity that writes text to the console or other form of output). Custom activities can also be developed for additional functionality. Activities can be assembled visually into workflows using the Workflow Designer, a design surface that runs within
Visual Studio
Visual Studio is an integrated development environment (IDE) from Microsoft. It is used to develop computer programs including web site, websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development platfor ...
. The designer can also be hosted in other applications.
Encapsulating programming functionality into the activities allows the developer to create more manageable applications; each component of execution can be developed as a
Common Language Runtime
The Common Language Runtime (CLR), the virtual machine component of Microsoft .NET Framework, manages the execution of .NET programs. Just-in-time compilation converts the managed code (compiled intermediate language code) into machine instructio ...
object whose execution will be managed by the workflow runtime.
Workflow Foundation versions
* Workflow Foundation was first released in Version 3 of the .NET Framework,
.NET Framework 3.0
/ref> and primarily uses the System.WorkflowActivities, System.Workflow.ComponentModel, and System.WorkflowRuntime namespaces. Workflows in version 3 were created using either the Sequential model (in which activities are executed in order, with the completion of one activity leading to the next), or the State Machine model (in which activities are executed in response to external events). Microsoft SharePoint 2007 uses WF 3.
* In .NET Framework 3.5, messaging activities were introduced that integrated Workflow with Windows Communication Foundation
The Windows Communication Foundation (WCF), previously known as Indigo, is a free and open-source runtime and a set of APIs in the .NET Framework for building connected, service-oriented applications.
.NET Core 1.0, released 2016, did not sup ...
(WCF). With the new ReceiveActivity, workflows could respond to incoming WCF messages. The new features of Workflow in version 3.5 use the System.ServiceModel namespace. Microsoft SharePoint 2010
SharePoint is a web-based collaborative platform that integrates natively with Microsoft Office. Launched in 2001, SharePoint is primarily sold as a document management and storage system, but the product is highly configurable and its usage v ...
uses WF 3.5.
* In .NET Framework 4, Windows Workflow Foundation was updated extensively, with new features such as Data Contract Resolver, Flowchart, and other flow control activities added. Workflow in .NET 4 uses the SystemActivities namespace. Most notably, there is no longer a Workflow Runtime object in version 4; workflows are executed directly using WorkflowApplication or WorkflowInvoker instead.
* Activities created in previous versions of the .NET Framework can be executed by .NET 4 workflows using the Interop activity.
* Future versions and releases of Windows Phone
Windows Phone (WP) is a discontinued family of mobile operating systems developed by Microsoft for smartphones as the replacement successor to Windows Mobile and Zune. Windows Phone featured a new user interface derived from the Metro design la ...
will include an updated State Machine and Dynamic Update.
Workflow usage scenarios
Windows Workflow Foundation is used to create applications that execute an ordered business process, such as the steps needed to approve a document, hire a candidate for a position, or make a purchase. These processes can execute in a short amount of time, but are typically long-running, in which the application will need to shut down to conserve memory between steps. Typically, business processes to be modeled as workflows have the following features:
* Have specific business logic that may need to change periodically, such as the tax or shipping calculation needed to determine the purchase price of an item, or the series of steps needed to approve a purchase, hire, or process.
* Have several inputs into the workflow that may come hours or days apart
* Have advanced business logic that might require workflow execution to travel down different branches depending on different circumstances.
* Need to interact with other systems, such as a database, website or other client application, or web service.
Authoring workflows
Workflows are created either by being defined in XAML Extensible Application Markup Language
Extensible Application Markup Language (XAML ) is a declarative XML-based language that Microsoft developed for initializing structured values and objects. It is available under Microsoft's Open Specification Promise.
XAML is used extensively ...
using the workflow designer, or by being assembled programmatically in a .NET language such as C# or VB.NET.
If the designer is used, activities are assembled on the workflow designer canvas by dragging them from the toolbox. Workflow arguments and variables are also created and assigned within the designer. If a workflow is assembled in code, activities are instantiated like other CLR objects, and assembled into collections of a single parent activity, usually a Sequence or Flowchart. The single parent activity is then executed using WorkflowApplication or WorkflowInvoker, and runs as a workflow. The term "Workflow" here usually refers to the root activity that is executed by the host. Workflows can use both out-of-box activities and custom activities. Out-of-box activities include flow control activities such as DoWhile, Flowchart-related activities such as FlowDecision, WCF Messaging activities such as Send, and primitive activities that perform simple tasks like Assign and WriteLine. Custom activities are user-created CLR objects that derive from the class System.ActivitiesActivity, and provide declarative functionality by allowing the developer to define the execution behavior of the activity in code. Custom activities can benefit from having a custom activity designer associated with them to enhance the visual authoring experience in the Visual Studio IDE.
Books on Workflow
.NET Framework 3.0 and 3.5
* Dharma Shukla, Bob Schmidt: ''Essential Windows Workflow Foundation'', Addison-Wesley Professional, 13 October 2006,
* Michael Stiefel: ''Building Applications with Windows Workflow Foundation (WF): Basics of Windows Workflow Foundation (Digital Short Cut)'', June 5, 2007, Kindle,
* Brian Noyes: ''Developing Applications with Windows Workflow Foundation (WF) (Video Training)'', June 7, 2007, Brian Noyes,
* Brian R. Myers: ''Foundations of WF'', Apress, 23 October 2006,
* Bruce Bukovics: ''Pro WF: Windows Workflow in .NET 3.0'', Apress, 19 February 2007,
* Todd Kitta: ''Professional Windows Workflow Foundation'', Wrox, 12 March 2007,
* Kenn Scribner: ''Microsoft Windows Workflow Foundation Step by Step'', Microsoft Press, 28 February 2007,
.NET Framework 4.0
* Mark Collins: ''Beginning WF: Windows Workflow in .NET 4.0'', Apress, March 19, 2010,
* Bruce Bukovics: ''Pro WF: Windows Workflow in .NET 4'', Apress, June 29, 2010,
* Andrew Zhu: ''Microsoft Windows Workflow Foundation 4.0 Cookbook'', Packt Publishing, September 24, 2010,
.NET Framework 4.5
* Bayer White: ''Pro WF 4.5'', Apress, November 14, 2012,
References
External links
Microsoft Docs: Windows Workflow Foundation
{{Authority control
Workflow Foundation, Windows 7, Windows Server 2008, Windows Server 2008 R2, Windows Server AppFabric
.NET Framework terminology