ASP.NET MVC + fluent nNibernate, what IoC tool?
我正在开发一个ASP.NET MVC项目,我们决定使用FluentNHibernate进行数据处理。为了实现松耦合,我们采用IOC/DI模式。我的问题是国际奥委会的工具是什么。我试着找出温莎、尼尼特、斯普林、结构图和统一之间的区别,但很难看到每个人都能带来什么好处。你有什么经验?
Scott Hanselman在许多流行的.NET IOC上有一篇很好的比较/对比文章:
http://www.hanselman.com/blog/listofnetdependencyinjectioncontainersioc.aspx
我用的是结构图,很容易使用。就我个人而言,我不喜欢使用XML进行配置,而structuremap使使用代码进行配置变得轻而易举。如果需要切换实现,切换不同的配置文件也很容易。
我用温莎,没有什么可抱怨的。易于使用,在需要时可扩展,如果卡住了,还会有很多信息。但我认为你选择哪一个容器并不重要。您提到的所有适配器都有一些共同的特性,并且MVC中心项目中也有适用于MVC的适配器。如果您将容器包装在自己的类中,那么切换到另一个容器并不困难,这无论如何都是一个好的实践。
我一直在使用温莎并且很喜欢它。有一个使用NHibernate的内置设施,允许简单配置日志和连接等。
如果您计划使用FluentHibernate,您必须告诉Windsor设施哪个组件具有ConfigurationBuilder。Mike Hadlow在温莎和NHibernate上有一篇很好的文章:http://mike hadlow.blogspot.com/2009/01/integrating-fluent-nhibernate-and.html
我使用的是轻量级和快速的munq,它是通过nuget向MVC3项目添加DI容器的简单方法。到目前为止,我还没有发现任何需要转移到一个不同的框架上——munq已经足够了。
1 | PM> install-package Munq.MVC3 |
这会将