Поделиться через


Практическое руководство. Поиск кода с помощью обозревателя архитектуры

В Visual Studio Ultimate можно выбрать вертикальные разделы или "срезы" кода, который необходимо визуализировать. Можно просматривать исходный код в решении Visual Studio или скомпилированный код. Кроме того, можно использовать обозреватель архитектуры для просмотра других доменов путем установки дополнительных поставщиков. Найдя код, который необходимо визуализировать, можно создать графы для изучения связей в этом коде. Дополнительные сведения см. в разделе Практическое руководство. Создание графов зависимостей для кода .NET.

Примечание

В Visual Studio 2010 Ultimate обозреватель архитектуры поддерживает только Visual C# .NET и Visual Basic .NET. Для просмотра кода на языке C или C++ загрузите и установите Пакет дополнительных компонентов визуализации и моделирования.Следующие типы в обозревателе архитектуры относятся только к коду на языках C и C++ и не показывают результаты при их выборе: Unions, Typedefs и Members.Дополнительные сведения см. в разделе Пакет функций визуализации и моделирования Microsoft Visual Studio 2010.

Содержание раздела

  • Обозреватель архитектуры

  • Поиск исходного кода в решении Visual Studio.

  • Поиск скомпилированного кода в управляемой сборке или исполняемом файле.

  • Уточнение результатов обзора.

  • Обновление результатов обзора.

Сеанс обзора можно сохранить в виде запроса (DGQL-файла) для дальнейшего использования.

  • Сохранение сеанса обзора в виде запроса.

  • Поиск сохраненных запросов.

Обозреватель архитектуры

Открытие обозревателя архитектуры

  • В меню Архитектура последовательно выберите пункты Окна и Обозреватель архитектуры.

    Чтобы изменить размер обозревателя архитектуры, перетащите верхний край окна на нужную высоту. Для перемещения обозревателя архитектуры перетащите заголовок его окна или вкладку в нужное положение.

    Примечание

    Если поверх обозревателя архитектуры отображаются какие-либо окна, например окно списка ошибок или окно вывода, переместите эти окна так, чтобы они не мешали изменению размера обозревателя архитектуры.

Домены верхнего уровня в обозревателе архитектуры

Обозреватель архитектуры: домены, представления, узлы, типы узлов и типы ссылок

В обозревателе архитектуры представлены такие структуры, как узлы, и такие отношения, как связи. В процессе обзора в обозревателе архитектуры узлы отображаются в последовательно расположенных столбцах. В первом столбце отображаются домены и представления, которые можно просмотреть. После выбора домена и представления в обозревателе архитектуры отображаются доступные в этом представлении узлы.

При выборе узла в каком-либо столбце обозревателя архитектуры в следующем его столбце отображаются узлы, логически связанные с выбранным узлом. Например, если выбрать пространства имен, в следующем столбце отобразятся типы. Если выбрать типы, в следующем столбце отобразятся элементы. В свернутом столбце действий, отображающемся вдоль правой стороны столбца узлов, указываются типы по умолчанию или отношения между узлами, содержащимися в следующем столбце. Для фильтрации результатов в следующем столбце можно развернуть столбец действий и выбрать определенный тип узлов или связей.

Примечание

При наведении указателя мыши на столбец действий этот столбец выделяется.

Поиск исходного кода в решении Visual Studio

Чтобы воспользоваться предопределенными запросами, входящими в состав данного выпуска, см. раздел Поиск сохраненных запросов. Или воспользуйтесь для просмотра исходного кода до уровня деревьев выражений представлениями обозревателя архитектуры: Представление решения или Представление классов.

  • В окне Представление классов отображается логическое представление решения Visual Studio. Например, возможен просмотр по пространству имен, классам, элементам и т. д.

    Представление классов в обозревателе архитектуры

    Представление классов в обозревателе архитектуры

  • В окне Представление решения отображается физическое представление решения Visual Studio. Например, возможен просмотр по проекту, файлам проекта и т. д.

    Представление решения в обозревателе архитектуры

    Представление решения в обозревателе архитектуры Поиск сохраненных запросов

Поиск кода в решении

  1. В первом столбце обозревателя архитектуры в разделе Visual Studio <имя_решения> выберите Представление классов или Представление решения.

    Справа от первого столбца отобразится столбец узлов. В этом столбце отображаются все узлы, доступные в выбранном представлении. Например, если выбрать Представление классов, отобразятся все пространства имен, которые логически присутствуют в решении.

  2. В столбце узлов выберите узел или несколько узлов, чтобы просмотреть в следующем столбце связанные с ними узлы. Чтобы выбрать все узлы в текущем столбце, нажмите CTRL+A.

  3. Повторяйте шаг 2, пока не будут найдены нужные узлы.

    Примечание

    Чтобы повторить запрос, очистив столбцы, под заголовком окна Обозреватель архитектуры выберите Очистить столбцы.

Поиск скомпилированного кода в управляемой сборке или исполняемых файлах

Воспользуйтесь в обозревателе архитектуры командой Выбор файлов, чтобы просмотреть управляемые сборки до уровня вызовов одного метода другим.

Поиск скомпилированного кода

  1. В меню Архитектура последовательно выберите пункты Окна и Обозреватель архитектуры.

  2. В первом столбце, в разделе Файловая система выберите команду Выбор файлов.

  3. В диалоговом окне Открытие перейдите к управляемой сборке (DLL) или исполняемому файлу (EXE), выберите его, а затем нажмите кнопку Открыть.

    Отобразится столбец узлов с выбранными файлами.

  4. В столбце узлов выберите файл или несколько файлов.

    Отобразится другой столбец узлов со всеми узлами в выбранных файлах.

  5. Выберите узел или несколько узлов, чтобы просмотреть в следующем столбце связанные с ними узлы. Чтобы выбрать все узлы в текущем столбце, нажмите CTRL+A.

  6. Повторяйте шаг 4, пока не будут найдены нужные узлы.

Уточнение результатов обзора

Результаты обзора можно уточнить следующими способами.

  • Фильтрация узлов в текущем столбце по имени.

  • Фильтрация узлов в текущем столбце по типу узла или свойству.

  • Фильтрация узлов в следующем столбце по типу узла.

  • Фильтрация узлов в следующем столбце по типу связи.

  • Группирование узлов по контейнеру или значению свойства.

Фильтрация узлов в текущем столбце по имени

Фильтрация текущего столбца по имени

Фильтрация в текущем столбце по имени

Фильтрация узлов в текущем столбце по имени

  1. В обозревателе архитектуры щелкните затененную область в верхней части столбца узлов для отображения поля фильтра.

  2. Введите имя и нажмите клавишу ВВОД.

    В текущем столбце отобразятся только узлы, соответствующие запросу. В нижнем правом углу столбца отобразится водяной знак, свидетельствующий о том, что столбец отфильтрован.

Фильтрация узлов в текущем столбце по типу узла или свойству

Фильтрация текущего столбца по категории или свойству

Фильтрация текущего столбца по типу или свойству

Фильтрация узлов в текущем столбце по типу или свойству

  1. В обозревателе архитектуры щелкните затененную область в верхней части столбца узлов для отображения поля фильтра.

  2. Нажмите кнопку Фильтровать элементы в текущем столбце по категории и свойству.

  3. Для отображения только узлов определенного типа выберите в поле Категории необходимые типы.

  4. Для отображения только узлов с определенными свойствами в окне Свойства выберите необходимые свойства.

  5. По завершении нажмите кнопку ОК.

    В текущем столбце отобразятся только узлы, соответствующие запросу. В нижнем правом углу столбца отобразится водяной знак, свидетельствующий о том, что столбец отфильтрован.

Фильтрация узлов в следующем столбце по типу узла

Фильтрация узлов в следующем столбце по типу узла

  1. В обозревателе архитектуры перейдите к столбцу узлов, предшествующему узлам, которые необходимо просмотреть, а затем выберите необходимые узлы.

  2. С правой стороны от столбца узлов щелкните свернутый столбец действий, чтобы его развернуть.

    Примечание

    При наведении указателя мыши на столбец действий этот столбец выделяется.

  3. В столбце действий в разделе Навигация узла выберите определенные типы узлов, которые необходимо просмотреть следующими.

    Примечание

    Чтобы просмотреть объединение этих типов, выберите несколько типов.

    Отобразится столбец узлов со всеми узлами, соответствующими заданным условиям.

Фильтрация узлов в следующем столбце по типу связи

Обозреватель архитектуры упорядочивает типы связей, используемые для фильтрации следующего набора узлов, по двум категориям: входящие или исходящие. Эти категории описывают направление связи относительно выбранного в данный момент узла. Исходящие связи направлены из выбранного в данный момент узла к следующему связанному узлу. Входящие связи направлены из предыдущего связанного узла к узлу, который выбран в данный момент. При выборе исходящего типа связи обозреватель архитектуры отображает следующий уровень связанных узлов. При выборе входящего типа связи обозреватель архитектуры отображает предыдущий уровень связанных узлов.

Например, если выбрать узел класса и исходящий тип связи Содержит, обозреватель архитектуры отобразит узлы, содержащиеся в узле класса. Если же выбрать для этого узла классов входящий тип связи Содержится в, отобразятся узлы, содержащие этот класс, например, пространства имен, файлы классов и проекты.

Фильтрация узлов в следующем столбце по типу связи

  1. В обозревателе архитектуры перейдите к столбцу узлов, предшествующему узлам, которые необходимо просмотреть, а затем выберите необходимые узлы.

  2. С правой стороны от столбца узлов щелкните свернутый столбец действий, чтобы его развернуть.

    Примечание

    При наведении указателя мыши на столбец действий этот столбец выделяется.

  3. В столбце действий выберите один из следующих параметров.

    • Для просмотра связанных узлов на следующем уровне выберите в разделе Исходящая навигация необходимый тип связи.

    • Для просмотра связанных узлов на предыдущем уровне выберите необходимый тип связи в разделе Входящая навигация.

      Примечание

      Чтобы просмотреть объединение этих типов, выберите несколько типов.

    Отобразится следующий столбец со всеми узлами, соответствующими заданным условиям.

Группирование узлов по контейнеру или значению свойства

В обозревателе архитектуры можно создать группы узлов по имеющимся отношениям содержания или по значениям свойств. Если группирование возможно, по завершении этой задачи отобразится список узлов новой группы.

При создании графа на основе этих групп в обозревателе архитектуры для упорядочения связанных узлов в группы можно воспользоваться командой Показать все в виде групп. Дополнительные сведения см. в следующих разделах.

Кроме того, группы можно использовать для упорядочения узлов на имеющемся графе. Дополнительные сведения см. в разделе Практическое руководство. Изменение или настройка документов с графами.

Группирование узлов по контейнеру или значению свойства

  1. В обозревателе архитектуры перейдите к столбцу узлов, содержащему узлы, которые необходимо сгруппировать. Чтобы выбрать все элементы в столбце, нажмите CTRL+A.

  2. С правой стороны от столбца узлов щелкните свернутый столбец действий, чтобы его развернуть.

    Примечание

    При наведении указателя мыши на столбец действий этот столбец выделяется.

  3. В столбце действий в разделе Группировка выполните следующие действия.

    Щелкните

    Следующее действие

    Группировать по контейнерам для просмотра всех доступных групп

    • Для просмотра узлов в этих группах, выберите группы.

      В следующем столбце отобразятся узлы, находящиеся в выбранных группах.

    Группировать по свойствам для просмотра всех доступных свойств

    1. Выберите свойства, которое необходимо использовать в виде групп.

      В следующем столбце отобразятся группы, упорядоченные по значению свойства.

    2. Чтобы просмотреть узлы с определенными значениями свойств, выберите группы значений свойств.

    Количество и характер отображаемых групп зависит от типов значений свойств.

    • Логические значения: True и False.

    • Целочисленные значения: для групп, которые делят диапазон значений на равные квартили.

    • Строковые значения: группа отображается для каждого уникального строкового значения, а принадлежность узлов каждой группе зависит от конкретного значения свойства.

      Их особенно удобно использовать, если строковое значение выбранного свойства одинаково для нескольких узлов. Например, если выбрать свойство с уникальным строковым значением для каждого узла, то для каждого из узлов будет создана отдельная группа.

Обновление результатов обзора

Для отображения любых изменений, внесенных в код или решение, необходимо вручную обновить обозреватель архитектуры.

Обновление обозревателя архитектуры

  1. В обозревателе архитектуры перейдите к столбцу узлов, расположенному перед столбцом, который необходимо обновить.

  2. В текущем столбце выберите узлы, связанные с обновляемыми узлами.

    Отобразится столбец узлов с обновленным списком узлов.

Сохранение сеанса обзора в виде запроса

В обозревателе архитектуры можно сохранить сеанс обзора в виде запроса или в виде файла языка разметки направленных графов (DGQL). Можно сохранить запрос на диск для последующего использования или создать граф в пакетном режиме, используя средство GraphCmd.exe. Дополнительные сведения о создании документов графов в пакетном режиме см. в разделе Практическое руководство. Создание графов зависимостей для кода .NET.

Сохранение сеанса обзора

  1. Под заголовком окнаОбозревателя архитектуры выберите команду Сохранить запрос.

  2. В диалоговом окне Сохранить как присвойте имя запросу и сохраните его в виде DGQL-файла в локальной папке Запроси, находящейся в следующем расположении:

    …\Мои документы\Visual Studio 2010\ArchitectureExplorer\Запросы

    Примечание

    Для просмотра запроса в обозревателе архитектуры нужно сохранить DGQL-файл в папке Запросы или добавить его в решение.Дополнительные сведения см. в разделе Поиск сохраненных запросов.

Поиск сохраненных запросов

Обозреватель архитектуры можно использовать для поиска файлов запросов (DGQL), при добавлении их в решение Visual Studio или сохранении их в следующей локальной папке Запросы: …\Мои Документы\Visual Studio 2010\ArchitectureExplorer\Запросы. В этой папке также находятся часто используемые предопределенные запросы. 

Дополнительные сведения о сохранении сеанса обзора в обозревателе архитектуры в виде запроса см. в разделе Сохранение сеанса обзора.

Запросы обозревателя архитектуры в решении

Запросы в решении

Поиск запросов в решении

  1. В меню Вид выберите пункт Обозреватель архитектуры.

  2. В первом столбце в разделе Сохраненные запросы DGQL выберите значение В моем решении для просмотра столбца файлов запросов (DGQL).

  3. В столбце файлов запросов выберите файл запроса.

    Отобразится другой столбец с узлами из выбранного запроса.

  4. Выберите узел или несколько узлов, чтобы просмотреть в следующем столбце связанные с ними узлы. Чтобы выбрать все узлы в текущем столбце, нажмите CTRL+A.

  5. Повторяйте шаг 4, пока не будут найдены нужные узлы.

Поиск запросов в локальной папке "Запросы"

  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. В столбце узлов выберите узел или несколько узлов, чтобы просмотреть столбец связанных с ними узлов. Чтобы выбрать все узлы в текущем столбце, нажмите CTRL+A.

  5. Повторяйте шаг 4, пока не будут найдены нужные узлы.

См. также

Основные понятия

Визуализация существующего кода.