在mef之前,人們已經提出了許多依賴注入框架來解決應用的擴充套件性問題,比如osgi 實現以spring 等等。在 microsoft 的平台上,.net framework 自身內部包含元件模型和 system.addin。同時存在若干種開源解決方案,包括 sharpdevelop 的 soda 體系結構和「控制反轉」容器(如 castle windsor、structure map、spring.net 以及unity)。
雖然.net平台下,包括ms在內的各種方案已經遍地開花,但是mef是第乙個隨著clr發布的解決方案。
官方說法: managed extensibility
framework(mef)是.net平台下的乙個擴充套件性管理框架,它是一系列特性的集合,包括依賴注入(di)以及duck
typing等。mef為開發人員提供了乙個工具,讓我們可以輕鬆的對應用程式進行擴充套件並且對已有的**產生最小的影響,開發人員在開發過程中根據功能要
求定義一些擴充套件點,之後擴充套件人員就可以使用這些擴充套件點與應用程式互動;同時mef讓應用程式與擴充套件程式之間不產生直接的依賴,這樣也允許在多個具有同樣的
擴充套件需求之間共享擴充套件程式。
花了乙個月左右的休息時間將官方提供的mef程式設計指南(t
he mef programming guide
mef程式設計指南一:在應用程式中宿主mef
本篇通過乙個簡單的應用例項介紹了如何在應用程式中宿主mef,以及最基本的匯入、匯出和部件組合的應用。
mef程式設計指南二:silverlight中使用compositioninitializer宿主mef
本篇介紹了如何在silverlight中使用compositioninitializer宿主mef,並通過不同的匯入匯出配置,演示了mef的動態裝載配件組合和一些簡單的應用案例。
mef程式設計指南三:mef中組合部件(composable parts)與契約(contracts)的基本應用
本篇介紹了如何定義組合部件(composable
parts)和契約(contracts),以及基於契約的的多重元件部件的相關應用,包括介面的多實現,如何使用
importmanyattribute特性通過契約獲取介面的多重實現例項等。最後還介紹了通過契約進行約束,實現裝配指定契約的部件。
mef程式設計指南四:使用mef宣告匯出(exports)與匯入(imports)
本篇介紹了如何使用mef宣告匯出(exports)與匯入(imports),包括類、字段、屬性以及方法級別的部件匯出、匯出的應用。
mef程式設計指南五:遲延(lazy)載入匯出部件(export part)與元資料(metadata)
本篇介紹了mef中的遲延載入(lazy)機制和元資料(metadata)匯出功能特性。
mef程式設計指南六:mef中的目錄服務(deploymentcatalog)
對於mef的目錄服務mef分別為wpf和silverlight提供了不同的目錄機制。使用目錄的主要功能就是方便實現程式部件的裝載,以及動態的組合應用程式部件等功能,更可以非常方便的得到程式部件的程式集、匯出部件等相關資料。
mef程式設計指南七:使用目錄(catalog)動態裝載xap與目錄篩選(filtered catalog)
mef程式設計指南八:部件生命週期(parts lifetime)託管
mef中的每乙個可進行動態裝配的匯出部件都是具有生命週期的,在沒有特別需求的情況下一般都沒有對生命週期進行管理,而實際上mef已為每一
個部件進行了預設的生命週期管理,mef的生命週期分為三種:any、shared及nonshared,被定義在
system.componentmodel.composition.creationpolicy列舉物件中。
mef程式設計指南九:重組(recomposition)mef部件
通過前面八篇程式設計指南的學習,相信大家都知道應用程式部件的組合都是在初始化的時候進行裝配的。如果當應用程式已經初始化完成了,此時又有
新的部件被匯入且進行裝配,按照目前的實現方式就無法實現了,我們需要一種可以進行動態裝配、動態組合以及可以動態的進行新的部件被裝配組合的通知的功
能,於此mef所提供的重組(recomposition)部件特性就可以派上用場了。
mef官方**:
相關說明
作 者:beniao
文章出處: 或
《MEF程式設計指南》博文彙總
在mef之前,人們已經提出了許多依賴注入框架來解決應用的擴充套件性問題,比如osgi 實現以spring 等等。在 microsoft 的平台上,net framework 自身內部包含元件模型和 system.addin。同時存在若干種開源解決方案,包括 sharpdevelop 的 soda 體...
博文彙總 SPI匯流排學習
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!spi匯流排協議介紹 簡要的介紹了spi協議的技術效能 匯流排結構 介面定義 物理內部結構 時鐘極性和時鐘相位 傳輸時序 資料傳輸以及優缺點。通過該文章能多spi協議有乙個基本的了解。關於i2c和spi匯流排協議 這也是一篇很好的入門文章,講解了s...
機器學習相關博文彙總
現彙總下自己總結過的machine learning知識點文章 1.為什麼bagging降低方差,boosting降低偏差?2.機器學習中的特徵選擇 過濾式,包裹式,嵌入式 3.期望風險 經驗風險與結構風險 4.區域性加權線性回歸 locally weighted linear regression...