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(超級羣)[新建]

相關文章
相關標籤/搜索