По сути, это тот же вопрос, что и в Как обрабатывать представления в многослойном приложении . Тем не менее, этот пост не получил много отзывов.
Вот проблема: мы создали трехуровневое веб-приложение со следующими уровнями:
- Доступ к данным (с использованием репозиториев)
-Сервис
-UI (MVC 3)
DTO передаются между UI (Controller) Layer и Service Layer. Более тяжелые доменные модели, содержащие много логики на уровне домена, передаются между уровнями обслуживания и доступа к данным. Все развязано с помощью IOC, и приложение следует твердым принципам (или пытается тоже) - большая счастливая развязанная семья!
В настоящее время преобразование DTO-> Domain Domain и Model Domain-> DTO происходит на уровне сервиса.
Итак, наконец, на мой вопрос:
Нам нужно начать отображать более сложные подмножества информации только для чтения (т. Е. Сводные представления, объединяющие несколько объектов, выполняющих сводные итоги и т. Д.). Итак, каков наилучший способ представления данных только для чтения в n-уровневой системе? Мне не имеет смысла отображать типы доменной модели только для чтения на типы DTO. В большинстве случаев между двумя типами не будет никакой разницы. Я подумал бы о том, чтобы "нарушить" границы уровней для этих типов только для чтения, чтобы уровень доступа к данным обслуживал DTO напрямую и передавал их на уровень обслуживания и в пользовательский интерфейс.
Кто-нибудь может указать мне правильное направление?
Большое спасибо!