ReSharper 2020.3 ヘルプ

プロジェクトの依存関係図を見る

ReSharper | アーキテクチャー | プロジェクトの依存関係図を表示する
ReSharper_ShowProjectDependencyGraph

ReSharper を使用すると、ソリューションアーキテクチャを視覚的に表現して、ソリューション内のプロジェクトの依存関係を調べることができます。

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

ReSharper: project dependency diagram

プロジェクトの依存関係図を開く

  1. ソリューションエクスプローラーでは、1 つまたは複数のプロジェクト、1 つまたは複数のソリューションフォルダー、またはソリューションノードを選択します。

  2. 選択項目を右クリックして、プロジェクトの依存関係図を表示するを選択するか、メインメニューで ReSharper | アーキテクチャー | プロジェクトの依存関係図を表示するを選択します。

  3. アーキテクチャビュー。最初に選択したアイテムの依存関係を示す新しいドキュメントタブが開きます。

  4. 最初に選択された項目は、アーキテクチャビューの左部分でもチェックされ、すべての解決項目がリストされます。他の項目をチェックすることができます:ダイアグラムに表示され、対応するリンクが追加されます。

  5. 必要に応じて、ツールバーの以下によるグループ: セレクタを使用して項目のグループ化を変更できます。
    • なし - すべてのプロジェクトはグループ化されずに表示されます。

    • ソリューションフォルダー - プロジェクトはソリューションフォルダー(英語)ごとにグループ化されています。

    • ファイルの構造 - プロジェクトとソリューションフォルダーは、ファイルシステム構造によってグループ化されています。

アイテムの表示と非表示

左側の対応するアイテムのチェックボックスを使用して、図の特定のソリューションアイテム(プロジェクト、フォルダー、ソリューションフォルダー)を表示または非表示にできます。

ダイアグラム領域から直接アイテムを表示 / 非表示にする方法もいくつかあります。

  • ダイアグラム内のいくつかの項目を選択して他の項目を非表示にするには、選択する項目をクリックしてから Ctrl を選択し、右クリックして選択範囲 | 選択したモジュールのみを表示するを選択します。

  • 2 つのリンクされたアイテムを選択するには、それらの間のリンクを右クリックして選択範囲 | 選択したモジュールのみを表示するを選択します。

  • 項目を非表示にするには、図で項目を選択して Delete を押します。

  • 特定のアイテムに集中するもう 1 つの方法は、依存プロジェクトまたは参照プロジェクトを表示し、他のすべてのアイテムを非表示にすることです。これを行うには、1 つまたは複数の項目(プロジェクトまたはグループ化項目)を選択し、選択項目を右クリックしてこれを表示 / これらおよび依存 / 参照を選択します。これらのコマンドは無関係な項目だけを隠し、現在隠されている参照 / 依存ノードを追加しないことに注意してください。

  • 特定のプロジェクトによって参照または依存するすべてのアイテムを表示するには、これらのアイテムが現在表示されていなくても、1 つ以上のアイテムを選択して選択範囲 | 参照 / 依存モジュールを追加するを選択します。

必要に応じて、元に戻す Themed icon undo screen gray をクリックするか、Ctrl+Z を押して、ダイアグラムの変更(表示 / 非表示のプロジェクト)を段階的に取り消すことができます。元に戻すコマンドを逆にするには、やり直し Themed icon redo screen gray をクリックするか、Ctrl+Y を押します。

ダイアグラムをパンおよびズームする

ダイアグラムをパンおよびズームするには、ダイアグラム領域の左上隅にあるコントロールを使用します。または、タッチパッド、スクロールバーを使用してダイアグラムをパンするか、ダイアグラムアイテムの外側のダイアグラム領域の任意の場所をクリックして、ハンドカーソルCursor handが表示されている間にドラッグすることもできます。マウスホイールを使用してズームすることもできます。

ダイアグラムのアイテムを再配置する

ダイアグラムのレイアウトは自動的に計算されますが、必要に応じて変更できます。すべてのアイテムを移動できます。アイテムを移動するには、まずアイテムをクリックして選択し、次にクロスカーソルCursor crossが表示されている状態でクリックしてドラッグします。

ダイアグラムでプロジェクトをグループ化する

以下によるグループ: セレクターを使用すると、ソリューションフォルダー(英語)またはファイルシステム構造ごとにプロジェクトをグループ化できます。グループ化は、左側の部分と図の両方に適用されます。

必要に応じて、次のいずれかの方法で、ダイアグラムのグループ化項目を折りたたんで展開できます。

  • グループ化アイテムの左上隅にある下矢印をクリックします。折りたたむと、記号が上矢印に変わり、クリックしてアイテムを展開できます。

  • ダイアグラム内のグループ化項目を選択し、Ctrl + Left ArrowCtrl + Right Arrow を押します。

  • ツールバーの折りたたみグラフ Themed icon collapse graph screen grayグラフを展開 Themed icon expand graph screen gray をクリックして、すべてのグループ化項目を折りたたんだり展開したりします。

プロジェクト参照を分析する

あるプロジェクトから別のプロジェクトでの型の使用箇所の詳細については、プロジェクト間の対応するリンクを選択して Alt+F7 を押すか、右クリックして使用箇所を表示を選択してください。ReSharper は、検索結果ウィンドウでの使用箇所を表示します。

結合分析が特定の参照に対して終わっていて、ReSharper が未使用(点線)でハイライトしている場合は、ダイアグラムから切り替えて未使用の参照を削除する必要はありません。選択して Control+Shift+R を押すか、リファクタリングAlt+Delete を押すか、安全なアセンブリ参照の削除をクリックします。

考えられるアーキテクチャの問題を検出する

ソリューションアーキテクチャのベストプラクティスに従おうとしている場合、アプリケーションはおそらく、相互に通信する個別のレイヤーを持つレイヤー構造(英語)を持っています。

可能なパスを表示する Themed icon possible paths screen gray ボタンを使用すると、グループ化だけでなく、レイヤー間の通信の観点からも、アプリケーションレイヤーが正しく設計されているかどうかを確認できます。要するに、ボタンがオンになっていると、2 つの特定のプロジェクトの間に、現在ビューに隠れている他の参照プロジェクトからなるパスがあるかどうかを確認できます。これらのパスは緑色の点線で示されています。このボタンは、現在表示されているプロジェクトのうちの 2 つをリンクする隠れた中間プロジェクトがある場合にのみ有効になります。

その動作を説明するために、次の例を考えてみましょう。

  1. 大きなソリューションを持っており、対応するソリューションフォルダーによって表される「サービス」アーキテクチャレイヤーを分析しているとします。興味を持っている 2 つのプロジェクト、隠されているプロジェクト

    Detecting possible architecture problems

  2. 2 つのプロジェクトにはプロジェクト間の直接の参照はありませんが、可能なパスを表示する Themed icon possible paths screen gray ボタンを有効にすると、これらのプロジェクト間に他のプロジェクトがあることがわかります。

    Detecting possible architecture problems

  3. これらの 2 つのプロジェクトがどのように相互に依存するかを確認するには、パスリンクを右折してパスを表示を選択します。仲介プロジェクトがダイアグラムに表示され、すべてが別のレイヤーにあることがわかります。

    Detecting possible architecture problems

この情報に基づいて、アプリケーション構造を再作成する必要があるかもしれないことがわかります。

ダイアグラムをファイルにエクスポートする

依存関係を調べるときはいつでも、次のツールバーボタンを使用して、図をファイルにエクスポートできます。

  • PNG にエクスポートする Icon export to png は、ダイアグラムの現在のビューを PNG イメージにエクスポートします。

  • GraphML にエクスポート Icon export to graphml は、外部分析のためにダイアグラムを GraphML 形式でエクスポートします。

  • 大きな図を印刷する必要がある場合は、XPS にエクスポート Icon export to xps を使用して図を XPS 形式でエクスポートします。

保存されたスナップショットを現在のソリューションの状態と比較する

ソリューションの現在の状態のスナップショットをいつでもファイルに保存して、将来の参照に使用できます。これを行うには、ツールバーのアーキテクチャグラフを保存する Themed icon save graph screen gray をクリックしてから、スナップショットファイルを保存する場所を選択します。

メインメニューで ReSharper | アーキテクチャー | 保存済みと比較... を選択し、ダイアグラムスナップショットファイル .argr を選択することにより、保存したスナップショットを後でロードして調査できます。
スナップショットが新しいエディタータブで開き、ソリューションの現在の状態とスナップショットに保存されている状態の違いを確認できます。

依存関係図がファイルから開かれた場合、差分を表示 Themed icon graph diff screen gray ボタンが使用可能になり、デフォルトでオンになります。このボタンを使用して、スナップショットと現在のソリューションの状態の違いを表示または非表示にできます。

関連ページ:

アーキテクチャビュー

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

プロジェクトレベルの支援

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

特定の範囲でコードの問題を見つける

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

次にナビゲート

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

検索結果ウィンドウ

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

型依存関係図を見る

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