Здравствуйте, oleksab, Вы писали:
O>Добрый день
O> Обычно при описании трехзвенной архитектуры всегда говорят о том, что сервер приложений "общается" с клиентом бизнес-объектами, а с сервером базы — на языке SQL.
O> Но при таком подходе получается, что клиент должен как минимум знать о интерфесах бизнес-объектов и, возможно бизнес-классов, которые умеют что-то выполнять с объектами. И изменения в структуре бизнес-объектов ведут к пересборке и обновлению всех клиентов, знающих о этом интерфейсе.
Для устранения данной проблемы используют подход, основанный на толерантности транспортного протокола.
O> А нет ли каких хитрых путей, позволяющих сделать интерфейсы бизнес-объектов невидимыми для клиента? Так, чтобы клиент при этом получал некий набор простейших типов (string, DateTime, int, double), давал возможность пользователю просмотреть значения, исправить и отправить обратно на сервер? Где уже набор типов будет превращен в бизнес объект, проверен и сохранен в базу (например)?
BO упаковываются в DTO — так клиент общается с промежуточным звеном.
O> Имеет ли вообще смысл такой подход?
Лучше уж сразу массив байт
O> Спасибо.