В приложении MVC вы получаете предопределенный скелет проекта с каталогами для моделей, представлений и контроллеров. При создании библиотеки классов или консольного приложения, однако, у вас нет такого скелета проекта.Структурирование файлов в .NET-проекте
Как проект растет, многие файлы в конечном итоге накапливаются в корневом каталоге проекта. Следовательно, возникает желание как-то группировать файлы.
В проектах с сотрудниками я сталкивался с файлами, сгруппированными в каталоги с именем «Интерфейсы», «Перечисления и расширения». В соответствии с этим мышлением можно было бы также использовать каталоги для фильтров, атрибутов и абстрактных классов. Я предполагаю, что это можно назвать «группировкой на основе языка», и хотя любая последовательная группировка, возможно, может быть лучше, чем я, я считаю, что этот тип стратегии группировки может быть не самым подходящим.
Глядя на исходный код Microsoft на GitHub Я вижу, что интерфейсы и их реализации, как правило, находятся в одном каталоге и что, хотя группировка файлов существует, она не выполняется на основе конструкции языка. Мне трудно точно определить, что такое стратегия группировки.
Я понимаю, что не может быть никакого кристально чистого ответа, так как то, что нужно сгруппировать, может быть специфичным для конкретного проекта. Тем не менее, я ищу полезные советы и руководящие принципы о том, как определить , что должно быть сгруппировано и как его следует сгруппировать.
Если структура изменяется со временем, тогда все, что зависит от библиотеки, будет разрушено по мере изменения структуры. – Fred
Когда я группирую связанные файлы, как узнать, должны ли они находиться в папке в проекте или в отдельном проекте? – Fred
Спросите себя: могут ли эти вещи стоять сами по себе, как единое целое? Никто не может ответить на этот вопрос, но вы, действительно. –