我需要一些建議,我們如何解耦表示層中的nHibernate依賴關係。目前,我們有一個三層C#winforms應用程序,包括(簡化)以下層次;C#NHibernate體系結構,三層應用程序
- 用戶界面(UI)
- 業務邏輯(BAL)
- 數據訪問邏輯(DAL)
我們這個應用程序遷移到一個ORM(NHibernate的),並會非常喜歡只有DAL引用nHibernate。我們還希望採用nHibernate中包含的「工作單元」功能,採用「每會話會話」方法。
爲了達到這個目的,我們需要在UI中創建並打開一個會話,將會話通過BAL傳遞給DAL,但是如果不在BAL和DAL中創建對nHibernate的依賴關係,我們無法實現這一點。
任何意見,將不勝感激。我們應該如何構建架構以避免在UI和BAL中引用nHibernate。有任何想法嗎?
我還必須補充一點,我們不希望UI也有對DAL的引用。
UI => BAL => DAL
你所要求的並不是真的有道理(雖然我確實明白你在做什麼,因爲我去過那裏)。這可能是可行的,但它可能很難理解實現細節,並且它提供的價值很小。我的建議:允許你的UI層知道NHibernate,但是儘量減少NHibernate在這一層的使用。 – 2010-12-13 09:44:51