32

最近宣布的 .NET 4.0 的托管可扩展性框架 (MEF) - 它是一个依赖注入框架吗?来自 Patterns and Practices 的 Microsoft Unity 在 4.0 中会过时吗?MEF 与 Unity 等框架相比如何?

4

4 回答 4

27

在 Scott Guthrie 的 PDC 2008 2nd Keynote 中特别提到,MEF 与扩展 Visual Studio 2008 和其他应用程序有更多的关系,而不必使用所有的 COM 和旧技术......扩展VS2008 中的文本版本显示在其他内容中。从第 2 天主题演讲 ( http://www.microsoftpdc.com )开始大约 1 小时 15 分钟,您将获得直接信息,但基本上,如果您要“构建具有内置可扩展性点的应用程序,可以轻松被发现,并且它支持发现扩展,”那么 MEF 就是你想要的。UNITY 是您想要的高质量 IoC 容器,它执行 DI 以及其他解决方案,但与企业库的集成非常简单。

关于 EL4.0(现在是 4.1 - http://msdn.microsoft.com/en-us/library/dd203099.aspx)中的 Unity,它实际上是位于版本 2 ObjectBuilder 和 EL4.1 之上的 IoC具有将各种 EL 应用程序块的配置与 Unity 统一起来的扩展点。

MEF 与 Unity 就像将苹果与橙子进行比较。这里有一些完整描述 UNITY 的精彩且具体的播客/网络广播,我强烈推荐:

DotNetRocks 节目 #393 http://www.dotnetrocks.com/default.aspx?showNum=393 DNR.tv 节目 #126 http://www.dnrtv.com/default.aspx?showNum=126

于 2008-11-15T22:09:36.737 回答
1

我看到一篇文章听起来像是一个但更多的信息(PDC2008 上的 Scott Guthrie [视频/wmv])让我认为它不仅仅是一个依赖注入框架。从事物的声音来看,它可以用于依赖注入,但也可以做更多的事情。

于 2008-11-15T21:17:53.533 回答
1

这是关于 MEF/MAF/Unity/Prism的对话,我觉得很有启发性。

于 2011-03-18T22:10:30.753 回答
0

我想添加一个 mopre 行,我刚刚读到MEF 不是控制反转的一部分(因为据说dependecny 是 IOC 的同义词)但它实现了它。当我们通过依赖注入实现 IOC 时,我们通常使用 Unity,它有助于发现静态依赖项,但 MEF 允许我们增加应用程序的可扩展性,而无需静态配置组件,即使它们可以在运行时发现。还有其他链接可以为您提供更多帮助: Unity 和 MEF 之间的区别

于 2012-09-07T07:46:55.933 回答