prerequisites - microsoft › media... · web viewДля выполнения...
TRANSCRIPT
![Page 1: Prerequisites - Microsoft › media... · Web viewДля выполнения лабораторной работы вам понадобится виртуальная машина](https://reader035.vdocuments.us/reader035/viewer/2022070814/5f0d9a4a7e708231d43b2b66/html5/thumbnails/1.jpg)
Лабораторная работаВзаимосвязь классов в Visual Studio Ultimate 2013Lab version: 12.0.21005.1
Last updated: 12/17/2013
![Page 2: Prerequisites - Microsoft › media... · Web viewДля выполнения лабораторной работы вам понадобится виртуальная машина](https://reader035.vdocuments.us/reader035/viewer/2022070814/5f0d9a4a7e708231d43b2b66/html5/thumbnails/2.jpg)
СОДЕРЖАНИЕ
РЕЗЮМЕ.................................................................................................................................................... 3
УПРАЖНЕНИЕ 1: ИСПОЛЬЗОВАНИЕ ГРАФИКОВ ЗАВИСИМОСТЕЙ ДЛЯ ВИЗУАЛИЗАЦИИ ВЗАИМОСВЯЗЕЙ МЕЖДУ КЛАССАМИ..................................................................................................3
УПРАЖНЕНИЕ 2: ВЫЯВЛЕНИЕ ЦИРКУЛЯРНЫХ ССЫЛОК..............................................................13
![Page 3: Prerequisites - Microsoft › media... · Web viewДля выполнения лабораторной работы вам понадобится виртуальная машина](https://reader035.vdocuments.us/reader035/viewer/2022070814/5f0d9a4a7e708231d43b2b66/html5/thumbnails/3.jpg)
РезюмеПонимание взаимосвязей между классами в большом проекте может быть сложным процессом. Из этой лабораторной работы вы научитесь использовать диаграммы 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.
![Page 4: Prerequisites - Microsoft › media... · Web viewДля выполнения лабораторной работы вам понадобится виртуальная машина](https://reader035.vdocuments.us/reader035/viewer/2022070814/5f0d9a4a7e708231d43b2b66/html5/thumbnails/4.jpg)
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 и других стандартных инструментов.
Примечание: создание этого графика для всех проектов решения может занять некоторое время – во время первой генерации графика создается индекс кода для всех найденных взаимосвязей, что помогает ускорить последующие генерации.
![Page 5: Prerequisites - Microsoft › media... · Web viewДля выполнения лабораторной работы вам понадобится виртуальная машина](https://reader035.vdocuments.us/reader035/viewer/2022070814/5f0d9a4a7e708231d43b2b66/html5/thumbnails/5.jpg)
Изображение 4График взаимосвязей
8. Разверните Tailspin.Model.dll для просмотра пространств имен.
Изображение 5График взаимосвязей
9. Разверните Tailspin.Model.
![Page 6: Prerequisites - Microsoft › media... · Web viewДля выполнения лабораторной работы вам понадобится виртуальная машина](https://reader035.vdocuments.us/reader035/viewer/2022070814/5f0d9a4a7e708231d43b2b66/html5/thumbnails/6.jpg)
Изображение 6Узел на графике
Примечание: когда вы развернете Tailspin.Model, вы увидите классы, которые сложно увидеть без приближения.
10. Нажмите на Quick Clusters Layout для просмотра всех классов и их взаимосвязей.
Изображение 7Опция Quick Clusters Layout
![Page 7: Prerequisites - Microsoft › media... · Web viewДля выполнения лабораторной работы вам понадобится виртуальная машина](https://reader035.vdocuments.us/reader035/viewer/2022070814/5f0d9a4a7e708231d43b2b66/html5/thumbnails/7.jpg)
Изображение 8Представление типа Quick Clusters сгенерированного графика
Примечание: то, что сделаете вы, может отличаться от скриншотов.
11. Представление Quick Clusters дает представление о количестве классов в проектах TailspinToys и степень их связей. Найдите в нем узел по классу Product. Есть два способа сделать это.
![Page 8: Prerequisites - Microsoft › media... · Web viewДля выполнения лабораторной работы вам понадобится виртуальная машина](https://reader035.vdocuments.us/reader035/viewer/2022070814/5f0d9a4a7e708231d43b2b66/html5/thumbnails/8.jpg)
12. Первая опция – приблизить изображение так, чтобы класс Product было четко видно.
Примечание: приближение можно выбрать из выпадающего окна Zoom
Изображение 9Приближение
13. Второй способ – произвести поиск, нажав CTRL+F и введя в появившееся текстовое поле Product. Нажимайте F3, пока нужный класс Product не будет подсвечен как выбранный.
Примечание: по умолчанию поиск ищет по всем элементам, включая находящихся в скрытых группах. Если группу ни разу не раскрывали, сущность может быть не найдена, и по этой причине мы раскрыли все группы. Это важно для пересылки DGML другому разработчику.
![Page 9: Prerequisites - Microsoft › media... · Web viewДля выполнения лабораторной работы вам понадобится виртуальная машина](https://reader035.vdocuments.us/reader035/viewer/2022070814/5f0d9a4a7e708231d43b2b66/html5/thumbnails/9.jpg)
Изображение 10Поиск класса Product
Примечание: серые линии разной толщины отображают степень взаимосвязи между узлами, с увеличением степени с увеличением толщины. Более темные линии отображают прямые взаимосвязи между классами.
14. Увидеть прямые взаимосвязи можно, выбрав узел Product, но разобраться, какие из них исходящие, а какие входящие, сложно. Измените режим графика на Top to Bottom Layout.
Изображение 11Режимы графика
![Page 10: Prerequisites - Microsoft › media... · Web viewДля выполнения лабораторной работы вам понадобится виртуальная машина](https://reader035.vdocuments.us/reader035/viewer/2022070814/5f0d9a4a7e708231d43b2b66/html5/thumbnails/10.jpg)
Изображение 12Режим Top to Bottom
15. Этот режим показывает входящие линии сверху, исходящие – снизу. Уже лучше, но есть визуальные помехи, например, взаимосвязь между классом Product и сборкой Tailspin.Test.Model. Нажмите на Layout | Advanced | Hide All Cross-Group Links.
Изображение 13Скрытие всех кроссгрупповых ссылок
![Page 11: Prerequisites - Microsoft › media... · Web viewДля выполнения лабораторной работы вам понадобится виртуальная машина](https://reader035.vdocuments.us/reader035/viewer/2022070814/5f0d9a4a7e708231d43b2b66/html5/thumbnails/11.jpg)
Изображение 14График
16. Вернитесь в режим Quick Clusters.
Изображение 15Режим Quick Clusters без кроссгрупповых ссылок
17. Нажмите на взаимосвязи между Product и OrderLine.
![Page 12: Prerequisites - Microsoft › media... · Web viewДля выполнения лабораторной работы вам понадобится виртуальная машина](https://reader035.vdocuments.us/reader035/viewer/2022070814/5f0d9a4a7e708231d43b2b66/html5/thumbnails/12.jpg)
Изображение 16Данные о взаимосвязи между классами
18. Для просмотра включенных в эту взаимосвязь ссылок нажмите правой кнопкой на линии и выберите Advanced | Show Contributing Links on New Code Map.
Изображение 17
![Page 13: Prerequisites - Microsoft › media... · Web viewДля выполнения лабораторной работы вам понадобится виртуальная машина](https://reader035.vdocuments.us/reader035/viewer/2022070814/5f0d9a4a7e708231d43b2b66/html5/thumbnails/13.jpg)
Выявление участвующих во взаимосвязи ссылок
19. Новый график показывает всех членов класса OrderLine, участвующих во взаимосвязи с Product.
Изображение 18Детализированное представление взаимосвязи
2: Упражнение выявление циркулярных ссылок
![Page 14: Prerequisites - Microsoft › media... · Web viewДля выполнения лабораторной работы вам понадобится виртуальная машина](https://reader035.vdocuments.us/reader035/viewer/2022070814/5f0d9a4a7e708231d43b2b66/html5/thumbnails/14.jpg)
В этом упражнении вы научитесь использовать механизм для выявления циркулярных ссылок для обнаружения классов, между которыми есть сильная связность.
1. Вернитесь в исходный график (AssemblyDependencies1.dgml) и убедитесь, что Product виден.
Изображение 19График взаимосвязей с выбранным узлом Product
2. Нажмите на Legend.
Изображение 20Кнопка Legend
3. Нажмите на + в нижней части Legend для просмотра доступных для добавления на диаграмму опций.
![Page 15: Prerequisites - Microsoft › media... · Web viewДля выполнения лабораторной работы вам понадобится виртуальная машина](https://reader035.vdocuments.us/reader035/viewer/2022070814/5f0d9a4a7e708231d43b2b66/html5/thumbnails/15.jpg)
Изображение 21Кнопка + в Legend
4. Нажмите на Analyzer | Circular References для добавления компонента на график. Этот компонент будет работать, даже если вы измените график.
![Page 16: Prerequisites - Microsoft › media... · Web viewДля выполнения лабораторной работы вам понадобится виртуальная машина](https://reader035.vdocuments.us/reader035/viewer/2022070814/5f0d9a4a7e708231d43b2b66/html5/thumbnails/16.jpg)
Изображение 22Добавление компонента Circular References analyzer
5. Нажмите на пустом месте на графике. Обратите внимание, что красные линии вокруг классов сильно связаны. Начиная с этого момента, вы можете начать анализировать подсвеченные взаимосвязи с целью упростить их, используя уже рассмотренные инструменты.
Изображение 23График с циркулярными ссылками между классами
To give feedback please write to [email protected]
Copyright © 2023 by Microsoft Corporation. All rights reserved.