【问题标题】:Razor vs Webforms view engine for new ASP.NET MVC 3 site用于新 ASP.NET MVC 3 站点的 Razor 与 Webforms 视图引擎
【发布时间】:2011-07-12 18:42:20
【问题描述】:

Razor 更漂亮(而且是新的,因此很酷)。

Webforms 我已经很熟悉了。

毫无疑问,我会去学习新事物 - 剃刀。但我听说有两个让我担心的缺点:

  • 无法轻松重用现有的 Web 表单控件 - 在极少数情况下,我可能需要拖动某些东西...我会重申 - 'RARE'
  • 我听说渲染效率较低(比 Web 表单需要更长的时间)

那么在使用 ASP.NET MVC 3 时,Razor 相对于 Webforms 视图引擎有哪些优势?

【问题讨论】:

  • 最近的一次网络会议上的一张幻灯片显示,对于典型页面,Razor 的性能略微比 Web 表单差。所以,那里没有明显的区别。 (尝试真正让 Web 表单视图引擎陷入困境的东西会很有趣,比如深度递归部分......)
  • 不要忘记所有其他不错的视图引擎。虽然 Razor 是所有 ASP.NET Web 开发(一般是 ASP.NET 网页,而不仅仅是 ASP.NET MVC)的 Web 窗体的推荐继任者,但仍然有 Spark,它有很多追随者:sparkviewengine.com
  • 看看这个关于 Razor 性能的thread
  • @Oenning 为什么?你推荐@British 运行 RC2 吗? ;)

标签: asp.net-mvc asp.net-mvc-3 razor viewengine


【解决方案1】:

学习曲线可能很麻烦,但请坚持下去。代码不仅“更漂亮”,而且更简洁,让您以模块化方式工作,您可以注入 html 部分,让您重用代码,就像面向对象的代码一样,但只使用 HTML。

这个更简洁的代码意味着 500 条唯一的行现在只有 20 行!至于视图状态,您仍然可以使用隐藏字段,并且一旦您学会了不使用它进行编码,就不会错过它。

VS2013 现在有一个带有 F# 的 MVC Razor 示例项目,可以让您立即上手。

使用 F# 的 Razor 中使用 500 行代码的同一个项目需要 5000 行或更多行 C# 和 Webform 代码。

我建议你在 16 岁的实习生上任之前学习这项新技术 ;-)

【讨论】:

    【解决方案2】:

    以下问题已经解决了这个问题:Does Razor syntax provide a compelling advantage in UI markup?

    【讨论】:

      【解决方案3】:

      您可能想澄清您所谈论的技术。在 ASP.Net 中,WebForms 是一个 Web 框架,就像 ASP.Net MVC 是一个 Web 框架一样。 Razor 视图引擎是一种新的视图引擎,与 ASP.Net MVC Web 框架应用程序中的默认视图引擎不同。

      Razor 视图引擎的主要好处是它可以更轻松地在 MVC 视图上编写动态内容,因为您不必像使用默认视图引擎那样使用 格式。还有其他好处,Scott Gu 有一个很好的博客here

      【讨论】:

      • 我说的是视图引擎。这将与 ASP.NET MVC 3 一起使用
      • 我想,我只是想向阅读该问题的其他人提供澄清。查看博客文章,因为 Scott Gu 是负责 ASP.net 的 MS 副总裁,并且基本上是 ASP.Net MVC 框架的发明者。
      【解决方案4】:

      Web 表单控件在 Asp.Net Mvc 中已经不是很好用了。由于 MVC 没有 ViewState/Postback 机制,大多数控件都需要使用它。 (网络表单:0 分,剃刀 0 分)

      @Razor 中的语法更漂亮。 (网络表单:0 分,剃刀 1 分)

      不知道性能如何。我认为(一次)解析和渲染是整个管道的一小步,这应该没关系。并且可能会因未来的更新而改变。 (网络表单:0 分,剃刀 0 分)

      【讨论】:

      • 在多用户并发访问的环境中,我们是否可以说MVC与Web表单相比渲染得更好,更偏向于客户端? (我们正在考虑使用 MVC 迁移使用第三方 Web 服务和本地/外部数据库的 asp.net 4.0 Web 表单应用程序......像 MVC 这样的东西在客户端很慢,MVC 没有更好的服务器端控制吓到我们……)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-24
      • 2011-03-11
      • 1970-01-01
      • 2011-06-29
      • 2011-06-12
      • 1970-01-01
      • 2012-07-07
      相关资源
      最近更新 更多