如何选择DI容器?
可能重复:
主要的C#DI / IoC框架如何比较?
有这么多的DI容器,我感觉有点失落。 我是DI模式的新手。
我正在阅读.NET中的依赖注入(Dependency Injection)一书,并且我发现DI在改进代码库方面非常有用,使它更加松散耦合,并且更具可测试性。
我现在想为我的虚拟项目引入一个DI容器,但是有很多可供选择的东西。
我应该如何选择Castle Windsor,Unity,StructureMap,Spring.NET,Autofac,Ninject,Funq,LinFu等等?
我想一个连贯的做法是“只挑一个”并开始使用它(因为我认为它们非常容易互换,特别是在早期阶段),但我想做出更明智的决定。
这就像买车。 你可能会喜欢丰田,但它只有2.5L发动机。 你可能会喜欢法拉利,但它太红了。 你可能会喜欢马自达,但你的老板不允许你驾驶它。 你可能会喜欢悍马,但是你的同事会嘲笑你。 将制造商与您的口味混合在一起,对于某个人或某个不同的时刻总会缺少某些东西。
我的观点是 - 首先,DI通常比没有DI更好。 选择任何东西,你会变得更好。 我会选择一些:
我的2美分 - http://www.springframework.net/。 我的意思是,他们的文档内容页面长达20页...
或者你可能想看一些类似问题的更多答案:
您可以从MVC3中的内置DependencyResolver开始。 稍后,您可以轻松升级到Enterprise Library Unity DI。
Brad Wilson提到了一系列关于如何在MVC3中使用DI的文章。
我的立场是,看看几个 - 你已经得到了很好的“.NET依赖注入”书籍(对于那个列表,我将添加Ninject,但不幸在本书中没有提到) - 并选择其中一个,你了解最好和喜欢的语法。 要开始使用高级功能并不重要, 只需要开始 。
一旦你有一个IoC容器,替换它应该是微不足道的,因为你所做的所有更改都将在一个地方 - 聚合根 - 并且不会散布在整个代码库中。 如果您还没有使用IoC容器,也会强制您设计依赖注入,这将对您的项目产生更大的影响。
链接地址: http://www.djcxy.com/p/82133.html