プロジェクトの依存関係図を見る
ReSharper_ShowProjectDependencyGraph
ReSharper を使用すると、ソリューションアーキテクチャを視覚的に表現して、ソリューション内のプロジェクトの依存関係を調べることができます。
アーキテクチャビューは新しいエディタータブで開き、プロジェクトの依存関係を視覚的に調査し、ソリューションの現在の状態を以前に作成したスナップショットと比較できます。

プロジェクトの依存関係図を開く
ソリューションエクスプローラーでは、1 つまたは複数のプロジェクト、1 つまたは複数のソリューションフォルダー、またはソリューションノードを選択します。
選択項目を右クリックして、プロジェクトの依存関係図を表示するを選択するか、メインメニューで を選択します。
アーキテクチャビュー。最初に選択したアイテムの依存関係を示す新しいドキュメントタブが開きます。
最初に選択された項目は、アーキテクチャビューの左部分でもチェックされ、すべての解決項目がリストされます。他の項目をチェックすることができます:ダイアグラムに表示され、対応するリンクが追加されます。
- 必要に応じて、ツールバーの以下によるグループ: セレクタを使用して項目のグループ化を変更できます。
なし - すべてのプロジェクトはグループ化されずに表示されます。
ソリューションフォルダー - プロジェクトはソリューションフォルダー(英語)ごとにグループ化されています。
ファイルの構造 - プロジェクトとソリューションフォルダーは、ファイルシステム構造によってグループ化されています。
プロジェクト間のリンクを理解する
ReSharper は、次の 2 つのステップで図を作成します。
プロジェクト参照に基づいて依存関係図を作成します。
このステップは、ダイアグラムを開くと自動的に実行され、大規模なソリューションでもほとんど時間がかかりません。
結合(英語)分析を実行して、参照プロジェクトの使用数を計算します。
この手順はリソースを大量に消費し、最大で数分かかる場合がありますが、バックグラウンドで実行されます。分析の進行状況は、アーキテクチャビューの上部にあるステータスバーに反映されます。
結合解析の状態は、カップリング分析を有効にする
ボタンの状態に対応しています。結合分析はリソースを大量に消費するプロセスであり、大規模なソリューションのパフォーマンスに影響を与える可能性があります。ダイアグラムの操作中にラグが発生した場合は、このボタンを使用して結合分析を無効にし、必要に応じてダイアグラムを調整してから、分析を再度有効にすることができます。分析アルゴリズムは、最初に表示されたプロジェクトの結合を計算し、次にビューから隠されたプロジェクトを処理します。
ダイアグラム内のプロジェクト間のリンクは、次の方法で表示できます。
線種 | 意味 |
---|---|
黒い実線 | 2 つのノード間にプロジェクト参照があることを示します。 これらの行は、結合(英語)分析が進行中または無効になっている場合に使用されるため、プロジェクト間の使用回数は不明です。 |
特定の幅の青い実線 | カップリング分析はこのリファレンスでは終了しており、参照プロジェクトには少なくとも 1 つの使用箇所が存在します。線の太さは、参照されているプロジェクトの型が参照プロジェクトで何回使用されているかを表します。参照上にマウスを置くと、この番号がツールチップに表示されます。 |
点線 | 結合分析が終了すると表示され、次のいずれかを意味します。
|
緑の実線 | 参照はスナップショットにはありませんが、ソリューションには存在します。差分を表示 ![]() |
赤い実線 | 参照はスナップショットに存在しますが、解決策にはありません。差分を表示 ![]() |
アイテムの表示と非表示
左側の対応するアイテムのチェックボックスを使用して、図の特定のソリューションアイテム(プロジェクト、フォルダー、ソリューションフォルダー)を表示または非表示にできます。
ダイアグラム領域から直接アイテムを表示 / 非表示にする方法もいくつかあります。
ダイアグラム内のいくつかの項目を選択して他の項目を非表示にするには、選択する項目をクリックしてから Ctrl を選択し、右クリックして選択範囲 | 選択したモジュールのみを表示するを選択します。
2 つのリンクされたアイテムを選択するには、それらの間のリンクを右クリックして選択範囲 | 選択したモジュールのみを表示するを選択します。
項目を非表示にするには、図で項目を選択して Delete を押します。
特定のアイテムに集中するもう 1 つの方法は、依存プロジェクトまたは参照プロジェクトを表示し、他のすべてのアイテムを非表示にすることです。これを行うには、1 つまたは複数の項目(プロジェクトまたはグループ化項目)を選択し、選択項目を右クリックしてこれを表示 / これらおよび依存 / 参照を選択します。これらのコマンドは無関係な項目だけを隠し、現在隠されている参照 / 依存ノードを追加しないことに注意してください。
特定のプロジェクトによって参照または依存するすべてのアイテムを表示するには、これらのアイテムが現在表示されていなくても、1 つ以上のアイテムを選択して選択範囲 | 参照 / 依存モジュールを追加するを選択します。
必要に応じて、元に戻す をクリックするか、Ctrl+Z を押して、ダイアグラムの変更(表示 / 非表示のプロジェクト)を段階的に取り消すことができます。元に戻すコマンドを逆にするには、やり直し
をクリックするか、Ctrl+Y を押します。
ダイアグラムをパンおよびズームする
ダイアグラムをパンおよびズームするには、ダイアグラム領域の左上隅にあるコントロールを使用します。または、タッチパッド、スクロールバーを使用してダイアグラムをパンするか、ダイアグラムアイテムの外側のダイアグラム領域の任意の場所をクリックして、ハンドカーソルが表示されている間にドラッグすることもできます。マウスホイールを使用してズームすることもできます。
ダイアグラムのアイテムを再配置する
ダイアグラムのレイアウトは自動的に計算されますが、必要に応じて変更できます。すべてのアイテムを移動できます。アイテムを移動するには、まずアイテムをクリックして選択し、次にクロスカーソルが表示されている状態でクリックしてドラッグします。
ダイアグラムでプロジェクトをグループ化する
以下によるグループ: セレクターを使用すると、ソリューションフォルダー(英語)またはファイルシステム構造ごとにプロジェクトをグループ化できます。グループ化は、左側の部分と図の両方に適用されます。
必要に応じて、次のいずれかの方法で、ダイアグラムのグループ化項目を折りたたんで展開できます。
グループ化アイテムの左上隅にある下矢印をクリックします。折りたたむと、記号が上矢印に変わり、クリックしてアイテムを展開できます。
ダイアグラム内のグループ化項目を選択し、Ctrl + Left Arrow と Ctrl + Right Arrow を押します。
ツールバーの折りたたみグラフ
とグラフを展開
をクリックして、すべてのグループ化項目を折りたたんだり展開したりします。
プロジェクト参照を分析する
あるプロジェクトから別のプロジェクトでの型の使用箇所の詳細については、プロジェクト間の対応するリンクを選択して Alt+F7 を押すか、右クリックして使用箇所を表示を選択してください。ReSharper は、検索結果ウィンドウでの使用箇所を表示します。
結合分析が特定の参照に対して終わっていて、ReSharper が未使用(点線)でハイライトしている場合は、ダイアグラムから切り替えて未使用の参照を削除する必要はありません。選択して Control+Shift+R を押すか、リファクタリング。 Alt+Delete を押すか、安全なアセンブリ参照の削除をクリックします。
考えられるアーキテクチャの問題を検出する
ソリューションアーキテクチャのベストプラクティスに従おうとしている場合、アプリケーションはおそらく、相互に通信する個別のレイヤーを持つレイヤー構造(英語)を持っています。
可能なパスを表示する ボタンを使用すると、グループ化だけでなく、レイヤー間の通信の観点からも、アプリケーションレイヤーが正しく設計されているかどうかを確認できます。要するに、ボタンがオンになっていると、2 つの特定のプロジェクトの間に、現在ビューに隠れている他の参照プロジェクトからなるパスがあるかどうかを確認できます。これらのパスは緑色の点線で示されています。このボタンは、現在表示されているプロジェクトのうちの 2 つをリンクする隠れた中間プロジェクトがある場合にのみ有効になります。
その動作を説明するために、次の例を考えてみましょう。
大きなソリューションを持っており、対応するソリューションフォルダーによって表される「サービス」アーキテクチャレイヤーを分析しているとします。興味を持っている 2 つのプロジェクト、隠されているプロジェクト
2 つのプロジェクトにはプロジェクト間の直接の参照はありませんが、可能なパスを表示する
ボタンを有効にすると、これらのプロジェクト間に他のプロジェクトがあることがわかります。
これらの 2 つのプロジェクトがどのように相互に依存するかを確認するには、パスリンクを右折してパスを表示を選択します。仲介プロジェクトがダイアグラムに表示され、すべてが別のレイヤーにあることがわかります。
この情報に基づいて、アプリケーション構造を再作成する必要があるかもしれないことがわかります。
ダイアグラムをファイルにエクスポートする
依存関係を調べるときはいつでも、次のツールバーボタンを使用して、図をファイルにエクスポートできます。
PNG にエクスポートする
は、ダイアグラムの現在のビューを PNG イメージにエクスポートします。
GraphML にエクスポート
は、外部分析のためにダイアグラムを GraphML 形式でエクスポートします。
大きな図を印刷する必要がある場合は、XPS にエクスポート
を使用して図を XPS 形式でエクスポートします。
保存されたスナップショットを現在のソリューションの状態と比較する
ソリューションの現在の状態のスナップショットをいつでもファイルに保存して、将来の参照に使用できます。これを行うには、ツールバーのアーキテクチャグラフを保存する をクリックしてから、スナップショットファイルを保存する場所を選択します。
メインメニューで .argr を選択することにより、保存したスナップショットを後でロードして調査できます。
スナップショットが新しいエディタータブで開き、ソリューションの現在の状態とスナップショットに保存されている状態の違いを確認できます。
依存関係図がファイルから開かれた場合、差分を表示 ボタンが使用可能になり、デフォルトでオンになります。このボタンを使用して、スナップショットと現在のソリューションの状態の違いを表示または非表示にできます。
関連ページ:

アーキテクチャビュー
アーキテクチャビューを使用すると、プロジェクトの依存関係図を探索し、以前に取得した依存関係のスナップショットをソリューションの現在の状態と比較できます。このビューは、ソリューションアイテム、ダイアグラム領域、およびツールバーで構成されています。ソリューション項目 :左のソリューションアイテムには、ソ...

プロジェクトレベルの支援
ReSharper には、大規模なソリューションを扱う際に特に役立つ一連のプロジェクトレベルの機能が含まれています。本セクション:プロジェクトレベルリファクタリング、プロジェクト階層を探索する、プロジェクト参照の分析と最適化、NuGet パッケージの検索、探索、インストール、ソリューションのビルド、...

特定の範囲でコードの問題を見つける
設計時コードインスペクションは、エディターでコーディングしたり、特定のファイルを見直したりするときに役立ちます。ただし、ReSharper を使用すると、ソリューション全体または狭い範囲でスタティックコード分析を実行し、結果をフレンドリーな視点で調べることもできます。必要に応じてインスペクション結果...

次にナビゲート
次にナビゲートは、ほとんどのナビゲーションニーズに対する単一のショートカットです。コンテキストで利用可能なすべてのナビゲーション宛先を含むリストを開きます。このコマンドは、ソリューションエクスプローラー、ファイル構造ウィンドウおよびその他のツールウィンドウから呼び出すことができます。コンテキストで利...

検索結果ウィンドウ
このウィンドウは、さまざまな検索結果(たとえば、シンボルの使用箇所、外部シンボルの使用箇所、シンボルのAPI の公開など)を表示するために使用されます。最新の検索結果と以前の検索結果をさまざまなタブに表示します。同じ検索 / ナビゲーションコマンドを除いて、新しい各検索コマンドの結果は別々のタブに表...

型依存関係図を見る
ReSharper を使用すると、型がソリューション内でどのように依存するかを視覚的に調べることができます。型依存関係図では、異なるプロジェクトまたはコンパイルされたアセンブリから任意の数の型を追加し、それらの間のさまざまな種類の依存関係を視覚化できます。初期図を作成する :新しい型依存関係図を作成...