.NET Framework 4.5 の Windows Workflow Foundation (WF) では、ワークフロー デザイナーエクスペリエンスのいくつかの機能強化を含む多くの新機能が導入されました。 このトピックでは、リホストされたデザイナーでサポートされている機能と、現在サポートされていない機能について詳しく説明します。
注
.NET Framework 4.5 で導入されたすべての新しい Windows Workflow Foundation (WF) 機能 (デザイナーのリホストとは関係のない機能を含む) の一覧については、「 .NET Framework 4.5 の Windows Workflow Foundation の新機能」を参照してください。
アクティビティ
組み込みのアクティビティ ライブラリには、既存のアクティビティの新しいアクティビティと新機能が含まれています。 これらの新しいアクティビティはすべて、リホストされたデザイナーでサポートされています。 これらの新しいアクティビティの詳細については、「.NET Framework 4.5 の Windows Workflow Foundation の新機能」の「アクティビティ」セクションを参照してください。
C# 式
.NET Framework 4.5 より前では、ワークフロー内のすべての式は Visual Basic でのみ記述できました。 .NET Framework 4.5 では、Visual Basic 式は Visual Basic を使用して作成されたプロジェクトにのみ使用されます。 Visual C# プロジェクトでは、式に C# が使用されるようになりました。 Visual Studio 2012 でワークフローを作成する場合、文法の強調表示や IntelliSense などの機能を備える完全に機能する C# 式エディターが提供されます。 Visual Basic 式を使用する以前のバージョンで作成された C# ワークフロー プロジェクトは引き続き機能します。
Warnung
C# 式は、再ホストされたデザイナーではサポートされていません。
新しいデザイナー機能
デザイナー検索
.NET Framework 4.5 で導入されたファイル内のクイック検索機能は、再ホストされたデザイナーではサポートされていません。
Toolbox
検索は、再ホストされたデザイナーでサポートされています。 これらの機能の詳細については、「 デザイナー検索」を参照してください。
変数および引数デザイナーでコンテキスト メニュー項目を削除する
.NET Framework 4 では、変数と引数は、キーボードを使用してデザイナーでのみ削除できました。 .NET Framework 4.5 以降では、コンテキスト メニューを使用して変数と引数を削除できます。 この機能は、再ホストされたデザイナーでサポートされています。
次のスクリーンショットは、変数と引数デザイナーのコンテキスト メニューを示しています。
シーケンスでの自動囲み
ワークフローまたは特定のコンテナー アクティビティ ( NoPersistScope など) には 1 つの本文アクティビティのみを含めることができるため、2 つ目のアクティビティを追加するには、開発者が最初のアクティビティを削除し、 Sequence アクティビティを追加してから、両方のアクティビティをシーケンス アクティビティに追加する必要があります。 .NET Framework 4.5 以降では、デザイナー 画面に 2 つ目のアクティビティを追加すると、両方のアクティビティをラップするために Sequence
アクティビティが自動的に作成されます。 この機能は、再ホストされたデザイナーでサポートされています。
次のスクリーンショットは、NoPersistScope
のBody
のWriteLine
アクティビティを示しています。
次のスクリーンショットは、2 番目のWriteLine
が最初のの下にドロップされたときに、Body
で自動的に作成されたSequence
アクティビティを示しています。
パン モード
デザイナーで大規模なワークフローをより簡単に移動するには、パン モードを有効にして、開発者がスクロール バーを使用する必要なく、ワークフローの表示部分をクリックしてドラッグして移動できるようにします。 パン モードをアクティブにするボタンは、デザイナーの右下隅にあります。 この機能は、再ホストされたデザイナーでサポートされています。
次のスクリーンショットは、ワークフロー デザイナーの右下隅にあるパン ボタンを示しています。
マウスの中央ボタンまたはスペース バーを使用して、ワークフロー デザイナーをパンすることもできます。
複数選択
複数のアクティビティを一度に選択するには、周囲に四角形をドラッグするか (パン モードが有効になっていない場合)、Ctrl キーを押しながら目的のアクティビティを 1 つずつクリックします。 この機能は、再ホストされたデザイナーでサポートされています。
複数のアクティビティの選択は、デザイナー内でドラッグ アンド ドロップすることも、コンテキスト メニューを使用して操作することもできます。
ワークフロー アイテムのアウトライン ビュー
階層型ワークフローの移動を容易にするために、ワークフローのコンポーネントがツリー スタイルのアウトライン ビューに表示されます。 アウトライン ビューは、[ ドキュメント アウトライン ] ビューに表示されます。 Visual Studio でこのビューを開くには、上部メニューから [ 表示]、[ その他のウィンドウ]、[ ドキュメント アウトライン] の順に選択するか、Ctrl W、U キーを押します。 アウトライン ビューでノードをクリックすると、ワークフロー デザイナーの対応するアクティビティに移動し、アウトライン ビューが更新され、デザイナーで選択されているアクティビティが表示されます。 この機能は、再ホストされたデザイナーでサポートされています。
概要 チュートリアル の完成したワークフローの次のスクリーンショットは、シーケンシャル ワークフローを含むアウトライン ビューを示しています。
シェル バーとヘッダー項目の可視性の制御の向上
再ホストされたデザイナーでは、一部の標準 UI コントロールは特定のワークフローに対して意味を持たない場合があり、オフになっている可能性があります。 .NET Framework 4 では、このカスタマイズはデザイナーの下部にあるシェル バーでのみサポートされます。 .NET Framework 4.5 では、デザイナーの上部にあるシェル ヘッダー項目の表示を調整するには、適切なShellHeaderItemsVisibility値でWorkflowShellHeaderItemsVisibilityを設定します。
フローチャートワークフローとステートマシンワークフローでの自動接続と自動挿入
.NET Framework 4 では、フローチャート ワークフロー内のノード間の接続を手動で追加する必要がありました。 .NET Framework 4.5 では、Flowchart ノードと State Machine ノードには、アクティビティがツールボックスからデザイナー画面にドラッグされたときに表示される自動接続ポイントがあります。 これらのポイントのいずれかでアクティビティを削除すると、必要な接続と共にアクティビティが自動的に追加されます。
次のスクリーンショットは、アクティビティがツールボックスからドラッグされたときに表示される添付ファイル ポイントを示しています。
アクティビティをフローチャート ノードと状態間の接続にドラッグして、他の 2 つのノード間にノードを自動挿入することもできます。 次のスクリーンショットは、ツールボックスからアクティビティをドラッグしてドロップできる強調表示された接続線を示しています。
自動接続と自動挿入は、再ホストされたデザイナーでサポートされています。
デザイナー注釈
大規模なワークフローの開発を容易にするために、デザイナーは、設計プロセスを追跡するのに役立つ注釈の追加をサポートするようになりました。 注釈は、アクティビティ、状態、フローチャート ノード、変数、引数に追加できます。 次のスクリーンショットは、デザイナーに注釈を追加するために使用されるコンテキスト メニューを示しています。
デザイナー注釈は、再ホストされたデザイナーでサポートされています。
デザイナーで ActivityDelegate オブジェクトを定義して使用する
.NET Framework 4 のアクティビティでは、 ActivityDelegate オブジェクトを使用して、ワークフローの他の部分がワークフローの実行と対話できる実行ポイントを公開しましたが、通常、これらの実行ポイントを使用するにはかなりのコードが必要でした。 このリリースでは、開発者はワークフロー デザイナーを使用してアクティビティ デリゲートを定義および使用できます。 詳細については、「 方法: ワークフロー デザイナーでアクティビティ デリゲートを定義および使用する」を参照してください。
アクティビティ デリゲートは、再ホストされたデザイナーでサポートされています。
ビルド時の検証
.NET Framework 4 では、ワークフロー検証エラーは、ワークフロー プロジェクトのビルド中にビルド エラーとしてカウントされませんでした。 これは、ワークフロー検証エラーが発生した場合でも、ワークフロー プロジェクトのビルドが成功する可能性があることを意味しました。 .NET Framework 4.5 では、ワークフロー検証エラーによってビルドが失敗します。
Warnung
リホストされたデザイナーでは、ビルド時の検証はサポートされていません。
デザイン時のバックグラウンド検証
.NET Framework 4 では、ワークフローがフォアグラウンド プロセスとして検証され、複雑な検証プロセスや時間のかかる検証プロセス中に UI がブロックされる可能性があります。 ワークフローの検証がバックグラウンド スレッドで行われるようになったため、UI はブロックされません。
デザイン時のバックグラウンド検証は、再ホストされたデザイナーでサポートされています。
XAML ファイル内の別の場所にあるビューステート
.NET Framework 4 では、ワークフローのビュー ステート情報は、XAML ファイル全体でさまざまな場所に格納されます。 これは、XAML を直接読み取ったり、ビューステート情報を削除するコードを記述したりする開発者にとって不便です。 .NET Framework 4.5 では、XAML ファイル内のビュー ステート情報は、XAML ファイル内の別の要素としてシリアル化されます。 開発者は、アクティビティのビュー ステート情報を簡単に見つけて編集したり、ビュー ステートを完全に削除したりできます。
この機能は、再ホストされたワークフロー デザイナーでサポートされています。
再ホストされたデザイナーでのワークフロー 4.5 機能のオプトイン
下位互換性を維持するために、.NET Framework 4.5 に含まれる一部の新機能は、再ホストされたデザイナーでは既定では有効になっていません。 これは、再ホストされたデザイナーを使用する既存のアプリケーションが最新バージョンに更新されて破損しないようにするためです。 再ホストされたデザイナーで新機能を有効にするには、 TargetFrameworkName を ".Net Framework 4.5" に設定するか、 DesignerConfigurationService の個々のメンバーを設定して個々の機能を有効にします。
新しいワークフロー開発モデル
フローチャートおよびシーケンシャル ワークフロー開発モデルに加えて、このリリースにはステート マシン ワークフローとコントラクト優先ワークフロー サービスが含まれています。
ステート マシンのワークフロー
ステート マシン ワークフローは、Microsoft .NET Framework 4 Platform Update 1 の .NET Framework 4.0.1 の一部として導入されました。 この更新プログラムには、開発者がステート マシン ワークフローを作成できる新しいクラスとアクティビティがいくつか含まれていました。 これらのクラスとアクティビティは、.NET Framework 4.5 用に更新されました。 更新プログラムは、下記のものなどです。
状態にブレークポイントを設定する機能
ワークフロー デザイナーで画面切り替えをコピーして貼り付ける機能
共有トリガー遷移の作成に対するデザイナーのサポート
ステート マシン ワークフローの作成に使用されるアクティビティ ( StateMachine、 State、および Transition
次のスクリーンショットは、 概要チュートリアル の手順「 方法: ステート マシン ワークフローを作成する」の完了したステート マシン ワークフローを示しています。
ステート マシン ワークフローの作成の詳細については、「 ステート マシン ワークフロー」を参照してください。 ステート マシン ワークフローは、リホストされたデザイナーでサポートされています。
コントラクト優先のワークフロー開発
コントラクト優先ワークフロー開発ツールを使用すると、開発者は最初にコードでコントラクトを設計し、次に Visual Studio で数回クリックして、各操作を表すアクティビティ テンプレートをツールボックスに自動的に生成できます。 これらのアクティビティは、コントラクトによって定義された操作を実装するワークフローを作成するために使用されます。 ワークフロー デザイナーは、ワークフロー サービスを検証して、これらの操作が実装され、ワークフローの署名がコントラクト署名と一致することを確認します。 開発者は、ワークフロー サービスを実装されたコントラクトのコレクションに関連付けることもできます。 コントラクト優先のワークフロー サービス開発の詳細については、「 方法: 既存のサービス コントラクトを使用するワークフロー サービスを作成する」を参照してください。
Warnung
コントラクト優先のワークフロー開発は、ワークフロー デザイナーではサポートされていません。
.NET