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