.NET Framework 4 中的 Windows Workflow Foundation (WF)更改了早期版本的多个开发范例。 现在,工作流更易于创建、执行和维护,并实现大量新功能。 有关迁移 .NET Framework 3.0 和 .NET Framework 3.5 工作流应用程序以使用最新版本的详细信息,请参阅 迁移指南。
工作流活动模型
活动现在是创建工作流的基本单元,而不是使用 SequentialWorkflowActivity 或 StateMachineWorkflowActivity 类。 Activity 类提供工作流行为的抽象基类。 然后,活动作者可以实现基本自定义活动功能的 CodeActivity,或者实现利用运行时广度的自定义活动功能 NativeActivity。 Activity 是活动作者用来通过其他 NativeActivity、CodeActivity、AsyncCodeActivity或 DynamicActivity 对象声明性表达新行为的类,这些对象可以是自定义开发的,也可以包含在 Built-In 活动库中。
丰富的复合活动选项
Flowchart 是一项功能强大的新控制流活动,允许作者对任意循环和条件分支进行建模。 Flowchart 提供事件驱动的编程模型,该模型以前只能通过 StateMachineWorkflowActivity实现。 新的流控制活动通过建模传统流控制结构(如 TryCatch 和 Switch<T>)让过程工作流受益。
扩展的内置活动库
活动库的新功能包括:
新的流控制活动,如 DoWhile、Pick、TryCatch、ForEach<T>、Switch<T>和 ParallelForEach<T>。
用于操作成员数据的活动,例如 Assign 和收集活动,如 AddToCollection<T>。
用于控制交易的活动,如 TransactionScope 和 Compensate。
新增消息传递活动,例如 SendContent 和 ReceiveReply。
显式活动数据模型
.NET Framework 4 包括用于存储或移动数据的新选项。 可以使用 Variable 在活动中存储数据。 将数据在活动中移入和移出时,使用专用参数类型来确定数据移动的方向。 这些类型是 InArgument、InOutArgument和 OutArgument。 有关详细信息,请参阅 Windows Workflow Foundation 数据模型。
增强的托管、持久性和跟踪选项
.NET Framework 4 包含持久性增强功能,如下所示:
还有更多用于运行工作流的选项,包括 WorkflowServiceHost、WorkflowApplication和 WorkflowInvoker。
可以使用 Persist 活动显式保留工作流状态数据。
主机可以在不卸载 ActivityInstance 的情况下对其进行持久化。
工作流可以在处理无法持久保存的数据时指定无持久化区域,从而将持久化推迟到无持久化区域退出。
可以使用 TransactionScope 使事务流入到工作流中。
使用 TrackingParticipant可以更轻松地完成跟踪。
使用 EtwTrackingParticipant 可以提供对系统事件日志的跟踪。
现在可以使用 Bookmark 对象管理对挂起的工作流的恢复。
更轻松地扩展 WF 设计器体验
新的 WF 设计器基于 Windows Presentation Foundation (WPF)构建,在 Visual Studio 外部重新托管 WF 设计器时提供更易于使用的模型,并提供更轻松的机制来创建自定义活动设计器。 有关详细信息,请参阅 自定义工作流设计体验。