Как вы передаете данные в слои в n-уровневом приложении? Я наметил 3 разных метода.
A)
универсальные .net объекты универсальные таблицы данных, Hashtables, универсальные наборы данных, строки, целые и т. д.
затем используйте наборы данных для заполнения ваших бизнес-объектов, которые отправляются на уровень пользовательского интерфейса.
альтернативный текст http://img11.imageshack.us/img11/460/generic.png
http://dabbleboard.com/draw?b=eiu165&i=26&c=54eef6f1ac01f03c85919518f4a24e798e57e133
Pro- Никаких дополнительных слоев не требуется
Con- Необходимо работать с универсальными наборами данных и таблицами на бизнес-уровне
B)
используя слой сущностей, на который ссылаются другие слои. Этот слой будет содержать либо строго типизированные наборы данных, либо Plain Old C Objects. Объектами будут в основном данные контейнера и очень мало логики. это будут те же самые объекты, отправленные на уровень пользовательского интерфейса.
альтернативный текст http://img8.imageshack.us/img8/6454/entities.png
http://dabbleboard.com/draw?b=eiu165&i=6&c=d0c2b346894a96b12bd3867f630e474a2af098fa
Pro- работа с одинаковыми классами во всех слоях
Con- добавление ссылки на entity.dll ко всем слоям
C)
использовать объекты передачи данных (только объекты conatiner), определенные на уровне DataAccess. затем использовать эти объекты для заполнения бизнес-объектов, которые отправляются на уровень пользовательского интерфейса.
альтернативный текст http://img43.imageshack.us/img43/1236/transferp.png
http://dabbleboard.com/draw?b=eiu165&i=27&c=f886efa3f9d5eb4b45ddb02361c79cdcdaec0a9b
Pro- бизнес-уровень не должен работать с общими классами
Con- работает с двумя типами объектов, и вам придется гидрировать бизнес-объекты с помощью объектов переноса
Мы провели обсуждение на работе и хотели посмотреть, что думает сообщество. Я также добавил ссылку на доску объявлений. пожалуйста, скопируйте и создайте вместо редактирования.
Спасибо