.NET - 对于这个领域的初学者,你会推荐哪个IoC容器框架?

6

对于这个领域的初学者,您会推荐哪个控制反转容器框架?

9个回答

10

James Kovacs做了一个dnrtv的screencast,展示如何创建自己的IOC容器。我建议初学者观看此视频,不是因为这一定是您想要使用的,而是因为它展示了为什么需要IOC容器以及基本功能是什么。之后,可以尝试转向Castle WindsorStructure Map


我看了Kovacs的“自制”视频教程,感觉不错。我想我可能会更深入地了解Castle相关的内容。我也打算研究一下Active Record的东西。 - BuddyJoe
James Kovacs的屏幕录像是一个很好的起点。我还建议阅读以下链接。http://weblogs.asp.net/sfeldman/archive/2008/02/14/understanding-ioc-container.aspx和http://weblogs.asp.net/sfeldman/archive/2008/02/20/understanding-ioc-container-part-2.aspx - muruge
James Kovacs的视频链接已经失效,但是可以在这里找到。IoC部分从27:27开始。 - OfirD

6

Autofac.

Autofac是一个轻量级、简单快速、面向C# 3.0的IoC容器,它在复杂项目中比其他任何IoC容器(甚至包括Windsor)都表现得更好。

主要特点:

  • 组件的确定性清理
  • 基于表达式的配置
  • 适当支持多作用域组件解析
  • 高性能
  • 精简的代码库

5
我记得BitterCoder的一些非常简单的教程可以帮助你更容易地理解Castle's Windsor。即使你决定不使用Windsor,这些步骤也应该给你一个好的想法,了解其他容器的功能和特性。请查看以下链接:BitterCoder上的教程Castle's Windsor

4

也许这个问题应该被标记为重复。 - Mitch Wheat
它有不同的要点...也许有人想说一些关于“新手”的话题,这在那些问题中并不是一个主题。 - Vinko Vrsalovic

4

有一本由Mark Seemann撰写的优秀书籍,名为.Net中的依赖注入。该书的后半部分详细介绍了6种流行框架,足以让读者对它们有所了解。这本书值得一看,可以帮助新手做出决定。作者还介绍了“穷人版”的依赖注入方法,适用于那些不准备尝试容器但至少想以易于转换为使用IoC容器的方式编写应用程序的人。

他介绍的容器包括:


1
Danial Cazzulino在创建Funq DI容器方面有很多屏幕录像(一堆(揉成一团)?)。Funq是轻量级和快速的,但缺少一些更大、更成熟框架的花哨功能。
我使用基于Funq的Munq,它也是轻量级和快速的,并且通过Nuget为MVC3项目添加DI容器的简单方法。到目前为止,我没有发现需要转移到其他框架 - Munq已经非常足够了。

0

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


你也买了一本Java Spring的书吗?还是只依赖于文档?我想我下周必须开始深入研究了。谢谢。 - BuddyJoe

0
我会推荐使用StructureMap。它是比较成熟的框架之一,非常易于使用。此外,它可以很好地集成NMock来创建模拟对象,这对于单元测试非常有价值。微软支持的框架是Unity,你也可以考虑使用它。

0

我同意dp的观点。那个视频教程的作者甚至说过,你应该自己动手实践一下。这样你才能知道它们是如何工作的。然后,一旦你掌握了这些基础,就可以转向更全面的容器。

还有人提到过,其实并没有一个“万能的IOC容器”。这是因为它们几乎都具有相同的功能。关键在于你喜欢哪种实现方式。例如,如果你经常使用企业库框架,那么你可能会喜欢Unity容器,因为它可以免费与EntLib的其他部分集成。或者,如果你对XML过敏,那么你可以使用Ninject,它有一个非常好用的流畅接口。每个框架都有其优点和缺点,但从初学者的角度来看,它们基本上都是相同的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接