Структирирование решений моделирования

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

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

В этом разделе предполагается, что вы работаете над достаточно крупным проектом, для которого требуются несколько членов команды и, возможно, несколько команд.Код и модели проекта хранятся в системе управления версиями, такой как Team Foundation Server.По крайней мере некоторые члены команды используют Visual Studio Ultimate для разработки моделей, а другие члены команды могут просматривать модели с помощью других версий Visual Studio.

Структура решения

В среднем или крупном проекте структура команды основана на структуре приложения.Каждая команда использует решение Visual Studio.

Разделение приложения на слои

  1. Структура решений должна основываться на структуре приложения, например веб-приложение, приложение службы или приложение для настольных систем.Различные распространенные архитектуры рассматриваются в разделе Application Archetypes руководства Microsoft Application Architecture Guide.

  2. Создайте решение Visual Studio, которое мы будем называть решением "Архитектура".Это решение будет использоваться для создания общей структуры системы.Оно будет содержать только модели, без кода.

    Добавьте в это решение схему слоев.На схеме слоев нарисуйте архитектуру, выбранную для приложения.Например, на схеме могут отображаться следующие слои и зависимости между ними: Презентация; Бизнес-логика; и Данные.

    Можно одновременно создать схему слоев и новое решение Visual Studio с помощью команды Новая схема в меню Архитектура.

  3. Добавьте в модель архитектуры UML-схемы, представляющие важные бизнес-концепции, и используйте варианты, на которые имеются ссылки, в структуре всех слоев.

  4. Создайте отдельное решение Visual Studio для каждого слоя в схеме слоев "Архитектура".

    Эти решения будут использоваться для разработки кода слоев.

  5. Создайте UML-модели, которые будут представлять структуры всех слоев и концепции, общие для всех слоев.Разместите модели таким образом, чтобы все модели были видны из решения "Архитектура", а с каждого слоя были видны соответствующие модели.

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

    Использование отдельного проекта моделирования для каждого слоя

    1. Создайте проект моделирования в каждом решении слоя.

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

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

    2. В решение "Архитектура" добавьте проект моделирования для каждого решения слоя.Для этого откройте решение "Архитектура".В обозревателе решений щелкните правой кнопкой мыши узел решения, выберите команду "Добавить", а затем — Существующий проект.Перейдите на проект моделирования (MODELPROJ) в решении для одного слоя.

      Каждая модель теперь видна в двух решениях: в своем "домашнем" решении и в решении "Архитектура".

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

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

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

    4. В решении "Архитектура" отредактируйте требования и модели структуры для всех слоев с помощью Visual Studio Ultimate.

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

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

    Однако использование отдельных моделей затрудняет ссылки на общие концепции.Каждая модель должна иметь собственную копию элементов, через которые она зависит от других слоев и архитектуры.Необходимо обеспечивать синхронизацию схемы слоев в каждом слое со схемой слоев приложения "Архитектура".Сложно поддерживать синхронизацию при изменении таких элементов, хотя для этой цели можно разработать специальные средства.

    Использование отдельного пакета для каждого слоя

    1. В решение для каждого слоя добавьте проект моделирования "Архитектура".В обозревателе решений щелкните правой кнопкой мыши узел решения, выберите команду Добавить, а затем — Существующий проект.Теперь один проект моделирования доступен из каждого решения: из проекта "Архитектура" и из проекта разработки для каждого слоя.

    2. В общей UML-модели создайте пакет для каждого слоя: в обозревателе решений выберите проект моделирования.В обозревателе моделей UML щелкните правой кнопкой корневой узел, укажите на команду Добавить и щелкните пункт Пакет.

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

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

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

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

Создание шаблонов архитектуры

На практике решения Visual Studio не создаются все одновременно, а добавляются по мере развития проекта.Возможно, что эта же структура решения будет использоваться в будущих проектах.Для упрощения быстрого создания новых решений можно создать шаблон решения или проекта.Шаблон можно перенаправить в расширение интеграции Visual Studio Integration Extension (VSIX), обеспечивающее простое распределение и установку на другие компьютеры.

Например, если часто используются решения со слоями Представление, Бизнес и Данные, можно настроить шаблон, который будет создавать новые решения с такой структурой.

Создание шаблона решения

  1. Загрузите и установите мастер экспорта шаблонов, если он еще не установлен.

  2. Создайте структуру решения, которую требуется использовать в качестве отправной точки для будущих проектов.

  3. В меню Файл выберите команду Экспорт шаблона как VSIX.Откроется Мастер экспорта шаблона как VSIX.

  4. Следуя инструкциям в мастере, выберите проекты, которые требуется включить в шаблон, укажите имя и описание для шаблона, а также укажите расположение выходных файлов.

ПримечаниеПримечание

Материал из этого раздела представляет собой краткое изложение руководства Visual Studio 2010 Architecture Tooling Guidance (Руководство по инструментарию для работы с архитектурой), написанного группой Visual Studio ALM Rangers, в которую входят партнеры со статусом MVP, службы Microsoft Services, а также команда разработчиков и авторов Visual Studio.Щелкните эту ссылку, чтобы загрузить полный пакет Руководства.

Связанные материалы

Organizing and Managing Your Models — видео, автор Clint Edmondson.

Руководство по средствам проектирования архитектуры Visual Studio — Дополнительное руководство по управлению моделями в команде.

См. также

Ссылки

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

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

Использование моделей в процессе разработки