Чаще всего в моих программах, цель разделения кода в различные проекты для достижения повторного использования кода. На самом деле нет жестких правил, но вот некоторые принципы, которые я пытаюсь выполнить.
Для повторного использования кода я рассматриваю, может ли класс, который я пишу, использовать в другом контексте. Например, если у меня есть веб-сайт ASP.NET, который обменивается данными с базой данных, код доступа к данным может быть повторно использован в приложении на основе Windows, поэтому он является хорошим кандидатом для включения в свою собственную библиотеку.
Я создаю методы расширения для удобного манипулирования строками, потоками или другими распространенными вещами. Эти, я фактор в библиотеку для общего использования во всех приложениях.
Таким образом, постарайтесь организовать ваши проекты в высокосвязные коллекции связанных классов и избегать создания проектов «все-все». Вы обнаружите, что проекты с высокой степенью сплоченности более вероятны для повторного использования, что экономит ваше время и деньги вашего работодателя.