Лабораторная работа Взаимосвязь классов в Visual Studio Ultimate 2013

advertisement
Лабораторная работа
Взаимосвязь классов в Visual Studio
Ultimate 2013
Lab version:
12.0.21005.1
Last updated:
12/17/2013
СОДЕРЖАНИЕ
РЕЗЮМЕ ...................................................................................................................................................... 3
УПРАЖНЕНИЕ 1: ИСПОЛЬЗОВАНИЕ ГРАФИКОВ ЗАВИСИМОСТЕЙ ДЛЯ ВИЗУАЛИЗАЦИИ
ВЗАИМОСВЯЗЕЙ МЕЖДУ КЛАССАМИ ................................................................................................... 3
УПРАЖНЕНИЕ 2: ВЫЯВЛЕНИЕ ЦИРКУЛЯРНЫХ ССЫЛОК ............................................................... 13
Резюме
Понимание взаимосвязей между классами в большом проекте может быть сложным процессом.
Из этой лабораторной работы вы научитесь использовать диаграммы DGML (Directed Graph
Markup Language) в Visual Studio Ultimate 2013 для анализа кодовой базы и взаимосвязей между
классами.
Prerequisites
Для выполнения лабораторной работы вам понадобится виртуальная машина с Visual Studio 2013.
Подробнее про то, где загрузить и как ее использовать, здесь.
Перед выполнением этой лабораторной работы рекомендуется пройти “Code Discovery using the
Architecture Tools in Visual Studio Ultimate 2013”.
Упражнения
Эта лабораторная работа включает в себя следующие упражнения:
1. Использование графиков зависимостей для визуализации взаимосвязей между классами
2. Выявление циркулярных ссылок
Примерное время выполнения лабораторной работы: 30 минут.
Упражнение 1: Использование
графиков зависимостеи для
визуализации взаимосвязеи между
классами
В этом упражнении вы научитесь генерировать и анализировать график взаимосвязей между
классами.
1. Войдите под аккаунтом Julia (VSALM\Julia). Пароль: P2ssw0rd.
2. Запустите Visual Studio 2013 и откройте Team Explorer.
3. Нажмите на Connect to Team Projects.
Изображение 1
Подключение к командному проекту
4. В Team Explorer – Connect нажмите два раза на Tailspin Toys.
Изображение 2
Проект Tailspin Toys
5. В Team Explorer – Home нажмите два раза на третьем решении TailspinToys (ветка Main).
Изображение 3
Решение Tailspin Toys
6. Пересоберите решение (Build | Rebuild Solution).
7. Создайте новый график взаимосвязей (Architecture | Generate Dependency Graph | For
Solution). График хранится в формате Directed Graph Markup Language (DGML), который
позволяет работать с ним из Visual Studio 2013 и других стандартных инструментов.
Примечание: создание этого графика для всех проектов решения может занять
некоторое время – во время первой генерации графика создается индекс кода для всех
найденных взаимосвязей, что помогает ускорить последующие генерации.
Изображение 4
График взаимосвязей
8. Разверните Tailspin.Model.dll для просмотра пространств имен.
Изображение 5
График взаимосвязей
9. Разверните Tailspin.Model.
Изображение 6
Узел на графике
Примечание: когда вы развернете Tailspin.Model, вы увидите классы, которые сложно
увидеть без приближения.
10. Нажмите на Quick Clusters Layout для просмотра всех классов и их взаимосвязей.
Изображение 7
Опция Quick Clusters Layout
Изображение 8
Представление типа Quick Clusters сгенерированного графика
Примечание: то, что сделаете вы, может отличаться от скриншотов.
11. Представление Quick Clusters дает представление о количестве классов в проектах
TailspinToys и степень их связей. Найдите в нем узел по классу Product. Есть два способа
сделать это.
12. Первая опция – приблизить изображение так, чтобы класс Product было четко видно.
Примечание: приближение можно выбрать из выпадающего окна Zoom
Изображение 9
Приближение
13. Второй способ – произвести поиск, нажав CTRL+F и введя в появившееся текстовое поле
Product. Нажимайте F3, пока нужный класс Product не будет подсвечен как выбранный.
Примечание: по умолчанию поиск ищет по всем элементам, включая находящихся в
скрытых группах. Если группу ни разу не раскрывали, сущность может быть не найдена, и
по этой причине мы раскрыли все группы. Это важно для пересылки DGML другому
разработчику.
Изображение 10
Поиск класса Product
Примечание: серые линии разной толщины отображают степень взаимосвязи между
узлами, с увеличением степени с увеличением толщины. Более темные линии
отображают прямые взаимосвязи между классами.
14. Увидеть прямые взаимосвязи можно, выбрав узел Product, но разобраться, какие из них
исходящие, а какие входящие, сложно. Измените режим графика на Top to Bottom Layout.
Изображение 11
Режимы графика
Изображение 12
Режим Top to Bottom
15. Этот режим показывает входящие линии сверху, исходящие – снизу. Уже лучше, но есть
визуальные помехи, например, взаимосвязь между классом Product и сборкой
Tailspin.Test.Model. Нажмите на Layout | Advanced | Hide All Cross-Group Links.
Изображение 13
Скрытие всех кроссгрупповых ссылок
Изображение 14
График
16. Вернитесь в режим Quick Clusters.
Изображение 15
Режим Quick Clusters без кроссгрупповых ссылок
17. Нажмите на взаимосвязи между Product и OrderLine.
Изображение 16
Данные о взаимосвязи между классами
18. Для просмотра включенных в эту взаимосвязь ссылок нажмите правой кнопкой на линии и
выберите Advanced | Show Contributing Links on New Code Map.
Изображение 17
Выявление участвующих во взаимосвязи ссылок
19. Новый график показывает всех членов класса OrderLine, участвующих во взаимосвязи с
Product.
Изображение 18
Детализированное представление взаимосвязи
Упражнение 2: выявление
циркулярных ссылок
В этом упражнении вы научитесь использовать механизм для выявления циркулярных ссылок для
обнаружения классов, между которыми есть сильная связность.
1. Вернитесь в исходный график (AssemblyDependencies1.dgml) и убедитесь, что Product
виден.
Изображение 19
График взаимосвязей с выбранным узлом Product
2. Нажмите на Legend.
Изображение 20
Кнопка Legend
3. Нажмите на + в нижней части Legend для просмотра доступных для добавления на
диаграмму опций.
Изображение 21
Кнопка + в Legend
4. Нажмите на Analyzer | Circular References для добавления компонента на график. Этот
компонент будет работать, даже если вы измените график.
Изображение 22
Добавление компонента Circular References analyzer
5. Нажмите на пустом месте на графике. Обратите внимание, что красные линии вокруг
классов сильно связаны. Начиная с этого момента, вы можете начать анализировать
подсвеченные взаимосвязи с целью упростить их, используя уже рассмотренные
инструменты.
Изображение 23
График с циркулярными ссылками между классами
To give feedback please write to VSKitFdbk@Microsoft.com
Copyright © 2016 by Microsoft Corporation. All rights reserved.
Download