微軟MVP初探WF 4.0 beta1 嶄新面貌讓人吃驚
微軟發(fā)布Visual Studio 2010 Beta1 ,和Visual Studio 2008一樣,Visual Studio 2010在新建項(xiàng)目時(shí)也可以指定目標(biāo).NET Framework版本,并且可用的項(xiàng)目模板會(huì)根據(jù)選擇的.NET Framework而發(fā)生變化。更多Visual Studio 2010功能介紹可參閱此文檔
當(dāng)使用.NET Framework 3.5時(shí),可創(chuàng)建如下工作流項(xiàng)目,著我們已經(jīng)很熟悉了:
而當(dāng)使用.NET Framework 4.0時(shí),可創(chuàng)建的工作流項(xiàng)目卻和使用.NET Framework 3.5大為不同:
最明顯的變化莫過(guò)于取消了狀態(tài)機(jī)工作流的項(xiàng)目模板,取而代之的是一種新的工作流類(lèi)型:Flowchart。與狀態(tài)機(jī)相比較,F(xiàn)lowchart更加靈活,也更符合人類(lèi)的思維模式。而且Flowchart和Sequential之間是可以相互嵌套使用的,這使得我們?cè)谛枨蠓治鲭A段畫(huà)出的工作流草圖幾乎可以原封不動(dòng)的轉(zhuǎn)移到工作流設(shè)計(jì)器中。
我簡(jiǎn)單用Flowchart畫(huà)了一下那個(gè)古老的“多級(jí)審批工作流”,說(shuō)實(shí)話(huà),采用WPF的設(shè)計(jì)器并不是那么好用和高效。
不過(guò)還是可以看出Flowchart的強(qiáng)大和人性化,讓我們放心地和狀態(tài)機(jī)說(shuō)再見(jiàn)吧。
此外,添加新項(xiàng)的項(xiàng)模板也有所不同:
在添加新項(xiàng)和新建項(xiàng)目中都有關(guān)于“Activity Designer ”的模板。這一類(lèi)模板用于創(chuàng)建活動(dòng)設(shè)計(jì)器,而且我們像設(shè)計(jì)WPF程序一樣設(shè)計(jì)活動(dòng)設(shè)計(jì)器,極為方便。
在Visual Studio 2010 beta1中,我們可以清楚地看到這些活動(dòng):
這一次我們看到的活動(dòng)列表和我之前在《WF 4.0,迎接變化》一文中所披露的又有所不同,這一版提供的活動(dòng)從功能上來(lái)說(shuō)更為豐富,甚至可以通過(guò)活動(dòng)來(lái)操作集合了(AddToCollection、ClearCollection、RemoveFromCollcetion、ExistInCollection、ForEach……)。
另外我們還注意到,WF 4.0中的工作流會(huì)以XAML為擴(kuò)展名來(lái)保存(又繞回原來(lái)的擴(kuò)展名了),并且沒(méi)有了代碼隱藏文件。因?yàn)閃F 4.0的每一個(gè)活動(dòng)都可以看做是一個(gè)作用域,在這個(gè)作用域里該活動(dòng)可以維護(hù)自己的變量和輸入輸出參數(shù),輸入輸出參數(shù)和變量之間可以進(jìn)行松散的綁定,這里之所以說(shuō)“松散的綁定”,是為了和以前的依賴(lài)項(xiàng)屬性綁定方式相區(qū)別。依賴(lài)項(xiàng)屬性的綁定基本上可以看做是變量和變量之間的綁定,而WF 4.0的綁定則可以是一個(gè)表達(dá)式,更加靈活。
也許WF產(chǎn)品組希望我們不再依賴(lài)于在工作流中編寫(xiě)代碼來(lái)驅(qū)動(dòng)工作流進(jìn)行,而是采用活動(dòng)和數(shù)據(jù)來(lái)驅(qū)動(dòng)工作流。所以在WF 4.0中,自定義活動(dòng)仍然是包含代碼隱藏文件的,是可以自由編寫(xiě)代碼的。
【編輯推薦】