Учебники

NHibernate — Архитектура

В настоящее время многие системы спроектированы с многоуровневой архитектурой, NHibernate также имеет ее и прекрасно работает с этим дизайном.

Многоуровневая архитектура

Многоуровневая архитектура делит систему на несколько групп, где каждая группа содержит код, адресованный конкретной проблемной области, и эти группы называются слоями. Большинство приложений уровня предприятия используют архитектуру приложений высокого уровня , состоящую из трех уровней:

  • Уровень презентации
  • Бизнес уровень
  • Постоянный слой

Многоуровневая архитектура

Например, уровень пользовательского интерфейса, который также известен как уровень представления, может содержать весь код приложения для создания веб-страниц и обработки пользовательского ввода.

Одним из основных преимуществ многоуровневого подхода является то, что вы часто можете вносить изменения в один уровень без какого-либо значительного нарушения других уровней, что делает системы менее уязвимыми и более удобными в обслуживании .

Это самый верхний слой, который содержит код, отвечающий за отрисовку пользовательского интерфейса, страниц, диалогов или экранов, а также за сбор пользовательского ввода и управление навигацией.

Бизнес-уровень отвечает за реализацию любых бизнес-правил или системных требований, которые пользователи будут понимать как часть проблемной области.

Он также повторно использует модель, определенную постоянным слоем.

Уровень персистентности состоит из классов и компонентов, которые отвечают за сохранение и извлечение данных приложения.

Этот слой также определяет соответствие между классом модели и базой данных. NHibernate используется в основном в этом слое.

Каждое приложение имеет набор вспомогательных или служебных классов, которые поддерживают другие уровни: например, виджеты пользовательского интерфейса, классы обмена сообщениями, классы исключений и утилиты ведения журнала.

Эти элементы не считаются слоями, потому что они не подчиняются правилам межслойной зависимости в многоуровневой архитектуре.

Это высокоуровневое представление приложения NHibernate, и вы также можете увидеть простую архитектуру NHibernate.

Код приложения использует API-интерфейсы NHibernate ISession и IQuery для постоянных операций и должен управлять транзакциями базы данных только в идеале с использованием API-интерфейса NHibernate ITransaction .