用于.Net应用程序的IoC和DI框架

时间:2010-06-02 06:18:52

标签: .net ioc-container

请您解释以下三个内容的意图有何不同?

1)策略注入应用程序块

2)结构图IoC

3)托管扩展性框架

就他们所做的常见任务而言,哪些更简单/与泛型和C#3.0一致?

由于

Lijo

1 个答案:

答案 0 :(得分:4)

三个库框架具有不同的缩进,但部分功能相互重叠。

  1. 策略注入应用程序块:这基本上是一个将横切关注点集成到应用程序中的框架。例如,在不触及原始类的情况下实现方法的记录。因此它提供了面向方面的编程功能。
  2. 结构图IoC:结构图是Dependency Incection / Inversion of Control container。这里的主要目标是以干净的方式构造和连接对象。这应该导致代码更容易测试和理解。
  3. MEF是一个扩展系统。它的主要目标是提供一个插件机制,其中许多组件和插件可以相互注册和发现。 (像visual-studio addins)。
  4. 每个图书馆都有不同的焦点。但这些库的部分通常会重叠。例如。

    • 许多依赖注入框架提供了一些面向方面的编程功能,如策略注入应用程序块。但它不是焦点,因此没有那么强大。
    • MEF使用与大多数IoC容器非常相似的原理(如Structure Map)。事实上它也是一个IoC容器。但重点是将组件连接在一起。

    例如:

    • 您希望实施横切关注点,例如日志记录,安全性等。使用策略注入应用程序块
    • 您想要很好地构建应用程序,以便它可以测试并且更容易理解吗?像StructureMap这样的IoC容器可以提供帮助
    • 您想为您的应用程序构建插件模型吗?以MEF。

    当然,您可以混合使用这些技术。