Использование DTO в 3-х уровневой архитектуре
Я использую простую 3-х уровневую архитектуру. В этом я использую классы DTO для связи между UI,BL и DL. Так есть ли лучший способ общения между слоями? или это правильный путь?
3 ответа
DTO, Data Transfer Object, является концепцией уровня распространения, которую вы используете при передаче данных между вашими потребителями и вашим сервисом. Так что, если вы не публикуете какой-либо сервис, выходите из DTO.
Чтобы ответить на ваш вопрос, это также зависит от сложности вашего приложения. Если это просто, просто используйте операцию CRUD, или вы можете даже использовать DataTable
, DataSet
для связи.
В противном случае Доменная сущность из DDD является основным объектом для связи между уровнями: уровень доступа к данным, уровень бизнес-логики и уровень представления.
По сути, в приложении есть несколько различных типов объектов:
- DTO, используйте когда вы общедоступные сервисы, основной объект для общения между потребителем и вашим сервисом.
- Посмотреть модель, объект на уровне представления для поддержки пользовательского интерфейса.
- Домен Entity из уровня Business logic содержит бизнес-логику.
Будьте осторожны с термином:
- Уровень: это означает физический, как сервер базы данных, веб-сервер.
- Уровень: это означает логический уровень: уровень представлений, уровень бизнес-логики, уровень доступа к данным.
Прочитайте этот урок, это очень информативно. Это поможет вам решить, подходит ли DTO для вашего сценария.
В дополнение к ответу @Talha, я бы порекомендовал эту статью. Он ориентирован на EF, но концепции, описанные там, являются общими.