一、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与宿主程序时在不同的线程中同时执行,各个事件也是异步执行的
http://msdn.microsoft.com/zh-cn/library/ms611709.aspx
理解 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种创建工作流模式。