Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 哪些.NET依赖注入框架值得研究?_C#_.net_Dependency Injection_Inversion Of Control - Fatal编程技术网

C# 哪些.NET依赖注入框架值得研究?

C# 哪些.NET依赖注入框架值得研究?,c#,.net,dependency-injection,inversion-of-control,C#,.net,Dependency Injection,Inversion Of Control,哪些C#/.NET依赖注入框架值得研究? 关于它们的复杂性和速度,你能说些什么呢。Ninject很棒。看起来很快,但我没有做任何比较。我知道作者Nate对Ninject和其他DI框架进行了一些比较,并且正在寻找更多的方法来提高Ninject的速度 我听到很多我尊敬的人对StructureMap和CastleWindsor说了很多好话。在我看来,这是目前需要考虑的三大问题。我过去曾使用过,并取得了巨大成功。我从来没有注意到它有任何实质性的开销,尽管我们使用它的项目本身相当繁重。只花了一点时间就把它

哪些C#/.NET依赖注入框架值得研究?
关于它们的复杂性和速度,你能说些什么呢。

Ninject很棒。看起来很快,但我没有做任何比较。我知道作者Nate对Ninject和其他DI框架进行了一些比较,并且正在寻找更多的方法来提高Ninject的速度

我听到很多我尊敬的人对StructureMap和CastleWindsor说了很多好话。在我看来,这是目前需要考虑的三大问题。

我过去曾使用过,并取得了巨大成功。我从来没有注意到它有任何实质性的开销,尽管我们使用它的项目本身相当繁重。只花了一点时间就把它安装好了。

C#的伟大之处在于它走的是一条被多年的Java开发人员击败的道路。因此,我的建议,一般来说,在寻找这种性质的工具时,是寻找可靠的Java答案,看看是否存在.NET的适应

因此,当谈到DI时(有这么多的选择,这真的是一个品味的问题)是非常重要的。此外,研究项目背后的人总是明智的。我建议使用SourceGear产品进行源代码控制(除了使用它们之外)没有问题,因为我尊重Eric Sink。我看过马克·波拉克的演讲,我能说什么呢,那家伙刚刚听懂了

最后,有很多DI框架,您最好的选择是使用其中的一些框架进行一些示例项目,并做出明智的选择

祝你好运

编辑(不是作者):国际奥委会框架的全面列表可从以下网址获得:

  • -Castle Windsor是同类最佳、成熟的倒置控制容器,可用于.NET和Silverlight
  • -轻量级可扩展依赖项注入容器,支持构造函数、属性和方法调用注入
  • -令人上瘾的.NET IoC容器
  • -简单、快速、功能齐全的IoC容器
  • -忍者的.NET依赖
  • -用于.Net的原始IoC/DI容器
  • -Spring.NET是一个开源应用程序框架,使构建企业.NET应用程序变得更容易
  • -超轻IoC容器
  • -Simple Injector是一个易于使用的.NET 4+依赖项注入(DI)库,支持Silverlight 4+、Windows Phone 8、Windows 8,包括通用应用程序和Mono
  • -ASP.NET核心应用程序的默认IoC容器
  • -Microsoft.extensions.DependencyInjection的程序集扫描扩展
  • -Visual Studio使用的托管可扩展性框架(MEF)实现
  • -一个易于使用、无麻烦的控制反转容器,适用于小型项目、库和初学者
原来的答案如下


我想我在这里可能有点挑剔,但需要注意的是,DI(依赖注入)是一种编程模式,由IoC(控制反转)框架提供便利,但不需要。IoC框架只是让DI变得更容易,而且它们提供了许多超越DI的其他好处

话虽如此,我相信这就是你要问的。关于国际奥委会框架;我曾经使用过很多,但真正的痛苦是你必须编写那些讨厌的XML配置!他们现在几乎都是这样,所以我在过去一年左右一直在使用它,因为它已经转移到使用强类型泛型和注册表的流畅配置,我使用IoC的痛苦障碍已经降到了零以下!现在知道我的IoC配置在编译时被检查(大部分情况下),我感到非常高兴,我对StructureMap及其速度感到非常高兴。我不会说其他人在运行时很慢,但他们对我来说设置起来更困难,挫折往往会赢得胜利

更新

我一直在使用我的最新项目,使用它绝对是一种乐趣。我在这里有点语无伦次,但是(正如我们在英国所说的)这个框架就是“狗”。我强烈推荐它用于任何绿色领域的项目,如果你想快速启动和运行的话。我从Justin Ethernedge的一本书中得到了我所需要的一切。我看不出将Ninject重新装配到现有代码中是一个问题,但在我的经验中也可以这样说。在这两者之间,这将是一个艰难的选择,但我宁愿有竞争而不是停滞,而且还有相当数量的健康竞争

还可以找到其他国际奥委会屏幕广播。

Autofac。它真的很快而且很好。下面是一个比较链接(在Ninject修复内存泄漏问题后进行)


我认为Ninject是一个不错的起点,它是新的,考虑了很多微调,速度非常快。开发人员Nate真的有一个很棒的网站和很好的支持。

我可以推荐Ninject。它非常快速且易于使用,但前提是您不需要XML配置,否则您应该使用Windsor。

我是Castle的超级粉丝。除了国际奥委会集装箱的故事外,我还喜欢它提供的设施。它确实简化了NHibernate、日志、AOP等的使用。我还使用Boo进行配置,并因此爱上了Boo作为一种语言。

Spring.Net非常可靠,但文档编写花了一些时间。Autofac很好,虽然支持.NET2.0,但您需要VS2008来编译它,或者使用命令行来构建您的应用程序

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

  • Spring.NET
    是最成熟的,因为它来自Java世界的Spring。Spring有一组非常丰富的框架库,可以扩展它以支持Web、Windows等