Папки или проекты в Visual Studio Solution?

голоса
27

Когда spliting решения в до логических уровней, когда это лучше использовать отдельный проект по просто группировке по папке?

Задан 04/08/2008 в 23:00
источник пользователем
На других языках...                            


7 ответов

голоса
17

По умолчанию всегда просто создать новую папку в том же проекте

  • Вы получите единый узел (без дополнительного ILMerge гимнастических)
  • Легче запутать (потому что вы будете иметь меньше открытые типы и методы, в идеале вообще ни)

Разделение исходного кода на несколько проектов, имеет смысл только если вы ...

  • Есть некоторые части исходного кода, которые являются частью проекта, но не развертываемых по умолчанию или на всех (юнит-тесты, дополнительные модули и т.д.)
  • Другие разработчики участвуют, и вы хотите, чтобы относиться к своей работе в качестве расходуемого черного ящика. (Не очень рекомендуется)
  • Если вы можете четко разделить проект на отдельные слои / модули , и вы хотите , чтобы убедиться , что они не могут кросс-потреблять внутренние элементы. (также не рекомендуется , так как вам нужно будет решить , какой аспект является наиболее важным)

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

Ответил 04/08/2008 d 23:45
источник пользователем

голоса
8

Разделение функций в проектах часто является оптимизация YAGNI архитектуры. Как часто вы повторно эти отдельные проекты, на самом деле? Если это не частое явление, вы усложнять ваше развитие, строительство, развертывание и обслуживание для теоретического повторного использования.

Я предпочитаю разделение в папки (с использованием соответствующих пространств имен) и рефакторингом, чтобы отделить проекты, когда у вас есть реальное использование повторного случая.

Ответил 17/08/2008 d 18:35
источник пользователем

голоса
6

денис писал:

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

Я действительно согласен с этим - если вы можете использовать его, она должна быть в отдельном проекте. С учетом сказанного, это также очень трудно эффективно использовать повторно :)

Здесь на SO, мы старались быть очень простой с тремя проектами:

  • Веб-проект MVC (который делает хорошую работу отделения ваших слоев в папки по умолчанию)
  • Проект базы данных для управления версиями нашей БД
  • Юнит-тесты против MVC моделей / контроллеры

Я не могу говорить за всех, но я доволен тем, как просто мы сохранили это - на самом деле скорость сборки вместе!

Ответил 04/08/2008 d 23:42
источник пользователем

голоса
4

Я обычно делаю проект для графического интерфейса проекта для бизнес-логики проекта для доступа к данным и проект для модульных тестов.

Но иногда это разумно иметь разделение, основанное на услуги (если вы используете сервис-ориентированную архитектуру), такие как аутентификация, в продаже и т.д.

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

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

Ответил 04/08/2008 d 23:14
источник пользователем

голоса
0

Я действительно считаю, что лучше разбить проект, а также, но все это зависит от размера проекта и количества людей, работающих на нем.

Для более крупных проектов, у меня есть проекты

  • Доступ к данным (модель)
  • Сервисы
  • внешний интерфейс
  • тесты

Я получил модель от Роба Коннери и его витрина приложения ... кажется, работают очень хорошо.

MVC-витрина

Ответил 16/09/2008 d 00:45
источник пользователем

голоса
0

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

Ответил 10/09/2008 d 22:36
источник пользователем

голоса
0

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

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

Ответил 17/08/2008 d 18:19
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more