开篇
之前我们讲述了控制流与WF4.0的基础。下面我们来看看如何使用控制台的形式来使用WF4.0、比如我们有时候不能通过设计器来设计工作流时,如何通过代码
的方式,来构建WF4.0应用程序,可能这就会为我们自定义工作流设计器等方面提供帮助。下面我们就开始吧。
摘要
WorkFlow是最近比较流行的一门技术,其实WF起源于20世纪70年代中期的办公化自动领域,自1993年8月,WFMC(工作流管理联盟)成立,1994年制定了一
系列的关于工作流的标准。进入21世纪工作流被越来越多的学者关注,该项技术越发走向成熟。当然我也是必须跟上时代的步伐,所以也加入工作流的大军,希望能
够跟上前人的脚步。当然也希望感兴趣的朋友,加入工作流的讨论群中来。具体群号:120661978。
目前,我们已经在中陆续集成了,界面设计器+工作流的内容,当然工作流目前还不算太成熟,还不方便放出来,本文只是抛砖引玉,还希望
大家多多重视工作流的内容。
大纲
一、开篇
二、摘要
三、WF4.0的控制台程序
控制台程序
之前的几篇文章,我们已经把WF中的基础控制流信息差不多说完了,关于具体的应用我们后面会说明,更多内容请查看上篇《
》
下面我们就来看看如何通过代码的形式来创建工作流流程,达到与设计器同样的目标。
1、新建一个Winform控制台应用程序。
2、添加程序集引用“system.Activities”:
3、在Main函数中添加如下代码:
4、修改上方的“CreateWorkFlow方法”:
5、运行上述程序,查看运行结果。
下面我们来在该代码构建一个带有IF控制流的活动吧,看看是如何构建的。
1、在上面的基础上,我们来新修改上述“CreateWorkFlow方法的内容”:
private static System.Activities.Activity CreateWorkFlow()
{ //创建新的工作流活动 Variable<DateTime> nows = new Variable<DateTime>() { Name = "DateTime", Default = DateTime.Now };return new Sequence()
{ DisplayName = "test", Activities= { new WriteLine() { DisplayName="Write1", Text="Hello World!" } } }; }上面是之前的输出HelloWord的不带复杂的条件的简单输出的节点,我们将上述的代码修改如下:
先定义一个该顺序控制流范围内的变量“Contion1”条件变量,作为IF条件的判定
Variable<int> contion1 = new Variable<int>()
{ Name = "int1", Default = 1 };返回一个顺序控制流
return new Sequence()
{ Variables= { contion1 }, DisplayName = "test", Activities = { //输出工作流执行的开始日期 new WriteLine() { DisplayName="Write1", Text=System.DateTime.Now.ToString() },new If()
{ DisplayName="test2", Condition=ExpressionServices.Convert<bool>(env=>contion1.Get(env)>0), Then=new WriteLine(){ DisplayName="Then", Text="Then" },Else=new WriteLine(){ DisplayName="Else", Text="Else" } }, //输出工作流执行的完成日期 new WriteLine() { DisplayName="Write2", Text=System.DateTime.Now.ToString() } } };2、我们来解释下上面的定义说明信息:
3、其他内容:
4、运行后,查看结果如下:
5、IF条件中的写法与Condition的解析,我们这里来简单的说明下:、
基于上面的形式,我们能够写出所有我们基于设计器来完成的代码,当然掌握这样的控制台的形式,对我们结合一些相关开发平台或者业务代码的时候,
更方便和容易,可能给予控制台的方式,会感觉比较的难以书写。
例如我们在上面的基础上,在then中完成赋值操作。
我们在then中对变量contion1赋值为2。
并打印出来。
1、修改上述的Sequece中的代码:
上面就完成了,IF活动内部的过程的修改。
2、运行后,查看运行的效果:
源码下载
更多交流
原文链接:官方博客:
官方网站:
如果您在使用AgileEAS.NET开发平台中有什么问题,请使用如下几种联系方式或者沟通方式。
1、电话-邮箱方式:
: 手机:18691480181 博客:
2、QQ交流群:
QQ:308961614 网名:H.O.T
AgileEAS.NET平台交流群:120661978(超级群)[新建]