翻译来至《Understanding WF in WSS and Office 2007 v1.doc》
作者:David Chappell, Chappell & Associates(鼎鼎大名)

翻译片段,全文请查看:http://www.davidchappell.com/blog/index.html

在软件实现中,包含一个定义的多步流转的流程是很经常的。如果是很多程序都包含到,那么为什么不直接提供一个包含这种应用的软件呢?Windows Worldflow Foundation就是出于这种目的而产生。一个基于WF的应用就是由许多工作流(workflows)组成,每个工作流包含有许多活动(Activities).每个活动,在工作流的位置中,于某一时刻执行于WF运行引擎上。在对面向过程的程序中,WF可以使这些程序更容易创建和维护。
下面一张图指出了WF的主要组件。工作流(Workflow)又许多活动(Activities)组成,执行于引擎(Runtime Engine)上。执行过程依赖于低层的运行时服务(Runtime Services)。服务跟踪工作流状态,跟踪执行过程等。它可以宿主(Host)于桌面程序,也可以宿主于大型服务器中。它能对各种环境进行自适应。在需要的时候,Runtime Services能在各种环境中替换。
WF可以在Visual Studio中进行可视化的设计,可以创建各种工作流,并拖动活动来创建。一个活动是一个类,所以你完全有可能通过全代码的形式来编写活动。工作流可以又任何活动组成,包括WF中提供的BAL(Base Activity Library),也可以用自己创建的活动。BAL包含一些通用的,基础性的活动:
  >>IFElse:根据条件,有两种或更多的可选路径。
  >>While:重复执行一个或多个活动。
  >>Sequence:顺序指定一组活动。
  >>Parallet:同时执行两组或多组活动。
  >>Code:执行一个定义的代码片段。
  >>Listen:监听事件集,当事件发生,触发执行活动。
  >>InvokeWebService:引用WebService。
  >>Policy:用WF提供的规则引擎来定义、执行业务逻辑。
WF提供两种内建的工作流:
  >>Sequential Workflows:执行定义的一系列活动,它可以包含IFElse、While等所有活动。
  >>State machine workflows:执行传统有限状态机,它可以包含IFElse、While等活动。它以来于其他活动的状态来转换。

理解WF不是工作流应用程序,而是提供一个基础来开发工作流应用是很重要的。它可以宿主在任何的Windows应用中,也可以和其他技术结合来提供工作流服务。WWSv3就是个很好的例子。