您会向该领域的初学者推荐什么 Inversion of Control Container 框架?
9 回答
轻量级、简单、快速、面向 C# 3.0 并且(对我而言)在复杂项目中比任何其他 IoC 容器(甚至 Windsor)都更好。
主要特点:
- 组件的确定性处置
- 基于表达式的配置
- 正确支持多范围组件分辨率
- 高性能
- 精益代码库
我记得有一些来自 BitterCoder关于Castle's Windsor 的非常简单的教程,我发现这些教程很有帮助且易于理解。
即使您决定是否使用 Windsor,这些演练仍然应该让您对其他容器的特性/功能类型有一个很好的了解。
Ninject似乎在这些问题上得到了很多支持
Mark Seemann有一本很棒的书,叫做.Net 中的依赖注入。本书的后半部分详细介绍了 6 个流行的框架,让您对它们有所了解。值得一看以帮助新人做出决定。他还为那些还没有准备好尝试容器,但希望至少以一种可以轻松转换为使用 IoC 容器的方式编写他们的应用程序的人介绍穷人的依赖注入。
他涵盖的容器是:
我对Spring.NET 端口做了一些评估。它提供了 AOP、容器的配置文件设置和其他很酷的东西。我认为他们的网站组织得很好,文档也写得很好。
我会说结构图。它是更成熟的框架之一,并且非常易于使用。此外,它可以很好地与 NMock 集成以创建对单元测试非常有用的模拟对象。Microsoft 支持的框架是 Unity,因此您也可以查看它。
我同意dp。该截屏视频的作者甚至说你应该滚动你的。这样你就会知道它们是如何工作的。然后,一旦你把它弄下来,你就可以继续使用功能更全的。
也有人提到,真的没有“一个 IOC 容器来统治他们”。这是因为它们几乎都具有相同的功能。这取决于您喜欢哪种实施方式。例如,如果您大量使用 Enterprise Library Framework,那么您可能更喜欢 Unity 容器,因为您可以免费绑定到 EntLib 的其余部分。或者你可能对 XML 过敏,那么你可以使用 Ninject,它有一个非常流畅的界面。每个框架都有其优点和缺点,但从初学者的角度来看,它们几乎是相同的。