依存関係図: リファレンス
Visual Studio では、システムの大まかな論理アーキテクチャを視覚化するために依存関係図を使用できます。 依存関係図では、システム内の物理的な成果物がレイヤーと呼ばれる抽象的な論理グループに整理されます。 これらのレイヤーは成果物が実行する主要タスクまたはシステムの主要コンポーネントについて説明します。 各レイヤーには、より詳細なタスクを示す入れ子になったレイヤーを含めることもできます。
この機能をサポートする Visual Studio のバージョンを確認するには、「アーキテクチャとモデリング ツールのエディション サポート」を参照してください。
Note
.NET Core プロジェクトの依存関係図は、Visual Studio 2019 バージョン 16.2 以降でサポートされています。
レイヤー間の必要とされる依存関係、または既存の依存関係を指定できます。 矢印で表されるこれらの依存関係は、どのレイヤーが、他のレイヤーが表す機能を使用できるか、または現在使用しているかを示します。 システムを個別のロールおよび機能を記述するレイヤーに分けて整理した依存関係図を使用すると、コードを簡単に理解、再利用、および保守できるようになります。
依存関係図は、次のタスクを実行するために使用します。
システムの既存の論理アーキテクチャまたは必要とされる論理アーキテクチャを伝達する。
既存のコードと必要とされるアーキテクチャの間の不整合を見つける。
システムのリファクタリング、更新、または進化によって必要とされるアーキテクチャにもたらされる変更の影響を視覚化する。
チェックイン操作とビルド操作による検証を追加することによって、必要とされるアーキテクチャをコードの開発中および保守中に補強する。
このトピックでは、依存関係図で使用できる要素について説明します。 依存関係図を生成および描画する方法の詳細については、「依存関係図: ガイドライン」を参照してください。 レイヤー パターンの詳細については、Patterns & Practices サイトを参照してください。
依存関係図の読み取り
依存関係図で使用できる要素を次の表に示します。
図形 | 要素 | 説明 |
---|---|---|
1 | レイヤー | システム内の物理的な成果物の論理グループ。 このような成果物には、名前空間、プロジェクト、クラス、メソッドなどがあります。 レイヤーにリンクされている成果物を表示するには、レイヤーのショートカット メニューを開き、 [リンクの表示] をクリックして [レイヤー エクスプローラー] を開きます。 詳細については、「レイヤー エクスプローラー」を参照してください。 - 禁止された名前空間の依存関係 - このレイヤーに関連付けられている成果物が、指定した名前空間に依存できないように指定する。 - 禁止された名前空間 - このレイヤーに関連付けられている成果物を、指定した名前空間に所属させることができないように指定する。 - 必要な名前空間 - このレイヤーに関連付けられている成果物が、指定したいずれかの名前空間に所属する必要があることを指定する。 |
2 | 依存関係 | あるレイヤーが別のレイヤーの機能を使用することはできても、その逆はできないことを示します。 - 方向 - 依存関係の方向を指定します。 |
3 | 双方向の依存関係 | あるレイヤーが別のレイヤーの機能を使用でき、その逆もできることを示します。 - 方向 - 依存関係の方向を指定します。 |
4 | コメント | 全般的なノートを図または図の要素に追加するために使用します。 |
5 | コメント リンク | コメントを図の要素にリンクするために使用します。 |
レイヤー エクスプローラー
各レイヤーをソリューション内の成果物 (たとえば、プロジェクト、クラス、名前空間、プロジェクト ファイル、またはソフトウェアのその他のパート) にリンクすることができます。 レイヤーの数字は、レイヤーにリンクされている成果物の数を示します。 ただし、レイヤーの成果物の数を読み取るときには、次の点に注意してください。
1 つのレイヤーが他の成果物を含む 1 つの成果物にリンクされているが、他の成果物に直接リンクされていない場合、その数字にはリンクされた成果物のみが含まれます。 ただし、レイヤー検証時の分析にはそれらの他の成果物も含まれます。
たとえば、1 つのレイヤーが 1 つの名前空間にリンクされている場合、その名前空間に複数のクラスが含まれていても、リンクされた成果物の数は 1 です。 レイヤーに名前空間の各クラスへのリンクもある場合、その数字にはリンクされたクラスが含まれます。
1 つのレイヤーに成果物にリンクされた他のレイヤーが含まれている場合は、そのコンテナー レイヤーの数字にそれらの成果物が含まれていなくても、コンテナー レイヤーはそれらの成果物にリンクされます。
レイヤーと成果物のリンクの詳細については、次のドキュメントを参照してください。
リンクされた成果物を確認する
依存関係図で、1 つ以上のレイヤーのショートカット メニューを開き、 [リンクの表示] をクリックします。
レイヤー エクスプローラーが開いて、選択したレイヤーにリンクされている成果物が表示されます。 レイヤー エクスプローラーには、成果物のリンクの各プロパティを表示する列があります。
注意
すべてのプロパティが表示されない場合は、レイヤー エクスプローラー ウィンドウを広げます。
レイヤー エクスプローラーの列 | 説明 |
---|---|
Categories (カテゴリ) | クラス、名前空間、ソース ファイルなどの成果物の種類 |
レイヤー | 成果物にリンクしているレイヤー |
検証をサポート | [True] の場合、レイヤーの検証プロセスで、プロジェクトがこの要素への依存関係またはこの要素からの依存関係と一致していることを検証できます。 [False] の場合、リンクはレイヤーの検証プロセスに関与しません。 詳細については、「依存関係図: ガイドライン」を参照してください。 |
識別子 | リンクされた成果物への参照 |
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示