.NET - What IoC Container framework would you recommend to a beginner in this area?
您会向这一领域的初学者推荐什么反转控制容器框架?
JamesKovacs做了一个dnrtv屏幕直播,展示了如何创建自己的ioc容器。我向初学者推荐这个,不是因为它必然是您想要使用的容器,而是因为它展示了为什么您需要IOC容器以及基本功能是什么的基础。在这之后,尝试移动到温莎城堡或结构图。
AutoFac。
重量轻,简单,速度快,面向C 3.0,在复杂的项目中(对我来说)比任何其他IOC集装箱(甚至温莎)都更好。
主要特点:
- 组件的确定性处理
- 基于表达式的配置
- 对多作用域组件分辨率的适当支持
- 高性能
- 精益代码库
我记得在城堡的温莎有一些来自比特编码器的非常简单的教程,我觉得这些很有帮助并且很容易理解。
即使您决定使用温莎或不使用温莎,这些演练仍然可以让您很好地了解期望从其他容器获得的功能/功能类型。
- 第1部分-简单配置
- 第2部分-更多配置(阵列)
- 第3部分-更多配置(字典)
- 第4部分-开关配置
- 第5部分-配置参数
- 第6部分-生活方式的转换
- 第7部分-交换实施
- 第8部分-按键引用实现
- 第9部分-施工人员注入
- 第10部分-设定器注射
- 第11部分-工厂
- 第12部分-装饰师
- 第13部分-注入服务阵列
- 第14部分-可启动设施
MarkSeemann出了一本很棒的书,叫做.NET中的依赖注入。这本书的后半部分涵盖了6个流行的框架,足够详细地了解它们。帮助一个新的人做决定是值得一看的。他还为那些还没有准备好尝试容器,但至少想以一种可以轻松转换为使用IOC容器的方式编写应用程序的穷人提供了依赖注入。
他所覆盖的容器是:
- 温莎城堡
- 小精灵
- 弹簧网
- AutoFac
- 团结
- MEF(尽管我相信他说MEF不是一个真正的IOC集装箱)
Ninject似乎在这些问题上得到了很多支持
https://stackoverflow.com/questions/71041/which-single-iocdi-container-would-you-recommended-using-and-why
哪些.NET依赖注入框架值得研究?
达尼尔·卡祖利诺有很多(恶心?)创建funq di容器的屏幕显示。funq是轻量级和快速的,但缺少更大、更成熟框架的一些钟声和哨声。
我使用funq派生的munq,它也是轻量级和快速的,并且是通过nuget向MVC3项目添加DI容器的简单方法。到目前为止,我还没有发现任何需要转移到一个不同的框架上——munq已经足够了。
我同意DP。那个剧本的作者甚至说你应该把你的卷起来。这样你就会知道它们是如何工作的。然后,一旦你有了它,你可以继续到更全面的特色之一。
也有人提到,实际上没有一个"一个IOC容器来统治所有容器"。这是因为它们几乎都有相同的特性。归根结底,您喜欢哪个实现。例如,如果您正在大量使用企业库框架,那么您可能会倾向于使用Unity容器,因为您可以获得与Entlib其余部分的免费连接。或者您对XML过敏,那么您可以使用Ninject,它有一个非常流畅的界面。每个框架都有其优点和缺点,但从初学者的角度来看,它们几乎是相同的。
我会说结构图。它是一个更加成熟的框架,并且非常容易使用。此外,它还可以很好地与nmock集成,以创建模拟对象,这对于单元测试非常有价值。微软支持的框架是Unity,所以你也可以看看它。
我对spring.net端口做了一些评估。它提供AOP、容器的配置文件设置和其他很酷的东西。我认为他们的网站组织得很好,文档也写得很好。