什么是ASP.NET MVC的推荐依赖注入框架

时间:2011-05-26 15:18:33

标签: asp.net-mvc dependency-injection spring.net

我一直在寻找ASP.NET MVC的良好依赖注入。 最近我是Java EE程序员,我总是使用Spring for DI Framework。 但是从互联网上搜索一些教程后。 Spring.NET需要为每个需要注入的控制器配置显式XML。

<spring>
    <context>
        <resource uri="config://spring/objects"/>
    </context>
    <objects xmlns="http://www.springframework.net">

        <object id="HomeController" type="SpringTestApplication.Controllers.HomeController, SpringTestApplication" singleton="false">
            <property name="TestProperty" value="This has been injected via Spring.Net"/>
        </object>

    </objects>   
</spring>

我认为它非常复杂,因为Java World中没有像Spring这样的自动装配功能。 你能建议我推荐的ASP.NET MVC DI Framework吗?

提前致谢。

5 个答案:

答案 0 :(得分:7)

我不会说有一个事实上推荐的用于ASP.NET MVC框架的DI框架。但是,在.NET世界中有相当多的流行DI框架:Castle WindsorAutofacStructureMapNinjectUnitySprint.NET

我肯定会推荐Ninject。来源可以在github找到。各种版本的ASP.NET MVC框架都有Ninject extension。该项目还包含一个示例应用程序。

如果您想在野外查看使用Ninject的应用程序,我会推荐博客引擎Subtext

我还建议你看一下Mark Seemann的书:Dependency Injection in .NET。它涵盖了.NET的一些主要框架。不幸的是,它不包括Ninject。

答案 1 :(得分:4)

Castle Windsor,Ninject,Autofac都是不错的候选人

我个人现在使用Castle。

有关如何设置的好例子,请参阅 http://wiki.sharparchitecture.net/

答案 2 :(得分:3)

我已将UnityCastle Windsor与MVC一起使用。两者都很好,都有XML或流畅的API配置。

答案 3 :(得分:2)

我认为没有“首选”框架。正如其他答案所示,您有多种选择,其中spring.net就是其中之一。

关于spring.net:

  • 您可能有一个CodeConfig项目
  • 使用vs.net add-in,使用xml配置的Visual Studio支持有所改善,ReSharper也有所帮助
  • asp.net mvc 2支持out-of-the-box版本1.3.1(当前版本)
  • asp.net mvc 3将支持out-of-the-box版本1.3.2,预计很快就会出现

如果您想通过spring.net利用Spring Java技能,可能需要考虑以上因素。

答案 4 :(得分:1)

您可以像在Java世界中一样使用CodeConfig方法:

http://springframework.net/#spring-code-config-1.0.1-released

提供MVC样本。