2016-02-28 55 views
2

任何機構可以解釋如何使用DI IOC設置層之間的相關性在層基礎架構,也請說明當我們在UI層創建成分根那麼我們需要參考的UI層中的所有DLL這爲UI開發人員直接訪問DAL層對象留下了範圍。這將違反UI層不應直接訪問DAL對象的規則。設置依賴反轉層之間

任何建築師中小企業能否解釋一下什麼是使用下面提及的技術堆棧實現層狀結構的正確途徑。

這裏的技術偏好是 ASP.NET MVC 4,REST API服務,企業庫(Repository模式)

回答

1

我覺得這是UI層之間的區別「不應該」訪問DAL層,並且「不能「。實施分層以確保DA​​L真正無法訪問UI層會很複雜。關鍵是,你應該不從UI訪問DAL。

就像你不應該從UI層訪問數據庫本身,但沒有什麼是要保持一個無賴開發商這樣做。

順便說一句,你手動創建你的組合根?你應該看看DI框架。它將隔離很多這些依賴關係,是的,它需要知道所有層,但它將這些東西保存在一個相當乾淨的地方。這傢伙有他們幾個像樣破敗:https://rules.ssw.com.au/do-you-know-the-best-dependency-injection-container-(aka-do-not-waste-days-evaluating-ioc-containers)

1

你混合的N層與DI。兩者都是不相關的概念,並不相互依賴。爲獲得最佳效果,您需要對兩個概念進行深入研究,製作多個原型並選擇最適合您的設計。

這僅僅是因爲實施使用這些技術堆棧兩個概念沒有「正確」或「不正確」的方式。實現這一目標的方式太多了。

例如:簡單的三層。由DAL(與數據模型),BLL引用DAL和Presentation

4層的。數據模型層,DAL引用的數據模型,BLL引用的數據模型,介紹使用依賴注入

DDD(域驅動的開發),其具有域模型,數據庫域模型,和表示層(附加與CQRS)

做你最熟悉的事情。稍後重構/重寫。

+0

感謝Fendy,我們該如何判斷哪種設計是最好的任何指導 – sameer