2012-05-25 47 views
4

MAF與OSGi的比較如何?Microsoft插件框架vs OSGi?

MAF不是我能輕鬆找到的東西,而且我在爲什麼人們不推薦像MEF那樣推薦它?至少從我的第一眼看來,它似乎與OSGi類似。

+0

對於任何未來的OSGi訪問者來說,這是一個非常好的MAF如何實際工作的概述。人們可以看到它與OSGi並不完全相同,但更多地是爲了創建Many(插件)一對一(主機)。在MAF中編寫「捆綁」(某種意義上)仍然是可能的,但每個捆綁包需要大約六個**類別的樣板。每個都必須在自己的目錄中。閱讀[文章](http://www.developerfusion.com/article/9396/creating-extensible-applications-with-maf/)。 – drozzy

回答

0

它與OSGi類似。當然,有一些差異,因爲MAF利用AppDomains,其中AFAIK沒有Java等價物(IIRC OSGi使用子JVM)。它存在一些問題 - 它不是由微軟大力推廣的,這可能解釋了社區缺乏興趣。

我唯一真正的抱怨是,它需要你以相當嚴格的方式構建你的項目,使主機和託管程序集有點「MAF意識」。它絕對有效,儘管我不確定那裏有多少東西不能由一個好的開發者在相對較短的時間內自行開發。

+12

我不認爲OSGi使用子JVM,只是在封面下的類加載器魔術。 –

8

除了明顯的差異:

MAF

  • 微軟驅動的,因此專有
  • 語言是C#

OSGi的

  • 由財團驅動,開放
  • 語言是Java

也有不少的功能差異。例如,MAF更多地是關於主機< - >插件體系結構,其中您有一個主要主機,並且插件提供了其中的附加功能;而OSGi提供了一個框架,其中模塊不僅可以與一箇中央單元交談,還可以相互交流。

爲MAF編寫插件相當重要 - 您必須提供7個部分 - 主機,主機視圖,主機適配器,合同,加載項適配器,加載項視圖,加載項 - 以使整個工作。 使用OSGi,您只需使用一個普通的Java JAR文件和一個聲明依賴項的清單文件,並且還可以選擇性地提供用於處理IoC的頭(如果您更喜歡使用控制模式的反轉)。

+0

哇,謝謝!找到了解Java和.NET技術的人很少見。你能否提供一些關於這個MEF vs OSGi的問題 - 所有的答案都不是很全面:http://stackoverflow.com/questions/709532/is-mef-osgi-for-net – drozzy