哪些.NET依赖注入框架值得研究?
哪些C#/ .NET依赖注入框架值得研究? 你可以说他们的复杂性和速度。
编辑 (不是作者):https://github.com/quozd/awesome-dotnet/blob/master/README.md#ioc提供了一个完整的IoC框架列表:
原始答案如下。
我想我可能在这里有点挑剔,但重要的是要注意,DI(依赖注入)是一种编程模式,并且由IoC(反转控制)框架来促进,但不需要。 IoC框架使DI变得更加容易,它们还提供了一系列其他优势。
话虽如此,我相信你就是这么问的。 关于IoC框架; 我过去经常使用Spring.Net和CastleWindsor,但后面的真正痛苦是你必须写的所有令人讨厌的XML配置! 他们现在几乎都以这种方式移动,所以最近一年左右我一直在使用StructureMap,并且由于它已经转向使用强类型泛型和注册表的流畅配置,所以使用IoC时的痛苦障碍已经下降到零下! 我现在知道我的IoC配置在编译时会被检查(绝大部分),而且除了StructureMap和它的速度之外,我什么也没有,只有欢乐。 我不会说其他人在运行时速度很慢,但是他们对我来说更难以设置,并且经常在当天赢得挫折感。
更新
我在最近的项目中一直在使用Ninject,使用它非常愉快。 这里有些话让我失望了,但是(正如我们在英国所说)这个框架是'狗'。 我强烈建议您在任何想要快速启动并运行的绿色领域项目中使用它。 我从Justin Etheredge的一组精彩的Ninject屏幕录像中获得了我所需要的全部内容。 我看不出那种适合现有代码的Ninject是一个问题,但根据我的经验,这同样可以说是StructureMap。 在这两者之间前进将是一个艰难的选择,但我宁愿有竞争而不是停滞不前,并且在那里有相当数量的健康竞争。
其他IoC截屏也可以在Dimecasts上找到。
这取决于你在找什么,因为他们每个人都有自己的优点和缺点。
Spring.NET
是Java世界中Spring的最成熟的版本。 Spring有一套非常丰富的框架库,可以扩展它来支持Web,Windows等。 Castle Windsor
是.NET平台中使用最广泛的一种,拥有最大的生态系统,高度可配置性/可扩展性,具有自定义生命周期管理,AOP支持,具有固有的NHibernate支持,并且是一个非常棒的容器。 Windsor是整个堆栈的一部分,其中包括Monorail,Active Record等.NHibernate本身建立在温莎之上。 Structure Map
通过内部DSL具有非常丰富和细致的配置。 Autofac
是新时代的IoC容器,具有所有固有的功能编程支持。 在管理生命期方面,它也采用不同的方法。 Autofac仍然是非常新的,但它推动了IoC的可能性。 Ninject
我听说更少的裸骨更多的是更多的方法(听说没有经历过)。 Unity
最大的区别是:它来自微软(p&p)并得到其支持。 Unity具有非常好的性能和出色的文档。 它也是高度可配置的。 它没有所有的花色/结构地图的花里胡哨的声音。 所以总而言之,这取决于你对什么很重要。 我会同意其他人去进行评估,看看哪个适合。 好的是你有一个很好的甜甜圈选择,而不是只有一个果冻。
Autofac。 https://github.com/autofac/Autofac它真的很快很好。 这里是比较的链接(在Ninject修复内存泄漏问题之后做出的)。
http://www.codinginstinct.com/2008/05/ioc-container-benchmark-rerevisted.html
链接地址: http://www.djcxy.com/p/2317.html上一篇: Which .NET Dependency Injection frameworks are worth looking into?
下一篇: Difference between Inversion of Control & Dependency Injection