Взаимодействие между уровнями WCF, DAO и DTO в приложении ASP.NET
Кто-нибудь может подсказать мне, как слои WCF, DAO и DTO общаются друг с другом? Я был бы признателен, если бы кто-то мог указать, какой слой идет первым, а затем, как он взаимодействует со следующим слоем и так далее.
1 ответ
Похоже, вы понятия не имеете, что означают эти термины. Прежде всего, ни один из них не является "слоем".
- WCF - Windows Communication Foundation - технология MS для создания сервис-ориентированных приложений
- DAO - объект доступа к данным - объект, представляющий операции для взаимодействия с базой данных (загрузка объекта, сохранение объекта и т. Д.), Но скрывающий внутреннюю информацию о базе данных.
- DTO - Объект передачи данных - особый тип объекта, используемый для переноса данных с одного уровня / уровня на другой уровень / уровень.
Поэтому пример использования этих терминов в реальной архитектуре может быть:
Уровень данных (Db-сервер)
- Запуск базы данных
Бизнес-уровень (Сервер приложений)
- Уровень доступа к данным, использующий DAO для доступа к БД и скрытия деталей БД от более высокого уровня.
- Бизнес-уровень, использующий уровень доступа к данным для доступа и сохранения данных. Запуск всей доменной логики, рабочих процессов, бизнес-правил и т. Д.
- В WCF реализован сервисный уровень, раскрывающий бизнес-операции бизнес-уровня. Сервисный уровень предоставляет веб-сервисы, которые используют DTO для передачи данных. Доменные / бизнес-объекты преобразуются в и из DTO.
Уровень представления (веб-сервер)
- Уровень представления - приложение ASP.NET, использующее уровень обслуживания для связи с бизнес-уровнем. Уровень обслуживания и уровень представления обмениваются только DTO.
Эта архитектура только для больших проектов. Обычно вам не нужно разделять уровни представления и бизнес-уровня, поэтому вам не нужен уровень сервиса WCF. В таком случае ваш уровень представления может получить доступ к бизнес-уровню напрямую, без использования DTO.
Редактировать:
На основании ваших комментариев я добавляю эту информацию.
- NHibernate-х
Session
может называться DAO, поскольку предоставляет операции для взаимодействия с БД, но также скрывает детали БД. - При использовании NHibernate у вас есть набор классов, которые можно сохранить в БД на основе определенного отображения. NHibernate хранит и загружает эти объекты. Вы можете добавить некоторую логику (методы) к этим классам и назвать их Доменными / Бизнес-объектами.
- DTO - это особый тип объекта, который не имеет никакой логики. Это ящик для данных. Обычно он предназначен для передачи только тех данных, которые действительно необходимы для операции (например, вы не будете передавать целые объекты клиентов, если вам нужны только имена и электронные письма). DTO также должен быть спроектирован для передачи данных из нескольких бизнес-объектов, чтобы уменьшить количество обращений между клиентом и сервисом