DAL / BLL и клиент / сервер: должен ли клиент использовать объекты BLL или DAL для представления? Или, может быть, другой слой (объект передачи данных?) - PullRequest
2 голосов
/ 09 сентября 2010

Я пишу систему клиент / сервер. Сервер имеет дизайн DAL / BLL. Клиент несет ответственность за представление объектов данных и предоставление диалогов и мастера, позволяющих пользователю обновлять эти объекты (т.е. добавлять / редактировать пользователя).

Сначала я думал, что у объектов DAL будет универсальный объект-поставщик данных, чтобы они могли использоваться как клиентом, так и сервером. Например, когда объект данных используется сервером, база данных является поставщиком данных; когда объект данных используется клиентом, сервер является поставщиком данных.

Таким образом, объект изменяется на уровне представления, например, «пользователь»: user-> setName («Fred»), а затем фиксирует его как этот пользователь-> commit (), метод commit вызывает провайдера данных Метод commit, который затем кодирует объект и отправляет его на сервер. Затем сервер «украшает» его объектом бизнес-уровня и продолжает с него.

В настоящее время я работаю как прототип с объектами DAL, определенными в общем проекте, который используется как клиентом, так и сервером. Затем сервер внедряет своего поставщика данных (который использует базу данных), а клиент внедряет поставщика данных, который использует сервер.

Мне интересно, кажется ли это разумным подходом? Я продолжаю задаваться вопросом, нужен ли мне другой слой вместо того, чтобы объекты DAL были выставлены непосредственно клиенту. Может быть, слой объектов передачи данных, который дал бы мне 3 уровня: объекты доступа к данным, объекты бизнес-логики и объекты передачи данных.

Спасибо.

1 Ответ

1 голос
/ 10 сентября 2010

Не очень хорошая идея выставлять «внутренние объекты», такие как использованные / возвращенные объекты, покупая DAL. Лучше хранить все внутренние объекты скрытыми от клиента и иметь полный набор объектов для связи клиент-сервер. Может потребоваться дополнительная работа по преобразованию одного объекта в другой, но это значительно упростит обновление системы, если сервер и клиент не обновятся вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...