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

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

Многослойная архитектура

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

  • Слой презентации
  • Уровень бизнеса
  • Слой постоянства

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

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

Слой презентации

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

Бизнес-уровень

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

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

Слой стойкости

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

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

База данных

  • База данных существует вне приложения .NET.
  • Это актуальное постоянное представление состояния системы.
  • Если используется база данных SQL, она включает реляционную схему и, возможно, хранимые процедуры.

Вспомогательные / служебные классы

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

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

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

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

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