Чи є якісь вказівки щодо вирішення, коли клас повинен бути у власній збірці / DLL? Я часто бачу дві школи думки:
1) Кожне "групування" класів належить до власних DLL, наприклад, сховищ, служб, DTO, інфраструктури тощо.
2) Все повинно бути в одній DLL, але відокремлено через простори імен / папок, наприклад, DLL "Core" з додатковими просторами імен, наприклад, Core.Repositories, Core.Services, Core.DTO тощо.
На роботі ми просто збиваємо все в одній асамблеї під назвою "Бізнес". Є кілька папок, але реального розділення немає - об'єкти бізнесу (за логікою, деякі з яких навіть не повинні бути класами) без побоювання збираються в папку "BusinessObjects". Речі, що використовуються в більш ніж одному класі, знаходяться в папці "Core". Утиліти знаходяться в папці "Утиліти", інфраструктура доступу до даних - це папка "Дані" - ви отримуєте ідею.
Для нового модуля, над яким я працюю, я хочу / маю мати окремий рівень доступу до даних (думаю, реалізація рудиментарного сховища), але я не хочу просто кидати його в папку "BusinessObjects" з іншими 160 (!) заняття там. У той же час я стурбований створенням нової бібліотеки класів, оскільки всі звикли заповнювати клас в єдиній бібліотеці; папка / простір імен можуть працювати.