对于这个领域的初学者,您会推荐哪个控制反转容器框架?
对于这个领域的初学者,您会推荐哪个控制反转容器框架?
James Kovacs做了一个dnrtv的screencast,展示如何创建自己的IOC容器。我建议初学者观看此视频,不是因为这一定是您想要使用的,而是因为它展示了为什么需要IOC容器以及基本功能是什么。之后,可以尝试转向Castle Windsor或Structure Map。
Autofac是一个轻量级、简单快速、面向C# 3.0的IoC容器,它在复杂项目中比其他任何IoC容器(甚至包括Windsor)都表现得更好。
主要特点:
有一本由Mark Seemann撰写的优秀书籍,名为.Net中的依赖注入。该书的后半部分详细介绍了6种流行框架,足以让读者对它们有所了解。这本书值得一看,可以帮助新手做出决定。作者还介绍了“穷人版”的依赖注入方法,适用于那些不准备尝试容器但至少想以易于转换为使用IoC容器的方式编写应用程序的人。
他介绍的容器包括:
我对Spring.NET port进行了一些评估。它提供了AOP、容器的配置文件设置和其他很酷的东西。我认为他们的网站组织得很好,文档写得也很好。
我同意dp的观点。那个视频教程的作者甚至说过,你应该自己动手实践一下。这样你才能知道它们是如何工作的。然后,一旦你掌握了这些基础,就可以转向更全面的容器。
还有人提到过,其实并没有一个“万能的IOC容器”。这是因为它们几乎都具有相同的功能。关键在于你喜欢哪种实现方式。例如,如果你经常使用企业库框架,那么你可能会喜欢Unity容器,因为它可以免费与EntLib的其他部分集成。或者,如果你对XML过敏,那么你可以使用Ninject,它有一个非常好用的流畅接口。每个框架都有其优点和缺点,但从初学者的角度来看,它们基本上都是相同的。