Структурирование проектов и решений в Microsoft Visual Studio Team System - Стратегии структурирования решений и проектов

ОГЛАВЛЕНИЕ

Стратегии структурирования решений и проектов

Чаще всего используются три стратегии структурирования файлов решений и проектов:

  1. Одиночное решение. При разработке небольшой системы, создается одиночное решение, в котором размещаются все проекты.
  2. Сегментированное решение. При разработке большой системы взаимосвязанные проекты группируются в разные решения. Для каждой логической группы проектов, с которой разработчик, вероятнее всего, будет работать как с совокупностью, создается отдельное решение. Затем все эти решения объединяются в одно главное решение, которое будет содержать все проекты. При таком подходе сокращается количество данных, извлекаемых из системы контроля версий, поскольку работа ведется только над определенными проектами.
  3. Несколько решений. При создании очень большой системы, требующей десятков и более проектов, следует работать с подсистемами. Для отображения зависимостей и из соображений производительности не нужно создавать главное решение, содержащее все проекты.

В общем, следует:

  1. Использовать стратегию одиночного решения, если размер получаемого в результате решения не слишком велик и не приводит к проблемам загрузки в Visual Studio.
  2. Использовать несколько решений для создания отдельных представлений подсистем приложения.
  3. Использовать несколько решений для сокращения времени загрузки решения и сокращения времени сборки для разработчиков.
При разработке структуры проектов и решений следует иметь в виду следующее:
  1. Каждый проект во время компиляции создает отдельную сборку (assembly). Начните с определения того, какие сборки потребуется создать, и затем, исходя
  2. из этого, принимайте решение о необходимых проектах. На основании этого распределите код по проектам.
  3. Начинайте с самой простой структуры одиночного решения. Усложняйте структуру только в том случае, когда это действительно необходимо.
  4. При проектировании структуры с множеством решений:
    1. Рассмотрите зависимости проекта. Попытайтесь сгруппировать взаимосвязанные проекты в одно решение. Это позволит использовать в решении ссылки на проекты, а не на файлы, что обеспечивает возможность Visual Studio синхронизировать конфигурации сборки (отладка/ версия для выпуска) и, отслеживая версии, определять, когда необходимо повторно собрать проект. Пытайтесь свести к минимуму количество перекрестных ссылок на проекты между решениями.
    2. Рассмотрите возможность совместного использования исходного кода. Поместите проекты, использующие один и тот же исходный код, в одно решение.
    3. Учтите структуру группы. Решения должны быть структурированы таким образом, чтобы упростить группам работу с набором взаимосвязанных проектов.
  5. Придерживайтесь плоской структуры проекта. Это облегчит задачу по группировке проектов в решения без необходимости внесения изменений в структуру каталогов или папку системы контроля версий.