依存関係グラフの参照および再配置
依存関係グラフの項目を調整することで、グラフを読み取りやすくして、レンダリングのパフォーマンスを向上させることができます。
要件
Visual Studio Ultimate、Visual Studio Premium、または Visual Studio Professional
依存関係グラフを生成するには、Visual Studio Ultimate が必要です。 「依存関係グラフ上のコード間での依存関係の対応付け」を参照してください。
このトピックの内容
大きなグラフを管理する
グラフ レイアウトを変更する
グラフの参照
ノードとリンクを調べる
ノードやリンクの表示と非表示を切り替える
ノードをグループ化する
マウスまたはキーボードを使用してグラフを参照する方法の詳細については、空のグラフのヘルプ リンクを選択します。
大きなグラフを管理する
依存関係グラフを初めて生成するときに、Visual Studio では見つかったすべての依存関係に対してコード インデックスが作成されます。 このプロセスは、特に大規模なソリューションの場合や多数のリンクが含まれたグラフの場合、時間がかかることがありますが、このインデックスを使用することで、後の操作のパフォーマンスが向上します。 後でコードが変更された場合、Visual Studio では、更新されたコードだけにインデックスが付け直されます。
グラフの生成が終了するまで待てない場合は、生成プロセスをいつでも取り消して、次の推奨事項を試すことができます。
目的の特定の依存関係のみをグラフ化します。 「依存関係グラフ上のコード間での依存関係の対応付け」を参照してください。
ソリューション全体のグラフを生成する前に、ソリューションのスコープを縮小します。
グラフを生成したら、次の推奨事項を試します。
グラフ ツール バーで、コードの自然な依存関係のクラスターを確認できるように、[クイック クラスター]
をクリックします。 「グラフ レイアウトを変更する」を参照してください。
関連するノードをグループ化することで、グラフをさらに小さい領域に整理します。 これらのグループを折りたたみ、グループ間の依存関係のみが示されるようにします。これは、自動的に表示されます。 「ノードをグループ化する」を参照してください。
グラフを手動で編集し、不要なノードとリンクを削除します。 グラフを変更しても、基になるコードには影響しません。 「依存関係グラフの編集およびカスタマイズ」を参照してください。
グラフ レイアウトを変更する
目的 |
グラフ ツール バーまたはグラフのショートカット メニュー |
---|---|
全体のグラフ全体の依存関係のフローを特定の方向に配置します。 これは、コードのアーキテクチャ レイヤーを確認するのに役立ちます。 |
グラフをツリーとして表示するには、次のいずれかを選択します。
|
コードの自然な依存関係のクラスターを確認します。 |
クラスターの中心付近にある最も依存度の高いノード、およびそれらのクラスターの外部にある最も依存度の低いノードを確認するには、[クイック クラスター] ![]() |
グラフ上の特定のノードを移動するには、そのノードをドラッグします。 ノードをドラッグするときに、他のノードやリンクを邪魔にならない位置に移動するには、Shift キーを押しながらノードをドラッグします。 グループ内のレイアウトをグラフと関係なく変更するには、[クイック クラスター] または [リスト ビュー] のいずれかのツリー レイアウトを選択して、グループの内容をリストに配置します。 「ノードをグループ化する」を参照してください。
注意
隣接ブラウズ モード、バタフライ モード、詳細な選択内容、および依存関係のマトリックス ビューの各機能は、このリリースでは利用できません。
グラフの参照
目的 |
実行する手順 |
---|---|
グラフをスキャンする |
グラフを任意の方向にドラッグします。 |
グラフを拡大表示または縮小表示する |
マウス ホイールを回します。 または グラフ ツール バー上の正符号 (+) または負符号 (-) をクリックします。 または 特定の領域を拡大表示するには、マウスの右ボタンを使用して、その領域を囲むように四角形を描画します。 |
グラフのサイズを変更してウィンドウに合わせる |
グラフ ツール バーの [ウィンドウのサイズに合わせて大きさを変更] をクリックします。 または グラフの空の領域をダブルクリックします。 |
特定のノードでグラフのサイズを変更して中央に揃える |
ノードを展開します。 ノードの空の領域内でダブルクリックします。 Visual Studio でグループ全体がグラフ ウィンドウ内に収まるようにグラフのサイズが変更されます。 折りたたまれた名前空間、クラス、またはそのメンバーをダブルクリックすると、Visual Studio でコード定義が表示されます。 |
現在選択されているノードとは関係なくフォーカスを変更する |
TAB キーを押します。 現在フォーカスがあるノードの周囲に点線が表示されます。 |
グラフのノードを名前で検索する ヒント グラフ上ではなくソリューション内で項目を見つけるには、ソリューション エクスプローラーで検索してグラフにドラッグします。 |
![]()
重要 検索ボックスを使用することで折りたたまれたグループを検索できるのは、これらのグループを既に展開している場合だけです。これらの一致を検索し、親グループを自動的に展開するには、検索ボックスでこのオプションを選択します。 |
リンク元またはリンク先を検索する リンクの数が多すぎて、特定リンクのリンク元またはリンク先を簡単に確認できない場合は、この方法を使用します。 |
|
すべての選択されていないノードを選択する |
選択したノードのショートカット メニューを開きます。 [選択]、[選択範囲の切り替え] の順にクリックします。 |
選択したノードにリンクしている追加のノードを選択する |
選択したノードのショートカット メニューを開きます。 [選択] をクリックし、次のいずれかを実行します。
|
ノードとリンクを調べる
依存関係グラフには、次の種類のリンクが表示されます。
個々のリンクは、2 つのノード間の 1 つの関係を表します。
グループ間リンクは、異なるグループの 2 つのノード間の 1 つの関係を表します。
集約リンクは、2 つのグループ間で同じ方向を指すすべての関係を表します。
ヒント
既定では、グラフには選択したノードのグループ間リンクのみが表示されます。これらのリンクを常に表示するには、グラフ ツール バーの [グラフでのリンクの描画方法を変更します] のリスト を開きます。[すべてのグループ間リンクを表示] をクリックします。
これにより、グループ間の集約されたリンクは非表示になります。
目的 |
実行する手順 |
---|---|
ノードまたはリンクの詳細を参照する |
マウス ポインターをノードまたはリンクの上に移動して、ツールヒントを表示します。 集約されたリンクのツールヒントには、そのリンクが表す個々の依存関係が一覧表示されます。 または ノードまたはリンクのショートカット メニューを開きます。 [プロパティ] をクリックします。 |
グループの内容を表示または非表示にする |
|
名前空間、型、またはメンバーのコード定義を確認する |
ノードのショートカット メニューを開きます。 [ジャンプ]、[定義へ移動] の順にクリックします。 または ノードをダブルクリックします。 展開したグループの場合、そのグループのヘッダーをダブルクリックします。 または ノードを選択します。 F12 キーを押します。 次のように記述します。
|
リンク元またはリンク先を検索する リンクの数が多すぎて、特定リンクのリンク元またはリンク先を簡単に確認できない場合は、この方法を使用します。 |
|
集約リンクに参加する依存関係と項目を調べる |
単一のリンクの場合:
複数のリンクの場合:
Visual Studio で、リンクの両端にグループが展開され、リンクに参加する項目と依存関係のみが表示されます。 注意 部分的なグループの項目間の依存関係を調べる場合、次のような動作が生じることがあります。
グループから失われている項目を確認するには、[子の再フェッチ] |
異なるグループの複数ノード間の依存関係を調べる |
|
ノードまたはリンクの参照先の項目を確認する 注意 これは、グラフの .dgml ファイルでノードまたはリンクに対して Reference 属性が設定されている場合だけに当てはまります。 ノードまたはリンクから項目への参照を追加する方法については、「依存関係グラフの編集およびカスタマイズ」を参照してください。 |
ノードのショートカット メニューを開きます。 [ジャンプ] をクリックし、項目を選択します。 |
ノードやリンクの表示と非表示を切り替える
ノードを非表示にすると、そのノードはレイアウト アルゴリズムに加わらないままになります。 既定では、グループ間リンクは非表示です。 グループ間リンクは、グループにまたがってノードを接続する個々のリンクです。 グループを折りたたむと、すべてのグループ間リンクが、グループ間の単一リンクにまとめられます。 グループを展開し、グループ内のノードを選択すると、グループ間リンクが表示されて、そのグループ内の依存関係が示されます。
注意
Visual Studio Ultimate で生成したグラフを、Visual Studio Premium または Visual Studio Professional を使用するユーザーと共有する前に、他のユーザーが表示できるようにするノードやグループ間リンクを再表示しておく必要があります。そうしない場合、これらのユーザーはそれらの項目を再表示できなくなります。
ノードの表示/非表示を切り替えるには
目的 |
実行する手順 |
---|---|
選択したノードを非表示にする |
|
選択されていないノードを非表示にする |
|
非表示のノードを表示する |
|
.dgml ファイルを編集してノードを非表示にする |
|
リンクの表示/非表示を切り替えるには
目的 |
グラフ ツール バーの [グラフでのリンクの描画方法を変更します] のリストを開くか、グラフのショートカット メニューを開いて 選択するオプション |
---|---|
グループ間リンクを常時表示する |
[すべてのグループ間リンクを表示] これにより、グループ間の集約されたリンクは非表示になります。 |
選択したノードのグループ間リンクのみを表示する |
[選択したノードのグループ間リンクを表示] |
グループ間リンクを常時非表示にする |
[すべてのグループ間リンクを非表示] |
すべてのリンクを非表示にする (またはすべてのリンクを表示する) |
[すべてのリンクを非表示] すべてのリンクを表示するには、[すべてのリンクを非表示] を再度選択して、このモードをオフにします。 |
ノードをグループ化する
目的 |
実行する手順 |
---|---|
コンテナー ノードをグループ ノードまたはリーフ ノードとして表示する |
コンテナー ノードをリーフ ノードとして表示するには、ノードを選択します。 選択した対象のショートカット メニューを開きます。 [グループ]、[リーフに変換] の順にクリックします。 コンテナー ノードをグループ ノードとして表示するには、ノードを選択します。 選択した対象のショートカット メニューを開きます。 [グループ]、[グループに変換] の順にクリックします。 リーフ ノードをすべてグループ ノードとして表示するには、グラフのショートカット メニューを開きます。 [グループ]、[グループ化] の順にクリックします。 グループ ノードをすべてリーフ ノードとして表示するには、グラフのショートカット メニューを開きます。 [グループ]、[グループ化の解除] の順にクリックします。 |
グループ内のレイアウトを変更する |
|
ノードをグループに追加する |
ノードをグループにドラッグします。 ノードをドラッグするときに、Visual Studio では、ノードを移動していることを示すインジケーターが表示されます。 ノードをグループ外にドラッグすることもできます。 |
ノードをグループ ノード以外に追加する |
すべてのノードはグループに変換できます。 ノードを目的のノードにドラッグします。 |
選択したノードをグループ化する |
|
特定のカテゴリまたは特定のプロパティを持つノードをグループ化する |
|
コンテナーに基づいてノードをグループ化する |
|
プロパティ値に基づいてノードをグループ化する |
|
グループを削除する |
削除する対象の 1 つまたは複数のグループを選択します。 選択した対象のショートカット メニューを開きます。 [グループ]、[グループの削除] の順にクリックします。 |
親グループから祖父母グループにノードを移動する (祖父母グループがない場合は、グループの外部にノードを移動する) |
移動するノードを選択します。 選択した対象のショートカット メニューを開きます。 [グループ]、[親から削除] の順にクリックします。 |
グラフの .dgml ファイルを編集する方法を使用して、ノードをグループに編成することもできます。
ノードをグループに変換するか、新しいグループを追加するには
ノードをグループに変換するには、ノードのショートカット メニューを開きます。 [ジャンプ]、[DGML] の順にクリックします。
Visual Studio でグラフの .dgml ファイルが開き、そのノードに対応する <Node/> 要素が強調表示されます。
または
新しいグループを追加するには、次の操作を実行します。
グラフの空白領域のショートカット メニューを開きます。 [ジャンプ]、[DGML] の順にクリックします。
<Nodes> セクションに、新たに <Node/> 要素を追加します。
<Node/> 要素に、Group 属性を追加して、グループを展開した状態で表示するか、折りたたんだ状態で表示するかを指定します。 次のように記述します。
<Nodes> <Node Id="MyFirstGroup" Group="Expanded" /> <Node Id="MySecondGroup" Group="Collapsed" /> </Nodes>
<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 属性の詳細については、「依存関係グラフの編集およびカスタマイズ」の「ノードおよびリンクにカテゴリを割り当てる」を参照してください。