MS Workflow Foundation
2.WF是什么?
—MS将WF作为Vista的一个基本API发布,而不是一个独立的软件(如BizTalk,Office)。
3.WF适合做什么?
—使用WF可以开发具有以下特点的工作流平台:
1.业务流程辅助办公软件
2.软件内部工作的顺序控制
3.自动筛选查询类系统
4.自动化控制中
4.WF的工作模式
—顺序工作流 非常适合以下类型的操作,即该操作由依次执行直至最后一个活动完成的步骤的管线表示。但是,顺序工作流的执行并非完全是顺序的。它们仍然可以接收外部事件或者启动并行任务,在这种情况下,确切的执行顺序可能有所不同。
5.工作流活动的分类
简单活动类:(System.Workflow.ComponentModel.Activity)
活动容器类:(System.Workflow.ComponentModel.CompositeActivity)
Activity <- CompositeActivity
CodeActivity:可以添加代码,
IfElseActivity:类似于if语句,
SuspendActivity:类似于线程挂起语句,
DelayActivity:类似于线程休眠语句 ,
CallExternalMethodActivity:类似于调用方法语句,
HandleExternalEventActivity:类似于触发事件语句,
WhileActivity:类似于While语句,
terminateActivity: 类似于终止语句,
ThrowActivity:类似于自定义异常语句,
ConditionedActivityGroup:有点像foreach语句,
replicatorActivity:有点像for语句
PolicyActivity:有点像职责链
—可以用InvokeWorkflowActivity调用子流程
还有一些用于控制流程、控制状态、事务处理、异常处理的控件
7. WF提供了的服务
WF提供了SqlWorkflowPersistenceService,用于将实例持久化到一数据库中,SqlWorkflowPersistenceService的数据库生成文件在[系统盘WindowsMicrosoft.NETFrameworkv3.0Windows Workflow FoundationSQLEN]下SqlPersistenceService_Schema.sql与SqlPersistenceService_Logic.sql
WF提供了SqlTrackingService,用于监听实例的运行状态,并将状态保存到数据中,SqlTrackingService的数据库生成文件在[系统盘WindowsMicrosoft.NETFrameworkv3.0Windows Workflow FoundationSQLEN]下Tracking_Schema.sql与Tracking_Logic.sql 使用SqlTrackingQuery,可以从数据库中查询实例的状态。
—也可派生TrackingService,建立自定义监听服务对要监听的内容,可以自定义 TrackingProfile,进行筛选
WF提供了ExternalDataExchangeService,用于实现宿主与实例的通信,CallExternalMethodActivity与HandleExternalEventActivity依赖于该服务。
—4.还有其他一些服务,如ManualWorkflowSchedulerService,以单程方式运行实例,在实例有与外部设备交互时非常有用.
8. WF高级特性
—1.可以自定义流程设计器
WF提供了System.Workflow.ComponentModel.Design.WorkflowView控件,该控件可以用图形的方式显示工作流结构。
—2.可以用WorkflowChanges在实例运行时使用,动态添加删除结点。
—3.可以用WorkflowMarkupSerializer将工作流模板类转换为XML字串格式
—4.WF为流程控制类Activity提供了规则对象。
—5.WF提供了WorkflowRole对象,可以自定义角色,使用AD角色、使用ASP.NET2.0角色。
9.关于通信
— 1.可以使用启动参数,动态结点,插入队列的方式实现宿主与引擎中的实例推方式通信;
— 2.也可以在设计时使用CallExternalMethodActivity,HandleExternalEventActivity,或自定义状态点的方式实现宿主与引擎中的实例拉模式的通信。
10.参考(非常值得一看)