是否可以优化ASP.NET WebForms以像ASP.NET MVC一样快速执行?

Sah*_*bov 9 asp.net asp.net-mvc optimization performance webforms

现在有很多关于ASP.NET MVC的炒作,但事实是ASP.NET webforms已经有一段时间没有了.有没有办法让当前开发人员优化ASP.NET webforms以执行与ASP.NET MVC一样快的速度?

我注意到ASP.NET MVC和ASP.NET webforms之间的速度存在显着差异.MVC非常快捷,加载页面的速度比webforms快.我可以通过优化它来实现与ASP.NET webforms相同的功能吗?如果是的话,你会推荐什么?

ric*_*ott 9

该技术并不重要,您如何实现您的应用程序.可以说ViewState会产生影响,但这也是一个实现细节.ViewState不是必需的,您也可以将其保留在服务器上.在一天结束时,这两种技术都通过HTTP提供HTML.

  • ......以不同的速度.;) (4认同)
  • 每个框架确实引入了一些管道开销(MVC必须解析路由等,而WebForms必须连接/监听事件,解析控件等).真正的问题是,两个框架的开销之间是否存在可测量的差异?如果有,那么用户调整的数量就不会像另一个那样快. (3认同)

Kel*_*sey 8

在您的页面指令中执行以下操作:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
    Inherits="TestApp._Default" EnableViewState="false" %>
Run Code Online (Sandbox Code Playgroud)

主要关闭将占ViewState页面性能差异的大部分.同样限制WebForm控件的使用也会使你的HTML服务更加冗长,因为它们往往会产生非常详细的HTML.

另一方面,这样做几乎就像削减WebForms的一些大优势.控件和使用状态的抽象ViewState是WebForms如今如此受欢迎的主要原因.

我还做了很多WebForms开发,也做了MVC.了解两者及其优势将有助于您在任一框架中创建高性能应用程序.当我创建任何新的WebForms应用程序时,我要做的第一件事就是将页面包装起来,Panel确保ViewState为整个面板禁用.随着我的发展,我找到了一个用途ViewState(例如,节省我的时间或简化事情)我逐个打开它,所以我理解为什么我使用它并做出一个明确的决定将开销添加到我的页面.

如果您在考虑性能的情况下使用Web应用程序,WebForms可以和MVC一样快,但如果您只想忽略性能并完成应用程序,那么很容易让它慢得多.


Nat*_*ate 5

其中一个原因是ViewState,以及作为其中一部分呈现的其他膨胀代码<ASP:TextBox>等.您应该关注页面权重.

其他一切都是平等的,这是我所知道的主要性能差异.

  • 您不必使用ViewState或ASP.NET控件,实现细节. (4认同)
  • 是的,但大多数人都这样做,这就是为什么MVC看起来更快,因为它甚至不是一个选择. (2认同)