MEF(託管擴展框架)解決了現有IoC/DI容器無法解決的問題?MEF(託管擴展框架)與IoC/DI
53
A
回答
53
MEF的主要目的是可擴展性;作爲應用程序的作者和插件的作者(擴展)的時間不同並且除了已發佈的接口(合同)庫之外沒有彼此特定知識的'插件'框架。
另一個問題空間MEF的地址與通常的IoC嫌疑人不同,也是MEF的一個優勢,是[擴展]發現。它有很多很好的可擴展發現機制,可以對與擴展關聯的元數據進行操作。從MEF的CodePlex站點:
「MEF允許標記擴展與這有利於富查詢和過濾產生額外的元數據」
結合到延遲加載標記的擴展,能夠詢問擴展元數據的能力之前加載到一個有趣的場景的大門打開了大門,並大幅啓用功能,如[插件]版本控制。
MEF還有'合同適配器',允許對擴展進行'修改'或'轉換'(從類型>),並完全控制這些轉換的細節。合同適配器相對於「發現」意味着什麼開闢了另一個創造性的前沿。另外,MEF的'intent'緊緊集中在匿名插件的可擴展性上,這與其他IoC容器非常不同。所以雖然MEF可以用於構圖,但這只是其相對於其他IoC的功能的一小部分,我懷疑我們會看到很多亂倫之間的相互影響。
26
IoC容器專注於你知道的事情,即我知道我將在單元測試中使用一個記錄器,並在我的應用程序中使用不同的記錄器。 MEF專注於那些你不需要的東西,有1到n個記錄器可能出現在我的系統中。
11
Scott Hanselman和我在最近的報告中詳細介紹了這個話題。
相關問題
- 1. 工廠模式與託管擴展框架(MEF)
- 2. Visual Studio 2010與託管擴展框架
- 3. 什麼是託管擴展性框架(MEF)?
- 4. 託管擴展性框架(MEF),爲什麼需要導入?
- 5. MEF(託管擴展框架)做「鴨」打字嗎?
- 6. 託管擴展性框架(MEF)與複合UI應用程序塊(CAB)
- 7. .NET的託管擴展框架?
- 8. Silverlight - Prism,Unity和託管擴展框架,
- 9. 如何加載使用MEF(託管擴展框架)從目錄中的DLL
- 10. 用於.NET Framework 2.0的MEF(託管擴展性框架)之類的東西
- 11. 使用託管擴展框架和底框架
- 12. Microsoft擴展性框架 - MEF CompositionContainer
- 13. 帶有託管擴展框架的沙盒插件
- 14. 託管擴展性框架,攔截和動態代理
- 15. 如何將MEF(託管擴展框架)配置爲僅加載簽署的程序集
- 16. 託管可擴展框架 - 當兩個類實現一個接口時無法使用mef
- 17. 在討論MEF(託管擴展性框架)和.NET 4.5時,「多範圍」意味着什麼?
- 18. Auth0委託管理擴展
- 19. 可擴展的Servlet託管
- 20. MEF擴展VS AutoFac
- 21. MEF擴展事件
- 22. MEF和非託管代碼
- 23. Bot框架需要託管?
- 24. 歐洲Zend框架託管
- 25. 實體框架可擴展的框架
- 26. 擴展實體框架類
- 27. 擴展實體框架
- 28. 果園可擴展框架
- 29. 如何擴展Eclipse框架?
- 30. 從BaseController Zend框架擴展
您有一個非常明顯的單詞選擇。 – 2011-04-14 04:01:40