Share via


方法: アーキテクチャ エクスプローラーを使用してコードを検索する

Visual Studio Ultimate では、アーキテクチャ エクスプローラーを使用して、視覚化するコードの垂直部分、つまり "スライス" を選択できます。 Visual Studio ソリューション内のソース コードまたはコンパイルされたコードを調べることができます。 追加プロバイダーをインストールすることにより、アーキテクチャ エクスプローラーを使用して他のドメインを参照できます。 視覚化するコードが見つかったら、グラフを生成してそのコード内の関係を参照できます。 詳細については、「方法: .NET コードに対する依存関係グラフを生成する」を参照してください。

注意

Visual Studio 2010 Ultimate では、アーキテクチャ エクスプローラーでサポートされるのは Visual C# .NET と Visual Basic .NET だけです。C または C++ コードを調べるには、Visualization and Modeling Feature Pack をダウンロードしてインストールします。 アーキテクチャ エクスプローラーでは型 Unions、Typedefs、および Members は C および C++ コードだけに適用され、これらの型を選択した場合に結果は表示されません。 詳細については、「Microsoft Visual Studio 2010 Visualization and Modeling Feature Pack」を参照してください。

このトピックの内容

  • アーキテクチャ エクスプローラーについて

  • Visual Studio ソリューション内のソース コードを検索する

  • マネージ アセンブリ ファイルまたは実行可能ファイル内のコンパイルされたコードを検索する

  • 参照結果を絞り込む

  • 参照結果を更新する

後で再利用できるように、参照セッションをクエリ (.dgql ファイル) として保存できます。

  • 参照セッションをクエリとして保存する

  • 保存されたクエリを検索する

アーキテクチャ エクスプローラーについて

アーキテクチャ エクスプローラーを開くには

  • [アーキテクチャ] メニューの [ウィンドウ] をポイントし、[アーキテクチャ エクスプローラー] をクリックします。

    アーキテクチャ エクスプローラーのサイズを変更するには、ウィンドウの上部を目的の高さにドラッグします。 アーキテクチャ エクスプローラーを移動するには、タイトル バーまたはタブを目的の位置にドラッグします。

    注意

    アーキテクチャ エクスプローラーの上に [エラー一覧] ウィンドウや [出力] ウィンドウなどが表示される場合、アーキテクチャ エクスプローラーのサイズ変更が妨げられないように、それらのウィンドウを移動できます。

アーキテクチャ エクスプローラーのトップレベル ドメイン

アーキテクチャ エクスプローラー: ドメイン、ビュー、ノード、ノードの種類、およびリンクの種類

アーキテクチャ エクスプローラーは、構造をノードとして、関係をリンクとして表します。 参照時、アーキテクチャ エクスプローラーにはノードが列として表示されます。 最初の列には、参照できるドメインとビューが表示されます。 ドメインおよびビューを選択すると、アーキテクチャ エクスプローラーにはそのビューで使用できるノードが表示されます。

1 つの列で複数のノードを選択すると、アーキテクチャ エクスプローラーの次の列に、選択したノードに論理的に関連するノードが表示されます。 たとえば、名前空間を選択すると、次の列に型が表示されます。 型を選択すると、次の列にメンバーが表示されます。 ノード列の右側に沿って表示される折りたたまれたアクション列は、次の列に含まれるノードの既定の種類または関係を示します。 アクション列を展開し、特定の種類のノードまたはリンクを選択することで、次の列の結果をフィルター処理できます。

注意

アクション列の上にポインターを移動すると、強調表示されます。

Visual Studio ソリューション内のソース コードを検索する

このリリースに付属する定義済みのクエリを使用する場合は、「保存されたクエリを検索する」を参照してください。 それ以外の場合は、アーキテクチャ エクスプローラーのソリューション ビューまたはクラス ビューを使用して、式ツリーのレベルまでソース コードを下へ移動できます。

  • クラス ビューには Visual Studio ソリューションの論理ビューが表示されます。 たとえば、名前空間、クラス、メンバーなどで参照できます。

    アーキテクチャ エクスプローラーのクラス ビュー

    アーキテクチャ エクスプローラーのクラス ビュー

  • ソリューション ビューには Visual Studio ソリューションの物理ビューが表示されます。 たとえば、プロジェクト、プロジェクト ファイルなどで参照できます。

    アーキテクチャ エクスプローラーのソリューション ビュー

    アーキテクチャ エクスプローラーのソリューション ビュー 保存されたクエリを検索する

ソリューション内のコードを検索するには

  1. Visual Studio < ソリューション名 > の下にあるアーキテクチャ エクスプローラーの最初の列で、[クラス ビュー] または [ソリューション ビュー] をクリックします。

    最初の列の右側にノード列が表示されます。 この列には、選択したビューで使用できるすべてのノードが表示されます。 たとえば、クラス ビューを選択した場合は、ソリューション内に論理的に存在するすべての名前空間が表示されます。

  2. ノード列で、1 つまたは複数のノードを選択し、関連するノードの次の列を表示します。 現在の列のノードをすべて選択するには、Ctrl キーを押しながら A キーを押します。

  3. 目的のノードが見つかるまで、手順 2. を繰り返します。

    注意

    列をクリアしてクエリを再度実行するには、アーキテクチャ エクスプローラーのタイトル バーの下にある [列のクリア] をクリックします。

マネージ アセンブリ ファイルまたは実行可能ファイル内のコンパイルされたコードを検索する

アーキテクチャ エクスプローラーの [ファイルの選択] を使用して、メソッド間呼び出しのレベルまでマネージ アセンブリを下へ移動します。

コンパイルされたコードを検索するには

  1. [アーキテクチャ] メニューの [ウィンドウ] をポイントし、[アーキテクチャ エクスプローラー] をクリックします。

  2. 最初の列の [ファイル システム][ファイルの選択] をクリックします。

  3. [開く] ダイアログ ボックスで、マネージ アセンブリ (.dll) ファイルまたは実行可能 (.exe) ファイルを参照して選択し、[開く] をクリックします。

    ノード列が表示され、選択したファイルが表示されます。

  4. ノード列で、1 つまたは複数のファイルを選択します。

    別のノード列が表示され、選択したファイル内のすべてのノードが表示されます。

  5. 1 つまたは複数のノードを選択し、関連するノードの次の列を表示します。 現在の列のノードをすべて選択するには、Ctrl キーを押しながら A キーを押します。

  6. 目的のノードが見つかるまで、手順 4. を繰り返します。

参照結果を絞り込む

次の方法で、参照セッションの結果を絞り込むことができます。

  • 現在の列のノードを名前に基づいてフィルター処理する

  • 現在の列のノードをノードの種類またはプロパティに基づいてフィルター処理する

  • 次の列のノードをノードの種類に基づいてフィルター処理する

  • 次の列のノードをリンクの種類に基づいてフィルター処理する

  • ノードをコンテナーまたはプロパティ値でグループ化する

現在の列のノードを名前に基づいてフィルター処理する

現在の列のフィルター処理 (名前順)

現在の列を名前に基づいてフィルター処理する

現在の列のノードを名前に基づいてフィルター処理するには

  1. アーキテクチャ エクスプローラーのノード列の一番上で、網かけされた部分をクリックしてフィルター ボックスを表示します。

  2. 名前を入力し、Enter キーを押します。

    現在の列に一致するノードのみが表示されます。 列の右下隅には、その列がフィルター処理されていることを示すウォーターマークが表示されます。

現在の列のノードをノードの種類またはプロパティに基づいてフィルター処理する

現在の列のフィルター処理 (カテゴリ順またはプロパティ順)

現在の列を種類またはプロパティに基づいてフィルター処理する

現在の列のノードを種類またはプロパティに基づいてフィルター処理するには

  1. アーキテクチャ エクスプローラーのノード列の一番上で、網かけされた部分をクリックしてフィルター ボックスを表示します。

  2. フィルター ボックスの左側で、[現在の列の項目をカテゴリおよびプロパティに基づいてフィルター処理します] ボタンをクリックします。

  3. 特定の種類のノードのみを表示するには、[カテゴリ] で目的の種類をクリックします。

  4. 特定のプロパティを持つノードのみを表示するには、[プロパティ] で目的のプロパティをクリックします。

  5. 終了したら、[OK] をクリックします。

    現在の列に一致するノードのみが表示されます。 列の右下隅には、その列がフィルター処理されていることを示すウォーターマークが表示されます。

次の列のノードをノードの種類に基づいてフィルター処理する

次の列のノードをノードの種類に基づいてフィルター処理するには

  1. アーキテクチャ エクスプローラーで、表示するノードの前にあるノード列を参照し、目的のノードを選択します。

  2. ノード列の右側で、折りたたまれたアクション列をクリックして展開します。

    注意

    アクション列の上にポインターを移動すると、強調表示されます。

  3. アクション列の [ノード ナビゲーション] で、次に表示する特定のノードの種類を選択します。

    注意

    これらの種類の共用体を表示するには、複数の種類を選択します。

    ノード列が表示され、一致するノードが表示されます。

次の列のノードをリンクの種類に基づいてフィルター処理する

アーキテクチャ エクスプローラーでは、次のノード セットのフィルター処理に使用されるリンクの種類が、インバウンドとアウトバウンドの 2 つのカテゴリに編成されます。 この 2 つのカテゴリは、現在選択されているノードに対するリンクの方向を表します。 アウトバウンド リンクは、現在選択されているノードから関連する次のノードを示します。 インバウンド リンクは、関連する前のノードから現在選択されているノードを示します。 アウトバウンドのリンクの種類を選択すると、アーキテクチャ エクスプローラーには関連するノードの次のレベルが表示されます。 インバウンドのリンクの種類を選択すると、アーキテクチャ エクスプローラーには関連するノードの前のレベルが表示されます。

たとえば、クラス ノードを選択し、アウトバウンドの [を含む] リンクの種類を選択すると、アーキテクチャ エクスプローラーにはクラス ノードに含まれるノードが表示されます。 そのクラス ノードのインバウンドの [含まれる] リンクの種類を選択すると、名前空間、クラス ファイル、プロジェクトなど、そのクラスを含むノードが表示されます。

次の列のノードをリンクの種類に基づいてフィルター処理するには

  1. アーキテクチャ エクスプローラーで、表示するノードの前にあるノード列を参照し、目的のノードを選択します。

  2. ノード列の右側で、折りたたまれたアクション列をクリックして展開します。

    注意

    アクション列の上にポインターを移動すると、強調表示されます。

  3. アクション列で、次のいずれかを選択します。

    • 次のレベルの関連するノードを表示するには、[アウトバウンド ナビゲーション] で、目的のリンクの種類を選択します。

    • 前のレベルの関連するノードを表示するには、[インバウンド ナビゲーション] で、目的のリンクの種類を選択します。

      注意

      これらの種類の共用体を表示するには、複数の種類を選択します。

    次の列が表示され、一致するノードが表示されます。

ノードをコンテナーまたはプロパティ値でグループ化する

アーキテクチャ エクスプローラーでは、既存のコンテインメント関係またはプロパティ値に基づいてノードのグループを生成できます。 グループ化が可能な場合、このタスクを完了すると新しいグループ ノードの一覧が表示されます。

アーキテクチャ エクスプローラーでこれらのグループからグラフを作成すると、[すべてをグループとして表示] を使用して、リンクされたノードをグループに編成できます。 詳細については、次のトピックを参照してください。

グループを使用して、既存のグラフのノードを整理することもできます。 詳細については、「方法: グラフ ドキュメントを編集およびカスタマイズする」を参照してください。

ノードをコンテナーまたはプロパティ値でグループ化するには

  1. アーキテクチャ エクスプローラーで、グループ化するノードを含むノード列を参照します。 現在の列の項目をすべて選択するには、Ctrl キーを押しながら A キーを押します。

  2. ノード列の右側で、折りたたまれたアクション列をクリックして展開します。

    注意

    アクション列の上にポインターを移動すると、強調表示されます。

  3. アクション列の [グループ化] で、次の操作を行います。

    クリック対象

    操作内容

    [コンテナーでグループ化] をクリックして、使用可能なグループを表示する

    • これらのグループにあるノードを表示するには、いくつかのグループを選択します。

      次の列に、選択したグループにあるノードが表示されます。

    [プロパティでグループ化] をクリックして、使用可能なプロパティを表示する

    1. グループとして使用するプロパティを選択します。

      次の列に、プロパティ値別に編成されたグループが表示されます。

    2. 特定のプロパティ値を持つノードを表示するには、いくつかのプロパティ値グループを選択します。

    表示されるグループの数と種類は、プロパティ値の型に基づいています。

    • ブール値: True および False。

    • 整数値: 値の範囲を均等な四分位数に分割する 4 つのグループ。

    • 文字列値: 一意の文字列値ごとに 1 つのグループが表示され、ノードはその特定のプロパティ値に基づいて各グループに属します。

      これは、複数のノード間で選択したプロパティに同じ文字列値が設定されている場合に便利です。 たとえば、ノードごとに一意の文字列値を持つプロパティを選択すると、ノードごとに 1 つのグループが設定されます。

参照結果を更新する

コードまたはソリューションに対する変更を表示するには、アーキテクチャ エクスプローラーを手動で更新する必要があります。

アーキテクチャ エクスプローラーを更新するには

  1. アーキテクチャ エクスプローラーで、更新する列の前にあるノード列を参照します。

  2. 現在の列で、更新されたノードに関連するノードを選択します。

    更新されたノードの一覧を表示する、別のノード列が表示されます。

参照セッションをクエリとして保存する

アーキテクチャ エクスプローラーの参照セッションをクエリ (Directed Graph Query Language (.dgql) ファイル) として保存できます。 クエリをディスクに保存して、後から利用したり、GraphCmd.exe ツールを使用してバッチ モードでグラフを生成したりできます。 バッチ モードでのグラフ ドキュメントの生成および DGQL の詳細については、「方法: .NET コードに対する依存関係グラフを生成する」を参照してください。

参照セッションを保存するには

  1. アーキテクチャ エクスプローラーのタイトル バーの下にある [クエリの保存] をクリックします。

  2. [名前を付けて保存] ダイアログ ボックスで、クエリに名前を付け、次の場所にあるローカルの Queries フォルダーに .dgql ファイルとして保存します。

    …\My Documents\Visual Studio 2010\ArchitectureExplorer\Queries

    注意

    クエリをアーキテクチャ エクスプローラーに表示するには、.dgql ファイルを Queries フォルダーに保存するか、ソリューションに追加する必要があります。 詳細については、「保存されたクエリを検索する」を参照してください。

保存されたクエリを検索する

アーキテクチャ エクスプローラーを使用すると、クエリ (.dgql) ファイルを Visual Studio ソリューションに追加した場合、またはローカルの Queries フォルダー (…\My Documents\Visual Studio 2010\ArchitectureExplorer\Queries) に保存した場合に、クエリ ファイルを検索できます。このフォルダーには、一般的に使用される定義済みのクエリも格納されています。 

アーキテクチャ エクスプローラーの参照セッションをクエリとして保存する方法の詳細については、「参照セッションを保存する」を参照してください。

ソリューション内にあるアーキテクチャ エクスプローラーのクエリ

ソリューション内のクエリ

ソリューション内のクエリを検索するには

  1. [表示] メニューの [アーキテクチャ エクスプローラー] をクリックします。

  2. 最初の列の [保存された DGQL クエリ] で、[マイ ソリューション内] をクリックして、クエリ (.dgql) ファイルの列を表示します。

  3. クエリ ファイル列で、クエリ ファイルをクリックします。

    別の列が表示され、選択したクエリのノードが表示されます。

  4. 1 つまたは複数のノードを選択し、関連するノードの次の列を表示します。 現在の列のノードをすべて選択するには、Ctrl キーを押しながら A キーを押します。

  5. 目的のノードが見つかるまで、手順 4. を繰り返します。

ローカルの Queries フォルダー内のクエリを検索するには

  1. [表示] メニューの [アーキテクチャ エクスプローラー] をクリックします。

  2. 最初の列の [保存された DGQL クエリ] で、[フォルダー内] をクリックして、クエリ (.dgql) ファイルの一覧を表示します。

    次の表に、ソリューション内の項目の確認に使用できる定義済みのクエリを示します。

    クエリ ファイル名

    表示される内容

    All Assembly References.dgql

    ソリューションで参照されるすべてのアセンブリ。

    クエリ結果から、これらのアセンブリ間の依存関係を示すグラフを生成できます。 詳細については、「方法: .NET コードに対する依存関係グラフを生成する」を参照してください。

    All Output Assemblies.dgql

    依存関係リンクのないソリューション内のすべての出力アセンブリの一覧。

    クエリ結果から、選択したアセンブリの依存関係グラフを生成できます。

    1. 現在の列で、確認するアセンブリを選択します。

    2. 現在の列の右側で、折りたたまれたアクション列をクリックして展開します。

      メモメモ
      アクション列の上にポインターを移動すると、強調表示されます。
    3. アクション列の [コマンド] で、[標準グラフ] をクリックします。

    All Project References.dgql

    ソリューション内のプロジェクト間のすべての参照。

    クエリ結果から、これらのプロジェクト間の参照を示すグラフを生成できます。 詳細については、「方法: .NET コードに対する依存関係グラフを生成する」を参照してください。

    All Projects.dgql

    ソリューション内のすべてのプロジェクトの一覧。

    ソリューションにソリューション フォルダーが含まれる場合、この一覧は、アーキテクチャ エクスプローラーで [ソリューション ビュー] をクリックしたときに表示される一覧とは異なります。

    Constructors.dgql

    コンストラクター メソッドの一覧。

    Inheritance Graph.dgql

    次の関係を持つソリューション内のすべての型。

    • 継承元

    • 実装

    クエリ結果から、これらの型間の継承関係を示すグラフを生成できます。 詳細については、「方法: .NET コードに対する依存関係グラフを生成する」を参照してください。

    Public Classes.dgql

    ソリューション内のパブリック クラスの一覧。

    Virtual Members.dgql

    ソリューション内のすべての仮想メンバーの一覧。

  3. クエリ ファイル列で、クエリ ファイルをクリックします。

    ノード列が表示され、選択したクエリのノードが表示されます。

  4. ノード列で、1 つまたは複数のノードを選択し、関連するノードの列を表示します。 現在の列のノードをすべて選択するには、Ctrl キーを押しながら A キーを押します。

  5. 目的のノードが見つかるまで、手順 4. を繰り返します。

参照

概念

既存のコードの視覚化