Asp.net-Mvc-3
如何選擇DI容器?
可能重複:
有這麼多 DI 容器,我感覺有點失落。我是 DI 模式的新手。
我正在閱讀.NET 中的依賴注入一書,我發現 DI 在改程序式碼庫、使其鬆散耦合和更易測試方面非常有用。
我現在想為我的虛擬項目引入一個 DI 容器,但可供選擇的實在太多了。
我應該如何在 Castle Windsor、Unity、StructureMap、Spring.NET、Autofac、Ninject、Funq、LinFu 等之間進行選擇?
我想一個連貫的做法是“只選擇一個”並開始使用它(因為我認為它們很容易互換,特別是在早期階段),但我想做出更明智的決定。
這就像買車一樣。您可能喜歡豐田,但它只是 2.5 升發動機。你可能喜歡法拉利,但它太紅了。你可能喜歡馬自達,但你的老闆不允許你開它。你可能喜歡悍馬,但你的同事會嘲笑你。根據您的口味混合製造商,總會有人或在某個不同的時刻缺少一些東西。
我的看法是——首先,DI 通常比沒有 DI 更好。選擇任何東西,你會過得更好。我會選擇一些東西:
- 在社區有很好的支持(所以你可以得到答案)
- 有一個很好的支持公司(所以當它破產時你不會重寫你的程式碼)
- 感覺很好(所以你不要在孩子麵前發誓,不酷)
- 對項目來說不是矯枉過正
- 不只是 DI,而是提供了一個事物的生態系統,可以減少你花在你知道你可以做的任務上的時間,只是不是現在——然後你可以專注於重要的事情
- 被很多人使用(所以你知道很多部分也在現實生活中進行了測試並填充了錯誤)
- 不是 5 歲(比如那個文件說它在 Windows 98 上受支持)
我的 2 美分 - http://www.springframework.net/。我的意思是,他們的文件內容頁面有 20 頁長……
或者您可能只想查看類似問題的更多答案: