.net MEF vs Mono.AddIn

.net MEF vs Mono.AddIn,.net,plugins,mef,add-in,mono.addins,.net,Plugins,Mef,Add In,Mono.addins,我正在开发一个.NET3.5C#桌面应用程序。它应该可以通过插件进行扩展 是否有任何文章等讨论MEF和Mono.AddIn之间的差异,以帮助我做出明智的决定 或者更好的是,您是否对这两种框架都有经验,并且可以对它们进行评论 谢谢, Patrick我相信他对Mono.AddIns及其带来的影响进行了一些讨论 在浏览网页的同时,我还发现了这两个框架目前处理目录缓存的方式的差异。我调查了这两个框架,并决定使用MEF,主要是因为它将作为.NET 4的一部分发布,因此会自动获得更多的支持、讨论和开发。此外

我正在开发一个.NET3.5C#桌面应用程序。它应该可以通过插件进行扩展

是否有任何文章等讨论MEF和Mono.AddIn之间的差异,以帮助我做出明智的决定

或者更好的是,您是否对这两种框架都有经验,并且可以对它们进行评论

谢谢, Patrick

我相信他对Mono.AddIns及其带来的影响进行了一些讨论


在浏览网页的同时,我还发现了这两个框架目前处理目录缓存的方式的差异。

我调查了这两个框架,并决定使用MEF,主要是因为它将作为.NET 4的一部分发布,因此会自动获得更多的支持、讨论和开发。此外,MEF似乎能够使用代码中的属性完成我需要的一切,如果我没记错的话,Mono.AddIns需要一些元数据文件


编辑:如果您想看到我使用MEF构建可扩展应用程序框架的成果,我已经将其开源,并命名为:。

[注:我致力于MonoDevelop,它使用Mono.Addins,但上周我与MEF团队的Glenn Block广泛讨论了MEF和Mono.Addins之间的差异]

MEF基于编写代码,尽管底层抽象非常灵活。相比之下,Mono.Addins基于元数据树,您可以将数据/元数据/代码插入到定义的丰富模式中,因此扩展可以添加数据/元数据以及代码

Addins为您提供了一个现成的addin管理/打包/存储库/更新系统

MEF的进入门槛略低,更多的设计工作已经进入了它的可用性和底层抽象。此外,它是.NET4的一部分,因此它将有一个更大的用户社区使用它进行开发


在这一点上,如果您需要插入数据/元数据以及代码,并且您想要一个现成的打包系统,我建议您使用Mono.Addins,否则我建议您使用MEF。今后,Mono.Addins的功能很可能会在MEF上实现,因此可能会有一个到MEF的迁移路径。

您可以从attri驱动Mono.Addins但是也是。只有当你想插入数据/元数据或使用一些更高级的功能时,XML清单才是必要的。你甚至可以混合和匹配!@mhutch:我知道,但有一些功能只在XML清单中可用,我更喜欢MEF的全属性模型。但这很小,我同意。Mo的状态如何没有。截至2014年的Addins?codeplex的最后一次提交是在2012年,这意味着它要么已经死了,要么非常稳定:)