1. 程式人生 > >Nhibernate官方體系結構圖部分中文翻譯

Nhibernate官方體系結構圖部分中文翻譯

lock nec 圖片 表現層 結構圖 ide info 命名約定 factory

原文鏈接 :http://nhibernate.info/doc/nh/en/index.html#architecture

體系結構圖

高度抽象NHibernate體系架構圖

技術分享圖片

這幅圖展示了NHibernate使用數據庫和配置數據為應用程序提供了持久化服務和持久化對象。

精簡版NHibernate體系架構圖

技術分享圖片

精簡版的體系架構圖顯示了應用程序有自己的 ADO.NET connections對象和管理自己的事務. 這種方式使用 NHibernate‘s API的一個子集。

完整版NHibernate體系架構圖

技術分享圖片

完整版的體系架構圖顯示了Nhibernate的應用程序遠離底層依賴的 ADO.NET APIs同時讓NHibernate負責細節。

體系結構說明

  • 會話工廠ISessionFactory(NHibernate.IsessionFactory):,單個數據庫的已編譯映射的線程安全(不可變)緩存。 ISession的工廠和IConnectionProvider的客戶。可以在進程或集群級別保存可在事務之間重用的可選(二級)數據高速緩存。
  • 會話ISession(NHibernate.ISession):,表示應用程序與持久性存儲之間的對話的單線程,短期對象。包裝ADO.NET連接。 ITransaction的工廠。保存持久化對象的強制(第一級)緩存,在導航對象圖或按標識符查找對象時使用。
  • 持久化對象(Persistent Objects)及其集合(Collections):
    包含持久化狀態和業務功能的短期單線程對象。這些可能是普通的POCO對象,它們的唯一特殊之處在於它們目前與一個(最多一個)ISession對象相關聯。只要會話被關閉,它們將被分離並可在任何應用程序層中自由使用(例如,直接作為傳送到表現層的數據傳輸對象(DTO))。
  • 臨時對象(Transient Objects)及其集合(Collections):指的是沒有和一個ISession關聯的持久化類的實例對象。這些實例對象可能是剛剛被程序實例化,還沒有來得及被持久化,或者已經持久化但是關聯的ISession已經被關閉了。
  • 事務 ITransaction (NHibernate.ITransaction):
    (可選),應用程序用於指定原子操作的單線程,短期對象。是對來自依賴底層的 ADO.NET transaction 做的抽象. 在某些情況下,一個 ISession 可能跨越幾個ITransaction,因此可以使用事務域。
  • 連接提供程序IConnectionProvider(NHibernate.Connection.ConnectionProvider):(可選),ADO.NET連接和命令的工廠。從DbConnection和DbCommand的具體供應商的特定實現中抽象而來。對應用程序不可見,但可以被開發者擴展/實現。
  • 驅動程序接口IDriver (NHibernate.Driver.IDriver):(可選),封裝了在ADO.NET 提供程序之間的差異部分的接口。比如參數命名約定和支持ADO.NET特性。
  • 事務工廠ITransactionFactory(net.sf.hibernate.TransactionFactory):(可選),事務實例對象的工廠。對應用程序不可見,但可以被開發者擴展/實現。

在精簡架構圖中可以看出,應用程序可以繞過ITransaction / ITransactionFactory,然後通過IConnectionProvider API直接與ADO.NET通信。

Nhibernate官方體系結構圖部分中文翻譯