zoukankan      html  css  js  c++  java
  • 性能差异 ASP.NET WebForm与ASP.NET MVC

    一、为什么说 ASP.NET WebForm 比 ASP.NET MVC 要差?
      WebForm 顾名思义,微软一向主打简单化,窗体模式,拖拽控件就能做网站了,
      然而这也引发了许多 Java 和 .NET 语言好坏(性能)的争议,
      很早的时候部门老大不让用服务器控件,现在才明白是为什么。
     
      我们不得不考虑的问题是,既然ASP.NET Web Form 如此成功且具有优势,为什么微软还要推出ASP.NET MVC?
      主要是因为ASP.NET Webform的性能问题。在Web应用程序中从两方面来定义性能:
      1. 响应时间: 服务器响应请求的耗时
      2. 带宽消耗: 同时可传输多少数据。
     
      响应时间
      我们可以理解为什么ASP.NET Webform比较慢,如图我们做了一些小的加载测试。
      分别使用ASP.Net MVC和ASP.Net Webform,发现ASP.Net MVC的响应时间比Webform快了两倍。
     
      接下来我们在思考一个问题为什么ASP.NET MVC的性能更好?看看下面这个示例,简单的UI代码和UI的后台代码。
      通过分析我们可以得知,每一次请求都有转换逻辑,运行并转换服务器控件为HTML输出。如果我们的页面使用表格,树形控件等复杂控件,
      转换就会变得很糟糕且非常复杂。HTML输出也是非常复杂的。由于这些不必要的转换从而增加了响应时间。
      该问题的解决方案就是摆脱后台代码,写成纯HTML代码。
     
      带宽消耗
      ASP.NET开发人员都非常熟悉Viewstates,因为它能够自动保存post返回的状态,减少开发时间。
      但是这种开发时间的减少会带来巨大的消耗,Viewstate增加了页面的大小。
      在做的加载测试中,与MVC 对比,我们发现Viewstate增加了两倍的页面存储。
     
      1、HTML 消耗
      现在因为我们都是后台代码和ASP.NET web server控件的努力,我们对于怎样得到HTML以及如何使他们更有效没有更好的办法。
      如下面展示的ASPX 代码,你能确定会生成什么样的HTML代码吗?
      2、后台代码类的重用性
      如果仔细观察一些专业的ASP.NET Webform项目,你会发现后台代码类往往都包含了大量的代码,并且这些代码也是非常复杂的。
      而现在,后台代码类继承了“System.Web.UI.Page”类。但是这些类并不像普通的类一样能够到处复用和实例化。
      换句话来讲,在Weform类中永远都不可能执行以下代码中的操作:
  • 相关阅读:
    hdu 2222 Keywords Search
    Meet and Greet
    hdu 4673
    hdu 4768
    hdu 4747 Mex
    uva 1513 Movie collection
    uva 12299 RMQ with Shifts
    uva 11732 strcmp() Anyone?
    uva 1401
    hdu 1251 统计难题
  • 原文地址:https://www.cnblogs.com/loongsoft/p/7273521.html
Copyright © 2011-2022 走看看