pbr*_*ult 375 .net c# dependency-injection inversion-of-control
哪些C#/ .NET依赖注入框架值得研究?你能说出他们的复杂性和速度.
Rob*_*rey 331
编辑(不是作者):有一个完整的IoC框架列表,可在https://github.com/quozd/awesome-dotnet/blob/master/README.md#ioc获得:
原始答案如下.
我想我可能在这里有点挑剔,但重要的是要注意DI(依赖注入)是一种编程模式,并且由IoC(控制反转)框架促进,但不需要.IoC框架只是使DI变得更容易,它们提供了除DI之外的许多其他好处.
话虽如此,我确信这就是你所要求的.关于IoC框架; 我以前经常使用Spring.Net和CastleWindsor,但背后真正的痛苦就是你必须写的那个讨厌的XML配置!它们现在几乎都是这样移动的,所以我在过去一年左右一直在使用StructureMap,并且由于它已经使用强类型泛型和注册表转移到流畅的配置,我使用IoC的痛苦障碍已经降到零下!现在知道我的IoC配置在编译时被检查(大部分时间),我得到了一个绝对的机会,我对StructureMap及其速度感到高兴.我不会说其他人在运行时速度很慢,但是对我来说设置起来比较困难,而且经常赢得挫败感.
更新
我一直在使用Ninject进行我的最新项目,并且使用起来非常愉快.单词在这里让我失望,但(正如我们在英国所说)这个框架是"狗".我强烈建议您在任何想要快速启动和运行的绿色领域项目中使用它.我从Justin Etheredge的一套精彩的Ninject截屏中得到了我所需要的一切.我看不出将Ninject改编成现有代码根本就是一个问题,但在我的经验中可以说StructureMap也是如此.在这两者之间展开将是一个艰难的选择,但我宁愿竞争而不是停滞不前,那里有相当数量的健康竞争.
其他IoC截屏也可以在Dimecasts上找到.
Gle*_*ock 77
这取决于你在寻找什么,因为它们各有利弊.
Spring.NET是来自Java世界的最成熟的Spring.Spring有一组非常丰富的框架库,可以扩展它以支持Web,Windows等.Castle Windsor是.NET平台中使用最广泛的一个,拥有最大的生态系统,高度可配置/可扩展,具有自定义生命周期管理,AOP支持,具有固有的NHibernate支持,并且是一个非常棒的容器.Windsor是整个堆栈的一部分,包括Monorail,Active Record等.NHibernate本身建立在Windsor之上.Structure Map 通过内部DSL具有非常丰富和细粒度的配置.Autofac是一个新时代的IoC容器,具有所有固有的函数编程支持.管理生命周期的方法也不同于其他方法.Autofac仍然是非常新的,但它推动了IoC的可能性.Ninject 我听说有更多的方法(听说没有经历过).Unity是:它来自微软(p&p).Unity具有非常好的性能和出色的文档.它也是高度可配置的.它没有说城堡/结构地图的所有花里胡哨的东西.总而言之,它实际上取决于对您来说重要的事情.我会同意其他人一起去评估和看哪一个适合.好的是你有一个很好的甜甜圈选择,而不仅仅是一个果冻.
Pet*_*ete 35
Autofac. https://github.com/autofac/Autofac这真的很快,非常好.这是一个比较链接(在Ninject修复内存泄漏问题后制作).
http://www.codinginstinct.com/2008/05/ioc-container-benchmark-rerevisted.html
Sco*_*oon 18
Ninject很棒.它看起来真的很快,但我还没有做过任何比较.我知道作者Nate在Ninject和其他DI框架之间进行了一些比较,并且正在寻找更多方法来提高Ninject的速度.
我听说很多我尊敬的人都对StructureMap和CastleWindsor说了些好话.在我看来,这些是现在看到的三巨头.
小智 13
我使用Simple Injector:
Simple Injector是一个简单,灵活,快速的依赖注入库,它使用最佳实践指导您的解决方案走向成功的关键.
我可以推荐Ninject.它非常快速且易于使用,但只有在您不需要XML配置时,否则您应该使用Windsor.
小智 5
我花了一天的时间在没有成功的情况下努力让最简单的Spring.NET示例正常工作.永远无法弄清楚如何从XML文件中找到我的程序集.另一方面,在大约2个小时内,我能够让Ninject工作,包括测试与NUnit和MSTest的集成.
| 归档时间: |
|
| 查看次数: |
147952 次 |
| 最近记录: |