次の方法で共有


依存関係グラフの参照および再配置

依存関係グラフの項目を調整することで、グラフを読み取りやすくして、レンダリングのパフォーマンスを向上させることができます。

要件

このトピックの内容

  • 大きなグラフを管理する

  • グラフ レイアウトを変更する

  • グラフの参照

  • ノードとリンクを調べる

  • ノードやリンクの表示と非表示を切り替える

  • ノードをグループ化する

マウスまたはキーボードを使用してグラフを参照する方法の詳細については、空のグラフのヘルプ リンクを選択します。

大きなグラフを管理する

依存関係グラフを初めて生成するときに、Visual Studio では見つかったすべての依存関係に対してコード インデックスが作成されます。 このプロセスは、特に大規模なソリューションの場合や多数のリンクが含まれたグラフの場合、時間がかかることがありますが、このインデックスを使用することで、後の操作のパフォーマンスが向上します。 後でコードが変更された場合、Visual Studio では、更新されたコードだけにインデックスが付け直されます。

グラフの生成が終了するまで待てない場合は、生成プロセスをいつでも取り消して、次の推奨事項を試すことができます。

グラフを生成したら、次の推奨事項を試します。

  • グラフ ツール バーで、コードの自然な依存関係のクラスターを確認できるように、[クイック クラスター] グラフ ツール バーの [クイック クラスター] ボタン をクリックします。 「グラフ レイアウトを変更する」を参照してください。

    依存関係のグラフ - クイック クラスター レイアウト

  • 関連するノードをグループ化することで、グラフをさらに小さい領域に整理します。 これらのグループを折りたたみ、グループ間の依存関係のみが示されるようにします。これは、自動的に表示されます。 「ノードをグループ化する」を参照してください。

  • グラフを手動で編集し、不要なノードとリンクを削除します。 グラフを変更しても、基になるコードには影響しません。 「依存関係グラフの編集およびカスタマイズ」を参照してください。

グラフ レイアウトを変更する

目的

グラフ ツール バーまたはグラフのショートカット メニュー

全体のグラフ全体の依存関係のフローを特定の方向に配置します。 これは、コードのアーキテクチャ レイヤーを確認するのに役立ちます。

グラフをツリーとして表示するには、次のいずれかを選択します。

  • 左から右 [左から右] レイアウト ボタン

  • 右から左 [右から左] グラフ ボタン

  • 上から下 [上から下] グラフ ボタン

  • 下から上 [下から上] グラフ ボタン

コードの自然な依存関係のクラスターを確認します。

クラスターの中心付近にある最も依存度の高いノード、およびそれらのクラスターの外部にある最も依存度の低いノードを確認するには、[クイック クラスター] グラフ ツール バーの [クイック クラスター] ボタン を選択します。

依存関係のグラフ - クイック クラスター レイアウト

グラフ上の特定のノードを移動するには、そのノードをドラッグします。 ノードをドラッグするときに、他のノードやリンクを邪魔にならない位置に移動するには、Shift キーを押しながらノードをドラッグします。 グループ内のレイアウトをグラフと関係なく変更するには、[クイック クラスター] または [リスト ビュー] のいずれかのツリー レイアウトを選択して、グループの内容をリストに配置します。 「ノードをグループ化する」を参照してください。

注意

隣接ブラウズ モードバタフライ モード詳細な選択内容、および依存関係のマトリックス ビューの各機能は、このリリースでは利用できません。

グラフの参照

目的

実行する手順

グラフをスキャンする

グラフを任意の方向にドラッグします。

グラフを拡大表示または縮小表示する

マウス ホイールを回します。

または

グラフ ツール バー上の正符号 (+) または負符号 (-) をクリックします。

または

特定の領域を拡大表示するには、マウスの右ボタンを使用して、その領域を囲むように四角形を描画します。

グラフのサイズを変更してウィンドウに合わせる

グラフ ツール バーの [ウィンドウのサイズに合わせて大きさを変更] をクリックします。

または

グラフの空の領域をダブルクリックします。

特定のノードでグラフのサイズを変更して中央に揃える

ノードを展開します。 ノードの空の領域内でダブルクリックします。

Visual Studio でグループ全体がグラフ ウィンドウ内に収まるようにグラフのサイズが変更されます。

折りたたまれた名前空間、クラス、またはそのメンバーをダブルクリックすると、Visual Studio でコード定義が表示されます。

現在選択されているノードとは関係なくフォーカスを変更する

TAB キーを押します。

現在フォーカスがあるノードの周囲に点線が表示されます。

グラフのノードを名前で検索する

ヒント

グラフ上ではなくソリューション内で項目を見つけるには、ソリューション エクスプローラーで検索してグラフにドラッグします。

依存関係グラフ検索ボックス
  1. Ctrl キーを押しながら F キーを押します。

    検索ボックスが、グラフの右上隅に表示されます。

  2. 項目の名前を入力します。 検索をカスタマイズするには、検索オプションを選択します。

    検索に一致する最初の項目が、グラフで選択された状態で表示されます。

  3. 別の一致を表示するには、[次を検索] をクリックします (F3 キーを押します)。

    または

    すべての一致を選択するには、ドロップダウン リストを開きます。 [すべて選択] をクリックします。

重要

検索ボックスを使用することで折りたたまれたグループを検索できるのは、これらのグループを既に展開している場合だけです。これらの一致を検索し、親グループを自動的に展開するには、検索ボックスでこのオプションを選択します。

リンク元またはリンク先を検索する

リンクの数が多すぎて、特定リンクのリンク元またはリンク先を簡単に確認できない場合は、この方法を使用します。

  1. グラフのレイアウトをツリー レイアウトまたはクイック クラスター グラフ ツール バーの [クイック クラスター] ボタン レイアウトに変更します。

    「グラフ レイアウトを変更する」を参照してください。

  2. マウス ポインターをリンクの上に移動するか、リンクを選択します。

    Visual Studio では、2 つの矢印と、リンク元やリンク先およびその他のリンクの詳細を一覧表示するツールヒントが表示されます。

  3. 目的の方向を指す矢印をクリックします。

    選択した方向に基づき、リンク元またはリンク先が選択された状態で表示されます。

すべての選択されていないノードを選択する

選択したノードのショートカット メニューを開きます。 [選択][選択範囲の切り替え] の順にクリックします。

選択したノードにリンクしている追加のノードを選択する

選択したノードのショートカット メニューを開きます。 [選択] をクリックし、次のいずれかを実行します。

  • 選択したノードに直接リンクしている追加のノードを選択するには、[入力方向の依存関係] をクリックします。

  • 選択したノードから直接リンクしている追加のノードを選択するには、[出力方向の依存関係] をクリックします。

  • 選択したノードと直接リンクしている追加のノードを選択するには、[両方] をクリックします。

  • 選択したノードとリンクしているすべてのノードを選択するには、[接続しているサブグラフ] をクリックします。

  • 選択したノードのすべての子ノードを選択するには、[子 (複数)] をクリックします。

ノードとリンクを調べる

依存関係グラフには、次の種類のリンクが表示されます。

  • 個々のリンクは、2 つのノード間の 1 つの関係を表します。

  • グループ間リンクは、異なるグループの 2 つのノード間の 1 つの関係を表します。

  • 集約リンクは、2 つのグループ間で同じ方向を指すすべての関係を表します。

ヒント

既定では、グラフには選択したノードのグループ間リンクのみが表示されます。これらのリンクを常に表示するには、グラフ ツール バーの [グラフでのリンクの描画方法を変更します] のリスト [グラフでのリンクの描画方法を変更します] ボタン を開きます。[すべてのグループ間リンクを表示] をクリックします。

これにより、グループ間の集約されたリンクは非表示になります。

目的

実行する手順

ノードまたはリンクの詳細を参照する

マウス ポインターをノードまたはリンクの上に移動して、ツールヒントを表示します。

集約されたリンクのツールヒントには、そのリンクが表す個々の依存関係が一覧表示されます。

または

ノードまたはリンクのショートカット メニューを開きます。 [プロパティ] をクリックします。

グループの内容を表示または非表示にする

  • グループを展開するには、ノードのショートカット メニューを開きます。 [グループ][展開] の順にクリックします。

    または

    マウス ポインターをノードまたはリンクの上に移動して、シェブロン (^) ボタンを表示します。 シェブロン (^) ボタンをクリックして、グループを展開します

    (キーボード: 選択したグループを展開する、または折りたたむには、正符号キー (+) または負符号キー (-) を押します。

    選択したグループ内のすべての対象を展開する、または折りたたむには、Shift キーを押しながら正符号キー (+) または負符号キー (-) を押します)。

  • すべてのグループを展開するには、グラフのショートカット メニューを開きます。 [グループ][すべて展開] の順にクリックします。

    注意

    すべてのグループを展開することで使用できないグラフやメモリの問題が発生する場合、このコマンドは使用できません。目的の詳細レベルにのみグラフを展開することをお勧めします。

  • 1 つのグループを折りたたむには、ノードのショートカット メニューを開きます。 [グループ][折りたたみ] の順にクリックします。

    または

    マウス ポインターをグループの上に移動して、シェブロン (^) ボタンを表示します。 グループを折りたたむには、シェブロン (^) ボタンをクリックします。

  • すべてのグループを折りたたむには、グラフのショートカット メニューを開きます。 [グループ][すべて折りたたみ] の順にクリックします。

名前空間、型、またはメンバーのコード定義を確認する

ノードのショートカット メニューを開きます。 [ジャンプ][定義へ移動] の順にクリックします。

または

ノードをダブルクリックします。 展開したグループの場合、そのグループのヘッダーをダブルクリックします。

または

ノードを選択します。 F12 キーを押します。

次のように記述します。

  • 名前空間の場合、その名前空間内の、アルファベット順で最初のクラスのコード ファイルが開き、そのクラスの定義が表示されます。

    注意

    Visual Basic .NET 名前空間でこのタスクを実行すると、名前空間の背後にあるコード ファイルは開きません。この問題は、Visual Basic .NET 名前空間が含まれる選択したノードのグループでこのタスクを実行した場合にも発生します。この問題を回避するには、手動で名前空間の背後にあるコード ファイルを参照するか、選択項目から名前空間のノードを除外します。

  • クラスまたは部分クラスの場合、そのクラスのコード ファイルが開き、クラスの定義が表示されます。

  • メソッドの場合、親クラスのコード ファイルが開き、メソッドの定義が表示されます。

リンク元またはリンク先を検索する

リンクの数が多すぎて、特定リンクのリンク元またはリンク先を簡単に確認できない場合は、この方法を使用します。

  1. グラフ ツール バーで、グラフのレイアウトをツリー レイアウトまたはクイック クラスター グラフ ツール バーの [クイック クラスター] ボタン レイアウトに変更します。

  2. マウス ポインターをリンクの上に移動するか、リンクを選択します。

    Visual Studio では、2 つの矢印と、リンク元やリンク先およびその他のリンクの詳細を一覧表示するツールヒントが表示されます。

  3. 目的の方向を指す矢印をクリックします。

    選択した方向に基づき、リンク元またはリンク先が選択された状態で表示されます。

集約リンクに参加する依存関係と項目を調べる

単一のリンクの場合:

  1. リンクを選択します。

  2. マウス ポインターをリンクの上に移動します。 Visual Studio で 2 つの矢印が表示され、その間に正符号 (+) がある場合、その正符号 (+) をクリックします。

    新しいグラフを生成するには、Shift キーを押しながら正符号 (+) をクリックします。

    または

    選択した対象のショートカット メニューを開きます。 [表示][現在のダイアグラム内の寄与するリンク]、または [新しいダイアグラム内の寄与するリンク] をクリックします。

複数のリンクの場合:

  1. リンクを選択します。

  2. 選択した対象のショートカット メニューを開きます。 [表示][現在のダイアグラム内の寄与するリンク]、または [新しいダイアグラム内の寄与するリンク] をクリックします。

Visual Studio で、リンクの両端にグループが展開され、リンクに参加する項目と依存関係のみが表示されます。

注意

部分的なグループの項目間の依存関係を調べる場合、次のような動作が生じることがあります。

  • 調査に加わらない項目へのリンクは、存在している場合でも、グラフに表示されなくなります。

  • 部分的なグループの項目へのリンクを調べ、後で同じ項目への別のリンクを調べるとします。この 2 番目の調査の際に、対象となる部分的なグループには、最初の調査の項目のみが表示されます。最初の調査には加わらないで 2 番目の調査には加わったリンクと対象項目は、表示されません。

グループから失われている項目を確認するには、[子の再フェッチ]子の再フェッチ アイコン をクリックします。グループのすべてのメンバーがグラフに表示されるのではないことが示されます。また、操作を元に戻して (キーボード: Ctrl + Z キー)、新しいグラフで依存関係を調べることもできます。

異なるグループの複数ノード間の依存関係を調べる

  1. グループのすべての子が表示されるように、グループを展開します。

  2. 目的のすべてのノード (子を含む) を選択します。

    グループ内のノードをすべて選択するには、マウスの左ボタンを押したままの状態で、そのグループを囲む四角形を描画します。 グラフのノードをすべて選択するには、Ctrl キーを押しながら A キーを押します。

    グラフに、選択したノード間のグループ間リンクが表示されます。

    ヒント

    グループ間リンクを常に表示するには、グラフ ツール バーの [グラフでのリンクの描画方法を変更します] のリスト [グラフでのリンクの描画方法を変更します] ボタン を開きます。[すべてのグループ間リンクを表示] をクリックします。

ノードまたはリンクの参照先の項目を確認する

注意

これは、グラフの .dgml ファイルでノードまたはリンクに対して Reference 属性が設定されている場合だけに当てはまります。

ノードまたはリンクから項目への参照を追加する方法については、「依存関係グラフの編集およびカスタマイズ」を参照してください。

ノードのショートカット メニューを開きます。 [ジャンプ] をクリックし、項目を選択します。

ノードやリンクの表示と非表示を切り替える

ノードを非表示にすると、そのノードはレイアウト アルゴリズムに加わらないままになります。 既定では、グループ間リンクは非表示です。 グループ間リンクは、グループにまたがってノードを接続する個々のリンクです。 グループを折りたたむと、すべてのグループ間リンクが、グループ間の単一リンクにまとめられます。 グループを展開し、グループ内のノードを選択すると、グループ間リンクが表示されて、そのグループ内の依存関係が示されます。

注意

Visual Studio Ultimate で生成したグラフを、Visual Studio Premium または Visual Studio Professional を使用するユーザーと共有する前に、他のユーザーが表示できるようにするノードやグループ間リンクを再表示しておく必要があります。そうしない場合、これらのユーザーはそれらの項目を再表示できなくなります。

ノードの表示/非表示を切り替えるには

目的

実行する手順

選択したノードを非表示にする

  1. 非表示にするノードを選択します。

  2. 選択したノードまたはグラフのショートカット メニューを開きます。 [選択][選択範囲の非表示] の順にクリックします。

選択されていないノードを非表示にする

  1. 表示したままにしておくノードを選択します。

  2. 選択したノードまたはグラフのショートカット メニューを開きます。 [選択][選択範囲以外を非表示] の順にクリックします。

非表示のノードを表示する

  • グループ内のすべての非表示のノードを表示するには、そのグループが展開されていることを最初に確認します。 グループの左上隅にある [子の再表示] 子の再表示アイコン をクリックします。

  • 非表示のノードをすべて表示するには、グラフのショートカット メニューを開きます。 [選択][すべて再表示] の順にクリックします。

.dgml ファイルを編集してノードを非表示にする

  1. グラフのショートカット メニューを開きます。 [ジャンプ][DGML] の順にクリックします。

    Visual Studio で、グラフの .dgml ファイルが開きます。

  2. <Node/> 要素に、ノードを非表示にするための次の属性を追加します。

    Visibility="Hidden"

    次のように記述します。

    <Nodes>
       <Node Id="MyNode" Visibility="Hidden"/>
    </Nodes>

リンクの表示/非表示を切り替えるには

目的

グラフ ツール バーの [グラフでのリンクの描画方法を変更します] のリストを開くか、グラフのショートカット メニューを開いて 選択するオプション

グループ間リンクを常時表示する

[すべてのグループ間リンクを表示]

これにより、グループ間の集約されたリンクは非表示になります。

選択したノードのグループ間リンクのみを表示する

[選択したノードのグループ間リンクを表示]

グループ間リンクを常時非表示にする

[すべてのグループ間リンクを非表示]

すべてのリンクを非表示にする (またはすべてのリンクを表示する)

[すべてのリンクを非表示]

すべてのリンクを表示するには、[すべてのリンクを非表示] を再度選択して、このモードをオフにします。

ノードをグループ化する

目的

実行する手順

コンテナー ノードをグループ ノードまたはリーフ ノードとして表示する

コンテナー ノードをリーフ ノードとして表示するには、ノードを選択します。 選択した対象のショートカット メニューを開きます。 [グループ][リーフに変換] の順にクリックします。

コンテナー ノードをグループ ノードとして表示するには、ノードを選択します。 選択した対象のショートカット メニューを開きます。 [グループ][グループに変換] の順にクリックします。

リーフ ノードをすべてグループ ノードとして表示するには、グラフのショートカット メニューを開きます。 [グループ][グループ化] の順にクリックします。

グループ ノードをすべてリーフ ノードとして表示するには、グラフのショートカット メニューを開きます。 [グループ][グループ化の解除] の順にクリックします。

グループ内のレイアウトを変更する

  1. グループを選択します。

    グループ ツール バーが表示されます。

    依存関係のグラフ - グループ ツール バー

  2. [グループのレイアウト スタイルを変更します] のリスト 依存関係のグラフ - グループ ツール バー - レイアウト を開きます。 目的のレイアウトを選択します。

    [リスト ビュー] をクリックすると、グループのメンバーがリストに再配置されます。 [グラフの既定の設定] をクリックすると、グループのレイアウトが、グラフの既定のレイアウトにリセットされます。 その他のオプションについては、「グラフ レイアウトを変更する」を参照してください。

ノードをグループに追加する

ノードをグループにドラッグします。

ノードをドラッグするときに、Visual Studio では、ノードを移動していることを示すインジケーターが表示されます。

ノードをグループ外にドラッグすることもできます。

ノードをグループ ノード以外に追加する

すべてのノードはグループに変換できます。 ノードを目的のノードにドラッグします。

選択したノードをグループ化する

  1. グループ化するノードを選択します。

    最後に選択したノードの上にツール バーが表示されます。

    依存関係のグラフ ツール バー

  2. ツール バーの [選択したノードをグループ化します] グラフ ツール バー - 選択したグループ をクリックします。

    または

    選択した対象のショートカット メニューを開きます。 [グループ][親グループの追加] の順にクリックします。

  3. 新しいグループのショートカット メニューを開きます。 [プロパティ] をクリックします。 [ラベル] プロパティで、グループの名前を変更します。

特定のカテゴリまたは特定のプロパティを持つノードをグループ化する

  1. 特定のカテゴリまたは特定のプロパティを持つノードを選択します。

  2. 選択した対象のショートカット メニューを開きます。 [グループ][親グループの追加] の順にクリックします。

  3. 新しいグループのショートカット メニューを開きます。 [プロパティ] をクリックします。 [ラベル] プロパティで、グループの名前を変更します。

コンテナーに基づいてノードをグループ化する

  1. [アーキテクチャ] メニューの [ウィンドウ] をクリックし、[アーキテクチャ エクスプローラー] をクリックします。

  2. アーキテクチャ エクスプローラーを使用して、グループ化するすべてのノードを検索し、選択します。

    アーキテクチャ エクスプローラーを使用したコードの検索」を参照してください。

  3. 現在の列の右側で、折りたたまれたアクション列を選択して展開します (キーボード: Tab キーを押してフォーカスを移動し、折りたたまれたアクション列が展開されるようにします)。

    注意

    アクション列の上にポインターを移動するかフォーカスを移動すると、そのアクション列が強調表示されます。

  4. アクション列で、[含まれる] をクリックします (キーボード: Tab キーを押してフォーカスを移動し、方向キーを使用して、関係として [含まれる] が選択されるようにします)。

  5. 次の列から、コンテナー グループをグラフにドラッグします。

  6. グラフのショートカット メニューを開き、[グループ][グループ化] の順にクリックします。

プロパティ値に基づいてノードをグループ化する

  1. グラフを .dgml ファイルとしてディスクに保存します。

  2. [アーキテクチャ] メニューの [ウィンドウ] をクリックし、[アーキテクチャ エクスプローラー] をクリックします。

  3. アーキテクチャ エクスプローラー[ファイル システム][ファイルの選択] をクリックします。

  4. 次の列で、保存した .dgml ファイルを選択します。

  5. アーキテクチャ エクスプローラーを使用して、グループ化するすべてのノードを検索し、選択します。

    アーキテクチャ エクスプローラーを使用したコードの検索」を参照してください。

  6. 現在の列の右側で、折りたたまれたアクション列を選択して展開します (キーボード: Tab キーを押してフォーカスを移動し、折りたたまれたアクション列が展開されるようにします)。

    注意

    アクション列の上にポインターを移動すると、強調表示されます。

  7. アクション列で、[グループ化][プロパティでグループ化] をクリックします (キーボード: Tab キーを押してフォーカスを移動し、方向キーを使用して、[プロパティでグループ化] が選択されるようにします)。

  8. 次の列で、グループとして使用するプロパティを選択します。

    次の列が表示され、使用できるプロパティ値が表示されます。

  9. 次の列から、プロパティ値グループをグラフにドラッグします。

  10. グラフのショートカット メニューを開きます。 [グループ][グループ化] の順にクリックします。

グループを削除する

削除する対象の 1 つまたは複数のグループを選択します。 選択した対象のショートカット メニューを開きます。 [グループ][グループの削除] の順にクリックします。

親グループから祖父母グループにノードを移動する (祖父母グループがない場合は、グループの外部にノードを移動する)

移動するノードを選択します。 選択した対象のショートカット メニューを開きます。 [グループ][親から削除] の順にクリックします。

グラフの .dgml ファイルを編集する方法を使用して、ノードをグループに編成することもできます。

ノードをグループに変換するか、新しいグループを追加するには

  1. ノードをグループに変換するには、ノードのショートカット メニューを開きます。 [ジャンプ][DGML] の順にクリックします。

    Visual Studio でグラフの .dgml ファイルが開き、そのノードに対応する <Node/> 要素が強調表示されます。

    または

    新しいグループを追加するには、次の操作を実行します。

    1. グラフの空白領域のショートカット メニューを開きます。 [ジャンプ][DGML] の順にクリックします。

    2. <Nodes> セクションに、新たに <Node/> 要素を追加します。

  2. <Node/> 要素に、Group 属性を追加して、グループを展開した状態で表示するか、折りたたんだ状態で表示するかを指定します。 次のように記述します。

    <Nodes>
       <Node Id="MyFirstGroup" Group="Expanded" />
       <Node Id="MySecondGroup" Group="Collapsed" />
    </Nodes>
    
  3. <Links> セクションで、グループ ノードとその子ノードとの間の関係ごとに、次の属性を持つ <Link/> 要素が存在していることを確認します。

    • グループ ノードを指定する Source 属性

    • 子ノードを指定する Target 属性

    • グループ ノードとその子ノードとの間の Contains 関係を指定する Category 属性

    次のように記述します。

    <Links>
       <Link Category="Contains" Source="MyFirstNewGroup" Target="FirstGroupChildOne" />
       <Link Category ="Contains" Source="MyFirstNewGroup" Target="FirstGroupChildTwo" />
       <Link Category ="Contains" Source="MySecondNewGroup" Target="SecondGroupChildOne" />
       <Link Category="Contains" Source="MySecondNewGroup" Target="SecondGroupChildTwo" />
    </Links>
    

    Category 属性の詳細については、「依存関係グラフの編集およびカスタマイズ」の「ノードおよびリンクにカテゴリを割り当てる」を参照してください。

参照

概念

依存関係グラフの編集およびカスタマイズ

依存関係グラフ上のコード間での依存関係の対応付け