Практическое руководство. Проверка кода C and C++ по схеме слоев
Данный пакет дополнительных компонентов Visual Studio 2010 позволяет принудительно применять архитектурные ограничения в отношении кода C и С++ в Visual Studio 2010 Ultimate по мере изменения кода. Для выполнения этой задачи регулярно запускайте проверку слоев, чтобы сравнить зависимости в коде с зависимостями на схеме слоев. Схема слоев описывает архитектуру системы и позволяет организовать пространства имен, проекты и другие артефакты решения в логические, абстрактные группы или слои. Эти слои описывают основные компоненты системы или задачи, выполняемые этими артефактами. Для создания схемы слоев для кода C или С++ выполните те же шаги, что и при работе с кодом .NET. Дополнительные сведения см. в разделах Практическое руководство. Создание схем слоев из артефактов и Пакеты функций Visual Studio.
Примечание
Для использования этой функции необходимо установить пакет дополнительных компонентов для Visual Studio 2010.
Для двоичных файлов проверка слое выполняется только на двоичном уровне.Хотя со схемой слоев можно связать и другие типы артефактов, проверка слоев позволяет проанализировать только зависимости на двоичном уровне.
Кроме того, проверка слоев помогает выполнить следующие задачи.
Увидеть различия между существующим кодом и предполагаемой структурой.
Найти код, организованный не так, как предполагалось, или имеющий нежелательные зависимости.
Найти зависимости, на которые могут повлиять предложенные изменения.
Например, можно изменить схему слоев для отображения потенциальных изменений архитектуры, а затем проверить код, чтобы увидеть зависимости, на которые повлияли эти изменения.
Выполнить рефакторинг или миграцию кода в другую структуру.
Найти код или зависимости, с которыми потребуется выполнить определенные действия даже после перемещения кода в другую архитектуру.
В этом разделе описываются требования, которые необходимо удовлетворить перед выполнением проверки слоев в коде C или С++.
Требования
Убедитесь, что Visual C# установлен с системой Visual Studio.
Создайте проект моделирования со схемой слоев.
Для проверки зависимостей двоичных файлов добавьте двоичные файлы в проект моделирования.
Сведения о проверке проектов С и С++ в Team Foundation Build см. в разделе Требования к построению Team Foundation.
Удовлетворив эти требования, можно выполнять те же действия, что и при работе с кодом .NET. Порядок операций см. в разделе Практическое руководство. Проверка кода .NET по схеме слоев. Сведения о проблемах с проектами моделирования и схемами слоев, созданными из кода C или С++, см. в разделе Устранение неполадок.
Создание проекта моделирования со схемой слоев
Решение Visual Studio должно включать проект моделирования со схемой слоев.
Создание проекта моделирования
В окне Обозреватель решений щелкните правой кнопкой мыши узел решения верхнего уровня, выберите команду Добавить и щелкните Создать проект.
В диалоговом окне Добавить новый проект, в разделе Установленные шаблоны щелкните Проекты моделирования и выберите Проект моделирования.
Переименуйте проект и нажмите кнопку ОК.
Visual Studio добавляет в решение новый проект моделирования.
Не забудьте сохранить проект моделирования.
Создание схемы слоев
В меню Архитектура щелкните Создать схему, затем в диалоговом окне Добавление новой схемы щелкните Схема слоев.
Переименуйте схему, выберите проект моделирования и нажмите кнопку ОК.
Visual Studio добавляет пустую схему слоев в проект моделирования, а затем отображает эту схему.
Из окна Обозреватель решений перетащите хотя бы один проект C или С++ на поверхность схемы слоев.
- или -
Из окна Обозреватель архитектуры перетащите хотя бы один двоичный файл на поверхность схемы слоев.
Выполнение любого из этих действий также позволяет автоматически добавить в проект моделирования следующие элементы:
Ссылки проекта на проект моделирования.
Элемент <Import> в файл проекта моделирования (MODELPROJ-файл), импортирующий пользовательский TARGETS-файл и включающий проверку слоев дл кода С или С++.
Определите другие слои, свяжите с ними артефакты и опишите предусмотренные зависимости между этими артефактами.
Дополнительные сведения см. в разделах Практическое руководство. Создание схем слоев из артефактов и Схемы слоев: рекомендации.
Не забудьте сохранить проект моделирования.
Важно!
Если сохранить только схему слоев (не сохраняя проект моделирования) и закрыть решение, необходимо будет добавить ссылки проекта С или С++ и импортировать пользовательские TARGETS-файлы в проект моделирования вручную.Дополнительные сведения см. в разделе Устранение неполадок.
Важно!
При создании схемы слоев из кода C или C++ в Visual Studio 2010 Ultimate в операционной системе Windows XP или Windows 2003 абсолютный путь используется для создания записи в файле проекта моделирования (MODELPROJ-файле) и импорта пользовательского файла Microsoft.VisualStudio.Progression.NativeProvider.targets.В связи с этим при попытке открыть решение в Windows 7, Windows Vista или Windows Server 2008 могут возникнуть проблемы.Если Visual Studio 2010 Ultimate выполняется в операционной системе Windows XP или Windows 2003, открыть схемы слоев, созданные в Visual Studio 2010 Ultimate в операционной системе Windows 7, Windows Vista или Windows Server 2008, невозможно.Описание способов разрешения этой проблемы см. в разделе Устранение неполадок.
Добавление двоичных файлов в проект моделирования
Если требуется проверить зависимости двоичных файлов, необходимо вручную добавить двоичные файлы для проверки в проект моделирования. Зависимости не добавляются автоматически при перетаскивании на схему слоев.
Добавление двоичных файлов в проект моделирования
В окне Обозреватель решений щелкните правой кнопкой мыши проект моделирования и выберите пункт Добавить существующий элемент.
В диалоговом окне Добавление существующего элемента найдите двоичные файлы, выберите их и нажмите кнопку ОК.
Двоичные файлы отображаются в проекте моделирования.
В окне Обозреватель решений щелкните добавленный двоичный файл и нажмите клавишу F4, чтобы открыть окно Свойства.
Для каждого двоичного файла задайте свойству Действие при построении значение Проверка.
Требования к построению Team Foundation
Для проверки проектов C и C++ на сервере Team Foundation Build необходимо выполнить следующие действия:
Перед компиляцией проектов убедитесь, что на сервере установлены следующие компоненты:
Один из следующих компонентов: Visual C++ 2010 Express, Visual Studio 2010 Professional, Visual Studio 2010 Premium или Visual Studio 2010 Ultimate
Совет
Если система Visual Studio 2010 Ultimate установлена на сервере, вместо выполнения шагов 2 и 3 можно установить на сервере пакет дополнительных компонентов.В противном случае если на сервере не существует папки …\<имя_пакета_дополнительных_компонентов_Visual_Studio>\<номер_версии_пакета_дополнительных_компонентов_Visual_Studio>, ее необходимо будет создать.За исключением случаев установки пакета дополнительных компонентов в другом местоположении %LocalAppData% — имя_диска:\Users\имя_пользователя\AppData\Local.В Windows XP или Windows 2003 вместо %LocalAppData% следует использовать переменную %AppData%.
Если установлен пакет дополнительных компонентов визуализации и моделирования Visual Studio 2010:
Копируйте файл Microsoft.VisualStudio.Progression.NativeProvider.targets из следующего местоположения установки пакета дополнительных компонентов в то же местоположение на сервере:
%LocalAppData%\Microsoft\VisualStudio\10.0\Extensions\Microsoft\<имя_пакета_дополнительных_компонентов_Visual_Studio>\1.0
Если установлен пакет дополнительных компонентов Visual Studio 2010 Feature Pack 2:
Копируйте файл Microsoft.VisualStudio.Progression.NativeProvider.targets из следующего местоположения установки пакета дополнительных компонентов:
…\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\<имя_пакета_дополнительных_компонентов_Visual_Studio>\<номер_версии_пакета_дополнительных_компонентов_Visual_Studio>
в следующее местоположение на сервере:
…\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Modeling\<имя_пакета_дополнительных_компонентов_Visual_Studio>\1.0
Копируйте файл Microsoft.VisualStudio.Progression.NativeProvider.dll из одного из следующих местоположений установки пакета дополнительных компонентов в зависимости от версии установленного пакета дополнительных компонентов:
Пакет дополнительных компонентов визуализации и моделирования Visual Studio 2010: %LocalAppData%\Microsoft\VisualStudio\10.0\Extensions\Microsoft\<имя_пакета_дополнительных_компонентов_Visual_Studio>\1.0
Пакет дополнительных компонентов 2 Visual Studio 2010: …\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\<имя_пакета_дополнительных_компонентов_Visual_Studio>\<номер_версии_пакета_дополнительных_компонентов_Visual_Studio>
в следующее местоположение на сервере:
…\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\Providers
Устранение неполадок
Если сохранить только схему слоев (не сохраняя проект моделирования) и закрыть решение, необходимо будет добавить ссылки проекта С или С++ и импортировать пользовательские TARGETS-файлы в проект моделирования вручную, выполнив следующие действия:
Операция |
Выполните следующие действия |
---|---|
Добавление ссылок проекта C или С++ |
|
Импорт пользовательского TARGETS-файла |
|
При создании схемы слоев из кода C или C++ в Visual Studio 2010 Ultimate в операционной системе Windows XP или Windows 2003 абсолютный путь используется для создания записи в файле проекта моделирования (MODELPROJ-файле) и импорта пользовательского файла Microsoft.VisualStudio.Progression.NativeProvider.targets. В связи с этим при попытке открыть решение в Windows 7, Windows Vista или Windows Server 2008 могут возникнуть проблемы. Если Visual Studio 2010 Ultimate выполняется в операционной системе Windows XP или Windows 2003, открыть схемы слоев, созданные в Visual Studio 2010 Ultimate в операционной системе Windows 7, Windows Vista или Windows Server 2008, невозможно.
Для устранения этой проблемы воспользуйтесь одним из перечисленных ниже решений.
Копируйте файл Microsoft.VisualStudio.Progression.NativeProvider.targets из следующего местоположения в папку, содержащую проект моделирования:
Если установлен пакет дополнительных компонентов визуализации и моделирования Visual Studio 2010:
%LocalAppData%\Microsoft\VisualStudio\10.0\Extensions\Microsoft\<имя_пакета_дополнительных_компонентов_Visual_Studio>\1.0
Совет
За исключением случаев установки пакета дополнительных компонентов в другом местоположении %LocalAppData% — имя_диска:\Users\имя_пользователя\AppData\Local.В Windows XP или Windows 2003 вместо %LocalAppData% следует использовать переменную %AppData%.
Если установлен пакет дополнительных компонентов Visual Studio 2010 Feature Pack 2:
…\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\<имя_пакета_дополнительных_компонентов_Visual_Studio>\<номер_версии_пакета_дополнительных_компонентов_Visual_Studio>
В MODELPROJ-файле обновите элемент <Import> для TARGETS-файла, заменив абсолютный путь относительным путем TARGETS-файла. Примеры.
<Import Project="Microsoft.VisualStudio.Progression.NativeProvider.targets" />
Важно!
Если используется управление версиями, необходимо выполнить возврат TARGETS-файла в систему управления версиями.
- или -
Создайте новую переменную среды, представляющую путь установки файла Microsoft.VisualStudio.Progression.NativeProvider.dll.
Воспользуйтесь этой переменной для импорта TARGETS-файла.
Например, можно создать переменную среды NativeProviderTargetPath, указывающую на местоположение TARGETS-файла. После этого можно обновить элемент <Import> следующим образом:
<Import Project="$(NativeProviderTargetPath)\Microsoft.VisualStudio.Progression.NativeProvider.targets" />
Важно!
Убедитесь в правильном задании переменной среды в разных операционных системах.
См. также
Задачи
Практическое руководство. Создание схем слоев из артефактов
Практическое руководство. Проверка кода .NET по схеме слоев
Основные понятия
Журнал изменений
Дата |
Журнал |
Причина |
---|---|---|
Декабрь 2010 |
Обновлено с учетом пакета дополнительных компонентов Visual Studio 2010 Feature Pack 2. |
Улучшение информации. |