Ответ 1
В самом деле, существуют некоторые рекомендации для такого рода настроек на MSDN. Я написал краткое резюме в своем ответе на аналогичный вопрос в StackOverflow.
Я видел много разных упражнений на эту тему, поэтому я решил, есть ли там предпочтительный способ.
Есть ли какие-либо рекомендации по настройке проектов и решений Visual Studio в отношении нескольких решений для тех же решений?
Например: Скажем, у меня есть задача, которая требует веб-приложения, консольного приложения и общей библиотеки бизнес-логики.
Я видел эту ситуацию в 1, 2 и 3 решениях в свое время в моей карьере. Это простой пример; однако, что, если количество проектов растет? Есть ли строка, когда держать ее в одном или разбить ее?
В самом деле, существуют некоторые рекомендации для такого рода настроек на MSDN. Я написал краткое резюме в своем ответе на аналогичный вопрос в StackOverflow.
Об этом я писал в 2007 году. Совет по-прежнему сохраняется:
http://mikehadlow.blogspot.com/2007/07/how-to-structure-visual-studio.html
Суть в том, что я должен получить код из исходного элемента управления, открыть его в Visual Studio, нажать F5, и все должно работать.
Решения для разработчика, в конкретной ситуации. Проекты (.CSPROJ для C-Sharp) - это место, где происходит реальная компиляция.
Теоретически, если существует 4 разных проекта, может быть 24 различных сочетания тех проектов, которые разработчик может захотеть объединить в решения.
Если вы держите все на уровне проекта, вам не нужно будет беспокоиться о том, как разработчик разместил свои .SLN файлы.
У вас могут быть решения multipe, и каждый из них может ссылаться на проекты, о которых он заботится. Расширяя ваш пример, ваша библиотека общей бизнес-логики может иметь соответствующую библиотеку unit test. Эти два проекта могут содержаться в одном решении. В то же время у вас может быть другое решение, которое содержит три проекта, которые вы упомянули, но в этом случае библиотека unit test не включена.
Мои решения обычно состоят из:
Мне нравится включать все проекты для определенной задачи в решение. Поэтому, основываясь на приведенном ниже примере, у меня будет решение, содержащее три проекта, которые принадлежат к решению, которое мне было предложено сделать. Это позволяет всем элементам выполнить задачу вместе, я считаю, что это упрощает включение других элементов, необходимых для решения поставленной задачи.