剃刀/ CSHTML – 对我们有什么好处?

任何人在那里使用新的CSHTML页面function,并发现他们喜欢这个新的视图引擎语法超过现有的ASP.NET MVC默认视图引擎或Web表单,如果是这样,为什么? 怎么样的CSHTML给你一个优于MVC或Web表单,反之亦然?

只是好奇听到人们的承担。

其中一个好处就是Razor视图可以在unit testing中渲染,这是以前的ASP.Net渲染器所不容易实现的。

从ScottGu的声明中,这被列为devise目标之一:

unit testing:新的视图引擎实现将支持unit testing视图的能力(不需要控制器或networking服务器,可以在任何unit testing项目中托pipe – 不需要特殊的应用程序域)。

微软开发者的意见

我曾在MSDN网站的核心团队工作。 现在,我和我的编程团队一起使用c#razor来处理电子商务网站,并且我们将重点放在jQuery前端,后端c#razor页面和LINQ-Entity内存数据库,因此即使在查询的嵌套循环中,页面响应时间也只有1-2毫秒并没有页面caching。 我们不使用MVC,只是简单的ASP.NET与剃刀页面映射与URL重写模块的IIS 7,没有ASPX页面或ViewState或服务器端事件编程。 它没有额外的(不必要的)层MVC放在正则expression式挑战的代码构造。 对我们来说更less。 它的所有精简和平均,但我给道具MVC的可testing性,但仅此而已。

Razor页面没有像ASPX页面那样的事件生命周期。 它只是作为一个请求的页面呈现。 C#就是这样一个伟大的语言,剃刀好好地摆脱它的方式让它做它的工作。 使用generics和linq进行匿名input可以让c#和剃刀页面变得如此简单。 使用Razor页面将帮助您思考和编码更轻松。

Razor和MVC的缺点之一是没有ViewState类似的持久性。 我需要实现一个解决scheme,所以我最终在这里写了一个jQuery插件 – > http://www.jasonsebring.com/dumbFormState这是一个HTML 5脱机存储支持插件的表单状态,在所有主要工作浏览器现在。 它只是目前的forms状态,但你可以使用window.sessionStorage或window.localStorage非常简单地存储回传甚至页面请求的任何一种状态,我只是懒得使它自动保存和名称空间的基础上的URL和forms索引你不必考虑它。

  1. 一切都是默认编码! 这是相当巨大的。

  2. 声明助手可以被编译,所以你不需要做任何特殊的事情来分享它们。 我想他们会在一定程度上取代.ascx控件。 你必须跳过一些箍在另一个项目中使用.ascx控件。

  3. 你可以做一个很好的部分。

最大的好处是代码更简洁。 VS编辑器也会有一些其他视图引擎没有的IntelliSense支持。

声明式HTML助手也看起来很酷,因为在C#代码中使用HTML助手让我想起了ASP.NET中的自定义控件。 我认为他们从部分页面,但与内联代码。

所以比asp.net视图引擎有一些确定的好处。

与像火花这样的视图引擎相比,

Spark仍然更简洁,你可以保留if和循环在html标签中。 这个标记对我来说还是很自然的。

你可以精确地编写部分代码,你将如何做一个声明式的帮助,你只要将variables传递给partial,并且你有同样的事情。 这已经在相当一段时间火花。