Nhibernate-architecture
提供:Dev Guides
NHibernate-アーキテクチャ
現在、多くのシステムはレイヤードアーキテクチャで設計されていますが、NHibernateにもそれがあり、その設計で完全に機能します。
階層化アーキテクチャ
階層化アーキテクチャは、システムをいくつかのグループに分割します。各グループには特定の問題領域に対応するコードが含まれ、これらのグループはレイヤーと呼ばれます。 エンタープライズレベルのアプリケーションのほとんどは、3つの層で構成される*高レベルアプリケーションアーキテクチャ*を使用します-
- プレゼンテーション層
- ビジネス層
- 永続化レイヤー
たとえば、プレゼンテーションレイヤーとも呼ばれるユーザーインターフェイスレイヤーには、Webページを構築し、ユーザー入力を処理するためのすべてのアプリケーションコードが含まれる場合があります。
階層化アプローチの主な利点の1つは、多くの場合、他のレイヤーを大幅に中断することなく1つのレイヤーに変更を加えることができることです。
プレゼンテーション層
- これは最上位のレイヤーであり、ユーザーインターフェイス、ページ、ダイアログ、または画面の描画、ユーザー入力の収集、およびナビゲーションの制御を担当するコードが含まれています。
ビジネス層
- ビジネス層は、ユーザーが問題ドメインの一部として理解するビジネスルールまたはシステム要件を実装する責任があります。
- また、永続層で定義されたモデルを再利用します。
永続層
- 永続層は、アプリケーションデータの保存と取得を担当するクラスとコンポーネントで構成されます。
- この層は、モデルクラスとデータベース間のマッピングも定義します。 NHibernateは主にこの層で使用されます。
データベース
- データベースは.NETアプリケーションの外部に存在します。
- これは、システム状態の実際の永続的な表現です。
- SQLデータベースを使用する場合、データベースにはリレーショナルスキーマとストアドプロシージャが含まれます。
ヘルパー/ユーティリティクラス
- すべてのアプリケーションには、UIウィジェット、メッセージングクラス、例外クラス、ロギングユーティリティなど、他のレイヤーをサポートするヘルパークラスまたはユーティリティクラスのセットがあります。
- これらの要素は、レイヤードアーキテクチャの層間依存性の規則に従っていないため、レイヤーとは見なされません。
NHibernateアーキテクチャ
- NHibernateアプリケーションの高レベルのビューであり、単純なNHibernateアーキテクチャも確認できます。
*アプリケーションコードは、永続化操作にNHibernate* ISession *および *IQuery* APIを使用し、理想的にはNHibernate *ITransaction* APIを使用して、データベーストランザクションのみを管理する必要があります。