2009-05-27 62 views
1

我似乎無法找到有關nhibernate 1.2和2.0之間的實際差異的任何信息。我發現了有關升級的潛在問題的信息,但沒有包含哪些新功能或任何有關性能差異的信息。nhibernate 1.2和2.0之間的差異

如果兩者之間存在顯着差異,可能會使我們的開發更加高效或容易,那麼我想推薦升級我的主管。如果沒有什麼值得搞亂的話,那麼在嘗試升級當前穩定的庫時就看不到點。

我打算髮布我已經閱讀的信息的鏈接,但我不被允許,因爲我被認爲是新用戶。

回答

4

我花了6個月的時間將我的工作歸功於升級。讓我簡單介紹一下我們注意到的一些好處,以便您可以顯示出以下功能:

  • 會話啓動時間大大減少。這是SessionFactory在啓動時初始化所需的時間。時間約爲45秒,現在約爲5秒。不是生產問題,但肯定是開發的麻煩。請記住,我們有大約200個域對象。
  • 我們利用延遲加載(並且我不是指集合,而是類)來升級這是默認設置。這是從1.2到2.0的變化。但是我們遇到了未完全加載的與會話斷開連接的對象的問題。這些不容易找到,但容易解決。
  • 我們利用了批次,我認爲這是新的。這對批量更新操作有一些重大改進,而NH並非真正用於此目的。
  • 通過上述兩項改進,我們看到特定夜間操作的時間減少了30%。
  • 我們對舊框架最大的抱怨之一是很難找到1.2的支持和最新信息。
  • 改進了對分頁和計數等事物的Criteria Query支持。標準查詢很好,因爲它們利用一級緩存。
  • 強類型集合是相當愉快的工作。我們偶爾使用LINQ,而不是複雜的SQL,而對域對象使用強類型集合是必須的。
  • 我們也使用Ayende的探查器,目前爲2.0+建造的
  • 還有其他的,但總而言之,我們的移植經驗並不像我們想象的那麼可怕。而且我們有一些遺留的東西會讓NH人們不寒而慄。您需要更改配置設置,升級一些已棄用的接口(我認爲我們的解決方案中少於30個),但最大的麻煩是讓您的域對象的所有屬性/方法變爲虛擬。我實際上編寫了一個快速程序來梳理我們的域對象,並且由於我們有這麼多,所以這樣做。