SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
Практическое занятие
Изучение Кода с использованием
Инструментов Архитектуры в Visual
Studio Ultimate 2012
Версия практической: 11.0.51106.01 Обновление 1
Последнее обновление: 27.11.2012
СОДЕРЖИМОЕ
ОПИСАНИЕ.................................................................................................................................................3
УПРАЖНЕНИЕ 1: ВВЕДЕНИЕ В ВОЗМОЖНОСТИ ГЕНЕРИРОВАНИЯ ГРАФА ЗАВИСИМОСТЕЙ .3
УПРАЖНЕНИЕ 2: ВВЕДЕНИЕ В ВОЗМОЖНОСТИ НАВИГАЦИИ ГРАФА ЗАВИСИМОСТЕЙ.........14
УПРАЖНЕНИЕ 3: РАБОТА С УЗЛАМИ ГРАФА И ГРУППИРОВКА ....................................................26
Описание
В этой практической работе вы узнаете, как создавать и просматривать графы зависимости с Visual
Studio Ultimate 2012 в порядке для лучшего понимания архитектуры системы.
Предварительные требования
Чтобы выполнить это практическое занятие, вам необходима виртуальная машина Visual Studio
2012 предоставляемая Microsoft. Для получения дополнительной информации по получению и
использованию этой виртуальной машины, пожалуйста, см. это сообщение в блоге.
Обновление практической работы
Для Обновления 1 были сделаны следующие изменения для данного практического занятия:
 Добавлен дополнительный шаг для Упражнения 2 - введение в возможности соответствия
кода.
Упражнения
Эта практическая работа содержит следующие упражненния:
1. Введение в возможности Генерирования Графа Зависимостей
2. Введение в возможности Навигации Графа Зависимостей
3. Работа с Узлами Графа и Группировка
Оценочное время выполнения заданий: 30 минут.
Упражнение 1: Введение в
возможности Генерирования Графа
Зависимостей
В этом упражнении вы узнаете, как создать граф зависимостей, который показывает отношения
между типами сборки приложений (таких как вызовы, наследования, возвратов и так далее), а
также типов внешних сборок.
1. Зарегистрироваться как Julia. Пароли у всех пользователей P2ssw0rd.
2. Запустите Microsoft Visual Studio из Start | All Programs | Microsoft Visual Studio 2012 |
Visual Studio 2012.
3. Нажмите ссылку Connect to Team Foundation Server на Стартовой Странице.
Рисунок 1
Подключение к Team Foundation Server
4. Выберите TailspinToysCollection и нажмите Connect для продолжения. Если появится
запрос на подтверждение, выберите Yes.
Рисунок 2
Выбор проекта TailspinToysCollection
5. Откройте Source Control Explorer, нажав на ссылке в Team Explorer | Home.
6. В Source Control Explorer перейдите к Tailspin Toys | Development | Iteration 2 и выполните
двойной щелчок мыши на файле TailspinToys.sln для открытия решение Tailspin Toys.
Рисунок 3
Открытие проекта
7. Перестройте решение (Build | Rebuild Solution из главного меню). Этот шаг может занять
несколько минут до завершения.
8. Самый быстрый способ начать работу - это генерирование общего графа зависимостей для
всего решения. Создайте новый граф зависимостей (Architecture | Generate Dependency
Graph | For Solution). Граф зависимостей хранится в формате Directed Graph Markup
Language (далее DGML), который позволяет вам работать с ним с помощью Visual Studio
2012, а также других стандартных инструментов.
Примечание: Создание графа зависимостей для всех проектов в решении первоначально
может занять несколько минут. При создании графа зависимостей в первый раз,
создается индекс кода для всех зависимостей, которые встречаются, чтобы улучшить
производительность последующих операций.
Рисунок 4
Граф зависимостей для всего решения
9. На данный момент у нас только представление зависимостей между сборками, которые
являются частью решения, и внешними сборками. Серые линии различной толщины
представляют величину отношений взаимозависимостей между сборками, чем больше
толщина линии, тем больше связь. Каждый узел сборки может быть динамически раскрыт,
чтобы показать содержащиеся дочерние узлы, которые мы будем изучать в следующем
упражнении.
Рисунок 5
Узлы могут раскрываться динамически
Примечание: Представление сгенерированного графа зависимостей, которые вы видите,
может отличаться от показанного на рисунке. Вам, возможно, потребуется
дополнительно масштабировать, прокрутить и визуально найти объекты, указанные в
шагах практической работы.
10. Очистите диаграмму, нажав Ctrl + A и затем клавишу Delete.
11. Можно также начать с создания граф зависимостей с более узкой области с помощью
Solution Explorer или Architecture Explorer. Это позволит вам выбрать только те типы или
члены, которые вы хотите видеть, и затем создать новый граф или добавить эти элементы
на существующий граф.
12. Скажем, мы заинтересованы в поиске зависимостей и других отношений класса Product, в
рамках проекта Tailspin.Model. Сузьте область Solution Explorer, щелкнув правой кнопкой
мыши на узел проекта Tailspin.Model и выбрав параметр Scope to This.
Рисунок 6
Ограничение по определенному проекту в Solution Explorer
13. В поле поиска Solution Explorer введите “Product” для выполнения поиска. Это быстро
найдет и подсветит код, который содержит искомую строку.
Рисунок 7
Поиск текста в типах и членах решения
14. Выберите результаты поиска, нажав в любом месте и выбрав Ctrl + A.
Рисунок 8
Выбор всего результата поиска
15. На панели инструментов Solution Explorer нажмите кнопку Show on Code Map.
Рисунок 9
Добавление выбранных типов и методов из Solution Explorer в активный граф
16. Полученный граф теперь показывает выбранный и связанные классы с Product, члены и их
отношения друг с другом.
Figure 10
Граф, показывающий выбранные типы и члены
Примечание: Можно также перетащить типы и члены из окна Solution Explorer в граф.
Ваш граф может выглядеть немного иначе.
17. Еще одним способом для создания или добавления графа зависимостей является
использование Architecture Explorer, который обеспечивает тонкую настройку навигации и
выбора типов и членов. Откройте Architecture Explorer из Architecture | Windows.
Рисунок 11
Начальное представление Architecture Explorer
18. Допустим, что мы хотим видеть, как связанные типы и методы Product из проекта
Tailspin.Model относятся к проекту Tailspin.Web. В Architecture Explorer выберите параметр
Class View для просмотра всех доступных пространств имен.
Рисунок 12
Начало навигации в Class View
19. В поле поиска над списком имен введите «Tailspin.Web» и нажмите Enter, чтобы показать
только пространства имен, определенных в рамках проекта Tailspin.Web.
Рисунок 13
Ограничение результатов пространства имен с использованием фильтра
20. Выберите все пространства имен с помощью Ctrl + A для получения списка всех
содержащихся типов.
Рисунок 14
Продолжение навигации выбором пространства имен
21. Как только все типы для пространства имен Tailspin.Web.* отображены, выберите их все
(снова с использованием Ctrl + A).
Рисунок 15
Выбор всех перечисленных типов
22. Нажмите мышкой и удерживайте на выбранных типах и затем начните перетаскивать на
текущий граф зависимостей. Перед тем как отпустить на граф зажмите клавишу Ctrl и
бросьте типы на граф. Модификатор элемента управления вызовет родительские
контейнеры для добавления типов на диаграмму.
Рисунок 16
Объединение дополнительных типов на существующих граф
23. В результате объединения новые типы с существующим графом приведет к
представлению, которое обеспечивает некоторое понимание как веб-приложение
относится к классам Product из проекта Tailspin.Model.
Рисунок 17
Часть представления графа, который показывает, как выбранные сущности связаны
Примечание: Для изучения как использовать Architecture Explorer смотрите
практическую работу “Использование Architecture Explorer в Visual Studio Ultimate 2012
для анализа вашего кода”.
Упражнение 2: Введение в возможности Навигации Графа
Зависимостей
В этом упражнении мы узнаем больше о том, манипулировать и выполнять навигацию в графе
зависимостей.
1. Начнем с графа, который мы подготовили в ходе последнего задания, увеличьте и
распределите по необходимости, для того получить хорошее представление узла класса
HomeController.
Примечание: Масштабировать можно с помощью кнопок на панели инструментов графа
или просто с помощью колеса прокрутки мыши.
Рисунок 18
Часть представления графа с классом HomeController
2. Выберите узел класса HomeController и задержите курсор мыши над линией связи пока не
появится один из Target Node для IProductRepository.
Рисунок 19
Просмотр связей между узлами графа
3. Элемент управления навигацией, который появляется при наведении на линии связи,
предоставляет два действия, которые позволяют перемещаться к исходному или целевому
узлу. Нажмите на стрелку, указывающую от узла класса HomeController для навигации к
IProductRepository.
Рисунок 20
Навигация к другому узлу графа
4. Используйте кнопку Zoom To Fit на панели инструментов графа для подгонки всего для
отображения на экране.
Рисунок 21
Расположение кнопки Zoom To Fit
5. Вы должны теперь видеть, как класс HomeController связан с интерфейсом
IProductRepository, с помощью вызовов GetProduct и GetProductCategory.
Рисунок 22
Граф зависимостей, который показывает, как класс HomeController использует
IProductRepository
6. Вы также можете перейти из графа непосредственно к связанному коду. Дважды
щелкните на узле HomeController для загрузки HomeController.cs в окне редактора
кода.
Рисунок 23
Переход из графа к источнику
7. Здесь вы можете увидеть точно, как методы, определенные в интерфейсе,
используются в коде.
Рисунок 24
Представление кода для HomeController
8. Обновление 1 содержит новую функцию, называемую Code Map, чтобы облегчить
одновременную навигацию и визуализацию кода. Опираясь на существующую
функциональность, такую как ориентированные графы, она позволяет вам перемещаться
по вашему исходному коду и добавлять выбранные классы, члены, поля и так далее
непосредственно в представление графа. Например, щелкните правой кнопкой мыши на
методе Index в рамках класса HomeController и выберите Show on Code Map из
контекстного меню.
Рисунок 25
Визуализация метода напрямую из редактора исходного кода
9. Поведение по умолчанию при переходе к источнику — это размещение графа
зависимостей в группе вторичных вкладок, чтобы исходный код и граф были видны в одно
и то же время. Это дополнительно обеспечивает одновременную навигацию и
визуализацию. Кроме того обратите внимание, что указатель с зеленой стрелкой
отображается рядом с узлом индекса в представлении графика и что определение метода
индекс выделен в окне редактора исходного кода.
Рисунок 26
Функциональность Code Map в действии
Примечание: При использовании функции Code Map полезно делать граф и исходный
код видимыми в одно и то же время, либо с помощью групп вкладок или плавающего
представления графа и поместив его в своем собственном окне (при использовании
нескольких мониторов). Visual Studio автоматически сделает это для вас в некоторых
обстоятельствах, но если у вас уже есть открытый граф в той же группе вкладок, что и
файл исходного кода, они будут восстанавливаться в той же группе вкладок.
10. Поместите курсор на строку, которая определяет класс HomeController, еще раз обратите
внимание, что функцию Code Map также обновляет представление графа, показывая
зеленую стрелку рядом с узлом HomeController.
Рисунок 27
Code Map синхронизирует представление кода и графов
11. Функция Code Map также предоставляет ряд других функций визуализации через редактор
кода. Щелкните правой кнопкой мыши на определении метода Index и выберите Show
Related Items on Code Map | Show Methods This Calls. В более сложных методах это может
помочь показать, как часть кода взаимодействует со своим собственным классом, другими
архитектурными слоями приложения и внешним кодом.
Рисунок 28
Визуализация вызовов методов из кода
Рисунок 29
Граф, показывающий методы вызываемые методом Index
12. Теперь давайте рассмотрим, как мы можем перемещаться по графу, чтобы определить,
как мы используем внешние сборки. Создайте новый граф зависимостей из Architecture |
Generate Dependency Graph | For Solution.
13. Разверните группу Externals для поиска внешних сборок, используемых приложением
Tailspin.
Рисунок 30
Развертывание группы Externals
14. Увеличьте и перейдите в узел System.Web.dll в группе Externals так чтобы вы видели все
используемые пространства имен.
Рисунок 31
Развертывание узла System.Web.dll
15. Найдите и разверните узел System.Web.Routing, чтобы увидеть содержимое.
Рисунок 32
Развертывание узла Systm.Web.Routing
16. Выберите узел класса RouteTable для просмотра линий связей.
Рисунок 33
Узел класса RouteTable, показывающий входящие ссылки
17. Найдите и выберите линию связи от исходного узла в Tailspin.WebUpgraded.dll. Мы могли
бы просто использовать кнопки со стрелками для перехода к исходному узлу, как мы
делали это ранее, но на этот раз, давайте создадим новый граф, который просто содержит
отношения, которые в настоящее время мы заинтересованы найти. Чтобы создать новый
граф, нажмите с shift-том левой кнопкой мыши в центре на кнопку +.
Рисунок 34
Создание нового графа показывает выбранные связи
18. В результирующем графе вы можете видеть, что метод MvcApplication.Application_Start
вызывает метод get_Routes (по сути, свойство RouteTable.Routes).
Рисунок 35
Граф, показывающие выбранные связи
19. Закройте схемы ссылок без сохранения изменений.
Упражнение 3: Работа с Узлами
Графа и Группировка
В этом упражнении вы узнаете, как уменьшить сложность графа зависимостей, путем удаления
нежелательных узлов, регулируя группировки узлов и изменения свойств узла графа.
1. Если продолжаете предыдущее упражнение, закройте графа ссылок и вернитесь к
начальному графу зависимостей. Затем выберите Advanced | Group | Collapse All.. В
любом случае, перегенерируйте граф, выбрав Architecture | Generate Dependency Graph |
For Solution.
Рисунок 36
Граф зависимостей для всего решения
2. Разверните узел Externals из графа зависимостей для открытия внешних сборок,
используемых приложением Tailspin.
Рисунок 37
Открытая группа Externals, которая показывает входящие связи
Примечание: Толстые серые линии связи подключены к группе Externals, останавливаясь
на границе группы. Цель этого заключается в том, чтобы уменьшить визуальную
сложность графа зависимостей. Если вы удалите группировку Externals, вы сможете
увидеть все линии прямой связи между внешними и внутренними сборками, а также
более подробно между сборками, которые сгруппированы в пределах Externals.
3. Выберите узел сборки mscorlib.dll и нажмите клавишу Delete, чтобы удалить его из графа.
Обоснование удаления этого узла, а также многих других широко используемых внешних
сборок и типов, может быть в том, что они добавляют слишком много шума в граф и не
позволяет в нем легко ориентироваться.
Рисунок 38
Удаление узла из графа
4. Удалите узел System.dll из группы Externals.
5. Выберите группу Externals, щелкните правой кнопкой мыши и Advanced | Group | Remove
Group. Это позволит удалить группировку, но не узлы графа, содержащиеся в ней.
6. Удалите узел Tailspin.Test.Model.dll из графа. Мы должны удалить этот узел, чтобы
получить лучшее видение как развернутое приложение работает без компонентов
тестирования.
Рисунок 39
Упрощенный граф зависимостей
7. Хотя удаление группы Externals дает нам лучшее представление о том, что происходит, это
делает его трудно различимым между сборками приложения и теми, которые были ранее
сгруппированы, как Externals. Это может быть исправлено путем добавления свойства узла
для окрашивания в другой цвет для внешней сборки. Нажмите кнопку + на панели Legend
и выберите Node Property | Is External.
Рисунок 40
Создание свойства узла, которое ссылается на IsExternal
8. Это свойство узда Is External добавляется к панели Legend. Левой кнопкой мыши нажмите
на сером поле справа от свойства Is External и выберите свойство Background..., чтобы
загрузить окно Color Set Picker.
Рисунок 41
Модификация цвета фона на основе свойства IsExternal
9. В окне Color Set Picker, выберите True в выпадающем поле и выберите красный цвет (или
другой отличный от синего цвета) и нажмите кнопку ОК.
Рисунок 42
Выбор другого цвета для свойства, когда оно справедливо
Рисунок 43
Граф зависимостей, показывающий узлы внешних ссылок красным цветом
Свои отзывы и предложения вы можете отправить по электронной
почте: VSKitFdbk@Microsoft.com
© 2013 г. Корпорация Microsoft. Все права защищены.

Más contenido relacionado

La actualidad más candente

Делаем работу разработчиков более продуктивной с Team Foundation Server 2012
Делаем работу разработчиков более продуктивной с Team Foundation Server 2012Делаем работу разработчиков более продуктивной с Team Foundation Server 2012
Делаем работу разработчиков более продуктивной с Team Foundation Server 2012
Александр Шамрай
 
Среда разработки Eclipse by Cheburek
Среда разработки Eclipse by CheburekСреда разработки Eclipse by Cheburek
Среда разработки Eclipse by Cheburek
Ya_Cheburek
 
613.программирование в visual с++ с использованием библиотеки mfc учебное по...
613.программирование в visual с++ с использованием библиотеки mfc  учебное по...613.программирование в visual с++ с использованием библиотеки mfc  учебное по...
613.программирование в visual с++ с использованием библиотеки mfc учебное по...
efwd2ws2qws2qsdw
 
Практическое руководство - использование SVN
Практическое руководство - использование SVNПрактическое руководство - использование SVN
Практическое руководство - использование SVN
Александр Шамрай
 

La actualidad más candente (11)

Делаем работу разработчиков более продуктивной с Team Foundation Server 2012
Делаем работу разработчиков более продуктивной с Team Foundation Server 2012Делаем работу разработчиков более продуктивной с Team Foundation Server 2012
Делаем работу разработчиков более продуктивной с Team Foundation Server 2012
 
Олексій Стульніков “WinAppDriver – автоматизація Desktop ніколи не була такою...
Олексій Стульніков “WinAppDriver – автоматизація Desktop ніколи не була такою...Олексій Стульніков “WinAppDriver – автоматизація Desktop ніколи не була такою...
Олексій Стульніков “WinAppDriver – автоматизація Desktop ніколи не була такою...
 
Изменения в инфраструктуре инструментов для программистов
Изменения в инфраструктуре инструментов для программистовИзменения в инфраструктуре инструментов для программистов
Изменения в инфраструктуре инструментов для программистов
 
Mantis
MantisMantis
Mantis
 
Среда разработки Eclipse by Cheburek
Среда разработки Eclipse by CheburekСреда разработки Eclipse by Cheburek
Среда разработки Eclipse by Cheburek
 
613.программирование в visual с++ с использованием библиотеки mfc учебное по...
613.программирование в visual с++ с использованием библиотеки mfc  учебное по...613.программирование в visual с++ с использованием библиотеки mfc  учебное по...
613.программирование в visual с++ с использованием библиотеки mfc учебное по...
 
Enterprise flex pure mvc.v4
Enterprise flex pure mvc.v4Enterprise flex pure mvc.v4
Enterprise flex pure mvc.v4
 
лек11 2
лек11 2лек11 2
лек11 2
 
Практическое руководство - использование SVN
Практическое руководство - использование SVNПрактическое руководство - использование SVN
Практическое руководство - использование SVN
 
C# Web. Занятие 11.
C# Web. Занятие 11.C# Web. Занятие 11.
C# Web. Занятие 11.
 
Enterprise flex pure mvc, slides, russian
Enterprise flex pure mvc, slides, russianEnterprise flex pure mvc, slides, russian
Enterprise flex pure mvc, slides, russian
 

Similar a Изучение кода с использованием инструментов архитектуры в Visual Studio Ultimate 2012

Основы работы в BPwin.pdf
Основы работы в BPwin.pdfОсновы работы в BPwin.pdf
Основы работы в BPwin.pdf
ssuser117705
 
создание сайта в_системе_ucoz(2014)
создание сайта в_системе_ucoz(2014)создание сайта в_системе_ucoz(2014)
создание сайта в_системе_ucoz(2014)
MarcoFill
 
Декларативное программирование клиент-серверных приложений на андроид - UA Mo...
Декларативное программирование клиент-серверных приложений на андроид - UA Mo...Декларативное программирование клиент-серверных приложений на андроид - UA Mo...
Декларативное программирование клиент-серверных приложений на андроид - UA Mo...
UA Mobile
 

Similar a Изучение кода с использованием инструментов архитектуры в Visual Studio Ultimate 2012 (20)

лек12
лек12лек12
лек12
 
B pwin&ramus
B pwin&ramusB pwin&ramus
B pwin&ramus
 
Практикум 3
Практикум 3Практикум 3
Практикум 3
 
лек11 8
лек11 8лек11 8
лек11 8
 
Основы работы в BPwin.pdf
Основы работы в BPwin.pdfОсновы работы в BPwin.pdf
Основы работы в BPwin.pdf
 
Презентация по разработке схем в пакете OrCAD 9.2.ppt
Презентация по разработке схем в пакете OrCAD 9.2.pptПрезентация по разработке схем в пакете OrCAD 9.2.ppt
Презентация по разработке схем в пакете OrCAD 9.2.ppt
 
Практикум 2
Практикум 2Практикум 2
Практикум 2
 
Практикум 4
Практикум 4Практикум 4
Практикум 4
 
001 td revit_structure_rsa_asd
001 td revit_structure_rsa_asd001 td revit_structure_rsa_asd
001 td revit_structure_rsa_asd
 
VAMR ACADEMY Первое занятие
VAMR ACADEMY Первое занятиеVAMR ACADEMY Первое занятие
VAMR ACADEMY Первое занятие
 
Разработай первое приложение Qlik Sense
Разработай первое приложение Qlik SenseРазработай первое приложение Qlik Sense
Разработай первое приложение Qlik Sense
 
Opik
OpikOpik
Opik
 
лр8
лр8лр8
лр8
 
создание модели в программном комплексе Scad
создание модели в программном комплексе Scadсоздание модели в программном комплексе Scad
создание модели в программном комплексе Scad
 
создание сайта в_системе_ucoz(2014)
создание сайта в_системе_ucoz(2014)создание сайта в_системе_ucoz(2014)
создание сайта в_системе_ucoz(2014)
 
лек12 2
лек12 2лек12 2
лек12 2
 
Декларативное программирование клиент-серверных приложений на андроид - UA Mo...
Декларативное программирование клиент-серверных приложений на андроид - UA Mo...Декларативное программирование клиент-серверных приложений на андроид - UA Mo...
Декларативное программирование клиент-серверных приложений на андроид - UA Mo...
 
Знакомство с профессиональной системой управления требованиями. 3SL Cradle. П...
Знакомство с профессиональной системой управления требованиями. 3SL Cradle. П...Знакомство с профессиональной системой управления требованиями. 3SL Cradle. П...
Знакомство с профессиональной системой управления требованиями. 3SL Cradle. П...
 
Урок 3Ds Max - полустационар "Компьютерная графика и дизайн" в КА "ШАГ"
Урок 3Ds Max - полустационар "Компьютерная графика и дизайн" в КА "ШАГ"Урок 3Ds Max - полустационар "Компьютерная графика и дизайн" в КА "ШАГ"
Урок 3Ds Max - полустационар "Компьютерная графика и дизайн" в КА "ШАГ"
 
Lecture 11 2
Lecture 11 2Lecture 11 2
Lecture 11 2
 

Más de Александр Шамрай

Организация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFSОрганизация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFS
Александр Шамрай
 
Особенности и примеры использования Microsoft Project Server и Team Foundatio...
Особенности и примеры использования Microsoft Project Server и Team Foundatio...Особенности и примеры использования Microsoft Project Server и Team Foundatio...
Особенности и примеры использования Microsoft Project Server и Team Foundatio...
Александр Шамрай
 
Организация процессов разработки на основе TFS
Организация процессов разработки на основе TFSОрганизация процессов разработки на основе TFS
Организация процессов разработки на основе TFS
Александр Шамрай
 
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
Александр Шамрай
 

Más de Александр Шамрай (20)

Azure DevOps Адаптация под собственные потребности
Azure DevOps Адаптация под собственные потребностиAzure DevOps Адаптация под собственные потребности
Azure DevOps Адаптация под собственные потребности
 
Azure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестированиеAzure DevOps сборка, развертывание и тестирование
Azure DevOps сборка, развертывание и тестирование
 
Azure DevOps Управление проектом и версионный контроль
Azure DevOps Управление проектом и версионный контрольAzure DevOps Управление проектом и версионный контроль
Azure DevOps Управление проектом и версионный контроль
 
Организация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFSОрганизация процессов разработки на основе VSTS и TFS
Организация процессов разработки на основе VSTS и TFS
 
Особенности и примеры использования Microsoft Project Server и Team Foundatio...
Особенности и примеры использования Microsoft Project Server и Team Foundatio...Особенности и примеры использования Microsoft Project Server и Team Foundatio...
Особенности и примеры использования Microsoft Project Server и Team Foundatio...
 
Cовременные подходы организации процессов разработки
Cовременные подходы организации процессов разработкиCовременные подходы организации процессов разработки
Cовременные подходы организации процессов разработки
 
Управление запросами к продукту на основе Team Foundation Server
Управление запросами к продукту на основе Team Foundation ServerУправление запросами к продукту на основе Team Foundation Server
Управление запросами к продукту на основе Team Foundation Server
 
Практическое руководство IBM RTC 3 - Использование отчетности и виджетов
Практическое руководство IBM RTC 3 - Использование отчетности и виджетовПрактическое руководство IBM RTC 3 - Использование отчетности и виджетов
Практическое руководство IBM RTC 3 - Использование отчетности и виджетов
 
Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...
Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...
Практическое руководство IBM RTC 3 - Конфигурирование шаблона процесса (управ...
 
Практическое руководство IBM RTC 3 - Управление проектами жизненного цикла
Практическое руководство IBM RTC 3 - Управление проектами жизненного циклаПрактическое руководство IBM RTC 3 - Управление проектами жизненного цикла
Практическое руководство IBM RTC 3 - Управление проектами жизненного цикла
 
Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...
Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...
Практическое руководство IBM RTC 3 - Управление проектами на основе гибких по...
 
Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...
Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...
Практическое руководство IBM RTC 3 - Управление проектами на основе формальны...
 
Практическое руководство IBM RTC 3 - Управление заданиями Web client
Практическое руководство IBM RTC 3  - Управление заданиями Web clientПрактическое руководство IBM RTC 3  - Управление заданиями Web client
Практическое руководство IBM RTC 3 - Управление заданиями Web client
 
Практическое руководство IBM RTC 3 - Управление заданиями Eclipse client
Практическое руководство IBM RTC 3  - Управление заданиями Eclipse clientПрактическое руководство IBM RTC 3  - Управление заданиями Eclipse client
Практическое руководство IBM RTC 3 - Управление заданиями Eclipse client
 
Практическое руководство IBM RTC 3 - Установка и поддержка
Практическое руководство IBM RTC 3  - Установка и поддержкаПрактическое руководство IBM RTC 3  - Установка и поддержка
Практическое руководство IBM RTC 3 - Установка и поддержка
 
Сквозное обеспечение качества и расширяемость платформы TFS
Сквозное обеспечение качества и расширяемость платформы TFSСквозное обеспечение качества и расширяемость платформы TFS
Сквозное обеспечение качества и расширяемость платформы TFS
 
Организация процессов разработки на основе TFS
Организация процессов разработки на основе TFSОрганизация процессов разработки на основе TFS
Организация процессов разработки на основе TFS
 
Отчеты в TFS VSO  и практики аналитики
Отчеты в TFS VSO  и практики аналитикиОтчеты в TFS VSO  и практики аналитики
Отчеты в TFS VSO  и практики аналитики
 
Организация работы с требованиями и документацией в TFS
Организация работы с требованиями и документацией в TFSОрганизация работы с требованиями и документацией в TFS
Организация работы с требованиями и документацией в TFS
 
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
Сквозное обеспечение качества и расширяемость платформы на примере тестирован...
 

Último

СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
Хроники кибер-безопасника
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Ирония безопасности
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Ирония безопасности
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
Хроники кибер-безопасника
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
Хроники кибер-безопасника
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
Хроники кибер-безопасника
 

Último (9)

MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 

Изучение кода с использованием инструментов архитектуры в Visual Studio Ultimate 2012

  • 1. Практическое занятие Изучение Кода с использованием Инструментов Архитектуры в Visual Studio Ultimate 2012 Версия практической: 11.0.51106.01 Обновление 1 Последнее обновление: 27.11.2012
  • 2. СОДЕРЖИМОЕ ОПИСАНИЕ.................................................................................................................................................3 УПРАЖНЕНИЕ 1: ВВЕДЕНИЕ В ВОЗМОЖНОСТИ ГЕНЕРИРОВАНИЯ ГРАФА ЗАВИСИМОСТЕЙ .3 УПРАЖНЕНИЕ 2: ВВЕДЕНИЕ В ВОЗМОЖНОСТИ НАВИГАЦИИ ГРАФА ЗАВИСИМОСТЕЙ.........14 УПРАЖНЕНИЕ 3: РАБОТА С УЗЛАМИ ГРАФА И ГРУППИРОВКА ....................................................26
  • 3. Описание В этой практической работе вы узнаете, как создавать и просматривать графы зависимости с Visual Studio Ultimate 2012 в порядке для лучшего понимания архитектуры системы. Предварительные требования Чтобы выполнить это практическое занятие, вам необходима виртуальная машина Visual Studio 2012 предоставляемая Microsoft. Для получения дополнительной информации по получению и использованию этой виртуальной машины, пожалуйста, см. это сообщение в блоге. Обновление практической работы Для Обновления 1 были сделаны следующие изменения для данного практического занятия:  Добавлен дополнительный шаг для Упражнения 2 - введение в возможности соответствия кода. Упражнения Эта практическая работа содержит следующие упражненния: 1. Введение в возможности Генерирования Графа Зависимостей 2. Введение в возможности Навигации Графа Зависимостей 3. Работа с Узлами Графа и Группировка Оценочное время выполнения заданий: 30 минут. Упражнение 1: Введение в возможности Генерирования Графа Зависимостей В этом упражнении вы узнаете, как создать граф зависимостей, который показывает отношения между типами сборки приложений (таких как вызовы, наследования, возвратов и так далее), а также типов внешних сборок. 1. Зарегистрироваться как Julia. Пароли у всех пользователей P2ssw0rd.
  • 4. 2. Запустите Microsoft Visual Studio из Start | All Programs | Microsoft Visual Studio 2012 | Visual Studio 2012. 3. Нажмите ссылку Connect to Team Foundation Server на Стартовой Странице. Рисунок 1 Подключение к Team Foundation Server 4. Выберите TailspinToysCollection и нажмите Connect для продолжения. Если появится запрос на подтверждение, выберите Yes. Рисунок 2 Выбор проекта TailspinToysCollection 5. Откройте Source Control Explorer, нажав на ссылке в Team Explorer | Home.
  • 5. 6. В Source Control Explorer перейдите к Tailspin Toys | Development | Iteration 2 и выполните двойной щелчок мыши на файле TailspinToys.sln для открытия решение Tailspin Toys. Рисунок 3 Открытие проекта 7. Перестройте решение (Build | Rebuild Solution из главного меню). Этот шаг может занять несколько минут до завершения. 8. Самый быстрый способ начать работу - это генерирование общего графа зависимостей для всего решения. Создайте новый граф зависимостей (Architecture | Generate Dependency Graph | For Solution). Граф зависимостей хранится в формате Directed Graph Markup Language (далее DGML), который позволяет вам работать с ним с помощью Visual Studio 2012, а также других стандартных инструментов. Примечание: Создание графа зависимостей для всех проектов в решении первоначально может занять несколько минут. При создании графа зависимостей в первый раз, создается индекс кода для всех зависимостей, которые встречаются, чтобы улучшить производительность последующих операций.
  • 6. Рисунок 4 Граф зависимостей для всего решения 9. На данный момент у нас только представление зависимостей между сборками, которые являются частью решения, и внешними сборками. Серые линии различной толщины представляют величину отношений взаимозависимостей между сборками, чем больше толщина линии, тем больше связь. Каждый узел сборки может быть динамически раскрыт, чтобы показать содержащиеся дочерние узлы, которые мы будем изучать в следующем упражнении. Рисунок 5 Узлы могут раскрываться динамически Примечание: Представление сгенерированного графа зависимостей, которые вы видите, может отличаться от показанного на рисунке. Вам, возможно, потребуется
  • 7. дополнительно масштабировать, прокрутить и визуально найти объекты, указанные в шагах практической работы. 10. Очистите диаграмму, нажав Ctrl + A и затем клавишу Delete. 11. Можно также начать с создания граф зависимостей с более узкой области с помощью Solution Explorer или Architecture Explorer. Это позволит вам выбрать только те типы или члены, которые вы хотите видеть, и затем создать новый граф или добавить эти элементы на существующий граф. 12. Скажем, мы заинтересованы в поиске зависимостей и других отношений класса Product, в рамках проекта Tailspin.Model. Сузьте область Solution Explorer, щелкнув правой кнопкой мыши на узел проекта Tailspin.Model и выбрав параметр Scope to This. Рисунок 6 Ограничение по определенному проекту в Solution Explorer 13. В поле поиска Solution Explorer введите “Product” для выполнения поиска. Это быстро найдет и подсветит код, который содержит искомую строку.
  • 8. Рисунок 7 Поиск текста в типах и членах решения 14. Выберите результаты поиска, нажав в любом месте и выбрав Ctrl + A.
  • 9. Рисунок 8 Выбор всего результата поиска 15. На панели инструментов Solution Explorer нажмите кнопку Show on Code Map. Рисунок 9 Добавление выбранных типов и методов из Solution Explorer в активный граф 16. Полученный граф теперь показывает выбранный и связанные классы с Product, члены и их отношения друг с другом.
  • 10. Figure 10 Граф, показывающий выбранные типы и члены Примечание: Можно также перетащить типы и члены из окна Solution Explorer в граф. Ваш граф может выглядеть немного иначе. 17. Еще одним способом для создания или добавления графа зависимостей является использование Architecture Explorer, который обеспечивает тонкую настройку навигации и выбора типов и членов. Откройте Architecture Explorer из Architecture | Windows. Рисунок 11 Начальное представление Architecture Explorer
  • 11. 18. Допустим, что мы хотим видеть, как связанные типы и методы Product из проекта Tailspin.Model относятся к проекту Tailspin.Web. В Architecture Explorer выберите параметр Class View для просмотра всех доступных пространств имен. Рисунок 12 Начало навигации в Class View 19. В поле поиска над списком имен введите «Tailspin.Web» и нажмите Enter, чтобы показать только пространства имен, определенных в рамках проекта Tailspin.Web. Рисунок 13 Ограничение результатов пространства имен с использованием фильтра 20. Выберите все пространства имен с помощью Ctrl + A для получения списка всех содержащихся типов.
  • 12. Рисунок 14 Продолжение навигации выбором пространства имен 21. Как только все типы для пространства имен Tailspin.Web.* отображены, выберите их все (снова с использованием Ctrl + A). Рисунок 15 Выбор всех перечисленных типов 22. Нажмите мышкой и удерживайте на выбранных типах и затем начните перетаскивать на текущий граф зависимостей. Перед тем как отпустить на граф зажмите клавишу Ctrl и бросьте типы на граф. Модификатор элемента управления вызовет родительские контейнеры для добавления типов на диаграмму.
  • 13. Рисунок 16 Объединение дополнительных типов на существующих граф 23. В результате объединения новые типы с существующим графом приведет к представлению, которое обеспечивает некоторое понимание как веб-приложение относится к классам Product из проекта Tailspin.Model.
  • 14. Рисунок 17 Часть представления графа, который показывает, как выбранные сущности связаны Примечание: Для изучения как использовать Architecture Explorer смотрите практическую работу “Использование Architecture Explorer в Visual Studio Ultimate 2012 для анализа вашего кода”. Упражнение 2: Введение в возможности Навигации Графа Зависимостей В этом упражнении мы узнаем больше о том, манипулировать и выполнять навигацию в графе зависимостей. 1. Начнем с графа, который мы подготовили в ходе последнего задания, увеличьте и распределите по необходимости, для того получить хорошее представление узла класса HomeController. Примечание: Масштабировать можно с помощью кнопок на панели инструментов графа или просто с помощью колеса прокрутки мыши.
  • 15. Рисунок 18 Часть представления графа с классом HomeController 2. Выберите узел класса HomeController и задержите курсор мыши над линией связи пока не появится один из Target Node для IProductRepository. Рисунок 19 Просмотр связей между узлами графа
  • 16. 3. Элемент управления навигацией, который появляется при наведении на линии связи, предоставляет два действия, которые позволяют перемещаться к исходному или целевому узлу. Нажмите на стрелку, указывающую от узла класса HomeController для навигации к IProductRepository. Рисунок 20 Навигация к другому узлу графа 4. Используйте кнопку Zoom To Fit на панели инструментов графа для подгонки всего для отображения на экране. Рисунок 21 Расположение кнопки Zoom To Fit 5. Вы должны теперь видеть, как класс HomeController связан с интерфейсом IProductRepository, с помощью вызовов GetProduct и GetProductCategory.
  • 17. Рисунок 22 Граф зависимостей, который показывает, как класс HomeController использует IProductRepository 6. Вы также можете перейти из графа непосредственно к связанному коду. Дважды щелкните на узле HomeController для загрузки HomeController.cs в окне редактора кода.
  • 18. Рисунок 23 Переход из графа к источнику 7. Здесь вы можете увидеть точно, как методы, определенные в интерфейсе, используются в коде. Рисунок 24 Представление кода для HomeController 8. Обновление 1 содержит новую функцию, называемую Code Map, чтобы облегчить одновременную навигацию и визуализацию кода. Опираясь на существующую функциональность, такую как ориентированные графы, она позволяет вам перемещаться по вашему исходному коду и добавлять выбранные классы, члены, поля и так далее непосредственно в представление графа. Например, щелкните правой кнопкой мыши на
  • 19. методе Index в рамках класса HomeController и выберите Show on Code Map из контекстного меню. Рисунок 25 Визуализация метода напрямую из редактора исходного кода 9. Поведение по умолчанию при переходе к источнику — это размещение графа зависимостей в группе вторичных вкладок, чтобы исходный код и граф были видны в одно и то же время. Это дополнительно обеспечивает одновременную навигацию и визуализацию. Кроме того обратите внимание, что указатель с зеленой стрелкой отображается рядом с узлом индекса в представлении графика и что определение метода индекс выделен в окне редактора исходного кода. Рисунок 26 Функциональность Code Map в действии Примечание: При использовании функции Code Map полезно делать граф и исходный код видимыми в одно и то же время, либо с помощью групп вкладок или плавающего представления графа и поместив его в своем собственном окне (при использовании нескольких мониторов). Visual Studio автоматически сделает это для вас в некоторых обстоятельствах, но если у вас уже есть открытый граф в той же группе вкладок, что и файл исходного кода, они будут восстанавливаться в той же группе вкладок. 10. Поместите курсор на строку, которая определяет класс HomeController, еще раз обратите внимание, что функцию Code Map также обновляет представление графа, показывая зеленую стрелку рядом с узлом HomeController.
  • 20. Рисунок 27 Code Map синхронизирует представление кода и графов 11. Функция Code Map также предоставляет ряд других функций визуализации через редактор кода. Щелкните правой кнопкой мыши на определении метода Index и выберите Show Related Items on Code Map | Show Methods This Calls. В более сложных методах это может помочь показать, как часть кода взаимодействует со своим собственным классом, другими архитектурными слоями приложения и внешним кодом. Рисунок 28 Визуализация вызовов методов из кода
  • 21. Рисунок 29 Граф, показывающий методы вызываемые методом Index 12. Теперь давайте рассмотрим, как мы можем перемещаться по графу, чтобы определить, как мы используем внешние сборки. Создайте новый граф зависимостей из Architecture | Generate Dependency Graph | For Solution. 13. Разверните группу Externals для поиска внешних сборок, используемых приложением Tailspin.
  • 22. Рисунок 30 Развертывание группы Externals 14. Увеличьте и перейдите в узел System.Web.dll в группе Externals так чтобы вы видели все используемые пространства имен. Рисунок 31 Развертывание узла System.Web.dll 15. Найдите и разверните узел System.Web.Routing, чтобы увидеть содержимое.
  • 23. Рисунок 32 Развертывание узла Systm.Web.Routing 16. Выберите узел класса RouteTable для просмотра линий связей. Рисунок 33 Узел класса RouteTable, показывающий входящие ссылки 17. Найдите и выберите линию связи от исходного узла в Tailspin.WebUpgraded.dll. Мы могли бы просто использовать кнопки со стрелками для перехода к исходному узлу, как мы делали это ранее, но на этот раз, давайте создадим новый граф, который просто содержит отношения, которые в настоящее время мы заинтересованы найти. Чтобы создать новый граф, нажмите с shift-том левой кнопкой мыши в центре на кнопку +.
  • 24. Рисунок 34 Создание нового графа показывает выбранные связи 18. В результирующем графе вы можете видеть, что метод MvcApplication.Application_Start вызывает метод get_Routes (по сути, свойство RouteTable.Routes).
  • 25. Рисунок 35 Граф, показывающие выбранные связи 19. Закройте схемы ссылок без сохранения изменений.
  • 26. Упражнение 3: Работа с Узлами Графа и Группировка В этом упражнении вы узнаете, как уменьшить сложность графа зависимостей, путем удаления нежелательных узлов, регулируя группировки узлов и изменения свойств узла графа. 1. Если продолжаете предыдущее упражнение, закройте графа ссылок и вернитесь к начальному графу зависимостей. Затем выберите Advanced | Group | Collapse All.. В любом случае, перегенерируйте граф, выбрав Architecture | Generate Dependency Graph | For Solution. Рисунок 36 Граф зависимостей для всего решения 2. Разверните узел Externals из графа зависимостей для открытия внешних сборок, используемых приложением Tailspin. Рисунок 37 Открытая группа Externals, которая показывает входящие связи
  • 27. Примечание: Толстые серые линии связи подключены к группе Externals, останавливаясь на границе группы. Цель этого заключается в том, чтобы уменьшить визуальную сложность графа зависимостей. Если вы удалите группировку Externals, вы сможете увидеть все линии прямой связи между внешними и внутренними сборками, а также более подробно между сборками, которые сгруппированы в пределах Externals. 3. Выберите узел сборки mscorlib.dll и нажмите клавишу Delete, чтобы удалить его из графа. Обоснование удаления этого узла, а также многих других широко используемых внешних сборок и типов, может быть в том, что они добавляют слишком много шума в граф и не позволяет в нем легко ориентироваться. Рисунок 38 Удаление узла из графа 4. Удалите узел System.dll из группы Externals. 5. Выберите группу Externals, щелкните правой кнопкой мыши и Advanced | Group | Remove Group. Это позволит удалить группировку, но не узлы графа, содержащиеся в ней. 6. Удалите узел Tailspin.Test.Model.dll из графа. Мы должны удалить этот узел, чтобы получить лучшее видение как развернутое приложение работает без компонентов тестирования.
  • 28. Рисунок 39 Упрощенный граф зависимостей 7. Хотя удаление группы Externals дает нам лучшее представление о том, что происходит, это делает его трудно различимым между сборками приложения и теми, которые были ранее сгруппированы, как Externals. Это может быть исправлено путем добавления свойства узла для окрашивания в другой цвет для внешней сборки. Нажмите кнопку + на панели Legend и выберите Node Property | Is External.
  • 29. Рисунок 40 Создание свойства узла, которое ссылается на IsExternal 8. Это свойство узда Is External добавляется к панели Legend. Левой кнопкой мыши нажмите на сером поле справа от свойства Is External и выберите свойство Background..., чтобы загрузить окно Color Set Picker. Рисунок 41 Модификация цвета фона на основе свойства IsExternal 9. В окне Color Set Picker, выберите True в выпадающем поле и выберите красный цвет (или другой отличный от синего цвета) и нажмите кнопку ОК.
  • 30. Рисунок 42 Выбор другого цвета для свойства, когда оно справедливо
  • 31. Рисунок 43 Граф зависимостей, показывающий узлы внешних ссылок красным цветом Свои отзывы и предложения вы можете отправить по электронной почте: VSKitFdbk@Microsoft.com © 2013 г. Корпорация Microsoft. Все права защищены.