【翻譯習作】 Windows Workflow Foundation程式開發-第一章03

來源:互聯網
上載者:User

標籤:

1.2.2.Visual Studio 2005擴充包

微軟也為Windows Workflow開發人員提供了Visual Studio 2005擴充包。擴充包將許多功能整合到Visual Studio裡,其中就包括一個用於編製工作流程的視覺化設計工具。下面就是視覺化設計工具的截屏圖。

 

這個設計器的視窗式樣與我們所熟悉的Windows和Web表單設計器保持一致。Toolbox(工具箱)視窗中列出了可以拖放到設計器檯面上的所有活動。我們也可以把自訂的活動添加到Toolbox中去。一旦把一個活動放置到設計器檯面上,Properties(屬性)視窗中就會列出該活動的可配置屬性和可處理事件。就是Toolbox視窗

 

1.2.2.1.       Windows Workflow與XAML

WF設計器能夠以其產生的C#和Visual Basic代碼來表示我們的工作流程。這個設計器也能夠讀寫可擴充應用程式標記語言(英文簡稱XAML,讀作zammel)。XAML檔案都是合法的XML檔案。XAML帶給Windows Workflow的是一種宣告式程式設計模型。這裡就是設計器為我們先前看到的工作流程產生的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> 
 

我們的工作流程很簡單,只包含了一個活動——一個CodeActivity活動。當工作流程引擎執行這個CodeActivity活動時,CodeActivity將調用一個在ExecuteCode屬性中指定的方法。我們的XML標記碼中也包括了專門的XML命名空間指令。第2章會講述XAML和這些命名空間。

XAML不是Windows Workflow的專用技術。作為一種“可擴充應用程式”標記語言,XAML也被用在微軟的呈現架構——Windows Presentation Foundation(WPF)中。在WPF裡,XAML以聲明方式構建出豐富的使用者介面,其中不僅包括了按鈕和標籤,也包括了動畫情節串聯板和資料範本。

聲明性XAML的一個重要能力就是能夠與命令性代碼共同定義一個部分類別(partial class)。部分類別是.NET 2.0提供的一個新功能,它可以在Visual Basic和C#中使用。部分類別允許在多個檔案中對一個類進行定義。上面的XAML標記碼將被轉換成一個名為HelloWorldWorkflow的部分類別。我們用XAML標記碼根節點中的x:name屬性來控制這個類的名字。我們可以在C#代碼中為這個類新增成員,前提是用C#定義的類也叫HelloWorldWorkflow,並且使用了partial關鍵字。

public partial class HelloWorldWorkflow : SequentialWorkflowActivity{    private void codeActivity1_ExecuteCode_1(object sender, EventArgs e)    {          // ...    }}

在這個例子中,我們為XAML標記碼定義的類(HelloWorldWorkflow)添加了一個新成員:codeActivity1_ExecuteCode_1方法。

1.2.2.2.       WF有效性驗證與調試

工作流程設計工具的另一項功能是對工作流程中的各個活動進行有效性驗證,並將結果顯示給開發人員。每一個活動都可以對其設計時和運行時驗證進行定義。如果一個活動的有效性驗證失敗了,設計器會在該活動上顯示一個帶有紅色驚歎號的圓點。例如,對於一個CodeActivity活動,假設我們不給ExecuteCode屬性賦值,它就會始終顯示一個紅歎號點。如果在執行過程中不調用任何方法,這個CodeActivity活動就是個擺設,幸好有效性驗證能夠儘早的替我們發現這個問題並給出明顯的提示。

工作流程設計工具也為開發人員提供了調試功能。我們可以在設計器中為一個活動設定斷點。當工作流程在斷點處暫停執行,我們可以在Call Stack視窗中查看工作流程執行個體中那些已執行的活動。調試器的命令:Step In(逐語句),Step Out(跳出)和Step Over(逐過程)都能以直觀的方式進行操作;比如,當執行到一個複合活動時,使用Step In命令後,會進入這個活動內部,並準備執行它的第一個子活動;而使用Step Over命令後,整個複合活動將被執行完,並準備執行緊跟其後的下一個活動。

1.2.2.3.       設計器外觀

工作流程設計工具允許我們通過主題(themes)對它的設計檯面進行定製。一個主題包含了對設計檯面的背景色、字型、網格線和邊框樣式的定義。我們甚至可以為特定的活動類型選擇顏色和邊框樣式。利用Visual Studio,我們可以建立新主題,或者修改現有主題。

但是,所有這些外觀定製功能並不僅僅是讓設計器看上去很美。WF的設計器就是一個組件,我們可以在自己開發的應用軟體中承載它。這種承載設計器的能力給了我們極大的發揮空間。首先,我們可以承載設計器,讓非開發人員(也就是業務人員)能夠對工作流程進行設計和修改。其次,通過對活動進行定製,我們能夠以業務人員易於理解的方式來構建工作流程(這就是所謂的“特定領域語言”)。還有,通過對主題進行定製,我們可以讓設計器外觀與整個應用軟體保持一致。

 

章節連結:

【翻譯習作】 Windows Workflow Foundation程式開發

 

【翻譯習作】 Windows Workflow Foundation程式開發-前言


【翻譯習作】 Windows Workflow Foundation程式開發-第一章01

 

【翻譯習作】 Windows Workflow Foundation程式開發-第一章02

 

【翻譯習作】 Windows Workflow Foundation程式開發-第一章03

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.