Пусть нужно сделать проект с многоуровневой архитектурой. Как и в каких случаях нужно делать так: Class Libraries: Entites, DLayer, DTO,BLayer, Presenttion Layer, Core
или же так: Class Libraries: DLayer, BLayer, Presentation Layer, Core
Так вот, со второй реализацией понятно, а что насчет первой? Возможна ли такая реализация??
Я не знаю, откуда вы откопали такую архитектуру и зачем, но ответ -- да, возможна.
У вас вынесены в отдельные проекты Entities (Вероятно из Core/Domain отдельные Entities) и Dto (тут сложнее, но это вероятно dto'шки между application и каким-то другим слоем).
Меня в своё время много били по рукам натаскивая на тему, что можно делать один-единственный проект в solution'е и уметь видеть архитектурные границы не растаскивая классы по отдельным проектам.
И вот там как раз пришло понимание для чего это вообще может пригодиться. Если вам нужно собрать nuget-пакет из dto'шек или сущностей, чтобы потом другие команды могли воспользоваться артефактами вашего решения (подключить в свой и т.п.), при этом им не надо тащить всё ваше приложение, а только ваши классы -- то в этом случае как раз удобно иметь отдельные сборки с определениями классов.
Других практических сценариев я не знаю, но давайте прямо: если вам попадётся такая архитектура -- просто спросите её автора, какими требованиями он руководствовался. Фаулер говорит, что каждая архитектурная граница не только даёт какую-то выгоду, но и стоит определённых ресурсов и когда вы напишете несколько проектов вы поймёте до чего это порой нудно -- делать однотипные лишние действия только из-за того, что оформили лишнюю границу между слоями приложения.
В комментариях вам тоже хорошо сказали, плюсую.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab