《WF编程》系列之3 - 漫游工作流:Visual Studio 2005 扩展
《WF編程》系列之3 - 漫游工作流:Visual Studio 2005 擴(kuò)展
1.2.2 Visual Studio 2005 擴(kuò)展
Microsoft提供了一個(gè)Visual Studio 2005 的工作流擴(kuò)展(Microsoft Visual Studio 2005 Extensions for Windows Workflow)其中包含用于構(gòu)建工作流的可視化設(shè)計(jì)器.
?
活動(dòng)排列在工具箱里,可以拖拽到設(shè)計(jì)器中.我們還可以往工具箱里添加自定義活動(dòng).當(dāng)選中設(shè)計(jì)器中的活動(dòng)后,屬性面板就會(huì)列出這個(gè)活動(dòng)的屬性和事件供我們配置.
?
1.2.2.1 Windows Workflow 和 XAML
WF設(shè)計(jì)器可以生成描述工作流的C#和Visual Basic代碼,還可以讀寫XAML(可擴(kuò)展應(yīng)用程序標(biāo)記,eXtensible Application Markuptensible Application Markup).XAML文件是有效的XML文件,它將定義性編程模型(declarative programming model)引入到Windows Worklow中.下面是設(shè)計(jì)器生成的XAML:
<SequentialWorkflowActivity???xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"?
??xmlns="http://schemas.microsoft.com/winfx/2006/xaml/workflow"?
??x:Class="HelloWorld.HellowWorldWorkflow"?>
??<CodeActivity?
????x:Name="codeActivity1"?
????ExecuteCode="codeActivity1_ExecuteCode_1"?/>?
</SequentialWorkflowActivity>
這個(gè)XAML描述的工作流很簡(jiǎn)單,它只包括一個(gè)活動(dòng)- CodeActivity,工作流引擎執(zhí)行CodeActivity時(shí)CodeActivity會(huì)調(diào)用ExecuteCode屬性指定的方法codeActivity1_ExecuteCode_1.
要知道,XAML并不只用于Windows Workflow.它同樣出現(xiàn)在Windows Presentation Foundation (WPF).在WPF中, XAML用來構(gòu)建富用戶界面(不只是button和label等傳統(tǒng)控件的組合,還包括動(dòng)畫效果和數(shù)據(jù)模板等).
XAML的一個(gè)重要能力是可以聯(lián)合分部類中的代碼.分部類是.NET 2.0中VB和C#的新功能,它允許類定義在多個(gè)文件中.上邊的XAML會(huì)被轉(zhuǎn)換成一個(gè)名為HelloWorldWorkflow的分布類.我們可以通過XAML根節(jié)點(diǎn)中的x:Name屬性控制類的名稱.如果想在這個(gè)類中添加成員,也可以定義一個(gè)同名的類,并用partial關(guān)鍵詞修飾類名.
?
public?partial?class?HelloWorldWorkflow:SequentialWorkflowActivity????{
????????private?void?codeActivity1_ExecuteCode_1(object?sender,EventArgs?e)
????????{
????????????//??
????????}
????}
在上面的代碼中,我們把codeActivity1_ExecuteCode_1方法添加到與XAML生成的類相同的類(HelloWorldWorkflow)中.
1.2.2.2 WF 驗(yàn)證和調(diào)試
工作流設(shè)計(jì)器的另外一個(gè)工作是提供針對(duì)活動(dòng)的驗(yàn)證機(jī)制.每個(gè)活動(dòng)都可以定義其設(shè)計(jì)時(shí)和運(yùn)行時(shí)的驗(yàn)證.設(shè)計(jì)器將為拋出驗(yàn)證錯(cuò)誤的活動(dòng)標(biāo)記一個(gè)紅色的驚嘆號(hào).例如, CodeActivity會(huì)一直顯示紅色驚嘆號(hào),直到我們?cè)O(shè)置了ExecuteCode屬性(因?yàn)闆]有設(shè)置ExecuteCode屬性的 CodeActivity是沒有用的).
設(shè)計(jì)器還提供調(diào)試功能.我們可以在設(shè)計(jì)器中的活動(dòng)上設(shè)置斷點(diǎn).當(dāng)停止執(zhí)行時(shí),我們可以通過
調(diào)用堆棧(Call Stack)面板查看看工作流中之前執(zhí)行的活動(dòng).
調(diào)試器支持步進(jìn)(Step In), 步出(Step Out)和逐過程(Step Over)等命令.例如,Step In命令將轉(zhuǎn)移到復(fù)合活動(dòng)的第一個(gè)子活動(dòng),Step Over將跳過整個(gè)復(fù)合活動(dòng)轉(zhuǎn)移到下一個(gè)活動(dòng).
1.2.2.3 設(shè)計(jì)器外觀
我們可以通過主題來定制工作流設(shè)計(jì)器的設(shè)計(jì)外觀,主題定義了設(shè)計(jì)器的背景色,字體,線條和邊框樣式.我們可以為特定的活動(dòng)指定顏色和邊框樣式.通過Visual Studio,我們可以創(chuàng)建新的主題,也可以修改存在的主題.
可以定制樣式的功能并不只是為了設(shè)計(jì)器在Visual Studio中更加美觀,WF設(shè)計(jì)器是一個(gè)組件,可以將其托管在我們的應(yīng)用程序內(nèi)部.托管設(shè)計(jì)器是個(gè)不錯(cuò)的創(chuàng)意,我們可以提供一些容易被商業(yè)人員理解的自定義活動(dòng)(如SendOrderToKitchen),并讓他們自己設(shè)計(jì)工作流.
轉(zhuǎn)載于:https://www.cnblogs.com/andylaufzf/archive/2008/08/27/1277493.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的《WF编程》系列之3 - 漫游工作流:Visual Studio 2005 扩展的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle常用函数详解
- 下一篇: 函数04 - 零基础入门学习C语言35