我们在ASP.NET MVC中使用哪种View Engine?
我知道我们可以在ASP.NET MVC中使用几种不同的视图引擎:
- ASPX,显然
- 空速
- 抄网
- 纳姆
- 等...
默认ASPX视图引擎对我来说似乎最有意义,它来自ASP.NET WebForms背景。
但是,我想了解每种方法的优缺点,并了解大多数人在使用什么。
StackOverflow使用哪个?
解决方案
回答
地球上的大多数人都只会使用ASPX,因为这就是他们所知道的。另一个出色的好处是编译后的性质...因此,我们不仅可以获得类型安全和智能,而且还可以获得perf好处。
我看到的缺点是它太笨拙了。我将应用程序转换为NVelocity,并对其外观的外观感到惊讶。问题在于,很多事情与NVelocity不兼容(例如我们自己的自定义视图助手),并且严重缺乏文档。
我在MvcContrib中添加了一个功能,我们可以在其中注册自己的HtmlExtension类型,但是在寻求更好的解决方案之前,它更像是一个创可贴。
回答
NHaml的简洁性是我的最爱。人们喜欢它还是讨厌它,因为它看起来与传统的"带有插入代码的HTML"模板系统(如ASPX或者NVelocity)截然不同。
编辑:
@本
还有其他可向下编译的视图引擎(NHaml是其中一种),因此它们确实支持自定义HTML帮助器。看到当前解释的视图引擎最终最终都带有编译模型,我不会感到惊讶。
回答
我使用Spark。它在HTML和代码之间具有良好的流动性。 Scott Hanselman还在其每周的源代码审阅帖子上发表了一篇文章。我真的在挖很多东西。主要功能之一是预编译视图。
回答
" StackOverflow使用哪个?"
Web表单。
我问杰夫·阿特伍德(Jeff Atwood)关于他在Tag Soup帖子上的决定。他没有回答,我认为他正忙着寻找丢失的结束标签;-)
回答
我过去曾经使用过NVelocity。在大多数情况下,它使代码真正干净而且易于遵循。但是,它通常最终只是一些ViewData变量,这些变量之前已经被XSLT文件填充。因此,我想我的View Engine既可以是XSLT(Extended Methods使它非常有用,又可以是讨厌的东西)和NVelocity。
回答
我已经将NVelocity与MonoRail一起使用了一段时间,但是最近在Asp.Net MVC和MonoRail上都切换到了Spark。语法对我来说似乎很自然,但是我想这是可以预期的。 ;)
回答
微软最近宣布了一个新的视图引擎:Razor。
看起来很有趣:
http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx