Существуют некоторые болевые точки вокруг передачи объектов между клиентом и службой WCF.
- Победа над отложенной загрузкой путем сериализации всех свойств
- Сериализованные данные могут быть чрезмерно раздуты
- Некоторая связь между пользовательским интерфейсом и бизнес-уровнем
Один из способов решения этих проблем - передача DTO вместо сущностей, но я знаю, что у этого метода есть свой собственный набор предостережений (самый большой из известных мне типов - это типизация, необходимая для поддержки этих DTO, зависящих от функций).
Я думаю, было бы замечательно, если бы реализация службы могла генерировать эти DTO динамически, и это представляется возможным . К сожалению, похоже, что контракт будет свободно определяться на стороне клиента (то есть «объект»), и это пахнет как возможный риск.
Желательно ли использовать динамические DTO таким способом или есть другой способ использовать DTO без создания / поддержки классов для каждого из них?
Я думаю, что Святой Грааль был бы там, где реализация динамически генерирует DTO, но клиент видит четко определенные контракты. Я предполагаю, что это невозможно с WCF.