Windows Workflow Foundation 示例

本节中的示例涵盖 Windows Workflow Foundation 中广泛的技术领域。 这些技术示例侧重于 Windows Workflow Foundation 的关键领域,而应用程序示例则通过使用完整的应用程序来演示各种各样的 Windows Workflow Foundation 功能。

本节内容

应用程序示例

应用程序示例描述了一些针对 Windows Workflow Foundation 编写的完整应用程序,这些应用程序演示了若干技术的使用。

示例 说明

“订单状态机”示例

演示如何创建用于实现订单处理系统的状态机工作流。

“Outlook 工作流向导”示例

演示如何承载 Windows Workflow Foundation Visual Studio 设计器以创建可生成 Microsoft Office Outlook 规则的应用程序。

“语音应用程序”示例

演示如何创建用于实现语音驱动菜单应用程序的状态机工作流。

“终止跟踪服务”示例

演示如何创建自定义跟踪服务来跟踪工作流终止。

“跟踪配置文件设计器”示例

使您能够直观地创建跟踪配置文件。 此跟踪配置文件随后可保存到文件或 SQL Server 中的数据库。

“工作流监视器”示例

提供一个使您可以看到工作流实例进度的工具。 它使用 SqlTrackingService 来收集工作流和活动的当前状态,并使用可重新承载的工作流设计器来显示进度。

“工作流反射实用工具”示例

提供一个可扩展的工具,用于从程序集中提取与工作流相关的信息。 每个工作流的层次结构、声明性规则和必需的本地服务均显示在树视图中。 这样便于浏览已编译工作流的结构。

技术示例

技术示例演示 Windows Workflow Foundation 的特定技术。 这些技术根据其技术特性加以分类。

类别 示例 说明

“活动”示例

“嵌套异常处理程序”示例

阐释如何在工作流中使用嵌套异常处理程序,以便在工作流的不同阶段捕获和处理特定的异常类型。

“延迟”示例

演示如何使用 DelayActivity 活动。

“While 和并行”示例

演示如何在 while 循环活动中使用两个并行顺序代码活动。

“挂起和终止”示例

演示两个基本活动(SuspendActivityTerminateActivity)的用法。

“复制器”示例

演示 ReplicatorActivity 活动的简单用法。

ConditionedActivityGroup 示例

提供了 ConditionedActivityGroup (CAG) 活动的简单实现。

“同步”示例

演示如何创作同步访问共享资源的工作流。

“引发”示例

阐释如何使用 Throw 活动,利用该活动可以从工作流中建立异常的模型并引发异常。 它还演示了如何在宿主应用程序中捕获异常。

“补偿”示例

演示如何在工作流中创作补偿。

“简单策略”示例

演示如何创建一个工作流,该工作流使用 PolicyActivity 来实现折扣工作流。

“高级策略”示例

基于“简单策略”示例示例构建,用于演示 RuleSet 提供的更高级功能。

“状态初始化”示例

演示如何使用“状态初始化”活动。

“活动绑定”示例

“自定义活动绑定”示例

包括一个工作流,该工作流具有绑定到工作流属性的自定义活动属性。

“基本工作流”示例

“简单顺序工作流”示例

阐释如何通过使用命令行宿主生成和执行一个“hello world”工作流。

“简单的状态机”示例

演示状态机工作流的用法。

“带参数的工作流”示例

演示如何使用 IN 和 OUT 参数生成一个简单的顺序工作流。 该示例与“简单顺序工作流”示例示例大致相同,只是 IN 参数是由 IfElseActivity 活动中的代码条件计算得出的,并且订单状态存储在 OUT 参数中。

通信示例

“Web 服务”示例

演示如何能够从工作流中调用 Web 服务,以及如何能够以 Web 服务的形式发布工作流。

“侦听”示例

介绍 ListenActivity 活动,这是一种可阻止和等待 n 个子分支中的其中一个分支发生的复合活动。 每个子分支都是一个用阻止活动作为第一步的序列。 只会执行 ListenActivity 活动的其中一个分支。

“相关的本地服务”示例

演示如何将相关属性与本地服务一起使用,以便将相关事件引发到工作流实例。

“简单输入”示例

阐释如何使用队列将数据发送到工作流。

“宿主通信”示例

演示如何使用本地服务与工作流宿主应用程序进行通信。

“状态机通信”示例

演示如何使用 HandleExternalEventActivity 活动在状态之间进行转换。

“自定义活动”示例

“简单活动”示例

阐释如何将属性和处理程序添加到自定义活动。

“基本活动设计器”示例

阐释如何将自定义配置错误和自定义上下文菜单添加到与活动关联的设计器。

“发送电子邮件活动”示例

阐释如何创建一个自定义活动,可以使用该活动,通过简单邮件传输协议 (SMTP) 来发送邮件。

“文件系统观察程序活动”示例

阐释如何创建可用于侦听文件系统事件的活动。 它演示了在开发可侦听文件系统事件(比如在特定文件夹中创建文件)的活动时如何使用队列。

“设计器宿主”示例

“基本设计器宿主”示例

演示如何能够在 Windows 应用程序中重新承载工作流设计器。 此示例的目标是演示如何能够在 Visual Studio 外部创建一个单独的开发环境/执行环境。

“动态更新”示例

“工作流中的动态更新”示例

演示当工作流实例从工作流(代码旁置)内运行时如何动态更新工作流实例。

“更改规则”示例

演示如何从宿主程序中动态地更改规则条件。

“从宿主中动态更新”示例

演示如何从工作流外部(例如,宿主程序)动态地更新工作流实例。

“宿主”示例

“自定义持久性服务”示例

演示卸载工作流的引擎,当工作流在“延迟”活动过程中等待时,该引擎可通过自定义持久性服务来保存工作流实例状态。

“引发事件以加载工作流”示例

演示一个文档批准方案,在该方案中,工作流在进入空闲状态时将被从内存中卸载,并在事件到达时加载回内存中。

“使用持久性服务”示例

阐释如何使用 SqlWorkflowPersistenceService 服务,以及应用程序和工作流运行时如何将工作流实例加载到内存中和从内存中卸载工作流实例。

“取消工作流”示例

演示如何退出正在等待永远不会发生的外部事件的工作流。

“工作流线程”示例

演示使用手动线程模型运行工作流和使用默认 CLR 线程模型运行工作流的不同之处,并演示了在工作流中使用 DelayActivity 活动所造成的线程影响。

“持久性宿主”示例

演示如何使用 Windows 窗体示例来重新加载保留的工作流。

InMemory 示例

简单的内存中示例

演示如何在运行时加载工作流代码文件。

“标记”示例

“顺序标记工作流”示例

演示如何使用一个以标记形式创建的简单顺序工作流。

“状态机标记工作流”示例

演示如何使用一个以标记形式创建的简单状态机工作流。

“工作流序列化”示例

演示如何序列化和重新加载一个以编程方式创建的工作流。

“自定义序列化”示例

演示如何序列化高级数据类型。

“角色”示例

“使用 Active Directory 角色”示例

演示如何在工作流中使用 ActiveDirectory 角色。

“使用 Web 工作流角色”示例

演示如何在工作流中使用 ASP 角色。

“规则和条件”示例

“带规则的 IfElse”示例

演示如何将规则条件与 IfElseActivity 活动一起使用。

“跟踪”示例

“简单的跟踪”示例

阐释如何使用 SQL 跟踪服务来跟踪工作流事件。

“使用 SQLTrackingService 进行查询”示例

阐释如何使用自定义跟踪配置文件,通过 SQL 跟踪服务来跟踪工作流事件。

“使用用户跟踪点进行跟踪”示例

阐释如何使用用户跟踪点,通过 SQL 跟踪服务来跟踪工作流事件。

“EventArgs 跟踪”示例

阐释如何使用 SQL 跟踪服务来跟踪工作流 TrackingWorkflowTerminatedEventArgsTrackingWorkflowSuspendedEventArgsTrackingWorkflowExceptionEventArgs

ConsoleTrackingService 示例

演示如何创建跟踪服务并将跟踪数据的内容写入控制台。

RuleActionTrackingEvent 示例

演示如何能够使用跟踪在工作流中确定规则操作。

“文件跟踪服务和查询”示例

阐释如何能够创建一个基于文件的简单跟踪服务,该服务读取 TrackingProfile 数据并将该数据写入 XML 文件。

“使用跟踪配置文件对象模型”示例

演示如何使用跟踪配置文件对象模型来创建、序列化和反序列化 TrackingProfile 数据。

“SQL 数据维护”示例

演示如何将跟踪数据分区以便于数据存档。

“WorkflowCommitWorkBatch 服务”示例

“使用 WorkflowCommitWorkBatch 服务”示例

阐释如何创建自定义服务,并让其参与到与从中调用该服务的工作流的事务相同的事务中。

Footer image

版权所有 (C) 2007 Microsoft Corporation。保留所有权利。