zoukankan      html  css  js  c++  java
  • WF 快速入门

    WF(Windows Workflow Foundation ,中文译为:Windows工作流基础)是一种基于更高级抽象概念的编程语言,适合于实现业务流程。虽然可以通过使用图形化的工具(Workflow Designer)来创建WF程序,但是开发人员可以通过XAML(Extensible Application Markup Language,可扩展应用程序标记语言),以便充分利用WF所提供的各项功能。

    工作流,大家都不陌生,在OA系统当中,就广泛应用了这个技术。出于战略的考虑,微软也在.NET Framework当中集成了这一技术,但是相比较其它的系统(比如K2),WF还是比较弱一点,但是这丝毫不影响我们学习工作流技术。而且它可以与WCF等技术无缝的结合起来,开发基于分布式应用服务的工作流应用系统。可以想见,未来工作流系统开发必定会火,不仅仅应用在审批流程等方面,可以广泛的应用在各种业务系统当中。

    我们先上一个hello world的示例。

    在VS2012中默认集成安装了Workflow模块,点击进去可以看到:

    我们选择工作流控制台应用程序。

    创建好项目后,我们看到,默认为我们打开了workflow.xaml文件,并且提示我们在此处放置活动。

    而在左侧的工具箱,列出了所有和工作流相关的工具。比如:控制流、流程图、基元等等。

    好,我们演示一下最简单的工作流程序。

    首先我们从左侧的工具箱中拖动流程图中的Flowchart(流程图)到workflow.xaml文件的在此处放置活动区域中,会显示一个start节点。

    然后继续拖动流程图中的FlowDecision(选择,true or false)到start节点下面区域。再拖动两个Flowchart分别放在FlowDecision的左右两边。

    最后放一个基元中的WriteLine(输出)在最下面。并把鼠标放在各自的组件上,找到连接线把这些组件连接起来,如图所示。

    按照Flowchart的提示,双击以查看,我们分别进入两个Flowchart组件的内部流程。

    拖动工具箱中的基元中的Assign到指定区域,并用连接线与start相连。

    然后我们在xaml文件的下面会看到变量、参数、导入这3个选择。我们先在变量中,添加一个boolFlag变量,类型为Boolean,范围为当前的Flowchart,给个默认值为true。

    我们再在参数里面添加一个num,方向为输入,参数类型为int,默认值为0。

    变量和参数设置好之后,我们在FlowDecision下面的两个Flowchart当中,拖动Assign组件到相应位置,并设置变量boolFlag为true。

    另外一个同样拖动一个Assign并设置boolFlag为false。

    还有一步操作没完成,就是没有设置Decision的Condition(如果没设置编译不通过,会提示要设置这个Condition),我们右键Flowchart上面的Decision选择属性,然后在Condtion表达式里面设置:num>0。

    最后我们在最后的WriteLine组件的Text中,键入:"boolFlag:"+boolFlag.ToString()+" num:"+num。目的是输出boolFlag(变量)和num(传入)的值。

    OK,至此我们这个简单的流程就画好了。很简单,根据输入参数num的值的不同,会进入不同的分支,设置不同的boolFlag,进行各自的操作。

    这时候程序就可以运行了。我们打开Program.cs文件,找到Main函数。将原来的代码修改为:

    Workflow1 workflow1 = new Workflow1();  
    workflow1.num = new InArgument<int>() { Expression = 12 };//给个输入参数num的值,由于>0,按照预期boolFlag应该为true,num为12。  
    WorkflowInvoker.Invoke(workflow1);  
  • 相关阅读:
    查找正序排列的List中缺失的日期数据的一个算法
    了解下C#异常时的输出
    Environment.Exit(0) 、Application.Exit() 、this.Close() 、this.Dispose()的区别
    java--多线程之后台线程
    java--线程状态【转】
    DRP项目总结
    Java实现 蓝桥杯 算法训练 矩阵乘法
    Java实现 蓝桥杯 算法训练 矩阵乘法
    Java实现 蓝桥杯 算法训练 矩阵乘法
    Java实现 蓝桥杯 算法训练 大小写转换
  • 原文地址:https://www.cnblogs.com/guwei4037/p/5640378.html
Copyright © 2011-2022 走看看