这C#/.净依赖注射框架,都是值得寻找到?和什么可以为您说他们的复杂性和速度。

有帮助吗?

解决方案

编辑 (不是由提交人):有一个全面的列表委员会框架提供 https://github.com/quozd/awesome-dotnet/blob/master/README.md#ioc:

  • 温莎城堡 -温莎城堡是最佳的、成熟的反的控制容器可用。净。
  • 团结 -轻量级扩展的依赖关系注入容器的支持对于构造、财产和方法,呼吁注射
  • Autofac -一个容易上瘾。净IoC容器
  • DryIoc -简单、快速的所有功能齐全的IoC容器。
  • -忍者。净依赖注射器
  • StructureMap -原来IoC/DI容器中进行。净
  • Spring.Net -Spring.NET 是一个开放源应用程序框架,使建筑企业。净的应用更加容易
  • LightInject -一个超轻量级IoC容器
  • 简单的注射器 -简单的注射器是一个易于使用依赖注射(二)库。净4+支持Silverlight4+、Windows电话8、Windows8包括普遍应用程序和单。
  • Microsoft。扩展。DependencyInjection -默认IoC容器ASP.NET 核心应用程序。
  • Scrutor -大扫描扩展为微软。扩展。DependencyInjection.
  • VS MEF -管理扩展框架(MEF)实用的视觉工作室。
  • TinyIoC -一个易于使用的,免费的麻烦,反的控制容器中的小型项目、图书馆和初学者的一致好评。

原来的答案如下。


我想我可能有点挑剔,但重要的是要注意到DI(依赖注射)是一种编程模式,并促进了通过,但是不需要,IoC(反转的控制)框架。IoC框架只是做二容易得多,他们提供的其他福利上。

这就是说,我知道这是什么你都要求。关于IoC框架;我用用 Spring.NetCastleWindsor 很多,但真正的疼痛在后面,是所有那个讨厌的XML config你不得不写!他们几乎所有的移动,这种方式现在,所以我已经被使用 StructureMap 在过去的一年,因为它已经转移到一个流利的配置使用强类型型和一个注册表,我的痛苦阻挡在使用国际奥委会下降到零下!我得到一个绝对的踢出来的知道现在,我IoC配置检查在编写时(大部分)和我有什么,但是欢乐与StructureMap和其速度。我不会说其他人都在运行时,但他们更难为我的设置和挫折,往往获得了一天。

更新

我一直使用 在我最新的项目和已经绝对快乐的使用。失败的话我有点在这里,但是(如我们所说的英国)这一框架是'狗'.我会强烈建议它对任何绿色的领域的项目在那里你想要的快速启动和运行。我得到了我所需要从 奇妙的组而视频 由贾斯汀Etheredge.我不能看到改装而入现有的代码是一个在所有问题,但随后同样可以说的 StructureMap 在我的经验。这将是一个艰难的选择向前发展之间的那两个,但是我宁愿具有竞争于停滞并且有大量的健康竞争。

其他IoC视频广播,也可以找到 在这里Dimecasts.

其他提示

这取决于你在找什么,因为它们各有其利弊。

  1. Spring.NET 是最成熟的,因为它出来的弹簧从Java的世界。春天已经非常丰富的框架库,它扩大到支持网,窗户,等等。
  2. Castle Windsor 是一个最广泛使用。网平台,并具有最大的生态系统,高度可配置的/扩展,已定义的生命周期管理,AOP支持,具有固有它能够支持并且是一个全面真棒容器。温莎的一部分,整个堆栈其中包括单轨铁路,活动记录,等等。它能够自己建立在温莎。
  3. Structure Map 具有非常丰富和精细的构成通过一个内部DSL。
  4. Autofac 是IoC容器的新时代与它的所有固有的功能编程的支持。它还需要不同的方法管理的寿命比其他人。Autofac仍然是非常新的,但它推动吧在什么是可能际奥委会。
  5. Ninject 我听到的更为光秃秃的骨头不是更多的方法(听到没有经历过).
  6. 最大的鉴别的 Unity 为:这是从支持微软(p&p)。团结有很好的性能,以及伟大的文件。它也是非常可配置的。它没有所有花哨的说堡/结构图。

因此,在总结,这真的取决于什么是对你很重要。我同意其他人士和评估,看看哪一个适合。好的事情是你有一个不错的选择甜甜圈而不是只有一个果冻之一。

Autofac. https://github.com/autofac/Autofac 这是真的快速和非常好的。这里是一个链接的比较(后作而固定的存储器泄漏的问题)。

http://www.codinginstinct.com/2008/05/ioc-container-benchmark-rerevisted.html

而是巨大的。它似乎真的很快,但是我没有做任何的比较。我知道,Nate,提交人有没有一些比较而和其它迪框架,并正在寻找更多的方法来提高速度而.

我听说过很多人我尊重说好事约StructureMap和CastleWindsor.那些在我的脑海里,是这三大要看看现在。

我用 简单的注射器:

简单的注射器是一个简单、灵活和快速的依赖关系注入图书馆使用的最佳做法指导你的解决方案朝着的凹坑的成功。

我是一个巨大风扇的城堡。我喜欢的设施,它还提供了超越国际奥委会的容器的故事。它真的simplfies它能够使用、记录、AOP,等等。我也使用 Binsor 为配置与Boo和有真的爱上了Boo作为一种语言,因为它。

我可以推荐而.这是令人难以置信的快速和易于使用,但只有如果你不需要XML配置,否则应使用温莎。

我花了好一天的一部分挣扎没有成功,获得简单Spring.NET 例的工作。不可能如何得到它找到我会从XML文件。在大约2个小时,另一方面,我能够让而工作,包括测试的集成与关和MSTest.

我用 Spring.NET 在过去并取得了巨大成功。我从来没有注意到任何重大开销,尽管该项目中,我们使用上是相当沉重的自己。只花了一点时间阅读过 文档 得到它的设立。

伟大的事情C#是它是下一个路径殴打年的Java开发商之前。因此,我建议,一般来说当寻找工具的这种性质的,是要寻找体Java答案,看看是否有存在的一个。净适应。

因此,当涉及到DI(有这么多选择了,这真的是一个品味的问题)是 Spring.NET.此外,它始终是明智的研究后面的人的项目。我没有问题表明SourceGear产品来源的控制(外使用它们的),因为我尊敬的埃里克*沈。我已经看到马克*波拉克说,我能说什么,那个人只是得到它。

最后,还有很多迪框架和你最好的赌注是要做一些样本项目与他们几个和一个受过教育的选择。

祝你好运!

我认为一个好的开始而,它是新的和具有考虑到很多的微调,而是真快。Nate开发的,真的有一个很大的网站,并大力支持。

Spring.Net 是很稳固,但文件花了一些时间,韦德通过。Autofac是良好的,并且时间。网2.0的支持,需要VS2008年汇编,或者使用命令行来建立您的应用程序。

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