Razor 越来越像 Rails 了
随着 ASP.NET MVC 3 发布了 Razor 视图引擎。这个引擎使得编写页面模板的语法更加简洁和精炼了,也更加 "DRY”. 可以参考 Scott Gu 的帖子:
其特色有:
- 支持类似 Rails 里面的 layout 文件定义(取代了 ASP.NET 视图引擎里面的 master page 机制)。
- 支持对所有视图应用统一的 layout 文件,而不用到处重复声明(再次体现了 DRY 原则)。
(通过定义一个 /Views/_ViewState.cshtml 文件来实现,并且其中可以写代码做一些判断,比如针对移动设备采用哪个 layout 文件,针对一般电脑浏览器采用哪个 layout 文件?)
可以看到,这样做的确比以前的 asp.net webform 要少写很多 UI 的 markup 代码了。但是,和 Rails 一样,追求 DRY 的代价是:约定优于配置(Convention over Configuration). 要追求 DRY,就要设定一些规则/约定,要记忆多一点类似这样的东西。