性能差异 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类中永远都不可能执行以下代码中的操作:

转载于:https://www.cnblogs.com/loongsoft/p/7273521.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值