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()+"\t 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);
直接运行,效果图:
当然了,上面我们借助了WF图形化的设计界面进行工作流的开发,也可以直接写代码的方式进行调用。
比如,一个最简单的hello workflow的WF程序。
static void Main(string[] args)
{
Activity activity = new Sequence
{
Activities =
{
new WriteLine
{
Text = "hello,workflow."
}
}
};
WorkflowInvoker.Invoke(activity);
}
直接在Main函数中写入上面的代码(注意这是一个WF应用程序,否则就是添加相应的dll),就可以在控制台得到"hello,workflow."的结果。
分享到:
相关推荐
WF从入门到精通的源码 摘自博客园 http://www.cnblogs.com/gyche/ WF从入门到精通系列文章
WF从入门到精通(中文版),很好的一本书籍,学习WF必备
WF从入门到精通(中文版) 工作流入门手册! 工作流必须资料!
1.WF从入门到精通(源码).rar(包括连大家不常见的第16章源码也在内) 2.WF从入门到精通(中文版).pdf 包含两个文件
感谢GuoYong.Che的翻译 http://www.cnblogs.com/gyche/tag/WF从入门到精通系列/
WF从入门到精通 19章全 个人认为WF入门很好的教程,每篇一个WF程序 摘自博客园 GuoYong.Che(http://www.cnblogs.com/gyche/) WF从入门到精通系列 为方便阅读自己整理成chm格式(版权归作者所有)
WF从入门到精通(源码)是我发了很长时间才找到的,包括连大家不常见的第16章源码也在内,我也看了别人的源码,发觉老是缺少第16章源码,好痛苦。
[Microsoft Press] WF 从入门到精通 (微软出品) (英文版) [Microsoft Press] Microsoft Windows Workflow Foundation Step by Step (E-Book) ☆ 出版信息:☆ [作者信息] Kenn Scribner [出版机构] Microsoft ...
wf从入门到精通 pdf 中文版, 详细介绍wf 用法, 每篇一个WF程序
整理的WF的入门到精通的博文,包含每章节的源码,对想要学习WF的挺有帮助的
workflow study step by step ,英语原版,WF学习从入门到提高
非常好的WF 4的入门书,介绍了从简单建立WF,到使用其高级功能,入扩展、跟踪等
这是关于工作流的学习pdf格式的文档:WF从入门到精通
第一章:WF简介 第二章:WORKFLOW运行时 第三章:WORKFLOW实例 第四章:活动及WORKFLOW类型介绍 第五章:WORKFLOW跟踪 第六章:加载和卸载实例 第七章:基本活动的操作 第八章:调用外部方法及工作流 第九章:逻辑流...
【翻译】WF从入门到精通(第一章):WF简介源代码下载
工作流 WorkFlow WF从入门到精通 包括PDF教程和源代码
wf4.0入门系列(六)VS2012 C#