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。