WorkFlow工程项目简介
Dino Esposito的文章
Getting Started with Microsoft Windows Workflow Foundation: A Developer Walkthrough
介绍了目前在Visual Studio 2005中创建WWF的五种项目
- Sequential Workflow Console Application
- Sequential Workflow Library
- Workflow Activity Library
- State Machine Console Application
- State Machine Workflow Library
- Empty Workflow
Sequential Workflow Console Application--建立一个顺序的工作流应用
Sequential Workflow Library --建立一个顺序的工作流库项目
Workflow Activity Library --建立一个工作流节点/步骤库项目
两者的区别,Sequential Workflow Console Application编译之后,会将工作流应用Hosting在一个控制台程序中,Sequential Workflow Library则创建一个工作流的库,这个库没有设置Hosting,所以运行时必须设置Hosting或是将它作为工作流的一部分,加入到一个Sequential Workflow Console Application中,而Workflow Activity Library 项目基本上可以看作是创作一个Activity,它可以理解成WinForm中的一个控件,一般都是为了加入到Sequential Workflow Console Application和State Machine Console Application的应用中,也可以加入到Sequential Workflow Library和State Machine Workflow Library的项目中,作为一部分进行重用或组合
应用WWF开发一个工作流的应用,一般进行下面的步骤:
1. 使用工作流设计器设计其工作流的模型和行为--你可以看作是产生一个Activity
2. 使用工作流设计器或代码组合(Compose)多个Activity,并且设置相应的属性。
3. 将工作流Hosting在一个控制台程序中,当然也可以Hosting在Windows Services,WinForm或IIS等等的应用程序中
4. 工作流引擎启动,实例化你之前创作的工作流
5. 将业务数据送入工作流,或从工作流中获得状态的数据,进行流程状态跟踪的处理和展现
如果理解了上面的,那么就非常容易两类关于状态机的工作流项目类型了
State Machine Console Application--创建一个状态机的工作流应用,设置了Hosting
State Machine Workflow Library--创建一个状态机的工作流项目,没有设置Hosting,可以作为一个组件
Sequential(时序) 和State Machine(状态机)是WWF提供的最主要的两种工作流类型,也是目前应用比较广泛的工作类型。WWF还提供一种基于Role-Based(基于角色)的工作流,由于Role-Based主要是面向控制鉴权、用户角色和业务规则,所以它可以单独存在(这时表现和Biztalk HWS非常相似),也可以迁入到Sequential和State Machine两种工作流中,进行组合和变化
所以State Machine Console Application和State Machine Workflow Library的区别也是非常显而易见的。
而Empty Workflow 则只提供了一个项目文件和WWF需要的相关引用,可以有用户决定加入上述五种不同的项目或是成为这五种项目的一种,因为WWF SDK也支持不使用工作流设计器完全用代码的方式来构建和运行WWF应用。
简单来看,我们可以使用Visual Studio WWF的扩展创作整个工作流(其实是组合、排列和设置Activity的关系网),Activity则可以理解成我们经常说的工作流中某一步,子流程,里面包含了流程、状态、规则、某个状态下的行为(Actions)以及它们之间的关系。而多个Activity的组合或排列就构成了WWF的工作流(Workflow),所以使用和理解Activity的概念非常重要的
从整个的架构上,WWF支持面向人(Human)和系统(System)的两种工作流模式,并且努力将它放到一个工作流模型(One Model)中。
从风格上看:
Sequential 型的比较传统,带有明显的时序性,适用于大多数结构化的工作流应用
Role-Based 型用于比较灵活,数据驱动的,面向多种业务规则的某个专门领域的工作流
State Machine型也非常灵活,属于事件驱动,带有事务特征,适合于非结构化面向人或角色相关的工作流场景
同样基于上述的风格很容易进行组合或创建出新的风格。
通俗理解的描述(当然是我的理解),你可以发现创作工作流的过程,实际是产生一个xoml的工作流描述语言,之后它会被编译成一个.NET Assembly,它包含的工作流的元数据和相关的设置、属性和代码。之后你配置Hosting(其实是配置工作流主机的通信协议、线程、事务、时钟和数据/状态序列化方式),然后在Hosting中运行和启动WWF工作流引擎,工作流引擎再加载带有工作流元数据和代码的.NET Assembly,这些Assembly被工作流引擎按计划或步骤地执行;工作流引擎负责每个工作流实例的生命周期,多个工作流的执行、调度、状态跟踪、解析规则引擎,而我们的应用程序则处理输入和输出数据、状态的展现,编写每个步骤中对于数据的处理。
所以WWF提供了一个工作流应用和平台的基本功能和服务,比如它目前就不关心像Biztalk Server那样做集群、配置高可用性,这就如同之前我们使用SQL Report Services一样,RS并不关心最后报表打印的技术问题。WWF也一样,它提供了一个平台、提供了一个Framework和相关的开发工具。它非常明显的特征和服务使它和WPF,WCF一起成为Microsoft WinFX中非常重要的三大基础服务之一。
转载于:https://www.cnblogs.com/KivenLin/archive/2007/03/29/692130.html
WorkFlow工程项目简介相关推荐
- SWF (Simple Workflow Service)简介
Amazon Simple Workflow Service (Amazon SWF) 提供了给应用程序异步.分布式处理的流程工具. SWF可以用在媒体处理.网站应用程序后端.商业流程.数据分析和一系 ...
- 工作流(Workflow)简介
当今社会分工越来越细,在一个单位内部也越来越强调专业化,大部分工作都需要多个部门和员工合作完成.一个制度良好的单位往往对各种工作的工作流程以文件的形式固定下来,即使是管理不太正规的单位也有约定俗成的工 ...
- workflow的简介
工作流(Workflow) 是对工作流程及其各操作步骤之间业务规则的抽象.概括描述.工作流建模,即将工作流程中的工作如何前后组织在一起的逻辑和规则,在计算机中以恰当的模型表达并对其实施计算. 工作流要 ...
- 深度学习实例第二部分:OpenCV
OpenCV安装 执行以下命令安装opencv-python库(核心库)和opencv-contrib-python库(贡献库).注意:命令拷贝后要合成一行执行,中间不要换行. 12345 # 安装o ...
- 大数据哪个省才是高考地狱_是一名数据科学家,确实是地狱附近最性感的工作...
大数据哪个省才是高考地狱 数据科学与人工智能领域的职业 (CAREERS IN DATA SCIENCE & AI) Alan Turing was 27 years old when the ...
- WWF(Windows Workflow Foundation)的简介
转自 dudu blog Windows Workflow Foundation简介(翻译): Windows Workflow Foundation是帮助您在Windows平台上快速建立 ...
- git常用命令及分支简介
1.git基本命令 1)git add 将想要快照的内容写入缓存区 2)git status -s "AM" 状态的意思是,这个文件在我们将它添加到缓存之后又有改动 3)git c ...
- WF(工作流)模块介绍
SAP 业务工作流是SAP R/3 提供的一个重要的业务工程工具.它被设计成跨应用模块的并支持集 成事务.因此,它提高了现有的标准应用系统的功能.它特别适合于满足公司的特殊需要,自动 地处理和控制 ...
- 全球法律文件起草软件行业调研及趋势分析报告
据恒州诚思调研统计,2021年全球法律文件起草软件市场规模约 亿元,2017-2021年年复合增长率CAGR约为 %,预计未来将持续保持平稳增长的态势,到2028年市场规模将接近 亿元,未来六年CAG ...
最新文章
- oracle 数据库备份恢复
- VS2015+OpenCV2.4.13环境搭建详细步骤及自带示例编译运行
- 接口应用练习题(用接口的方式实现某网上商城的网上支付功能)
- 「2019冬令营提高组」全连
- JS 进阶知识点及常考面试题
- HDU3364 Lanterns
- Android官方模拟器安装
- cf1163B2. Cat Party (Hard Edition)(简单总结一下map数据结构的简单方法)
- 009 Ubuntu安装Google浏览器
- 软件测试是干什么的 什么样的人才能够当软件测试员?
- 手游脚本_雷电模拟器
- python maketrans函数_maketrans函数
- 已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行(2行)
- 多年心路历程见证从技术小白到收获BAT等大厂研发offer,分享一些经验和感悟
- web大学生个人网站作业模板——上海旅游景点介绍网页代码 家乡旅游网页制作模板 大学生静态HTML网页源码...
- YOLOv5/v7 更换骨干网络之 PP-LCNet
- 嵌入式实验考试后的辛酸苦楚
- 【NOIP2015模拟10.27】魔道研究题解
- 3par容灾的几个技术细节
- 经典算法——鸡尾酒排序(冒泡算法改良)