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

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

3 ответа

Решение

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

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

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

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

  1. DTO, используйте когда вы общедоступные сервисы, основной объект для общения между потребителем и вашим сервисом.
  2. Посмотреть модель, объект на уровне представления для поддержки пользовательского интерфейса.
  3. Домен Entity из уровня Business logic содержит бизнес-логику.

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

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

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

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

Другие вопросы по тегам