2011-05-19 66 views
0

連接asp mvc + castle windsor + nhibernate的最佳方式是什麼?ASP MVC +城堡+ nHibernate如何連接?

我有倉庫注入到我的控制器構造函數。

這是這樣做的很好的,正確的方法:

Component.For<ISessionFactory>().UsingFactoryMethod(()=> CreateSessionFactory()).LifeStyle.Singleton, 

Component.For<ISession>().UsingFactoryMethod (k=>k.Resolve<ISessionFactory>().OpenSession()).LifeStyle.PerWebRequest 

,然後就注入ISession到倉庫構造?

交易和處理會話如何?

感謝您的幫助!

回答

0

MVC + Castle + NHibernate?最好的方法是使用S#arp架構而不是重新發明輪子。

發音「夏普架構,」這是 快速構建維護的Web應用程序 利用與NHibernate的ASP.NET MVC 框架堅實的架構基礎 。使用任何體系結構框架在 中尋求的 主要優點是 ,以減少必須編寫的代碼 ,同時提高最終產品的質量 。一個框架應該使 開發人員在基礎設施細節上花費很少的時間,同時允許 他們將注意力集中在 域和用戶體驗上。 因此,S#ARP建築 符合以下關鍵 原則:

  • 關注領域驅動設計
  • 鬆耦合
  • 預配置的基礎設施
  • 開放性演示

的這樣做的總體目標是讓 的開發者更少擔心 應用程序「管道」,並花費 他們的大部分時間在 客戶通過關注業務 邏輯和開發豐富的用戶 經驗的增值。

可以找到一個完整的例子here

+0

城堡支持它,沒有重新發明輪子。 – Henrik 2011-06-19 21:00:37

0

我爲你和任何想要做這件事的人創造了一個設施。

https://github.com/haf/Castle.Facilities.NHibernate/wiki/NHibernate-Facility---Quick-Start

的NuGet:Castle.Facilities.NHibernate

告訴我,如果你覺得它是值得的。它非常簡約。只需在處理當前工作單元的命令處理程序周圍放置一個[Transaction]。我不建議多個服務與不同的交易。因此,我在溫莎創造了一種全新的生活方式,名爲,每筆交易

我可以給你在城堡郵件列表上的更多幫助。