WorkFlow入门Step.6—Building a Console Application...

 

开篇

       以前咱们讲述了控制流与WF4.0的基础。下面咱们来看看如何使用控制台的形式来使用WF4.0、好比咱们有时候不能经过设计器来设计工做流时,如何经过代码html

的方式,来构建WF4.0应用程序,可能这就会为咱们自定义工做流设计器等方面提供帮助。下面咱们就开始吧。函数

摘要

         WorkFlow是最近比较流行的一门技术,其实WF起源于20世纪70年代中期的办公化自动领域,自1993年8月,WFMC(工做流管理联盟)成立,1994年制定了一网站

系列的关于工做流的标准。进入21世纪工做流被愈来愈多的学者关注,该项技术愈加走向成熟。固然我也是必须跟上时代的步伐,因此也加入工做流的大军,但愿能spa

够跟上前人的脚步。固然也但愿感兴趣的朋友,加入工做流的讨论群中来。具体群号:120661978。.net

目前,咱们已经在AgileEAS.平台中陆续集成了,界面设计器+工做流的内容,固然工做流目前还不算太成熟,还不方便放出来,本文只是抛砖引玉,还但愿设计

你们多多重视工做流的内容。3d

大纲

1、开篇orm

2、摘要htm

3、WF4.0的控制台程序blog

控制台程序

以前的几篇文章,咱们已经把WF中的基础控制流信息差很少说完了,关于具体的应用咱们后面会说明,更多内容请查看上篇《

WorkFlow入门Step.5—Adding Procedural Elements-For-WF4.0-(后续)

下面咱们就来看看如何经过代码的形式来建立工做流流程,达到与设计器一样的目标。

一、新建一个Winform控制台应用程序。

image

二、添加程序集引用“system.Activities”:

image

三、在Main函数中添加以下代码:

image

四、修改上方的“CreateWorkFlow方法”:

image

五、运行上述程序,查看运行结果。

image

下面咱们来在该代码构建一个带有IF控制流的活动吧,看看是如何构建的。

一、在上面的基础上,咱们来新修改上述“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() 
                   } 
               } 
           };

二、咱们来解释下上面的定义说明信息:

image

三、其余内容:

image

四、运行后,查看结果以下:

image

五、IF条件中的写法与Condition的解析,咱们这里来简单的说明下:、

image

 

基于上面的形式,咱们可以写出全部咱们基于设计器来完成的代码,固然掌握这样的控制台的形式,对咱们结合一些相关开发平台或者业务代码的时候,

更方便和容易,可能给予控制台的方式,会感受比较的难以书写。

例如咱们在上面的基础上,在then中完成赋值操做。

咱们在then中对变量contion1赋值为2。

并打印出来。

一、修改上述的Sequece中的代码:

image

上面就完成了,IF活动内部的过程的修改。

二、运行后,查看运行的效果:

image

源码下载

download233

更多交流

官方博客:http://www.smarteas.net/

官方网站:http://www.agilelab.cn/

若是您在使用AgileEAS.NET开发平台中有什么问题,请使用以下几种联系方式或者沟通方式。

一、邮箱方式:

魏琼东: mail.james@qq.com 手机:18629261335 博客:http://eastjade.cnblogs.com/

殷长波:549558408@qq.com 博客: http://www.cnblogs.com/onmyway/

何戈洲hegezhou_hot@163.com 博客:http://www.cnblogs.com/hegezhou_hot/

二、QQ交流群:

AgileEAS.NET平台交流群:120661978(超级群)[新建]

相关文章
相关标签/搜索