“若想了解WF,本书是必读之物。本书涉及面之广,所讲内容之深是同类书籍所无法企及的。强烈推荐给每一位想了解WF的人,它真的很棒!”
--Amazon.com
很高兴能告诉大家,《Pro WF:Windows Workflow in .NET 3.5》的中文版,《WF高级程序设计》已经正式出版上市了。
《Pro WF:Windows Workflow in .NET 3.5》是本关于WF的不可多得的好书,博客园里也有不少朋友读过此书不同版本的英文原著(比如生鱼片兄弟)。
我从去年9月下旬开始接手此书的翻译工作,在繁忙的工作之余,翻译此书几乎填满了我所有的闲暇时间。一个人独力翻译八百多页的巨著是一件很恐怖的事 情,在长达半年的翻译时间中,几乎每天都是上班八小时忙工作,下班八小时忙翻译,终于能在今年的4月份完成了此书的翻译工作并且进行了两遍审阅。
此前,我一直在博客里翻译《Programming Windows Workflow Foundation: Practical WF Techniques and Examples using XAML and C#》一书(翻译目录见此), 接手了《Pro WF:Windows Workflow in .NET 3.5》的翻译之后,我再也无暇继续翻译该书,导致该书一直到现在都没有翻译完成,实在非常抱歉。我翻译该书的初衷并不是“传道授业解惑”这般伟大,只是 单纯的为了学习WF这门技术,而后接手《Pro WF:Windows Workflow in .NET 3.5》的翻译工作,也是本着这个目的。比较这两本书,《Pro WF:Windows Workflow in .NET 3.5》的条理要更加清晰,内容也更加全面和深入,而难度有不似《WF本质论》那 般深奥,所以现在对于我来说,学习的目的已经达到,也就没有必要耗费时间把《Programming Windows Workflow Foundation: Practical WF Techniques and Examples using XAML and C#》继续翻译下去了,请各位朋友原谅我的自私与坦率。
《WF高级程序设计》真可谓是生不逢时,眼看着全面变革的WF 4.0也离我们不远了,相信许多朋友都在考虑要不要直接从WF 4.0开始学起。诚然,如果换作我是一个WF新手,我也会做这样的考量,并且极有可能放弃WF 3.x,而直接学习WF 4.0。
但WF 3.x并没有消亡,我们知道Microsoft Office System 2007中的工作流是基于WF 3.0的,而在即将要发布的Microsoft Office System 2010中,工作流依然基于WF 3.5,所以如果您是一位Office开发人员,您需要为SharePoint Server开发工作流,您依然得掌握WF 3.5这门技术。而且我相信未来正式亮相的WF 4.0也一定会包含对WF 3.x的完整而又完善的兼容。
购买地址:http://www.china-pub.com/196065
下面是每一章的简短摘要。
第1章:WF快速导览
本章提供了WF的主要内容介绍。在本章中,我将引领你开发第一个工作流(“Hello World”),向你介绍WF的一些基本概念,例如,如何向工作流传递参数和如何在工作流中制定决策。
第2章:基础结构概述
本章的目标是提供WF全面而高级的概述。本章不会教你如何使用每种单独的WF功能,但会让你知道WF的设计时和运行时功能。本章可以看作是一张涵盖了本书剩余章节所有内容的路线图。
第3章:活动
活动是WF的构造块,用于构造完整的工作流。本章总结了WF包含的标准活动,而且还比较了两种将业务逻辑引入工作流的方法:CodeActivity和构建自定义活动。
第4章:承载工作流运行时
WF并不是一个独立的应用程序,而是一个允许你创建自己的工作流应用程序的框架。本章演示了在应用程序中如何承载工作流运行时。本章还包含了一些自定义工作流管理器类,它们帮助你承载工作流运行时,而且在之后的章节中会大量使用这些Helper类。
第5章:流控制
WF包含了一个丰富的标准活动集,从简单的分支决策、While循环,到并行执行和复制,都提供了完整的支持。这些流控制活动控制着工作流的执行顺 序,这也是本章的主要内容。大多数这些活动都支持Boolean类型的条件,该条件既可以设置为声明性规则条件,也可以通过代码来指定。本章会对这两种类 型的条件进行比较。
第6章:本地服务
WF的一些核心功能是采用一种可插拔的服务机制来实现的。这种机制允许你根据自己的需要去实现这些服务。WF还提供了本地服务,你可以基于你的任何目的来实现服务。在工作流实例和宿主应用程序之间通信就是本地服务的一个常见的用途。本章的重点是实现和使用自定义本地服务。
第7章:事件驱动活动
本章的主要内容是事件驱动活动。事件驱动活动允许工作流等待外部事件的到达。第6章演示了如何实现本地服务和在工作流实例中调用这些服务的方法。本 章则演示如何从这些本地服务中触发事件并由工作流来处理这些事件。本章还会讨论自定义事件驱动活动的开发和如何使用工作流队列进行通信。
第8章:工作流持久性
工作流持久性允许自动保存正在运行中的工作流实例的状态,并在将来重新加载它们。持久性对长时间运行的工作流来说尤为重要,使用持久性服务,你可以在内存中卸载空闲和等待外部事件的工作流。
第9章:状态机工作流
WF支持工作流的两种主要类型:顺序和状态机。直到现在为止,你在本书中接触到的所有工作流都是顺序工作流,顺序工作流经常被用来和系统交互。如果 在设计期间就知道准确的任务执行顺序,那么采用顺序工作流最为合适。状态机工作流可以轻松地响应外部事件。在解决有人类参与交互的工作流时,状态机工作流 尤其有用,因为在这种情况下,准确的任务执行顺序往往不能在设计期间决定。
第10章:事务和补偿
本章的目标是演示两种用来控制工作的完整性和一致性的方法。事务允许将多个活动排列到一个逻辑单元中执行。当启用事务时,所有的工作只能被全部提交 或者全部回滚,而不存在部分更新的问题。另一方面,补偿则是撤销之前完成的工作的过程。如果当某个活动成功完成之后,工作流才决定刚才的工作必须撤销的 话,就需要进行补偿。
第11章:工作流规则
WF包含一个通用的规则引擎,它带来一种定义业务逻辑的新方法。作为简单语句或相关数据断言的代替,使用规则是最好的思路(相对于使用程序指令)。 单独的规则组成了规则集,并且可以通过WF内置的规则引擎进行计算。每个规则都允许定义一些动作,并根据规则的结果(true或者false)执行相应的 动作。
第12章:异常和错误处理
异常处理对任何应用程序来说都是至关重要的,WF提供了一种机制来允许声明性地处理异常。本章的目的是说明各种在工作流模型中处理异常的方法。本章的内容还包括取消处理程序,当执行中的活动被取消时,可以使用取消处理程序来执行一组活动。
第13章:高级自定义活动
本章提供了关于自定义活动开发的其他信息。逐步探索通用并可长时间运行的自定义活动的开发过程。
第14章:动态的工作流更新
大多数时间,你会静态地定义工作流,然后在运行时创建它的实例。其实WF还提供了功能来动态更新执行中的工作流。本章演示了如何在宿主应用程序和执行中的工作流内部动态更新工作流。
第15章:工作流跟踪
WF提供了跟踪框架来跟踪工作流的执行过程。跟踪框架支持可插拔的跟踪服务,可以根据自己的需求来实现。跟踪框架基于跟踪配置,而跟踪配置又允许自定义每一种工作流被跟踪的数量和数据类型。本章的重点是使用标准的跟踪服务和开发自定义跟踪服务。
第16章:Web服务和ASP.NET
WF允许在工作流内部声明性地访问Web服务。也可以将工作流作为Web服务公开给任何Web服务客户端。本章会通过在ASP.NET Web 窗体应用程序中使用WF来演示这些主题。
第17章:工作流服务和WCF集成
本章的重点是.NET Framework 3.5中新增的WCF与WF的集成。这种集成的主要示例就是能够承载以工作流的方式实现的WCF服务。这就是工作流服务。从.NET 3.5开始,WF还允许在工作流中直接调用WCF服务。
第18章:工作流序列化和标记
本章的目的是演示如何使用工作流标记和序列化。每个工作流定义都可以用几种方式来表现,其中就包括标记。标记用简单的XML格式定义了工作流,不需 要编译就可以直接被工作流运行时引擎处理并执行。使用标记的好处是可以非常容易地修改工作流定义,因为它不需要编译,甚至不需要Visual Studio。
第19章:承载工作流设计器
第18章介绍了工作流序列化和标记,本章则演示如何创建自己的工作流设计器。WF包含了一些类来在应用程序中承载工作流设计器。本章演示了一个承载工作流设计器的应用程序,它允许使用标记语言来定义和修改工作流。