Dot-Net
MEF OSGi 是否適用於 .NET?
我現在只是想了解託管可擴展性框架( MEF ) 並深入研究一下。我有 Eclipse 背景,所以在我的大腦中,我目前有以下等式:
MEF =~ OSGi for .NET根據我目前所聽到的。我在正確的路線上嗎?
Scott Hanselman 在他與 Glenn Block的播客 148中幫助突出了有關 MEF 的細節。
與 OSGi 相比,MEF 建立在“控制反轉”之上,而OSGi不是:它 (OSGi) 將通過基於生命週期層的不同機制發現新的捆綁包。
MEF專注於應用程序的可擴展性。它使用 DI 作為組合不同擴展的策略,但它本身並不是通用的 DI 容器。
由於最後一點可能令人困惑,播客的文字記錄可以提供幫助:
我基本上定位它的方式,兩者之間的區別在於,IoC 容器實際上是關於在不同環境中管理一組已知的東西,比如我想要在我的磁碟環境中使用一個記錄器,我想要在我的測試環境中使用一個模擬記錄器.
所以 MEF 實際上是關於管理一組未知的事情,歸結為,在 IoC 容器中,我傾向於做基於約定或註冊的特定註冊機制,這就是 logger 的意思,這就是這個意思是,這就是它的意思。
MEF 使用程式碼和程式碼上的發現機制和註釋,它們是屬性,無論系統中出現什麼,它就是存在的。
所以再一次,把它帶到更高的層次,它是關於你使用 MEF 來真正管理一組未知的東西,你使用 IoC 容器來管理一組已知的東西。
結論:(之一)主要區別在於發現原理(IoC 與生命週期)