NHibernate-アーキテクチャ

今日、多くのシステムは階層化アーキテクチャで設計されていますが、NHibernateにもそれがあり、その設計で完全に機能します。

階層化アーキテクチャ

階層化アーキテクチャは、システムをいくつかのグループに分割します。各グループには、特定の問題領域に対処するコードが含まれ、これらのグループはレイヤーと呼ばれます。エンタープライズレベルのアプリケーションのほとんどはhigh-level application architecture 3つの層で構成されている-

  • プレゼンテーション層
  • ビジネス層
  • 永続層

たとえば、プレゼンテーション層とも呼ばれるユーザーインターフェイス層には、Webページを構築してユーザー入力を処理するためのすべてのアプリケーションコードが含まれている場合があります。

階層化アプローチの主な利点の1つは、他の層を大幅に中断することなく1つの層に変更を加えることができるため、システムを作成できることです。 lesser fragile and more maintainable

プレゼンテーション層

  • これは最上位のレイヤーであり、ユーザーインターフェイス、ページ、ダイアログ、または画面の描画、ユーザー入力の収集、およびナビゲーションの制御を担当するコードが含まれています。

ビジネス層

  • ビジネス層は、ユーザーが問題ドメインの一部として理解するビジネスルールまたはシステム要件を実装する責任があります。

  • また、永続層によって定義されたモデルを再利用します。

永続層

  • 永続層は、アプリケーションデータの保存と取得を担当するクラスとコンポーネントで構成されます。

  • このレイヤーは、モデルクラスとデータベース間のマッピングも定義します。NHibernateは主にこのレイヤーで使用されます。

データベース

  • データベースは.NETアプリケーションの外部に存在します。
  • これは、システム状態の実際の永続的な表現です。
  • SQLデータベースを使用する場合、データベースにはリレーショナルスキーマと場合によってはストアドプロシージャが含まれます。

ヘルパー/ユーティリティクラス

  • すべてのアプリケーションには、他のレイヤーをサポートする一連のヘルパークラスまたはユーティリティクラスがあります。たとえば、UIウィジェット、メッセージングクラス、例外クラス、ロギングユーティリティなどです。

  • これらの要素は、階層化アーキテクチャの層間依存性の規則に従わないため、層とは見なされません。

NHibernateアーキテクチャ

  • これはNHibernateアプリケーションの高レベルのビューであり、単純なNHibernateアーキテクチャーも見ることができます。

  • アプリケーションコードはNHibernateを使用します ISession そして IQuery 永続化操作用のAPIであり、データベーストランザクションを管理するだけで済み、理想的にはNHibernateを使用します ITransaction API。