Windows Workflow Foundation CON 230
课程内容安排 Windows Workflow Foundation 基础知识 演示 : Building Hello World Activity: 工作流的部件 演示 : Building custom activities Windows Workflow Foundation 多项创新 演示 : State machine workflow application
Windows Workflow Foundation 基础知识
Windows Workflow Foundation 为微软产品及相关应用程序 提供通用的工作流设计框架与开发工具 统一的工作流技术 同时适用于微软产品及合作伙伴开发的.NET 应用程序 同时适用于面向人的工作流与面向系统的工作流 为开发工作流应用提供通用的设计框架 (Framework) 提供设计框架 - 而不是服务器 使工作流应用成为.NET 开发的主流 有利于建立强大的合作伙伴生态系统 4
什么是工作流? A set of activities that coordinate people and / or software... 活动举例 : 提交经理审批 检查库存 organized into a workflow. 类似流程图 : 或是状态图 5
工作流场景 面向人的工作流 面向系统的工作流 参与者 : 人 角色流程特点 : 灵活 不规则 数据 : 文档 非结构化数据 Information Worker 参与者 : 应用程序 服务流程特点 : 可预测 规则数据 : 结构化数据 Business to Business CRM ERP Line of Business Apps IT Management.NET Developer Windows Workflow Foundation 6
对工作流的要求 现实世界 对工作流的要求 订单将在 48 小时内得到确认, 并在 30 天之内发货 长期运行并保持状态 多数供应商都已经确认了我们 的订单, 但是部分供应商却忘 记了跟进 灵活地控制流程 订单接下来应该怎么处理 透明度 7
Workflow and BizTalk Server BizTalk Server Desig n Tools Accelerators Orchestration Workflow Messaging Transformation Adapters Busines s Activity Monitor And Admin Tools 工作流服务器 将来的 BizTalk Server 将采用 Windows Workflow Foundation 实现工作流 Visual Studio Designer Windows Workflow Foundation WinFX Windows Workflow Foundation 8
Windows Workflow Foundation 关键概念 Visual Designer 组件 工作流由一组活动组成 Workflow 在一个宿主应用程序中运行 : 任意应用程序或服务 开发人员可以开发自定义的活动库 基本活动库 : 内置的基本的活动, 并作为自定义活动的基础 运行时引擎 : 运行工作流与状态管理 运行时服务 : 宿主工作流与通讯 可视化设计器 : 图形化的涉及器 A Workflow An Activity Custom Activity Library Windows Workflow Foundation Base Activity Library Runtime Engine Runtime Services Host Process 9
Workflow 基础 A workflow is a class Imports System.Workflow.Activities Public Class MyWorkflow Inherits SequentialWorkflow End Class A workflow class may be defined in markup <?Mapping XmlNamespace="Activities" ClrNamespace="System.Workflow.Activities" Assembly="System.Workflow.Activities"?> <SequentialWorkflow x:class="myworkflow" xmlns="activities" xmlns:x="definition"> </SequentialWorkflow> 10
工作流执行模式 标记语言 标记语言 / 代码 代码 应用程序 XAML XAML C#/VB C#/VB 应用程序生成代码 XAML C#/VB 工作流编译器 wfc.exe C#/VB 编译器.NET 程序集 11
Building a Workflow
Activity: 工作流的部件
Activity 基础 Activity 是工作流的部件 执行, 重用与组合的基本单位 基本活动 : 工作流的步骤 组合活动 : 包含其他多个活动 基本活动库 :WWF: 提供的一组基本活动 合作伙伴能够开发自定义活动库 14
Activity 基础 Activities are classes: 属性 和 事件 由开发人员定义 方法 由开发人员定义, 但由工作流运行时调用 既可以包含在工作流应用程序之中, 又可以单独部署为活 动库 15
A SendMail Activity using System.Workflow.ComponentModel; public partial class SendMail : System.Workflow.ComponentModel.Activity { public SendMail() { InitializeComponent(); } protected override Status Execute(ActivityExecutionContext context) { // my logic here to send the email return Status.Closed; } } public partial class SendMail { public string subject; public string Subject { get { return subject; } set { this.subject = value; } } private void InitializeComponent() // designer generated { this.id = "SendMail"; } } 16
Building an Activity
Windows Workflow Foundation 多项创新
创新 : 可扩展的框架 基本的工作流的模型 自定义行为库 特定的工作流包 Compliance Compose activities Extend activity CRM Out-of-Box Activities Base Workflow Model Author new activity RosettaNet IT Mgmt 基本行为 多种用途 创建 / 扩展 / 组合基本行为 适用特定应用程序的活动库 适用于行业的活动库 包含自主知识产权 19
创新 : 灵活的工作流 Hosting Host 进程 工作流 Hosting the Runtime 可以将应用程序嵌入到工作流中也可 以在应用程序中运行工作流 Microsoft Hosts Runtime Engine Pluggable Services Windows SharePoint Services IIS/ASP host BizTalk future version MBS future version Others 20
创新 : 灵活的工作流设计 同时支持面向人和系统的工作流 顺序模式 Step1 Step2 基于规则的模式 Rule1 Data Rule2 Step1 Step2 Event Event 状态机模式 Step1 Step2 流程驱动处理顺序 商务规则驱动处理顺序 事件 / 事务驱动处理过程 规则的 用于结构化工作流中 灵活的, 数据驱动 用于结构化的工作流中 事件驱动 用于面向人的工作流中 21
创新 : 可视化的开发平台 顺序模式设计器 状态机模式设计器 工作流设计器 可视化调试 支持顺序模式与状态机 模式 行为设计器 创建新行为 可从父行为继承 行为设计器 22
A State Machine Workflow
EMPOWER! DIVISION 24
填反馈表