.NET - 你会向这个领域的初学者推荐什么IoC Container框架?

时间:2008-11-20 03:06:24

标签: .net inversion-of-control ioc-container

您会向这个领域的初学者推荐什么样的Inversion of Control Container框架?

9 个答案:

答案 0 :(得分:10)

James Kovacs做了一个dnrtv screencast,在那里他展示了如何创建自己的IOC容器。我向初学者推荐这个并不是因为它必然是你想要使用的那个,而是因为它显示了为什么你需要一个IOC容器以及基本功能的基础知识。在此之后,请尝试转到Castle WindsorStructure Map

答案 1 :(得分:6)

Autofac.

轻量级,简单,快速,面向C#3.0,并且在复杂的项目中(对我而言)比任何其他IoC容器(甚至是Windsor)都更好。

主要功能:

  • 确定性处理组件
  • 基于表达式的配置
  • 对多范围组件分辨率的正确支持
  • 高性能
  • 精益代码库

答案 2 :(得分:5)

我记得tutorials from BitterCoder上有一些非常简单的Castle's Windsor,我发现这些内容非常简单易懂。

即使您决定使用Windsor,这些演练仍然可以让您了解其他容器所期望的功能/功能类型。

答案 3 :(得分:4)

答案 4 :(得分:4)

Mark Seemann有一本名为Dependency Injection In .Net的好书。本书的后半部分详细介绍了6个流行的框架,以便对它们有所了解。值得一看,帮助新人决定。他还为不准备尝试容器的人提供了穷人的依赖注入,但他们希望至少以一种易于转换为使用IoC容器的方式编写应用程序。

他所涵盖的容器是:

答案 5 :(得分:1)

Danial Cazzulino有bunch (scrunch?) of screencasts创建Funq DI容器。 Funq轻巧而快速,但缺乏更大,更成熟的框架的一些花俏。

我使用Funq派生的Munq,它也是轻量级和快速的,并且是通过Nuget将DI容器添加到MVC3项目的简单方法。到目前为止,我还没有发现任何需要迁移到不同的框架--Munq已经足够了。

答案 6 :(得分:0)

我对Spring.NET port进行了一些评估。它提供容器的AOP,配置文件设置和其他很酷的东西。我认为他们的网站组织得很好,文档写得很好。

答案 7 :(得分:0)

我会说StructureMap。它是一个比较成熟的框架,非常容易使用。此外,它可以很好地与NMock集成,以创建模拟对象,这对于单元测试非常有用。 Microsoft支持的框架是Unity,因此您也可以查看它。

答案 8 :(得分:0)

我同意dp。该截屏视频的作者甚至说你应该滚动你的。这样你就会知道它们是如何工作的。然后,一旦你有了这个,你可以继续前进到更全功能的一个。

还有人提到,确实没有“一个IOC容器来统治它们”。这是因为它们几乎都具有相同的功能。它归结为您喜欢的实现。例如,如果您正在使用Enterprise Library Framework,那么您可能会偏爱Unity容器,因为您可以获得与EntLib其余部分的免费绑定。或者您可能对XML过敏,那么您可以使用Ninject,它具有非常好的流畅界面。每个框架都有自己的优点和缺点,但从初学者的角度来看,它们几乎是一样的。