Хотелось бы, чтобы это было так просто. Хотя DTO возник из-за уровней сетевого распределения системы, может возникнуть целая загрузка проблем, если объекты домена будут возвращены для просмотра слоев. Вот некоторые из них:
1.Выставляя объекты домена для просмотра слоя, представления становятся известны о структуре объектов домена, что позволяет просматривать некоторые предположения о том, как доступны связанные объекты. Например, если объект домена «Человек» был перенастроен на представление, к которому он привязан, и на каком-либо другом представлении должен быть привязан «Адреса» Лица, для уровня приложения будет использоваться семантическая функция, например person.getAddresse(), который не сработает, поскольку в этот момент объект адресной области, возможно, не был загружен в точке. По сути, когда объекты домена становятся доступными для просмотра слоев, представления всегда могут делать предположения о том, как данные становятся доступными.
2.) когда объекты домена привязаны к представлениям (более того, в толстых клиентах), будет существовать тенденция к представлению центральной логики для ползучести внутри этих объектов, что делает их логически искаженными.
В основе моего опыта я видел, что создание объектов домена, доступных для Views, создает архитектурные проблемы, но есть проблемы с использованием DTO, так как использование DTO создает дополнительную работу с точки зрения создания ассемблеров (объектов DTO to Domain и reverse), Пролиферация аналогичных объектов, таких как объект домена пациента, пациент DTO и, возможно, больной пациент, подлежащий просмотру.
Очевидно, что правильные ответы на это специально в толстой клиентской системе.
я позаимствовал этот короткий и не полный, но правдивый ответ на DTO клише из:
http://www.theserverside.com/discussions/thread.tss?thread_id=32389#160505
+1 за полезные ссылки – Graeme