WinFX includes a technology called Windows Workflow Foundation that allows programs to be expressed as declarative, long-running processes called workflows. Unlike traditional Microsoft® .NET Framework programs, workflow-based programs are typically specified in a declarative Extensible Application Markup Language (XAML) document that specifies the structure of the program in terms of domain- specific activities. These activities are typically implemented in a traditional common language runtime (CLR)-based programming language such as C# or Visual Basic®.
WinFX™ provides a set of general-purpose activities that cover most control flow constructs, but users are free to ignore them and write an entirely new set of activities that are precisely tailored to the problem domain they are working in. More commonly, a workflow program will use WinFX-provided activities for basic control flow and program structure, and will use custom user-defined activities for domain-specific functionality.
In addition to supporting a XAML-based compositional approach to creating programs, workflow-based programs also benefit from a richer set of runtime services than traditional CLR-based programs. The WinFX workflow runtime can be hosted in any CLR AppDomain. The runtime allows workflows to be removed from memory (a technique called passivation) and later reloaded and resumed without making developers write explicit state management logic. The workflow runtime also provides common facilities for handling errors and compensating transactions to allow either automatic or customized undo logic to be specified for long-running units of work. In addition, you can take advantage of management services that allow the state of a given workflow program to be inspected either through eventing, tracking, or querying the workflow state.
|