DTO, которые слишком тяжелы для совместного использования - PullRequest
0 голосов
/ 31 августа 2018

В настоящее время в моем приложении есть объект домена, который предоставляет функциональность через wcf и restful api, где свойства украшены различными атрибутами - например, SwaggerWCF, и некоторыми правилами проверки, такими как [Обязательный].

Теперь это нормально, однако сейчас я работаю над клиентской библиотекой, чтобы облегчить использование услуг. Типичный шаблон, который я придерживаюсь здесь, состоит в том, чтобы разбить DTO на отдельный пакет nuget, который затем используется службой и клиентом.

Однако эти DTos тяжелые - черт возьми, они, вероятно, даже не dtos.

Как я могу выставить мои прекрасные POCOS как Dtos, а затем добавить дополнительный материал на стороне службы?

Я вижу только дубликаты на дороге впереди ...

1 Ответ

0 голосов
/ 31 августа 2018

DTO, которые обычно представляют собой меньшие биты, которые передаются, обычно служат 2 целям: a) сделать данные меньше для передачи и b) позволить некоторую абстракцию от внутренней работы, чтобы предотвратить раскрытие всего при необходимости.

Если а) не является проблемой, поскольку они будут большими, б) все еще полезно скрывать некоторые свойства и т. Д. В будущем, поэтому создание почти дублированных DTO, вероятно, вполне допустимо, и им можно управлять с помощью некоторого вида автоматического сопоставления.

Наличие DTO разделяет эти проблемы, и, если вам нужно предоставить клиентскую библиотеку, их легче извлечь в отдельный пакет.

...