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