Поддержка одного сеанса для каждой формы при использовании промежуточного уровня обслуживания - PullRequest
1 голос
/ 18 октября 2010

In Создание настольного приложения для работы с NHibernate , Орен Эйни (он же Ayende Rahien) утверждает, что общая рекомендуемая практика NHibernate - использовать один сеанс на форму на рабочем столеприложение.В приведенном примере это легко реализуется, поскольку докладчики форм знают уровень персистентности и могут создавать и распоряжаться сеансами в соответствии с их жизненными циклами.

В более сложном приложении уровень службы / бизнес-логики (BLL) обычно находится между кодом пользовательского интерфейса и уровнем персистентности.Уровень пользовательского интерфейса ничего не знает о постоянстве (или сессиях).В таком случае, как один (или один?) Поддерживает один сеанс для формы?

Спасибо,
Бен

Ответы [ 3 ]

0 голосов
/ 18 октября 2010

Можно подумать об использовании архитектуры MVC, популярной в веб-приложениях, в которой контроллер напрямую работает с моделью домена и сеансами NHibernate, а не делегирует бизнес-логику на уровень бизнес-логики.Контроллер может поддерживать свои собственные сеансы по своему усмотрению.

0 голосов
/ 18 октября 2010

Это зависит. В сложных приложениях при использовании сервис-ориентированных архитектур Nhibernate Session обычно привязан к модели сеанса сервиса.

Вы должны решить, будут ли сервисные уровни требовать сеансов для клиентов настольных компьютеров или нет, и внедрять сеансы в nhibernate в соответствии с потребностями службы.

0 голосов
/ 18 октября 2010

Служебному уровню все еще будет вводиться сеанс, либо напрямую, либо с использованием текущего контекста сеанса.

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