В настоящее время у нас есть единое решение, поддерживающее один развертываемый объект, клиент WinForm / WPF, это решение имеет многоуровневую архитектуру с проектами, представляющими различные уровни (данные, бизнес, пользовательский интерфейс). Мы представим другие развертываемые объекты, такие как LiteClient, Сервер и RIA.
Мы рассматриваем реструктуризацию, при которой у нас будет несколько решений, по одному для каждого развертываемого объекта (клиентское решение, серверное решение, решение RIA и т. д.), Эти решения будут совместно использовать различные проекты, например, проект уровня данных. По сути, это единое секционированное решение, рекомендованное группой Microsoft P&P (http://msdn.microsoft.com/en-us/library/Ee817674(pandp.10).aspx).
Помимо административных накладных расходов, связанных с этим подходом, нас ждут какие-то серьезные проблемы в реальном мире, если мы их примем.





Если вы измените что-то в общих проектах, вы должны проверить, не нарушило ли это зависимые проекты. Если вы храните эти проекты в отдельных решениях, вы должны не забывать перекомпилировать их каждый раз, когда вы изменяете общие проекты.
Это недостаток, который я вижу.
Это разумный и нормальный подход. В конце концов, решение Visual Studio - это просто набор проектов с информацией о развертывании.
Чтобы уменьшить возможные проблемы с зависимостями, убедитесь, что вы используете сервер сборки (TFS или другой), который позаботится о компиляции и развертывании.