Windows Workflow Foundation の新機能
このトピックの内容は、Windows Workflow Foundation 4 に該当します。
.NET Framework Version 4 の Windows Workflow Foundation (WF) では、前のバージョンから開発パラダイムがいくつか変更されました。ワークフローでは、新しい機能のホストの作成、実行、保守、実装が簡単になっています。
ワークフロー アクティビティ モデル
アクティビティは、現在はワークフロー作成の基本単位であり、SequentialWorkflowActivity クラスや StatemachineWorkflowActivity クラスは使用されなくなっています。Activity クラスは、ワークフロー動作の基本抽象クラスです。このため、アクティビティの作成者は基本的なカスタム アクティビティ機能用に CodeActivity を実装したり、一定範囲のランタイムを使用するカスタム アクティビティ機能用に NativeActivity を実装したりできます。また、アクティビティの作成者は Activity を使用して、他の NativeActivity オブジェクト、CodeActivity オブジェクト、AsyncCodeActivity オブジェクト、または DynamicActivity オブジェクトによって新しい動作を宣言して表します。このオブジェクトは、カスタムに開発されたものである場合と、.NET Framework 4 ビルトイン アクティビティ ライブラリ に含まれているものである場合があります。
豊富な複合アクティビティ オプション
Flowchart は新しい強力な制御フロー アクティビティです。作成者は、これを使用して任意のループや条件分岐をモデル化できます。また、Flowchart により、以前は StateMachineWorkflowActivity でのみ実装が可能であったイベント ドリブン プログラミング モデルを使用できます。手続き型のワークフローでは、TryCatch や Switch などの従来のフロー制御構造をモデル化する新しいフロー制御アクティビティを利用できます。
拡張ビルトイン アクティビティ ライブラリ
アクティビティ ライブラリには、次のような新しい機能があります。
DoWhile、Pick、TryCatch、ForEach、Switch、ParallelForEach などの新しいフロー制御アクティビティ
Assign などのメンバー データを操作するためのアクティビティと、AddToCollection などのコレクション アクティビティ
TransactionScope や Compensate などのトランザクションを制御するアクティビティ
SendContent や ReceiveReply などの新しいメッセージング アクティビティ
明示的なアクティビティ データ モデル
.NET Framework 4 には、データを格納および移動するための新しいオプションがあります。データは、Variable を使用してアクティビティに格納できます。データをアクティビティに移動したり、アクティビティから移動したりするときは、特殊な引数型を使用してデータの移動方向が判定されます。これらの型は、InArgument、InOutArgument、OutArgumentです。詳細については、次のトピックを参照してください。Windows Workflow Foundation のデータ モデル.
ホスティング、永続化、追跡の強化されたオプション
.NET Framework 4 には、次のような永続化の拡張機能があります。
WorkflowServiceHost、WorkflowApplication、WorkflowInvoker などの、ワークフローを実行するための多数のオプションがあります。
Persist アクティビティを使用してワークフロー状態データを明示的に永続化できます。
ホストは、ActivityInstance をアンロードせずに永続化できます。
ワークフローは、永続化できないデータを処理するときは非永続化ゾーンを指定できます。このため、非永続化ゾーンを終了するまで永続化は延期されます。
トランザクションは、TransactionScope を使用してワークフローに流し込むことができます。
追跡は、TrackingParticipant を使用して、簡単に実行できます。
システムのイベント ログへの追跡は EtwTrackingParticipant を使用して実現されます。
保留中のワークフローの再開は、Bookmark オブジェクトを使用して管理されるようになりました。
WF デザイナー エクスペリエンスの容易な拡張
新しい WF デザイナーは Windows Presentation Foundation (WPF) に基づいて構築されており、Visual Studio の外部で WF デザイナーを再ホストするときに簡単に使用できるモデルです。また、カスタムのアクティビティ デザイナーを作成するための使いやすいメカニズムを備えています。詳細については、次のトピックを参照してください。ワークフロー デザイン操作のカスタマイズ.