工作流(WF)编程入门

    一、WF基础

  1. 简介:WF被用于简化和争强.NET应用程序开发,WF不是一个独立的开发环境,它提供了一套用于辅助工作流的开发框架。
  2. 特点:

  3. WF的运行时引擎
  4. WF支持顺序工作流、状态机工作流和数据驱动工作流,并且支持工作流的持久化,
  5. WF支持使用特定领域模型解决问题,可以开发自己的活动组件,来引入对特定领域问题的解决方法。
  6. WF提供了完整的工作流系统,还提供了一套标准的活动、工作流持久化、工作流监控和追踪、规则引擎、工作流设计器以及项目开发模板。
  7. 可以修改WF的行为来扩展WF,比如,可以提供自定义的持久化服务来取代WF提供的SQL持久化服务。
  8. WF命名空间
  9. System.Workflow.Activities;工作流的活动。

    System.Workflow.ComponentModel;提供用于创建活动和工作流的基类、接口就核心建模构造。

    System.Workflow.Runtime;控制工作流运行时引擎和工作流实例执行的类。

    System.WorkflowServices提供工作流和WCF服务整合能力

  10. 来创造一个简单的工作流
  11. 工作流(WF)编程入门_第1张图片

  12. WF架构简介:首先启动WorkflowRuntime, 然后WorkflowRuntime开启一个独立的工作流任务。
  13. 工作流(WF)编程入门_第2张图片

    二、使用WorkflowRuntimeWorkflowInstance类:WF可以宿主到多个应用程序里,在一个应用程序里可以有多个工作流引擎,并且运行时引擎的每个实例均可支持多个并发运行时的工作流实例。

  14. WorkflowRuntime工作流引擎
  15. WorkflowRuntime与宿主程序时在不同的线程中同时执行,各个事件也是异步执行的

     

    工作流(WF)编程入门_第3张图片

     

    工作流(WF)编程入门_第4张图片

    http://msdn.microsoft.com/zh-cn/library/ms611709.aspx

  16. 理解WorkflowInstance工作流实例:WorkflowInstance只是实际工作流的一个代理对象。都可以通过调用包含在WorkflowInstance类中的适当方法来执行操作。
  17.  //与工作流实例中的公共可写属性对应。

                    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();

    三、工作流类型和创建模式。

  18. 工作流类型:顺序工作流和状态机工作流。
  19. 工作流(WF)编程入门_第5张图片工作流(WF)编程入门_第6张图片

    简单的状态工作流实例:

    工作流(WF)编程入门_第7张图片

     

     工作流(WF)编程入门_第8张图片

     

  20. WF工作流的创建模式
  21. 仅限代码:默认创建模式。
  22. 代码分离:可以通过工作流标记XAML和代码分离隐藏实现定义工作流。与ASP.NET模式相同。
  23. 无代码:通过工作流标记XAML来创作工作流。
  24. 总结:本文讨论了WF的基础架构,并讨论了WF2大核心:WorkflowRuntimeWorkflowInstance.工作流类型和3种创建工作流模式。

你可能感兴趣的:(工作流)