MS Workflow Foundation
1. 系统必备
— 我们需要安装 WinFX (下载)和 Visual Studio 2005 extensions for .NET Framework 3.0 (Windows Workflow Foundation) 。这是我们必备的开发组件。
—WF 作为 net3.0 的一部分发布,要运行需要安装 net3.0
— WF 提供了一个在 VS2005 中可视化设计工作流的设计器 ,Visual Studio 2005 Extensions for Windows Workflow Foundation, 只有安装后才能在 VS2005 中建立 WF 项目。
2.WF 是什么?
—WF 本身并不是一个业务平台,它只是为开发人员提供创建工作流软件的一个平台,也就是说 WF 不是工作流应用平台,而是一个开发工作流应用的平台。
—MS 将 WF 作为 Vista 的一个基本 API 发布,而不是一个独立的软件 ( 如 BizTalk , Office) 。
3.WF 适合做什么?
— 使用 WF 可以开发具有以下特点的工作流平台:
1. 业务流程辅助办公软件
2. 软件内部工作的顺序控制
3. 自动筛选查询类系统
4. 自动化控制中
4.WF 的工作模式
—WF 提供了两类工作流模式,流模式( Sequential )与状态机模式 (State Machine ):
— 顺序工作流 非常适合以下类型的操作,即该操作由依次执行直至最后一个活动完成的步骤的管线表示。但是,顺序工作流的执行并非完全是顺序的。它们仍然可以接收外部事件或者启动并行任务,在这种情况下,确切的执行顺序可能有所不同。
— 状态机工作流 由一组状态、转换和操作组成。首先,将一个状态表示为起始状态,然后,基于事件执行向另一个状态的转换。状态机工作流可以具有确定工作流结束的最终状态。
— 可以简单的将状态机模式看成是有交互点与 Goto 指令的流模式。设计工作流,其实没有什么应该的模式 , 用状态机模式作主流程,管理业务状态,流模式作子流程,完成具体的业务操作是一个不错的方案。
5. 工作流活动的分类
—WF 为工作流设计提供了一系列的 Activity 控件,从型式上分为两类 :
简单活动类: (System.Workflow.ComponentModel.Activity)
活动容器类: (System.Workflow.ComponentModel.CompositeActivity)
Activity <- CompositeActivity
— 包括以下具体控件 :
CodeActivity :可以添加代码,
IfElseActivity :类似于 if 语句 ,
SuspendActivity :类似于线程挂起语句,
DelayActivity :类似于线程休眠语句 ,
CallExternalMethodActivity :类似于调用方法语句,
HandleExternalEventActivity :类似于触发事件语句 ,
WhileActivity :类似于 While 语句 ,
terminateActivity : 类似于终止语句,
ThrowActivity :类似于自定义异常语句 ,
ConditionedActivityGroup :有点像 foreach 语句 ,
replicatorActivity :有点像 for 语句
PolicyActivity :有点像职责链
— 可以用 InvokeWebServiceActivity 调用 WebService
— 可以用 WebServiceInputActivity ,WebServiceOutputActivity 将工作流发布成 WebService
— 可以用 InvokeWorkflowActivity 调用子流程
还有一些用于控制流程、控制状态、事务处理、异常处理的控件
6. 工作流模版和实例
—WF 的工作流模板可以是一个编译成 DLL 的 NET 类库文件,也可以是一个用 XML 描绘结点关系的字符串 , 工作流实例是每个用户依据模板定义的轨道实现具体业务的一组状态数据 , 实例要在引擎中运行,实例可以保存到数据库或磁盘文件中。
— 工作流提供了一个运行实例的引擎,引擎不是以一个独立服务的方式发布的,而是可以独立线程的方式寄生在任意进程中。被寄生的程序叫宿主,宿主与引擎可以通过接口进行交互,控制引擎以及与引擎中的工作流实例通信。引擎中可以同时运行多个实例,宿主中可以同时运行多个引擎。
7. WF 提供了的服务
—1. 持久化服务
WF 提供了 SqlWorkflowPersistenceService ,用于将实例持久化到一数据库中, SqlWorkflowPersistenceService 的数据库生成文件在 [ 系统盘 /Windows/Microsoft.NET/Framework/v3.0/Windows Workflow Foundation/SQL/EN] 下 SqlPersistenceService_Schema.sql 与 SqlPersistenceService_Logic.sql
— 也可派生 PersistenceService ,建立自定义持久化服务
—2. 监听(跟踪)服务
WF 提供了 SqlTrackingService ,用于监听实例的运行状态,并将状态保存到数据中, SqlTrackingService 的数据库生成文件在 [ 系统盘 /Windows/Microsoft.NET/Framework/v3.0/Windows Workflow Foundation/SQL/EN] 下 Tracking_Schema.sql 与 Tracking_Logic.sql 使用 SqlTrackingQuery ,可以从数据库中查询实例的状态。
— 也可派生 TrackingService ,建立自定义监听服务对要监听的内容,可以自定义 TrackingProfile ,进行筛选
—3. 数据通信服务
WF 提供了 ExternalDataExchangeService ,用于实现宿主与实例的通信, CallExternalMethodActivity 与 HandleExternalEventActivity 依赖于该服务。
—4. 还有其他一些服务,如 ManualWorkflowSchedulerService ,以单程方式运行实例,在实例有与外部设备交互时非常有用 .
8. WF 高级特性
—1. 可以自定义流程设计器
WF 提供了 System.Workflow.ComponentModel.Design.WorkflowView 控件,该控件可以用图形的方式显示工作流结构。
—2. 可以用 WorkflowChanges 在实例运行时使用,动态添加删除结点。
—3. 可以用 WorkflowMarkupSerializer 将工作流模板类转换为 XML 字串格式
—4.WF 为流程控制类 Activity 提供了规则对象。
—5.WF 提供了 WorkflowRole 对象 , 可以自定义角色,使用 AD 角色、使用 ASP.NET2.0 角色。
9. 关于通信
— 很多人有一个习惯就是从引擎中得到实例,然后直接操作,这个方式是单线程开发中常用的,不用考虑资源访问冲突,但在 WF 中实例与宿主、引擎的关系,就像操作多线程资源一样,实例被引擎线程专控,宿主要与实例通信不能直接进行,要通过一个专用通道。
— 1. 可以使用启动参数,动态结点,插入队列的方式实现宿主与引擎中的实例推方式通信;
— 2. 也可以在设计时使用 CallExternalMethodActivity,HandleExternalEventActivity ,或自定义状态点的方式实现宿主与引擎中的实例拉模式的通信。
10. 参考 ( 非常值得一看 )
— 入门简介: http://www.microsoft.com/china/MSDN/library/Windev/WindowsVista/WWFGetStart.mspx?mfr=true
— 性能描述: http://msdn2.microsoft.com/en-us/netframework/aa973808.aspx
— 业务方面: http://www.microsoft.com/china/MSDN/library/Windev/WindowsVista/WWFGetStart.mspx?mfr=true
MS Workflow Foundation相关推荐
- WWF(Windows Workflow Foundation)开发环境的建立。 .NET 技术前瞻,WWF,Windows,Workflow,Foundation...
1.安装WindowsSDK for Vista,有1.14G之巨,可以从MS的网站上下载,不过需要验证WINDOWS,可以去讯雷区用WindowsSDK为关键字搜索下载. 2.安装Virsul St ...
- Windows Workflow Foundation之旅(六)——框架组成、工作流创作模式
Windows Workflow Foundation之旅(六)--框架组成<?xml:namespace prefix = o ns = "urn:schemas-microsoft ...
- 和我一起学Windows Workflow Foundation(1)-----创建和调试一个WF实例(转)
和我一起学Windows Workflow Foundation(1)-----创建和调试一个WF实例 今天开始,我打算开始学习WWF,从网上搜索到了部分相关资料,也找到了一些文档和实验.但是,资料以 ...
- 微软Workflow Foundation 高阶透视
什么是工作流?工作流是一组同软件或人交互的活动,以及活动间的联系,可以像一个流程图,也可以像一个状态机. [图一,左边是流程图,右边是状态机] 什么是微软Workflow Foundation?微软W ...
- Windows WorkFlow Foundation学习资源
微软主站 Microsoft Windows Workflow Foundation 入门:开发人员演练 转载于:https://www.cnblogs.com/zwx/archive/2007/01 ...
- Microsoft Windows Workflow Foundation 入门:开发人员演练
有关向 Windows 平台添加工作流支持的初步知识 Microsoft Windows Workflow Foundation (WWF) 是一个可扩展框架,用于在 Windows 平台上开发工作流 ...
- Microsoft Windows Workflow Foundation 入门
Microsoft Windows Workflow Foundation 的包含在 .Net Framework 3.0 中,除此之外i,基于它做开发还要安装 Visual Studio 2005 ...
- 你还记得windows workflow foundation吗
很多年前,windows workflow foundation还叫WWF,而直译过来的名称让很多人以为它就是用来开发工作流或者干脆就是审批流的. 博主当年还是个懵懂的少年,却也知道微软不会大力推一个 ...
- Windows Workflow Foundation(WWF)介绍
Windows Workflow Foundation:支持基于工作流的应用程序 工作流是一个简单思路:按照特定顺序执行的一系列步骤.您甚至可以认为每个应用程序都在执行工作流,因为每个应用程序都执行某 ...
最新文章
- 主页面调用iframe里面匿名Javascript函数的问题
- CUDA并行算法系列之FFT快速卷积
- Requests方法 -- Token获取操作
- 教你增加网站反向链接的7大法门和12奇招
- Error:Internal error: org.gradle.tooling.BuildException: Could not run build action using Gradle dis
- 第3章2节《MonkeyRunner源码剖析》脚本编写示例: MonkeyDevice API使用示例(原创)
- sql 新建表 alter_SQL ALTER表
- 【python3.X】python学习中排雷过程^_^
- 基于粒子群和麻雀搜索的LMS自适应滤波算法 - 附代码
- JQuery Easyui/TopJUI 多表头创建
- 海康摄像机、NVR、流媒体服务器、回放取流RTSP地址规则说明
- ubuntu20.04离线安装rabbitvcs
- 2020最新5Sing音乐解析解析接口 简单实用
- ARM处理器性能对比
- C# 串口通讯 串口调试助手源码
- 如何使用Keras fit和fit_generator(动手教程)
- 爬了 48048 条评论,解读 9.3 分的「毒液」是否值得一看?
- 《傲慢与偏见》读书笔记摘抄
- 使用纯CSS3实现一个3D旋转的书本
- elementui upload与form一起提交
热门文章
- 课程七 神经网络(三)
- 用js编程输出100以内所有的质数和个数(提示:一个大于1的自然数,除了1和它本身外,不能被其他自然数整除的数都是质数)...
- [Codeforces 997C]Sky Full of Stars(排列组合+容斥原理)
- 华为鸿蒙朱丹丹,周一围生日高调晒照,老婆朱丹没有丝毫表示,网友:八月有毒!...
- Python每日一学 03——计算半径为r的圆的面积
- vue、H5、移动端 读取NFC
- Word页码设置为外侧样式
- 滴滴顺风车为嘀嗒IPO做了嫁衣裳
- mdb文件导入MySQL
- 从心理学角度分析开心农场的流行