NHibernate - Architecture

De nos jours, de nombreux systèmes sont conçus avec une architecture en couches, NHibernate l'a également et fonctionne parfaitement bien avec cette conception.

Architecture en couches

Une architecture en couches divise un système en un certain nombre de groupes, où chaque groupe contient du code adressant un problème particulier et ces groupes sont appelés couches. La plupart des applications de niveau entreprise utilisenthigh-level application architecture qui se composent de trois couches -

  • La couche Présentation
  • La couche métier
  • La couche de persistance

Par exemple, une couche d'interface utilisateur également connue sous le nom de couche de présentation peut contenir tout le code d'application pour la création de pages Web et le traitement des entrées utilisateur.

L'un des principaux avantages de l'approche par couches est que vous pouvez souvent apporter des modifications à une couche sans interruption significative des autres couches, rendant ainsi les systèmes lesser fragile and more maintainable.

Couche de présentation

  • Il s'agit de la couche supérieure, qui contient le code responsable du dessin de l'interface utilisateur, des pages, des boîtes de dialogue ou des écrans, de la collecte des entrées utilisateur et du contrôle de la navigation.

Couche métier

  • La couche métier est responsable de la mise en œuvre des règles métier ou des exigences système que les utilisateurs comprendraient comme faisant partie du domaine du problème.

  • Il réutilise également le modèle défini par la couche de persistance.

Couche de persistance

  • La couche de persistance se compose de classes et de composants qui sont responsables de l'enregistrement et de la récupération des données d'application.

  • Cette couche définit également un mappage entre la classe de modèle et la base de données. NHibernate est principalement utilisé dans cette couche.

Base de données

  • La base de données existe en dehors de l'application .NET.
  • C'est la représentation réelle et persistante de l'état du système.
  • Si une base de données SQL est utilisée, la base de données comprend le schéma relationnel et éventuellement des procédures stockées.

Classes d'assistance / utilitaire

  • Chaque application dispose d'un ensemble de classes d'assistance ou d'utilitaires qui prennent en charge les autres couches: par exemple, des widgets d'interface utilisateur, des classes de messagerie, des classes d'exception et des utilitaires de journalisation.

  • Ces éléments ne sont pas considérés comme des couches, car ils n'obéissent pas aux règles de dépendance intercouche dans une architecture en couches.

Architecture NHibernate

  • Il s'agit d'une vue de haut niveau de l'application NHibernate et vous pouvez également voir l'architecture simple de NHibernate.

  • Le code de l'application utilise le NHibernate ISession et IQuery API pour les opérations de persistance et ne doit gérer que les transactions de base de données, idéalement en utilisant NHibernate ITransaction API.