本文知识点
工作流的基本概念
WF的概念及特点
WF工作流的类型及特点
WF工作流的创建模式及特点
WF的架构
什么是工作流?
工作流,是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述。
WF是什么?它有什么特点?
WF的全称是Windows Workflow Foundation,它是微软在.NET3.0之后推出的一套工作流开发框架。
WF不是一个独立的工作流应用程序,它提供了一些类库用于辅助工作流应用程序的开发,因此WF是一套用于辅助工作流开发的框架;
WF只是一个框架,因此需要宿主到其它应用程序中才能运行;
WF提供了实现工作流应用程序时所需要实现的一些机制,比如持久化、跟踪机制等。
WF工作流的类型有哪些?它们的特点是什么?实际开发中应当如何选择?
WF工作流的类型有两种,一种是顺序工作流,一种是状态机工作流。
顺序工作流:定义了一系列按照指定顺序执行的步骤。
状态机工作流:没有固定顺序,执行顺序依赖于外部数据和外部条件。
实际开发中究竟是采用顺序工作流还是状态机工作流还要看实际情况根据两者特点的不同而进行选择。
WF工作流的创建模式有哪些?他们的特点是什么?
WF工作流的创建模式有三种:仅限代码、代码分离、无代码。
仅限代码:这是WF默认的创建模式,该模式下WF会自动生成一个Workflow1.cs的代码文件,在该文件中,我们可以通过C#或VB代码来声明工作流的结构,在这种模式下必须进行编译。参见下图
代码分离:使用XAML与.cs代码文件组合来定义工作流。代码文件必须经过编译。参见下图
无代码:使用工作流标记来创建工作流,然后使用WF命令行工作流编译器来编译工作流,通过宿主应用程序将工作流标记文件加载到工作流运行时引擎。
WF的架构是怎样的?
WF的架构总共分三层分别是:宿主程序层(Hosting Process)、WF运行时层(WorkflowRuntime)、WF服务层。
宿主程序层(Hosting Process):前面我们提到,WF只是一个框架,因此需要宿主到其它应用程序中才能运行,宿主程序层就是WF宿主的应用程序的层。WF可以宿主在Windows控制台应用程序、Windows服务、Windows Froms应用程序、ASP.NET Web应用程序、WebServices等等。目前应用最广泛的是宿主在WPF、WCF、ASP.NET Web应用程序中。
WF运行时层(WorkflowRuntime):WorkflowRuntime本身提供了一些属性和方法用来控制WF的运行时环境,开发人员也可以相应WorkflowRuntime的各种事件来监控工作流引擎的运行。
WF服务层:WF服务层内置了4种服务,分别是:调度服务(Scheduling Services)、事务服务(Transaction Services)、持久化服务(Persistence Services)、跟踪服务(Tracking Services)。
四种内置服务的作用分别是:
调度服务(Scheduling Services):调度服务用来控制Runtime执行工作流所需要的线程。
事务服务(Transaction Services):事务服务允许Runtime保持位于工作流内部和持久存储器(durable store)中的状态的一致性。
持久化服务(Persistence Services):持久化服务负责把工作流状态保存到持久储存器。
跟踪服务(Tracking Services):跟踪服务使用Tracking Profile来通知Runtime它需要的工作流信息的类型。
WF的架构图如下