2012-05-25 42 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