Использовать или не использовать объекты передачи данных (DTO) в веб-сервере приложений Api Chat Backend Server

У меня есть бэкэнд приложения чата, созданный с помощью Web Api, где я подвергаю несколько объектов базы данных непосредственно клиентам. Мне было интересно, есть ли какие-либо положительные моменты для сопоставления сущностей в DTO, или я должен продолжать подвергать сущности, как я сейчас. Чтобы уточнить, я не задаю общий вопрос DTO и не DTO, а просто преимущества использования его в этом сценарии, поскольку большинство полей в объектах, вероятно, будет использоваться клиентом.

Ответ 1

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

Если вы планируете создавать приложение, которое может расти в будущем, вам следует подумать об использовании DTO, потому что Domain Entities не являются оптимальными для представления данных. Объекты домена всегда имеют более или менее, а не то, что вам нужно на стороне клиента.

Вы можете использовать инструмент AutoMapper для привязки объектов домена к DTO.

Некоторая демонстрация: http://www.codeproject.com/Articles/61629/AutoMapper

Ответ 2

То же преимущество, что и в любом другом приложении. В вашем приложении нет особых преимуществ. Использование DTO - это, по сути, развязка, разделяющая свойства методов. На данный момент вы передаете объекты базы данных. Это может означать, что вы проходите больше, чем требуется, и подвергаете большему, чем это необходимо. Вы также подразумеваете многое, что и как выполняются операции. Опять же, что вы собираетесь уйти от усилий расщепления?