【问题标题】:Is MEF a dependency injection framework?MEF 是依赖注入框架吗?
【发布时间】:2010-09-22 12:36:08
【问题描述】:

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

【问题讨论】:

标签: .net unity-container mef


【解决方案1】:

在 Scott Guthrie 的 PDC 2008 2nd Keynote 中特别提到,MEF 与扩展 Visual Studio 2008 和其他应用程序有更多的关系,而不必使用所有 COM 和旧技术...一个非常好的演示在 VS2008 中扩展了文本版本,其中包括。从第二天主题演讲 (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 之上的 IoC,EL4.1 具有用于统一各种 EL 应用程序块配置的扩展点统一。

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

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

【讨论】:

  • 但是当我拥有 MEF 时为什么还要使用 Unity?
【解决方案2】:

我看到一篇文章听起来像是一篇,但更多信息 (Scott Guthrie at PDC2008[Video/wmv]) 让我认为它不仅仅是一个依赖注入框架。 从sounds of things 开始,它可以用于依赖注入,但也可以做更多的事情。

【讨论】:

    【解决方案3】:

    Here's a conversation 关于 MEF/MAF/Unity/Prism 我觉得很有启发性。

    【讨论】:

    【解决方案4】:

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

    【讨论】:

    • 我不确定这个答案是否完全一致
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-06
    • 2010-09-14
    • 1970-01-01
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    • 2015-02-12
    相关资源
    最近更新 更多