2009-09-17 54 views
10

我在开始一个新的ASP.NET MVC项目时已经深陷困境。有几篇教程推荐使用MVC Contrib。我希望得到Stack Overflow社区的意见,如果它履行了增加ASP.NET MVC生产力的承诺。基本上MVC Contrib的好处是值得在我的应用程序中增加另一个leaky abstractionMVC Contrib是否履行了提高ASP.NET MVC生产力的承诺

+0

只需使用尽可能多的要使用。大多数MVC Contrib的想法已经被纳入到MVC v2中,并且我们发现它对我们的项目(特别是测试助手)至关重要。 – 2010-02-17 03:47:38

回答

10

我认为MVC Contrib在测试时是无价的。他们提供了许多扩展方法,使您能够流利地测试路由和操作结果。例如:

“〜/管理/用户/修改/ TESTUSER” .ShouldMapTo(A => a.Modify( “TESTUSER”));

...路由,并采取行动的结果:

Controller.List() .AssertViewRendered() .WithViewData>() .Count之间 .ShouldEqual(4,“应该被4个用户返回“);

另外MVC Contrib提供了一个有用的TestControllerBuilder类,它可以建立一个控制器,并负责伪造所有必要的HTTP上下文类型的东西。这看起来并不多,但与DI配对,如果有痛苦,自己写。

 Builder = new TestControllerBuilder(); 
     Builder.CreateController<CT>(); 

从测试移动的,用于DI/IoC的控制器工厂是真正有用的,所以你不必自己动手写,但不是必需恕我直言。

我喜欢关于MVC Contrib的另一件事是流利的HTML助手。我认为这是好多了使用这些类型的流畅助手设置HTML属性和其他数据 - 在这里的有两个例子:

<%= this.TextBox(“名称”)标签(“活动。类别名称:“).MaxLength(50).Class(”required“)