许多 ASP.NET 开发人员开始接触 MVC,都认为 MVC 与 ASP.NET 完全没有关系,是一个全新的 Web 开发。
事实上 ASP.NET 是创建 WEB 应用的框架,而 MVC 是一种能够用更好的方法来组织并管理代码的体系,所以可以称之为 ASP.NET MVC。
因此,我们可以将原来的 ASP.NET 称为 ASP.NET Webforms,新的 MVC 称为 ASP.NET MVC。
ASP.NET Webforms
ASP.NET 在过去的十几年里,已经服务并成功实现Web 应用的开发。那么,我们先了解一下为什么ASP.NET能够如此流行,并成功应用?
微软编程语言从 VB 开始就能够成为流行并广泛应用,都源于其提供的强大的 Visual studio 能够进行可视化的编程,实现快速开发。
使用 VS 时,开发人员能够通过拖拽 UI 元素,并在后台自动生成这些界面的代码,称为后台代码。在后台代码中,开发人员可以添加操作这些UI元素的逻辑代码。
因此微软的可视化 RAD 架构体系有两方面组成,一方面是 UI,一方面是后台代码。
ASP.NET WebForms 存在的问题 响应时间
如图所示,每一次 WebForms 请求都有转换逻辑,运行并转换服务器控件为 HTML 输出。如果页面使用表格,树形控件等复杂控件,转换就会变得很糟糕,HTML 输出也是非常复杂的。由于这些不必要的转换从而增加了响应时间。
上图是 ASP.Net MVC 和 Webforms 的响应时间对比,我们会发现 Webforms 的响应时间是 MVC 的两倍左右。 带宽消耗
ASP.NET 开发人员都非常熟悉 Viewstates,因为它能够自动保存 post 返回的状态,减少开发时间。但是这种开发时间的减少会带来巨大的消耗,Viewstate增加了页面的大小。
从上图中,我们可以看到与 MVC 对比,Viewstate 增加了两倍的页面存储。
MVC是怎么弥补这些问题的?
Asp.Net MVC 由 Model,View,Controller 三部分组成。Controller 中包含后台代码逻辑,View 是ASPX,如纯 HTML 代码,Model 是中间层。
不使用服务器控件,直接编写 HTML 代码,并且将后台代码迁移到独立的类库中,是 MVC 解决 Webforms 问题的方法。
直接编写HTML代码的好处在于,web设计者可以与开发人员紧密合作及时沟通,设计人员也可以使用他们喜爱的设计工具来设计HTML代码。
将后台代码迁移到独立的简单的类库,执行效率也会大大提高。
ASP.NET Webform 和 MVC 比较,如上图所示。
深入理解 ASP.NET MVC 今天就讲到这里,后续还会更新 “七天学会 ASP.NET MVC” 的其它篇章。