Действие Посмотрите на ссылки определенного проекта, а затем посмотрите следующее видео. Текст Представьте себе, что вашей ...

Действие
Посмотрите на ссылки определенного проекта, а затем посмотрите следующее видео.

Текст
Представьте себе, что вашей команде пришлось выполнить несколько построений, прежде чем было получено успешное построение.

Вы полагаете, что имеется циклическая зависимость, но не знаете где именно?

Вам когда-нибудь хотелось узнать, почему у ваших проектов именно такие зависимости? 

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

Диаграммы зависимостей Visual Studio помогут решить все эти задачи. 



Действие
В меню "Архитектура" выберите команду "Сформировать диаграмму зависимостей" и пункт "Для решения".

Текст
Формирование диаграммы зависимостей позволяет получить более общее представление о решении.

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

Например, мы уже видим, что модульные тесты не тестируют ничего в решении. Фактически они вообще ничего не тестируют.



Действие
В легенде выберите "Добавить" и добавьте анализатор циклических зависимостей.

Текст
Это решение достаточно большое, поэтому мы не можем сразу увидеть какие-либо неожиданные зависимости. 

Однако мы можем добавить анализатор циклических зависимостей, чтобы найти такие зависимости. 



Действие
В результате будут выделены 3 сборки.

Текст
И действительно, мы видим 3 сборки, которые ссылаются друг на друга. 

Мы сэкономили немало времени. И теперь нужно исправить это! 



Действие
Изучите связи между этими тремя сборками.

Текст
Обратите внимание, что линия зависимости между этими двумя сборками гораздо тоньше, чем связи между остальными сборками. 

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



Действие
Щелкните подозрительную (более тонкую) связь и запросите входящие в нее связи.

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

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

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



Действие
Перетащите метод в вызывающую сборку. Обратите внимание, что это не решает проблему полностью. 

Текст
Мы видим, что есть еще ссылка на статическое поле. Его можно тоже перенести.



Действие
Перетащите поле, чтобы решить проблему.

Текст
Итак, нам удалось проверить нашу теорию и найти подходящее решение.



Действие
Нажмите клавишу F12 или воспользуйтесь командой меню перехода. 

Разделите экран на диаграмму и код, а затем с помощью диаграммы перемещайтесь по коду.

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



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

Текст
Теперь мы можем передать эти изменения команде, например на этапе анализа кода.
Действие Переход к Visual Studio 2012 с открытым обозревателем тестов, в редакторе кода открыт класс теста, открыт обозреватель ... Действие Покажите Visual Studio 2012 с открытым обозревателем тестов, тестовым классом в редакторе кода и открытым обозревателем ... Действие Покажите решение с 2 параллельно открытыми файлами в редакторе. По ходу повествования создайте прямоугольники выделения ... Действие Пользователь вводит код; в некоторый момент он открывает другой файл из Обозревателя решений в вводит некоторый ... Действие Посмотрите на ссылки определенного проекта, а затем посмотрите следующее видео. Текст Представьте себе, что вашей ... Действительно восстановить предыдущий снимок? Текущее состояние среды будет утеряно. Если в среде выполняются какие-либо ... Действительно восстановить снимок "{0}"? Текущее состояние среды будет потеряно. Если в среде выполняются какие-либо тесты, ... Действительно удалить выбранный узел и все его подчиненные узлы? В настоящий момент эту область можно использовать для классификации ... Действительно удалить параметры интеграции? В случае удаления этих настроек командные проекты и коллекции командных проектов ...