您会向该领域的初学者推荐哪种控制反转容器框架?

有帮助吗?

解决方案

James Kovacs做了一个dnrtv 截屏视频,在那里他展示了如何创建你的拥有IOC容器。我向初学者推荐这个并不是因为它必然是你想要使用的那个,而是因为它显示了为什么你需要一个IOC容器以及基本功能的基础知识。在此之后,尝试继续 Castle Windsor 结构图

其他提示

Autofac。

轻量、简单、快速、面向 C# 3.0,并且(对我来说)在复杂项目中比任何其他 IoC 容器(甚至 Windsor)都能更好地工作。

主要特点:

  • 组件的确定性处置
  • 基于表达式的配置
  • 对多范围组件解析的适当支持
  • 高性能
  • 精益代码库

我记得有一些非常简单的 来自 BitterCoder 的教程温莎城堡 我发现这很有帮助并且易于遵循。

即使您决定是否使用 Windsor,这些演练仍然应该让您很好地了解其他容器所期望的特性/功能类型。

有一本很棒的书 马克·西曼 被称为 .Net 中的依赖注入. 。本书的后半部分详细介绍了 6 个流行的框架,以便您对它们有一个大致的了解。值得一看,以帮助新人做出决定。他还为那些还没有准备好尝试容器但至少希望以一种可以轻松转换为使用 IoC 容器的方式编写应用程序的人介绍了穷人的依赖注入。

他覆盖的容器有:

Danial Cazzulino有一个 Funq DI容器的=“nofollow”>一堆(scrunch?)截屏视频。 Funq轻巧而快速,但缺乏更大,更成熟的框架的一些花俏。

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

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top