NHibernate - Архитектура
Сегодня многие системы спроектированы с многоуровневой архитектурой, она также есть в NHibernate и отлично работает с этим дизайном.
Многослойная архитектура
Многоуровневая архитектура делит систему на несколько групп, каждая из которых содержит код, обращающийся к определенной проблемной области, и эти группы называются уровнями. Большинство приложений корпоративного уровня используютhigh-level application architecture которые состоят из трех слоев -
- Слой презентации
- Уровень бизнеса
- Слой постоянства
Например, уровень пользовательского интерфейса, также известный как уровень представления, может содержать весь код приложения для создания веб-страниц и обработки пользовательского ввода.
Одним из основных преимуществ многоуровневого подхода является то, что вы часто можете вносить изменения в один уровень без какого-либо значительного нарушения работы других слоев, что делает системы lesser fragile and more maintainable.
Слой презентации
Это самый верхний уровень, который содержит код, отвечающий за рисование пользовательского интерфейса, страниц, диалогов или экранов, а также за сбор пользовательского ввода и управление навигацией.
Бизнес-уровень
Бизнес-уровень отвечает за реализацию любых бизнес-правил или системных требований, которые пользователи понимают как часть проблемной области.
Он также повторно использует модель, определенную слоем постоянства.
Слой стойкости
Уровень сохраняемости состоит из классов и компонентов, которые отвечают за сохранение и получение данных приложения.
Этот уровень также определяет соответствие между классом модели и базой данных. NHibernate используется в основном в этом слое.
База данных
- База данных существует вне приложения .NET.
- Это актуальное постоянное представление состояния системы.
- Если используется база данных SQL, она включает реляционную схему и, возможно, хранимые процедуры.
Вспомогательные / служебные классы
Каждое приложение имеет набор вспомогательных или служебных классов, которые поддерживают другие уровни: например, виджеты пользовательского интерфейса, классы обмена сообщениями, классы исключений и служебные программы ведения журнала.
Эти элементы не считаются слоями, потому что они не подчиняются правилам межуровневой зависимости в многоуровневой архитектуре.
Архитектура NHibernate
Это общий вид приложения NHibernate, и вы также можете увидеть простую архитектуру NHibernate.
Код приложения использует NHibernate. ISession и IQuery API-интерфейсы для операций с постоянством и только для управления транзакциями базы данных, в идеале с использованием NHibernate ITransaction API.