Использование DTO в трехуровневой архитектуре

Я использую простую трехуровневую архитектуру. В этом я использую классы DTO для связи между UI, BL и DL. Итак, есть ли лучший способ для общения между слоями? или это правильный путь?

Ответ 1

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

Чтобы ответить на ваш вопрос, это также зависит от того, насколько сложна ваша заявка. Если это просто, просто используйте операцию CRUD, или вы даже можете использовать DataTable, DataSet для связи.

В противном случае объект домена из DDD является основным объектом для связи между слоями: уровень доступа к данным, уровень бизнес-логики и уровень представления.

В принципе, в приложении есть несколько разных типов объектов:

  • DTO, используйте, когда вы публичные службы, основной объект для связи между потребителем и вашим сервисом.
  • Просмотреть модель, объект в слое представления для поддержки пользовательского интерфейса.
  • Сущность домена от уровня бизнес-логики, чтобы содержать бизнес-логику.

Будьте осторожны с термином:

  • Уровень: это означает физический, такой как сервер базы данных, веб-сервер.
  • Layer: это означает логический уровень: уровень защиты, уровень бизнес-логики, уровень доступа к данным.

Ответ 2

Прочтите этот учебник, это очень информативно. Это поможет вам решить, подходит ли DTO для вашего сценария.

Ответ 3

В дополнение к ответу @Talha, я рекомендую эту статью . Он ориентирован на EF, но описанные там концепции являются общими.