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类中永远都不可能执行以下代码中的操作:
  • 相关阅读:
    Gartner: Hype Cycle for Emerging Technologies-2012 (技术成熟度曲线) [转]
    一个好的软件开发人员必须是一个软件使用的高手[摘]
    十年MFC经历认识的Microsoft技术 [转]
    不同医学成像方法的辐射剂量
    C++100款开源界面库[转]
    【Tool】JDK8 安装
    【Tool】IntelliJ IDEA Ultimate2019.1 中文版 安装
    【性能优化】(2)JVM调优
    【性能优化】(1)概述
    【Design Patterns】(1)概述
  • 原文地址:https://www.cnblogs.com/loongsoft/p/7273521.html
Copyright © 2011-2022 走看看