Просмотр и реорганизация графов зависимостей
Можно изменить расположение элементов на графах зависимостей, чтобы сделать их более простыми для чтения и повысить производительность отрисовки.
Требования
Visual Studio Ultimate, Visual Studio Premium или Visual Studio Professional
Для создания графа зависимостей необходимо иметь Visual Studio Ultimate.Дополнительные сведения см. в разделе Визуализация зависимостей кода на графах зависимостей.
Содержание раздела
Управление большими графами
Изменение макета графа
Обзор графа
Просмотр узлов и связей
Сокрытие или отображение узлов и связей
Группирование узлов
Для дополнительных способов просмотра графа с помощью мыши или клавиатуры на пустом графе нажмите ссылку на справку.
Управление большими графами
При первом создании графа зависимостей, Visual Studio создаст индекс кода для всех зависимостей, которые будут найдены.Хотя этот процесс может занять некоторое время, особенно для больших решений или графов с большим числом связей, этот индекс повышает производительность последующих операций.Если код в последствии изменяется, то Visual Studio переиндексирует только обновленный код.
Если ожидать завершение создания графа нежелательно, то можно отменить процесс его создания в любое время и попробовать следующие рекомендации:
Изобразить в виде графа только конкретные зависимости, которые необходимы.Дополнительные сведения см. в разделе Визуализация зависимостей кода на графах зависимостей.
Прежде чем создать граф для всего решения, уменьшите область решения.
После создания графа попробуйте выполнить следующие рекомендации:
На панели инструментов графа выберите Быстрые кластеры, чтобы можно было видеть естественные кластеры зависимостей в коде.См. раздел Изменение макета графа.
Разбиение графов на меньшие области путем группировки связанных узлов.Эти группы можно свернуть для просмотра только межгрупповых зависимостей, которые появляются автоматически.См. раздел Группирование узлов.
Ручное редактирование графа для удаление ненужных узлов и связей.Изменение графа не влияет на код.Дополнительные сведения см. в разделе Изменение и настройка графов зависимостей.
Изменение макета графа
Целевой тип |
На панели инструментов графа или в контекстном меню графа |
---|---|
Расположение потока зависимостей всего графа в определенном направлении.Это помогает увидеть архитектурные уровни в коде. |
Выберите одно из следующих действий, чтобы отобразить граф в виде дерева.
|
Просмотр естественных кластеров зависимостей в коде. |
Выберите Быстрые кластеры, чтобы увидеть наиболее зависимые узлы в центре этих кластеров, а наименее зависимые узлы — возле внешней части этих кластеров. |
Чтобы переместить определенные узлы графа, перетащите их.Чтобы убрать с пути другие узлы и связи по мере перетаскивания узлов, нажмите и удерживайте клавишу SHIFT во время перетаскивания узлов.Чтобы изменить структуру внутри группы независимо от графа, выбрав одну из древовидных структур, используйте Быстрые кластеры или Представление списка, которые упорядочивают содержимое группы в список.См. раздел Группирование узлов.
Примечание |
---|
В данном выпуске не поддерживается следующая функциональность: Режим просмотра окружения, Двухстворчатый режим, Дополнительное выделение и Матричный вид зависимостей. |
Обзор графа
Целевой тип |
Выполните следующие действия |
---|---|
Просмотрите граф |
Перетащите граф в любом направлении. |
Увеличение или уменьшение графа |
Вращайте колесико мыши. - или - Выберите символ плюс (+) или минус (-) на панели инструментов графа. - или - Для увеличения определенной области, воспользуйтесь правой кнопкой мыши, чтобы обвести область прямоугольником. |
Измените размер графа под размер его окна |
На панели инструментов графа выберите Масштабировать по данным. - или - Дважды щелкните на пустой области графа. |
Измените размер и отцентрируйте граф по определенному узлу |
Разверните узел.Дважды щелкните на пустой области узла. Visual Studio изменяет размер графа таким образом, чтобы вся группа вмещалась в окно графа. Если дважды щелкнуть на свернутое пространство имен, класс или его члены, то Visual Studio покажет определение кода. |
Изменение фокуса независимо от выбранного узла |
Нажмите клавишу TAB. Вокруг узла, который в данный момент находится в фокусе, появляется пунктирная линия. |
Поиска узла на графе по его имени.
Совет
Чтобы найти элементы в решении, но не на графе, найдите их в Обозревателе решений, а затем перетащите их на граф.
|
Важно
Можно использовать поле поиска для нахождения совпадений в свернутых группах, только если эти группы были развернуты ранее.Чтобы найти эти совпадения и развернуть их родительские группы автоматически, выберите этот параметр под полем поиска.
|
Найти источник или цель ссылки Метод используется при наличии большого количества ссылок, чтобы легко увидеть источник или цель конкретной ссылки. |
|
Выбор всех невыбранных узлов |
Откройте контекстное меню для выбранных узлов.Выберите Выделить, Обратить выделение. |
Выберите дополнительные узлы, связанные с уже выбранными |
Откройте контекстное меню для выбранных узлов.Выберите Выделить и одно из следующих действий:
|
Просмотр узлов и связей
Графы зависимостей показывают следующие типы связей:
Отдельная связь представляет единичное отношение между двумя узлами.
Связи между группами представляют собой отношения между узлами из различных групп.
Совокупная связь представляет все отношения, которые указывают в одном направлении между двумя группами.
Совет |
---|
По умолчанию граф показывает связи между группами только для выбранных узлов.Чтобы эти связи отображались всегда, на панели инструментов графа откройте список Изменение способа отображения связей на графе.Выберите Показать все связи между группами. Это позволяет скрыть совокупные связи между группами. |
Целевой тип |
Выполните следующие действия |
---|---|
Дополнительные сведения см. в разделе об узле или связи |
Переместите указатель мыши на узел или связь пока не появится подсказка. Подсказка для совокупной связи перечисляет типы индивидуальных зависимостей, которые она представляет. - или - Открыть контекстное меню для узла или связи.Выберите Свойства. |
Отобразить или скрыть содержимое группы |
|
Просмотр определения кода для пространства имен, типа или члена |
Откройте контекстное меню узла.Выберите Перейти, Перейти к определению. -или- Дважды щелкните узел.Для развернутых групп, дважды щелкните заголовок группы. -или- Выберите узел.Нажмите клавишу F12. Например:
|
Найти источник или цель ссылки Метод используется при наличии большого количества ссылок, чтобы легко увидеть источник или цель конкретной ссылки. |
|
Просмотр зависимостей и элементов, участвующих в совокупной связи |
Для одной связи:
Для нескольких связей:
Visual Studio разворачивает группы на обоих концах связи и отображает только те элементы и зависимости, которые участвуют в связи.
Примечание
При просмотре зависимостей между элементами в разделяемых группах можно заметить следующее:
|
Изучение зависимостей между многими узлами из различных групп |
|
Просмотр элементов, на которые ссылается узел или связь
Примечание
Это относится только когда для узла или связи в DGML-файле графа установлен атрибут Reference. Для добавления ссылок на элементы из узлов или связей см. раздел Изменение и настройка графов зависимостей.
|
Откройте контекстное меню узла.Выберите Перейти и элемент. |
Сокрытие или отображение узлов и связей
Сокрытие узлов сохраняет их от участия в алгоритмах структуры.По умолчанию межгрупповые связи скрыты.Связи между группами являются отдельными связями, которые соединяют узлы между различными группами.Когда группы свернуты, граф группирует все связи между группами в единичные связи между группами.При разворачивании группы и выборе узлов внутри группы будут отображены связи между группами и показаны фактические зависимости в этой группе.
Внимание |
---|
Перед тем как совместно использовать граф, который был создан в Visual Studio Ultimate, с сотрудниками, использующими Visual Studio Premium или Visual Studio Professional, убедитесь в отсутствии каких-либо скрытых связанных узлов или межгрупповых связей, предназначенных для просмотра.В противном случае пользователи не смогут отобразить эти элементы. |
Сокрытие и отображение узлов
Целевой тип |
Выполните следующие действия |
---|---|
Скрыть выбранные узлы |
|
Скрыть невыбранные узлы |
|
Показать скрытые узлы |
|
Сокрытие узлов путем редактирования DGML-файла |
|
Отображение или скрытие ссылок
Целевой тип |
На панели инструментов графа, откройте список Изменение способа отображения связей на графе или откройте контекстное меню графа. Выберите: |
---|---|
Одновременное отображение связей между группами |
Показать все ссылки между группами Это позволяет скрыть совокупные связи между группами. |
Показать только связи между группами в выбранных узлах |
Показать ссылки между группами в выбранных узлах |
Одновременное сокрытие связей между группами |
Скрыть все ссылки между группами |
Скрытие всех ссылок (или отображение всех ссылок) |
Скрыть все ссылки Чтобы показать все связи, выберите Скрыть все связи повторно, что отключит этот режим. |
Группирование узлов
Целевой тип |
Выполните следующие действия |
---|---|
Показ узлов в виде узлов группы или конечных узлов |
Чтобы отобразить узлы в качестве конечных узлов, сначала выберите узлы.Откройте контекстное меню для выделения.Выберите Группа, Преобразовать в листовой узел. Чтобы отобразить узлы в качестве групповых узлов, сначала выберите узлы.Откройте контекстное меню для выделения.Выберите Группа, Преобразовать в группу. Чтобы отобразить все листовые узлы как групповые узлы, откройте контекстное меню графа.Выберите Группа, Включить группировку. Чтобы отобразить все групповые узлы как листовые узлы, откройте контекстное меню графа.Выберите Группа, Выключить группировку. |
Изменение структуры внутри группы |
|
Добавление узла в группу |
Перетащите узел на группу. При перетаскивании узла Visual Studio отображает индикатор, чтобы показать, что узел перемещается. Можно также перетаскивать узлы из группы. |
Добавление узла к узлу, не состоящему в группе |
Любой узел можно преобразовать в группу.Перетащите узел на целевой узел. |
Группирование выбранных узлов |
|
Группировка узлов определенных категорий или свойств |
|
Группирование узлов в соответствии с их контейнерами |
|
Группирование узлов в соответствии со значениями свойств |
|
Удаление групп |
Выберите группы, которые требуется удалить.Откройте контекстное меню для выделения.Выберите Группа, Удалить группу. |
Перемещение узлов из родительских групп в прародительскую или вне группы, если прародительская группа не существует |
Выберите узлы, которые требуется переместить.Откройте контекстное меню для выделения.Выберите Группа, Удаление из родительского элемента. |
Группировать узлы также можно посредством редактирования DGML-файла.
Преобразование узла в группу или добавление новой группы
Для преобразования узла в группе открыть контекстное меню для узла.Выберите Перейти, DGML.
Visual Studio открывает DGML-файл графа и выделяет элемент <Node/> для этого узла.
- или -
Для добавления новой группы файлов:
Открыть контекстное меню для пустой области диаграммы.Выберите Перейти, DGML.
В разделе <Nodes> добавьте новый элемент <Node/>.
В элементе <Node/> добавьте атрибут Group, чтобы указать разворачивать группу при отображении или нет.Например:
<Nodes> <Node Id="MyFirstGroup" Group="Expanded" /> <Node Id="MySecondGroup" Group="Collapsed" /> </Nodes>
В разделе <Links> убедитесь, что элемент <Link/> со следующими атрибутами существует для каждой связи между узлом группы и дочерними узлами:
Атрибут Source, который определяет узел группы.
Атрибут Target, который определяет дочерний узел.
Атрибут Category, который определяет связь Contains между узлом группы и его дочерним узлом
Например:
<Links> <Link Category="Contains" Source="MyFirstNewGroup" Target="FirstGroupChildOne" /> <Link Category ="Contains" Source="MyFirstNewGroup" Target="FirstGroupChildTwo" /> <Link Category ="Contains" Source="MySecondNewGroup" Target="SecondGroupChildOne" /> <Link Category="Contains" Source="MySecondNewGroup" Target="SecondGroupChildTwo" /> </Links>
Дополнительные сведения об атрибуте Category см. в Присвоение категорий узлам и ссылкам in Изменение и настройка графов зависимостей.