Windows Workflow Foundation 中的新增功能
.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 对象来表示新行为,而不管这些对象是自定义开发的还是包括在内置活动库中。
丰富的复合活动选项
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 设计器时使用的模型,还提供了更简单的用于创建自定义活动设计器的机制。 有关详细信息,请参阅自定义工作流设计体验。