給定一個(當前)項目,它實現了一個具有良好分離的層級業務層的2層體系結構,遵循典型的generic DAO architecture as pioneered by Bill McCafferty on CodeProject,並且在NHibernate in Action的第10章中進行了簡要解釋。推薦使用SOA(Microsoft CRM)從2層NHibernate遷移到3層的方法是什麼?
此項目必須通過Microsoft CRM作爲使用Web服務的中間層來執行CRUD操作和業務邏輯。客戶關係管理中定義了自定義對象和方法,以模擬當前情況。
我不認爲這是一個好主意,開始移動POCO來回像我們以前一樣。此外,延遲加載,緩存和併發等功能都必須區別對待。考慮到我們必須儘量減少中間層和演示層之間的呼叫帶來另一個挑戰。
實施DTO似乎是正確的行動動因,但需要一條漫長的道路(加上團隊的學習路徑)。我之前完成了SOA項目,但現在我正在尋找阻力最小的路徑。我們可以繼續使用NHibernate,即使直接數據庫連接不會成爲選項嗎?我們是否必須重新思考.NET 4.0中引入的設計,或者是斷開連接的實體,或許是一種選擇?它會變得多麼痛苦?
你怎麼能使用NHibernate的時候DB無法直接訪問是可能的嗎? – 2010-07-01 14:08:48
@afsharm,好吧,這是這裏的問題。 NH與連接器一起工作,並且在技術上,您應該能夠將HSQL的翻譯器插入到FetchXML中。考慮到XRM(如Josh所提到的)是使用ADO.NET的圖層,可能會將兩者結合起來。另一個問題是否也是可行的。 – Abel 2010-07-08 11:16:07