2014-07-16 94 views
0

我需要在我的Web App中實現DI。這不僅僅是Web應用程序,還包括支持業務層類(單獨項目)和數據訪問層類(單獨項目)。什麼是最好的工具來使用這個,我知道有一些內置到MVC中,但我的業務邏輯層和數據訪問層不使用MVC。依賴注入框架

+1

MVC目前沒有任何內建的依賴注入框架,你「知道」不正確。 –

回答

1

我完全同意Erik Funkenbusch的說法。 DI不是一種工具,你應該從應用模式開始,而不是使用工具。如果您在未應用模式的情況下開始使用工具,那麼您將是in worse place than you started

這就是說,對於.NET有很多DI容器,但前6名分別是:

  1. Autofac
  2. Ninject
  3. Castle Windsor
  4. Unity
  5. StructureMap
  6. Simple Injector

但還有更多,例如您可以在this list上看到。

+0

謝謝,我知道我需要首先設計它,我所需要的只是一個能夠幫助我實現設計的工具。 – user3547774

+1

@ user3547774:該工具無助於實現設計。只有你可以實現這個設計。該工具只會幫助保持您的Composition Root可維護,但只能在您根據SOLID原則設計應用程序時執行此操作。 – Steven

2

首先,我建議你應該閱讀更多關於依賴注入的內容。這不是一個框架(雖然有依賴注入框架),但它是一種設計模式。您可以在沒有任何框架的情況下實施DI。該框架只是給你更多的功能。其次,MVC沒有提供DI框架,儘管它確實具有將框架引入MVC的鉤子。

三,依賴注入框架配置在應用程序級別(在你的情況MVC)。不要緊,你的業務層和數據層是單獨的項目,它們仍然被你的應用層使用,而應用層是必須擁有DI框架的應用層,因爲所有對象都是從那裏創建的(這稱爲組成根)。

您可以使用任何您想要的DI框架。沒有「最佳工具」。他們都做同樣的事情,他們只是以不同的方式做,所以歸結爲個人偏好。