【翻译习作】 Windows Workflow Foundation程序开发-第一章02

时间:2022-10-15 13:17:57

1.2      Windows Workflow概览

微软的Windows Workflow Foundation(简称WF)是.NET框架3.0版的一部分。.NET3.0其它主要部分是Windows Presentation Foundation(简称WPF)和Windows Communication Foundation(简称WCF)。微软将在Windows XP,Windows Server 2003 和Windows Vista操作系统中提供对WF的支持。

WF在当前和未来都能够得到微软操作系统平台的支持,这样很可能会造就出一个WF被持久而广泛地应用的局面。我们可以在智能客户端软件和简单的控制台程序中应用WF。我们也可以在服务器端软件中应用WF,这类软件包括了Windows服务、ASP.NET的Web应用程序和Web服务。WF还将出现在微软自行开发的几款产品中,比如Windows SharePoint Services 和 Microsoft Biztalk Server。现在,我们来看看WF都有哪些本质特征。

1.2.1  活动

活动(Activity)是WF中的基本构件。活动构成了一个工作流中的各个步骤或任务,它们实现了对工作流的定义。我们可以按层次把多个活动组织起来,然后把它们作为指令输入给工作流引擎去执行。活动能够影响工作流的执行路径,而人和软件系统都可以参与其中。

WF中的所有活动都继承自Activity类。Activity类定义了工作流中所有活动都要具备的通用操作,比如Execute和Cancel方法。这个类还包括了通用属性的定义,比如Name和Parent属性,以及通用事件的定义,比如Executing和Closed事件(当一个活动执行完毕,它会引发Closed事件)。下面的截屏图显示的是在Visual Studio 2005类设计器中看到的Activity类。

WF以“基本活动库”的形式为用户提供了一系列预制活动模块。在基本活动库中有一些简单活动,比如像IfElseActivity 和 WhileActivity这样的控制流操作活动,开发者可以把它们作为构建复杂活动的基础。基本活动库还包括了更多的活动,它们当中有的能够等待事件,有的能够调用Web服务,有的能够执行规则引擎,等等等等,不一而足。

1.2.1.1      自定义活动

Windows Workflow允许开发人员通过创建自定义活动的方式对基本活动库的功能进行扩展,这样就能够解决特定领域的问题。例如,为了提高比萨饼送餐流程的效率,我们可以采用SendOrderToKitchen 或 NotifyCustomer之类的自定义活动。

所有的自定义活动最终都会继承自Activity基类。工作流引擎在执行一个活动时,不会区分它是由微软,还是由第三方提供的。

我们可以用自定义活动构建出专门用于创建工作流解决方案的域特定语言。域特定语言的应用可以极大地简化问题空间。比如,我们可以自定义一个SendOrderToKitchen活动,用它把一个Web服务调用和其它处理逻辑封装在一起。这个活动显然是为餐厅问题域定制的。与使用基本类库中的简单活动相比,使用这个经过高级抽象的活动做开发必然会提高程序员的工作效率。即便是一位餐厅经理也会理解SendOrderToKitchen的含义,并且有可能在可视化工作流设计器中使用到它。如果你听说某位餐厅经理更倾向于使用WhileActivity和InvokeWebServiceActivity活动,那才怪了!

 【翻译习作】 Windows Workflow Foundation程序开发-第一章02

C#,VB.NET和XML都是通用语言,能够应用到众多的领域中去解决不同类型的问题。因此,我们使用C#既能为比萨饼餐厅,也能为医院编写软件,而且C#能够同等地满足这两个领域对开发语言的要求。“域特定”语言可以为特定领域内的问题提供出色的解决方案。如果使用餐厅工作流域特定语言为一个餐厅编写软件,那么这套软件可能会提高餐厅的生产效率;如果还是用这门语言为医院搞开发,那可就没人敢为软件的应用效果打包票了。

章节链接:

【翻译习作】 Windows Workflow Foundation程序开发

【翻译习作】 Windows Workflow Foundation程序开发-前言

【翻译习作】 Windows Workflow Foundation程序开发-第一章01

【翻译习作】 Windows Workflow Foundation程序开发-第一章02的更多相关文章

  1. 【翻译习作】 Windows Workflow Foundation程序开发-第一章05

    1.3      开发我们的第一个工作流 也许你曾经在这样的产品经理手下搞过开发:他总是在你身边转悠,并不时的问一句“你还没做完吗?”.在这一部分,我们将用一个简单的Windows Workflow程 ...

  2. 【翻译习作】 Windows Workflow Foundation程序开发-第一章04

    1.2.3  Windows Workflow运行时 从Windows Workflow的角度看,可以将工作流活动当成是交给一个工作流处理器去执行的一系列指令或操作码.在Windows Workflo ...

  3. 【翻译习作】 Windows Workflow Foundation程序开发-第一章03

    1.2.2.Visual Studio 2005扩展包 微软也为Windows Workflow开发者提供了Visual Studio 2005扩展包.扩展包将许多功能集成到Visual Studio ...

  4. 【翻译习作】 Windows Workflow Foundation程序开发-第一章01

    第 1 章    欢迎来到工作流的世界 …思想如蝴蝶般飞到我身边 —— Gossard / Vedder (译注:Gossard与Vedder是来自Pearl Jam乐队的2名乐手,该句出自他们的歌曲 ...

  5. 【翻译习作】 Windows Workflow Foundation程序开发

    近期整理硬盘,把09年的翻译习作<Windows Workflow Foundation程序开发>找出来了.现在又把译文过了一遍,做了些修改,贴出来献丑了.原书是<Programmi ...

  6. 【翻译习作】 Windows Workflow Foundation程序开发-前言

    Windows Workflow Foundation程序开发-基于XAML和C#的WF实战技术与例程 ——C#程序员的WF功能与编程接口技术指导 前言 Windows Workflow Founda ...

  7. 你还记得windows workflow foundation吗

    很多年前,windows workflow foundation还叫WWF,而直译过来的名称让很多人以为它就是用来开发工作流或者干脆就是审批流的. 博主当年还是个懵懂的少年,却也知道微软不会大力推一个 ...

  8. Workflow-Microsoft:Windows Workflow Foundation

    ylbtech-Workflow-Microsoft:Windows Workflow Foundation 1. Windows Workflow Foundation返回顶部 1.1. Windo ...

  9. 微信小程序开发-第一弹

    前言:       本篇文章为大家详细介绍微信小程序开发第一篇,后续步骤会逐步更新,欢迎大家关注. 第一步  注册        1.1 打开网址 https://mp.weixin.qq.com/  ...

随机推荐

  1. 基本排序算法——shell排序java实现

    shell排序是对插入排序的一种改进. package basic.sort; import java.util.Arrays; import java.util.Random; public cla ...

  2. WPF &ndash&semi; pass multiple parameters to a Command

    public class SendCommand : ICommand { public void Execute(object parameter) { var labels = ((object[ ...

  3. SpringBoot切面控制业务逻辑

    业务逻辑:写一个公共拦截类,过滤传进Controller的参数 为了调用接口安全起见,每个需要调用的接口有一个参数accessToken,用于安全验证 注:先进入过滤器Filter,再进入aop,最后 ...

  4. g4e基础篇&num;6 了解Git历史记录

    章节目录 前言 1. 基础篇: 为什么要使用版本控制系统 Git 分布式版本控制系统的优势 Git 安装和设置 了解Git存储库(Repo) 起步 1 – 创建分支和保存代码 起步 2 – 了解Git ...

  5. WINDOWS系统注册表取得管理权限研究

    有的时候开发我们需要取得系统管理员权限,可以通过修改注册表实现,研究网上的各种方法,整理得一下脚本实现取得管理员权限 脚本如下 Windows Registry Editor Version 5.00 ...

  6. DbGridEh根据某一个字段的值显示对应底色或字体变化

    改变行底色: procedure TForm1.dggrideh1DrawColumnCell(Sender: TObject;const Rect: TRect; DataCol: Integer; ...

  7. 在线解析JSON&plus; AsyncTaskLoader

    效果图: 获取并解析Json package com.example.admin.quakereport; import android.text.TextUtils;import android.u ...

  8. Boost 和 Boost&period;Build 的设置

    问题: 安装编译完 Boost 后,如果不设置 BOOST_ROOT 和 BOOST_BUILD_PATH 则可能导致使用 bjam 时定位到 Boost 默认的路径 /usr/share/boost ...

  9. SpringMVC&plus;JQuery实现头像编辑器

    一.简单说明 本头像编辑器主要实现了图片的上传.显示(不溢出父窗口).旋转.裁剪功能! 图片的上传用到的是异步上传,页面不进行刷新,原理是通过JQuery的异步提交+SpringMVC的上传 上传完毕 ...

  10. java高级工程师开放面试题集&lt&semi;一&gt&semi;

    临近年关,不少人蠢蠢欲动,有童鞋问我java后端面试会面试什么? 作为一个java后端老鸟,跌打滚爬多次被面试和面试别人,总结了一些经验,希望对大家有所帮助. 特别说明,仅仅针对工作两年以上的java ...