Windows Workflow Foundation程序开发-基于XAML和C#的WF实战技术与例程

——C#程序员的WF功能与编程接口技术指导

前言

Windows Workflow Foundation(简称WF),是一项对工作流进行定义、执行和管理的技术。它是.NET框架3.0版的一部分,并且将来会被集成到Windows Vista操作系统中。

继COM+和分布式事务协调器之后,WF可被看作是Windows平台上最令人瞩目的一款中间件产品。WF与前两者的区别在于:不是每一个软件应用都需要进行分布式事务处理;但几乎每个软件都要在其内部实现工作流。

在本书帮助下,你可以为你的软件添加上工作流动力。

本书的内容

第1章向我们介绍了工作流的基本概念,说明了WF是如何处理那些存在于工作流解决方案中的疑难问题。“活动(Activity)”是构建工作流定义的基本模块,我们将对它们建立起初步的印象,并且会学习如何使用Visual Studio 2005编制一个简单的工作流。本章同时对WF提供的运行时服务进行了描述。阅读完本章内容,我们就会对WF的基本特征有所了解。

第2章的重点是如何编制工作流。特别地,我们会学习怎样应用C#和可扩展应用程序标记语言(英文简称XAML)构建工作流。通过使用工作流编译器,我们可以更为透彻地了解:WF是如何通过代码生成器从工作流标记码中自动产生类代码的,以及这些自动生成的代码又是如何与我们的手写代码联合产生一个工作流类型的。这一章将提供一些基础知识,这有助于我们了解WF在编译阶段是如何运行的。

在第3章里,我们关注的是顺序工作流。我们会对SequenceActivity进行一番研究,学习一些与事件相关的知识,这些事件都是在一个工作流实例的生存期内由工作流运行时引发的。利用Visual Studio,我们可以创建一些工作流,它们既可以接收参数也能够以调用方法和侦听事件的方式与其宿主进程进行通信。在本章的最后部分将介绍一个工作流例程,在这个例程中,工作流会首先产生一个异常,然后展示如何利用错误处理器捕获到该异常。

第4章会向我们介绍WF基本活动库中的每一个成员。我们会学习控制流活动、通信活动、以及面向事务的活动。本章也会提及Web服务活动、基于规则的活动和状态活动。本章的目的在于使我们不仅认识到基本活动库的所有功能,而且能够知晓每种活动所能处理的具体问题。

有了基本活动库的知识作铺垫,我们会在第5章尝试创建自定义活动。本章首先列举出了创建自定义活动的驱动力,随后提供了一个创建自定义活动的例程,并在具体开发过程中应用了2种方法:组合法和派生法。我们将会看到如何为自定义活动定制验证器和设计器,也将领略到使用依赖属性的优势所在。本章最后还要讲解活动的执行上下文,这对于开发出健壮的活动是必不可少的。

第6章讲述了工作流运行时、工作流诊断,以及由微软公司提供的一些开箱即用的WF服务。本章演示了如何使用声明和编程两种方法对服务进行配置。我们会通过一些例程学习如何使用调度服务、持久化服务和追踪服务。本章提供了足够多的有关WF服务的信息,这使得工作流开发者在面对多种不同应用场景和环境时都能够依照需求选择和配置出适合的服务。

第7章关注的是如何使用状态机构建事件驱动的工作流。我们会看到WF如何使用活动对传统的状态机进行建模,同时,我们将创建一个能够处理外部事件并驱动状态转换的工作流。我们还会看到如何对状态机的执行历史进行追踪和检验。本章最后部分对分层状态机进行了一番研究,掌握了这部分的知识,我们就可以处理事件驱动工作流中的一些棘手问题了。

第8章都是与工作流通信相关的内容。本章首先描述了通过相关本地服务与宿主进程通信的方法,随后说明了如何使用Web服务活动进行网络通信。最后,我们将了解到身处后台默默地为工作流协调和传送消息的队列服务。

最后的第9章会讲解WF中用到的规则与条件。这里讨论了业务规则在软件开发中的角色,随后提供了一个例程来说明WF的规则引擎如何能够减轻规则开发的工作量。本章对PolicyActivity中的规则执行进行了深入的说明,并记录了规则评估的诊断信息。在WF程序开发之旅的最后一程,我们将学习如何使用WF创建基于规则的解决方案。

章节链接:
【翻译习作】 Windows Workflow Foundation程序开发

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

  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程序开发-第一章02

    1.2      Windows Workflow概览 微软的Windows Workflow Foundation(简称WF)是.NET框架3.0版的一部分..NET3.0其它主要部分是Window ...

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

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

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

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

  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. 《WF in 24 Hours》读书笔记 - Hour 1 - Understanding Windows Workflow Foundation

    1.1 Hour 1 - Understanding Windows Workflow Foundation   1.1.1 What workflow is in general A workflo ...

随机推荐

  1. (转)Lambda表达式详解

    本文转载自:http://www.cnblogs.com/knowledgesea/p/3163725.html 前言 1.天真热,程序员活着不易,星期天,也要顶着火辣辣的太阳,总结这些东西. 2.夸 ...

  2. php 根据指定的键对多维数组进行排序

    根据指定的键对多维数组排序,可以按照多个键排序 我们通常有一些多维数组需要排序: $guys = array( array( 'name' => 'jake', 'score' => 80 ...

  3. quotas and disk replace on netapp

    ==================================================================================================== ...

  4. 在eclipse中设计BPMN 2.0工作流定义的根本步骤

    原文地址:http://www.myexception.cn/eclipse/1863140.html 在eclipse中设计BPMN 2.0工作流定义的基本步骤 1. Activiti问我们提供了A ...

  5. 黄聪:jquery mobile使用form进行post提交表单没有反应,显示空白页解决方案

    jquery mobile这货会自动用Ajax方式. 所以需要在表单form标签添加data-ajax="false"这个元素. <form method="pos ...

  6. Exception error message with incorrect line number

    In Release mode the number in front of the exception is NOT the line of code. Instead it's an offset ...

  7. JQuery validate 在IE兼容模式下出现 js错误(成员找不到)的修正:

    JQuery validate 在IE兼容模式下 下出现 js错误(成员找不到)的修正: // Add novalidate tag if HTML5. //this.attr( "nova ...

  8. 手把手教你玩转Git分布式版本控制系统!

    目录 Git诞生历史 Git环境准备 Git安装部署 Git常用命令 Git基本操作 Git管理分支结构 Git管理标签 GitLab安装部署 GitHub托管服务 Git客户端工具 1 Git诞生历 ...

  9. POJ 3311 Hie with the Pie(Floyd+状态压缩DP)

    题是看了这位的博客之后理解的,只不过我是又加了点简单的注释. 链接:http://blog.csdn.net/chinaczy/article/details/5890768 我还加了一些注释代码,对 ...

  10. easy dp

    1.将一堆正整数分为2组,要求2组的和相差最小. //File Name: nod1007.cpp //Author: long //Mail: 736726758@qq.com //Created ...