Workflow Manager 1.0 信任表面
發佈時間: 2016年4月
Workflow Manager 1.0 引入了編寫工作流程用的「信任表面」概念。信任表面是一組受信任的類型和活動,提供給使用者編寫他們的工作流程。Workflow 作者會使用那些類型與活動的組合,宣告式地建立工作流程。所允許的類型受限於允許類型清單的使用,此清單包含了系統中的允許類型集。當允許清單生效時,便會在載入時檢查工作流程定義,以確定只有使用允許的類型。本主題提供使用 Workflow Manager 1.0 信任表面編寫宣告式工作流程的概觀。
編寫 Workflow Manager 1.0 的宣告式 Workflow
Workflow Manager 1.0 中主控的 Workflow 是使用信任表面進行完整宣告和編寫,並使用 Microsoft .NET Framework 4 的 Update 4.0.3 和 Windows Workflow Foundation (WF4)。為了編寫 Workflow Manager 1.0 的工作流程,會使用來自信任表面的活動、運算式和變數。所使用的活動可以是來自核准的活動清單,且可以使用由信任活動所撰寫的自訂 XAML 活動。Visual Basic 運算式並不能用在於 Workflow Manager 1.0 中主控的工作流程定義中,但在編寫工作流程時,可以使用來自 Microsoft.Activities.Expressions 命名空間的運算式活動。運算式會先轉譯成支援的活動,然後工作流程定義才會上傳到 Workflow Manager 1.0。工作流程中的變數受限於來自信任表面的資料類型。
Workflow 的編寫方式包括使用 Visual Studio 中的工作流程設計工具、直接透過重新裝載的設計工具建立 XAML,或以程式碼編寫 - 使用 ActivityBuilder 建立衍生自 Activity 並序列化成為 Xaml 的活動。如需 Workflow Manager 1.0 的範例,請參閱 Workflow Manager 1.0 範例。
Workflow Manager 1.0 信任表面
Workflow Manager 1.0 的信任表面包含來自 .NET Framework 第 4 版 的類型和工作流程,以及 Workflow Manager 1.0 中引進的新類型。許多類型都受到支援,且也支援大多數現成的活動。下表包含支援的類型。針對這些受支援的類型,每個都有一組對應的活動可以用來操縱這些類型。
類型 |
支援活動 |
---|---|
字串 |
|
使用 DateTime 和 TimeSpan 的日期支援 |
|
使用 Int32 和 Double 的數字支援 |
|
布林值 |
|
Guid |
|
ICollection,包括 IList |
|
IDictionary 和 KeyValuePair |
|
DynamicValue |
|
例外狀況 |
|
URI |
注意事項 |
---|
除了支援運算式與基本類型操作的活動之外,Workflow Manager 1.0 也引進支援運算式、訊息、安全性、資料操作及設定的活動。如需有關這些活動的詳細資訊,請參閱 Workflow Manager 1.0 活動概觀。這些活動是信任表面的一部分。 |
除了 Workflow Manager 1.0 引進的新活動以外,也支援下列來自所列工作流程組件和個別命名空間的 WF4 活動,並標註例外狀況。
System.Activities.dll
所有活動,除了
InvokeMethod
InvokeMethod<T>
New<T>
Cast<T>
VisualBasicValue<T>
VisualBasicReference<T>
LambdaValue<T>
LambdaReference<T>
TransactionScope
Persist
不支援 System.Activities.Expressions 中的大部分活動,但在 Microsoft.Workflow.* 組件中有同等的活動。
支援 VariableValue<T>、VariableReference<T>、ArgumentValue<T> 和 ArgumentReference<T>。
注意事項 |
---|
工作流程作者可能不熟悉此清單中的部分活動,因為它們並不直接使用,而是用於運算式轉譯成活動時。 |
重要事項 |
---|
請注意,雖然不支援例如 Visual Basic 運算式的部分項目,並不表示您不能在工作流程中使用它們。意思是,這些項目不能成為於 Workflow Manager 1.0 中主控的工作流程定義的一部分。在工作流程上傳至 Workflow Manager 1.0 之前,它們必須經過轉譯。轉譯是指評估運算式並將它們轉換成使用來自信任表面的支援活動的過程。 |
下表包含 Workflow Manager 1.0 信任表面中未提供之部分活動的其他資訊。
活動 |
說明 |
不提供的原因 |
||
---|---|---|---|---|
InvokeMethod/InvokeMethod<TResult> |
在範圍中的類型呼叫執行個體或靜態公用方法。方法可能會有傳回值。 |
方法可能包含惡意/任意的客戶程式碼。 |
||
New<TResult> |
建立類型的新執行個體。 |
建構函式可能包含惡意的程式碼。
|
||
Cast<TOperand, TResult> |
將一個類型轉換成另一個類型。 |
導致呼叫結果類型的建構函式。結果類型的建構函式可能包含惡意的程式碼。 |
||
PropertyValue<TResult> |
呼叫屬性 getter。 |
Getter 可能包含惡意/任意的客戶程式碼。 |
||
PropertyReference<TResult> |
呼叫屬性 setter。 |
Setter 可能包含惡意/任意的客戶程式碼。 |
||
VisualBasicValue<TResult> |
評估 Visual Basic 運算式,該運算式會傳回值。 |
可以執行任意且可能是惡意的 Visual Basic 程式碼。 |
||
VisualBasicReference<TResult> |
評估 Visual Basic 運算式,該運算式會傳回位置參考。 |
可以執行任意且可能是惡意的 Visual Basic 程式碼。 |
||
LambdaValue<TResult> |
評估 lambda 運算式,該運算式會傳回值。 |
可以執行任意且可能是惡意的 C# 或 Visual Basic 程式碼。 |
||
LambdaReference<TResult> |
評估 lambda 運算式,該運算式會傳回位置參考。 |
可以執行任意且可能是惡意的 C# 或 Visual Basic 程式碼。 |