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

问题描述:

您能否解释以下三种不同的意图?泛型和C#用于.Net应用程序的IoC和DI框架

1)策略注入应用程序块

2)构造图的IoC

3)托管扩展框架

在他们共同的任务,这是更简单的术语/对齐3.0?

由于

Lijo

+0

好问题!我想在这里看到IoC容器的其他主要参与者:http://www.hanselman.com/blog/ListOfNETDependencyInjectionContainersIOC.aspx – bitbonk 2010-06-02 06:51:12

+0

谢谢..任何答案? – Lijo 2010-06-02 16:45:14

的三个库框架具有不同的凹口,但彼此的功能重叠的一部分。

  1. 策略注入应用程序块:这基本上是一个将横切关注点集成到应用程序中的框架。例如要实现方法的日志记录而不触及原始类。所以它提供了面向方面的编程功能。
  2. 结构图IoC:结构图是Dependency Incection/Inversion of Control container。这里的主要目标是以干净的方式构建和连接物体。这应该导致代码更容易测试和理解。
  3. MEF's是一个扩展系统。它的主要目标是提供一个插件机制,许多组件和插件可以注册和发现对方。 (比如visual-studio插件)。

每个图书馆都有不同的重点。但是这些库的一部分通常会重叠。例如。

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

例如:

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

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

+0

这是一个很好的回答:) – 2011-07-27 00:28:07