一、WF基础
- 简介:WF被用于简化和争强.NET应用程序开发,WF不是一个独立的开发环境,它提供了一套用于辅助工作流的开发框架。
特点:
- WF的运行时引擎
- WF支持顺序工作流、状态机工作流和数据驱动工作流,并且支持工作流的持久化,
- WF支持使用特定领域模型解决问题,可以开发自己的活动组件,来引入对特定领域问题的解决方法。
- WF提供了完整的工作流系统,还提供了一套标准的活动、工作流持久化、工作流监控和追踪、规则引擎、工作流设计器以及项目开发模板。
- 可以修改WF的行为来扩展WF,比如,可以提供自定义的持久化服务来取代WF提供的SQL持久化服务。
- WF命名空间
System.Workflow.Activities;工作流的活动。
System.Workflow.ComponentModel;提供用于创建活动和工作流的基类、接口就核心建模构造。
System.Workflow.Runtime;控制工作流运行时引擎和工作流实例执行的类。
System.WorkflowServices:提供工作流和WCF服务整合能力
- 来创造一个简单的工作流
- WF架构简介:首先启动WorkflowRuntime, 然后WorkflowRuntime开启一个独立的工作流任务。
二、使用WorkflowRuntime和WorkflowInstance类:WF可以宿主到多个应用程序里,在一个应用程序里可以有多个工作流引擎,并且运行时引擎的每个实例均可支持多个并发运行时的工作流实例。
- WorkflowRuntime工作流引擎
WorkflowRuntime与宿主程序时在不同的线程中同时执行,各个事件也是异步执行的
- 理解WorkflowInstance工作流实例:WorkflowInstance只是实际工作流的一个代理对象。都可以通过调用包含在WorkflowInstance类中的适当方法来执行操作。
//与工作流实例中的公共可写属性对应。
Dictionary<string, object> wfArgument = new Dictionary<string, object>();
//将用户输入的信息转换为布尔值
bool approvedarg = str == "Y" ? true : false;
wfArgument.Add("Approved", approvedarg);
//使用CreateWorkflow的重载方法创建工作流实例,并传递wfArgument作为参数。
WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(ApprovalOrder.Workflow1),wfArgument);
instance.Start();
三、工作流类型和创建模式。
- 工作流类型:顺序工作流和状态机工作流。
简单的状态工作流实例:
- WF工作流的创建模式
- 仅限代码:默认创建模式。
- 代码分离:可以通过工作流标记XAML和代码分离隐藏实现定义工作流。与ASP.NET模式相同。
- 无代码:通过工作流标记XAML来创作工作流。
总结:本文讨论了WF的基础架构,并讨论了WF的2大核心:WorkflowRuntime和WorkflowInstance.工作流类型和3种创建工作流模式。