Поделиться через


Практическое руководство. Проверка кода .NET по схеме слоев

Этот раздел применим к:

Visual Studio Ultimate

Visual Studio Premium

Visual Studio Professional

Visual Studio Express

Тема применяется Тема применяется Тема не применяется Тема не применяется

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

  • Увидеть различия между существующим кодом и предполагаемой структурой.

  • Найти код, организованный не так, как предполагалось, или имеющий нежелательные зависимости.

  • Найти зависимости, на которые могут повлиять предложенные изменения.

    Например, можно изменить схему слоев для отображения потенциальных изменений архитектуры, а затем проверить код, чтобы увидеть зависимости, на которые повлияли эти изменения. Дополнительные сведения см. в разделах Практическое руководство. Создание схем слоев из артефактов и Схемы слоев: рекомендации.

  • Выполнить рефакторинг или миграцию кода в другую структуру.

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

Чтобы можно было проверять код, решение Visual Studio должно содержать по крайней мере один проект моделирования со схемой слоев. Эта схема слоев описывает архитектуру системы и позволяет организовать пространства имен, проекты и другие артефакты решения в логические, абстрактные группы или слои. Эти слои описывают основные компоненты системы или задачи, выполняемые этими артефактами. Необходимо определить эти слои, связать с ними артефакты и описать предусмотренные зависимости между этими артефактами.

Примечание

Существуют определенные типы артефактов, которые можно связать со слоями, но которые не позволяют проводить проверку относительно схемы слоев.Чтобы узнать, позволяет ли артефакт проводить проверку, откройте Обозреватель слоев, чтобы просмотреть свойство Поддержка проверки ссылки на артефакт.Дополнительные сведения см. в разделе Артефакты, не поддерживающие проверку.

Дополнительные сведения о создании схем слоев см. в следующих разделах.

Для проверки кода на языке C или C++ загрузите и установите Пакет функций визуализации и моделирования Microsoft Visual Studio 2010.

Дополнительные сведения см. в разделе Практическое руководство. Проверка кода C and C++ по схеме слоев.

Содержание раздела

  • Добавление проверяемых сборок и проектов вручную.

  • Проверка кода вручную в любое время.

  • Автоматическая проверка кода во время локального построения.

  • Автоматическая проверка кода во время построения Team Foundation Build.

  • Устранение неполадок проверки слоев.

Добавление проверяемых сборок и проектов вручную

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

Ручное добавление сборок и проектов для проверки

  1. В Обозревателе решений щелкните правой кнопкой мыши проект моделирования или папку Ссылки слоя и нажмите кнопку Добавить ссылку.

  2. В диалоговом окне Добавление ссылки выберите сборки или проекты и нажмите кнопку ОК.

Проверка кода вручную в любое время

Проверка кода из открытой схемы слоев

  1. Щелкните правой кнопкой мыши поверхность схемы и выберите пункт Проверить архитектуру.

    Примечание

    По умолчанию свойству Действие построения в файле схемы слоев (LAYEDIAGRAM-файл) присвоено значение Проверить, т. е. схема включена в процесс проверки.

    В окне Список ошибок выводятся происходящие ошибки. Дополнительные сведения об ошибках проверок см. в разделе Общее представление об ошибках проверки слоев.

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

    Примечание

    Visual Studio может вместо источника ошибки показывать граф зависимостей.Это происходит, если код имеет зависимость в сборке, не заданной схемой слоев, либо в коде отсутствует зависимость, заданная схемой слоев.Просмотрите граф зависимостей или код, чтобы определить, должна ли существовать зависимость.Дополнительные сведения о графах зависимостей см. в разделе Практическое руководство. Обзор документов с графами и навигация по этим документам.

  3. Способы устранения ошибок см. в разделе Управление ошибками проверки.

Проверка кода из командной строки

  1. Откройте командную строку Visual Studio.

    Чтобы открыть командную строку, последовательно щелкните Пуск, Все программы, Microsoft Visual Studio 2010, Средства Visual Studio и Командная строка Visual Studio 2010.

  2. Выберите один из следующих вариантов.

    • Чтобы проверить код на соответствие конкретному проекту моделирования в решении, запустите MSBuild со следующим пользовательским свойством.

      msbuild <FilePath+ModelProjectFileName>.modelproj
      /p:ValidateArchitecture=true
      

      - или -

      Откройте папку, в которой находится файл проекта моделирования (MODELPROJ-файл) и схема слоев, и запустите MSBuild со следующим пользовательским свойством.

      msbuild /p:ValidateArchitecture=true 
      
    • Чтобы проверить код на соответствие всем проектам моделирования в решении, запустите MSBuild со следующим пользовательским свойством.

      msbuild <FilePath+SolutionName>.sln /p:ValidateArchitecture=true 
      

      - или -

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

      msbuild /p:ValidateArchitecture=true
      

    Отобразятся любые возникающие ошибки. Дополнительные сведения о MSBuild см. в разделах MSBuild и Задача MSBuild.

Дополнительные сведения об ошибках проверки см. в разделе Общее представление об ошибках проверки слоев.

Управление ошибками проверки

В процессе разработки может понадобиться подавить некоторые конфликты, выявленные в ходе проверки. Например, можно подавлять ошибки, над которыми уже ведется работа, а также ошибки, не имеющие отношения к конкретному сценарию. При подавлении ошибки рекомендуется фиксировать рабочий элемент в журнале в Team Foundation.

Создание рабочего элемента для ошибки проверки

  • В окне Список ошибок щелкните правой кнопкой мыши ошибку, подведите указатель к команде Создать рабочий элемент, а затем щелкните тип рабочего элемента, который требуется создать.

Для управления ошибками проверки в окне Список ошибок воспользуйтесь следующими процедурами.

Целевой тип

Выполните следующие действия

Подавить выбранные ошибки во время проверки

Щелкните одну или несколько выбранных ошибок правой кнопкой мыши и последовательно выберите Управление ошибками проверки и Подавление ошибок.

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

Подавленные ошибки отслеживаются в SUPPRESSIONS-файле, относящемся к соответствующему файлу схемы слоев.

Остановить подавление выбранных ошибок

Щелкните выбранную подавленную ошибку или ошибки правой кнопкой мыши и последовательно выберите Управление ошибками проверки и Отменить подавление ошибок.

При выполнении проверки в следующий раз выбранные подавленные ошибки будут отображаться.

Восстановить все подавленные ошибки в окне Список ошибок.

Щелкните правой кнопкой мыши в любом месте окна Список ошибок и последовательно выберите Управление ошибками проверки и Показать все подавленные ошибки.

Скрыть все подавленные ошибки в окне Список ошибок.

Щелкните правой кнопкой мыши в любом месте окна Список ошибок и последовательно выберите Управление ошибками проверки и Скрыть все подавленные ошибки.

Автоматическая проверка кода во время локального построения

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

Автоматическая проверка кода во время локального построения

  • Откройте файл проекта моделирования (.modelproj) в текстовом редакторе и включите следующее свойство.
<ValidateArchitecture>true</ValidateArchitecture>

- или -

  1. В Обозревателе решений щелкните правой кнопкой мыши проект моделирования, который содержит схему или схемы слоев, и выберите пункт Свойства.

  2. В окне Свойства свойству Проверка архитектуры проекта моделирования необходимо задать значение True.

    Это позволяет включить проект моделирования в процесс проверки.

  3. В Обозревателе решений щелкните файл схемы слоев (LAYERDIAGRAM-файл), который нужно использовать для проверки.

  4. Убедитесь, что свойство схемы Действие построения в окне Свойства имеет значение Проверить.

    Это позволяет включить схему слоев в процесс проверки.

Дополнительные сведения об ошибках проверки см. в разделе Общее представление об ошибках проверки слоев. Способы устранения ошибок см. в разделе Управление ошибками проверки.

Автоматическая проверка кода во время построения Team Foundation Build

Чтобы помочь предотвратить изменения в коде, вызывающие конфликты с требуемой структурой, включите проверку слоев в процедуры их построения, выполняемые с помощью Team Foundation Build, и в условные возвраты, которые можно задать, создав пользовательскую задачу MSBuild. Для сбора ошибок проверки можно использовать отчеты построения.

Дополнительные сведения о Team Foundation Build см. в следующих разделах.

Дополнительные сведения о создании построений с условным возвратом см. в разделе Определение построения с условным возвратом для проверки изменений.

Проверка кода с использованием построения Team Foundation Build

  1. В Командном обозревателе дважды щелкните определение построения и выберите Обработать.

  2. В разделе Параметры процесса построения разверните блок Компиляция и в параметре Аргументы MSBuild введите следующее.

    /p:ValidateArchitecture=true

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

Артефакты, не поддерживающие проверку

Артефакты, которые не поддерживают проверку относительно схемы слоев, включают проекты C++, веб-сайты, документы Office и простые текстовые файлы. Эти артефакты можно связать со слоями, но в процессе проверки они будут проигнорированы. Ошибки проверки для ссылок на проекты или сборки, связанные с отдельными слоями, отображаются только в том случае, если между этими слоями отображаются зависимости. Эти ссылки считаются зависимостями, только если используются в коде.

Как проверить, поддерживает ли артефакт проверку

  1. Выделите один или несколько слоев на схеме слоев, щелкните выделенные элементы правой кнопкой мыши и выберите Просмотреть ссылки.

  2. В Обозревателе слоев просмотрите столбец Поддержка проверки.

    Артефакты, для ссылок на которые указано значение false, не поддерживают проверку.

Устранение неполадок проверки слоев

Следующая таблица описывает проблемы проверки слоев и способы их устранения. Эти проблемы отличаются от ошибок, возникающих из-за несоответствия между кодом и структурой. Дополнительные сведения об этих ошибках см. в разделе Общее представление об ошибках проверки слоев.

Проблема

Возможная причина

Решение

Ошибки проверки не возникают так, как это ожидается.

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

  1. Добавьте новую схему слоев в проект моделирования.

  2. Скопируйте элементы из исходной схемы слоев в новую схему.

См. также

Основные понятия

Проверка системы в ходе разработки

Другие ресурсы

Общее представление об ошибках проверки слоев