您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“WF4 Beta 2中新功能特性有哪些”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“WF4 Beta 2中新功能特性有哪些”這篇文章吧。
本文將介紹WF4 Beta 2中新功能特性,并通過WF4 Beta 2與WF4 Beta 1的對比,使大家能更好的了解WF4 Beta 2。
Acticvity結構說明 WF4 Beta 2的Activity結構
WF4 Beta 2與WF4 Beta1的Activity結構變化對比說明
1. 取消了[WorkflowElement], 與WF3.0一樣,[Activity]成為了WF功能Activity的根類型
2. 增加了表達式Activity [ ActivityWithResult]
public sealed class wxwinterActivityResult :CodeActivity<string> { protected override string Execute(CodeActivityContext context) { return "wxwinter"; }
3. 增加了異步Activity [AsyncCodeActivity] 可以實現 Begin/End的異步執行方式
public sealed class wxwinterActivity : AsyncCodeActivity { protected override IAsyncResult BeginExecute(AsyncCodeActivityContext context, AsyncCallback callback, object state) { return callback.BeginInvoke(null, null, null); } protected override void EndExecute(AsyncCodeActivityContext context, IAsyncResult result) { } }
4. 取消 [InvokePowershell] Activity
關于[InvokePowershell] Activity的介紹見我寫的WF4.0 Beta1 調用PowerShell
( http://www.cnblogs.com/foundation/archive/2009/06/28/1512542.html)
5. 添加Activity [Rethrow] 以實現再次引發異常
WF4 Beta 2與WF3.0/3.5 的Activity結構變化對比說明
變化很大,基本上可以認為是兩個產品
運行環境說明 WF4 Beta 2的運行環境WorkflowApplication
class Program { static void Main(string[] args) { WorkflowApplication instance = new WorkflowApplication(new wxwinterActivity()); instance.Run(); System.Console.Read(); } } public class wxwinterActivity : CodeActivity { protected override void Execute(CodeActivityContext context) { System.Console.WriteLine("wxd"); } }
WF4 Beta 2與WF4 Beta1的運行環境對比說明
流程實例 [WorkflowInstance] 被 [WorkflowApplication] 取代
class Program { static void Main(string[] args) { WorkflowInstance instance = new WorkflowInstance(new wxwinterActivity()); instance.Run(); System.Console.Read(); } } public class wxwinterActivity : CodeActivity { protected override void Execute(CodeActivityContext context) { System.Console.WriteLine("wxd"); } }
WF4 Beta 2與WF3.0/3.5 的運行環境對比說明
WF3.X與WF4運行環境最明顯的變化是,在WF3.X中要創建實例要使用WorkflowRuntime的CreateWorkflow方法.
而在WF4中,不需要顯示創建一個[WorkflowRuntime],而是直接使用[WorkflowInstance (Beta1中)] 創建,這也是到了Beta2中將[WorkflowInstance ]改名為[WorkflowApplication]的原因
class Program { static void Main(string[] args) { WorkflowRuntime workflowRuntime = new WorkflowRuntime(); WorkflowInstance instance = workflowRuntime.CreateWorkflow(typeof(wxwinterActivity)); instance.Start(); System.Console.Read(); } } public class wxwinterActivity : System.Workflow.ComponentModel.Activity { protected override System.Workflow.ComponentModel.ActivityExecutionStatus Execute(System.Workflow.ComponentModel.ActivityExecutionContext executionContext) { System.Console.WriteLine("wxd"); return base.Execute(executionContext); } }
工作流開發說明 WF4 Beta 2所提供的工作流模板
WF4 Beta 2只提供了一個[Activity]的模板,
當使用個[Activity]的模板創建流程時,會提供一個只能放入一個控件的空環境
<Activity x:Class="ActivityLibrary1.wxwinterWorkFlow" mva:VisualBasic.Settings="Assembly references and imported namespaces serialized as XML namespaces" xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities" xmlns:mv="clr-namespace:Microsoft.VisualBasic;assembly=System" xmlns:mva="clr-namespace:Microsoft.VisualBasic.Activities;assembly=System.Activities" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:s1="clr-namespace:System;assembly=System" xmlns:s2="clr-namespace:System;assembly=System.Xml" xmlns:s3="clr-namespace:System;assembly=System.Core" xmlns:scg="clr-namespace:System.Collections.Generic;assembly=System" xmlns:scg1="clr-namespace:System.Collections.Generic;assembly=System.ServiceModel" xmlns:scg2="clr-namespace:System.Collections.Generic;assembly=System.Core" xmlns:scg3="clr-namespace:System.Collections.Generic;assembly=mscorlib" xmlns:sd="clr-namespace:System.Data;assembly=System.Data" xmlns:sd1="clr-namespace:System.Data;assembly=System.Data.DataSetExtensions" xmlns:sl="clr-namespace:System.Linq;assembly=System.Core" xmlns:st="clr-namespace:System.Text;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> Activity>
當向空Activity中放入[Sequence]時,就可認為是[順序工作流]
<Activity x:Class="ActivityLibrary1.wxwinterWorkFlow" mva:VisualBasic.Settings="Assembly references and imported namespaces serialized as XML namespaces" xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities" xmlns:mv="clr-namespace:Microsoft.VisualBasic;assembly=System" xmlns:mva="clr-namespace:Microsoft.VisualBasic.Activities;assembly=System.Activities" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:s1="clr-namespace:System;assembly=System" xmlns:s2="clr-namespace:System;assembly=System.Xml" xmlns:s3="clr-namespace:System;assembly=System.Core" xmlns:scg="clr-namespace:System.Collections.Generic;assembly=System" xmlns:scg1="clr-namespace:System.Collections.Generic;assembly=System.ServiceModel" xmlns:scg2="clr-namespace:System.Collections.Generic;assembly=System.Core" xmlns:scg3="clr-namespace:System.Collections.Generic;assembly=mscorlib" xmlns:sd="clr-namespace:System.Data;assembly=System.Data" xmlns:sd1="clr-namespace:System.Data;assembly=System.Data.DataSetExtensions" xmlns:sl="clr-namespace:System.Linq;assembly=System.Core" xmlns:st="clr-namespace:System.Text;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> Activity>
當向空Activity中放入[Flowchart]時,就可認為是[Flowchart工作流]
<Activity mc:Ignorable="sap" x:Class="ActivityLibrary1.wxwinterWorkFlow" mva:VisualBasic.Settings="Assembly references and imported namespaces serialized as XML namespaces" xmlns="http://schemas.microsoft.com/netfx/2009/xaml/activities" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:mv="clr-namespace:Microsoft.VisualBasic;assembly=System" xmlns:mva="clr-namespace:Microsoft.VisualBasic.Activities;assembly=System.Activities" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:s1="clr-namespace:System;assembly=System" xmlns:s2="clr-namespace:System;assembly=System.Xml" xmlns:s3="clr-namespace:System;assembly=System.Core" xmlns:sad="clr-namespace:System.Activities.Debugger;assembly=System.Activities" xmlns:sap="http://schemas.microsoft.com/netfx/2009/xaml/activities/presentation" xmlns:scg="clr-namespace:System.Collections.Generic;assembly=System" xmlns:scg1="clr-namespace:System.Collections.Generic;assembly=System.ServiceModel" xmlns:scg2="clr-namespace:System.Collections.Generic;assembly=System.Core" xmlns:scg3="clr-namespace:System.Collections.Generic;assembly=mscorlib" xmlns:sd="clr-namespace:System.Data;assembly=System.Data" xmlns:sd1="clr-namespace:System.Data;assembly=System.Data.DataSetExtensions" xmlns:sl="clr-namespace:System.Linq;assembly=System.Core" xmlns:st="clr-namespace:System.Text;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Sequence sad:XamlDebuggerXmlReader.FileName="d:\users\wxd\documents\visual studio 2010\Projects\ActivityLibrary1\ActivityLibrary1\wxwinterWorkFlow.xaml" sap:VirtualizedContainerService.HintSize="235,288"> <sap:WorkflowViewStateService.ViewState> <scg3:Dictionary x:TypeArguments="x:String, x:Object"> <x:Boolean x:Key="IsExpanded">Truex:Boolean> scg3:Dictionary> sap:WorkflowViewStateService.ViewState> <WriteLine sap:VirtualizedContainerService.HintSize="213,62" /> <WriteLine sap:VirtualizedContainerService.HintSize="213,62" /> Sequence> Activity>
WF4 Beta 2與WF4 Beta1 所提供的工作流模板對比說明
WF4 Beta1 非常鮮明的提供了兩個工作流模板[Flowchart工作流], [順序工作流]
[順序工作流]
[Flowchart工作流]
WF4 Beta 2與WF3.0/3.5 所提供的工作流對模板比說明
WF3.0/3.5也提供了兩個工作流模板[狀態機工作流], [順序工作流]
其中[狀態機工作流]與[Flowchart工作流]有相似之處
[狀態機工作流]
[順序工作流]
工作流格式說明
WF4 的工作流可以是用代碼構建的,也可以是由xaml構建的, xaml可以動態/靜態的編譯為一個類,也可以直接以字符串方式加載
WF3.X的工作流可以是用代碼構建的,也可以是由xoml構建的,帶class頭的xoml可以動態/靜態的編譯為一個類,沒有class頭的xoml可以直接以字符串方式加載
其他功能說明
WF4與WF3.5都提供了持久化,跟蹤,通訊,阻塞等功能,但實現方式不同,也不通用.
WF4與WF3.5的流程設計器從UI風格與實現方式上也有很大不同
以上是“WF4 Beta 2中新功能特性有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。