Windows Workflow Foundation の新機能
.NET Framework 4 の Windows Workflow Foundation (WF) により、以前のバージョンのいくつかの開発パラダイムが変更されています。 ワークフローでは、新しい機能のホストの作成、実行、保守、実装が簡単になっています。 .NET Framework 3.0 および .NET Framework 3.5 のワークフロー アプリケーションを移行して最新バージョンを使用する方法の詳細については、「移行ガイダンス」を参照してください。
ワークフロー アクティビティ モデル
アクティビティは、現在はワークフロー作成の基本単位であり、SequentialWorkflowActivity クラスや StateMachineWorkflowActivity クラスは使用されなくなっています。 Activity クラスは、ワークフロー動作の基本抽象クラスです。 このため、アクティビティの作成者は、基本的なカスタム アクティビティ機能用に CodeActivity を実装するか、一定範囲のランタイムを使用するカスタム アクティビティ機能用に NativeActivity を実装することができます。 また、アクティビティの作成者は Activity クラスを使用して、他の NativeActivity、CodeActivity、AsyncCodeActivity、または DynamicActivity オブジェクトによって新しい動作を宣言して表します。これは、カスタムに開発されたものである場合と、ビルトイン アクティビティ ライブラリに含まれているものである場合があります。
豊富な複合アクティビティ オプション
Flowchart は新しい強力な制御フロー アクティビティです。作成者は、これを使用して任意のループや条件分岐をモデル化できます。 Flowchart により、以前は StateMachineWorkflowActivity でのみ実装が可能であったイベント ドリブン プログラミング モデルを使用できます。 手続き型のワークフローでは、TryCatch や Switch<T> などの従来のフロー制御構造をモデル化する新しいフロー制御アクティビティを利用できます。
拡張ビルトイン アクティビティ ライブラリ
アクティビティ ライブラリには、次のような新しい機能があります。
DoWhile、Pick、TryCatch、ForEach<T>、Switch<T>、ParallelForEach<T> などの新しいフロー制御アクティビティ
Assign などのメンバー データを操作するためのアクティビティと、AddToCollection<T> などのコレクション アクティビティ
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 デザイナーを再ホストするときに簡単に使用できるモデルです。また、カスタムのアクティビティ デザイナーを作成するための使いやすいメカニズムも備えています。 詳細については、「ワークフロー デザイン操作のカスタマイズ」を参照してください。
.NET