一、Asp.net WebForms 与Asp.net MVC 概念
Asp.net是创建WEB应用的框架,MVC是能够用更好的方法来组织并管理代码的一种更高级架构体系。
我们可将原来的Asp.net称为 Asp.net WebForms,新的MVC称为Asp.net MVC。
二、Asp.net存在的问题
为什么微软还要推出Asp.net MVC?主要是因为Asp.net WebForm的性能问题。在Web应用程序中从两方面来定义性能:
1.响应时间:服务器响应请求的耗时
2.带宽消耗:同时可传输多少数据。
响应时间
WebForm因为采用服务器控件,每次请求都有转换逻辑,运行并转换服务器控件为HTML输出。如果使用一些复杂的控件,转换就会变的糟糕并且复杂,HTML的输出也是复杂的。由于不必要的转换从而增加了响应时间。所以该问题的解决方案就是摆脱后台代码(服务器控件),写成纯HTML代码。
带宽消耗
ASP.NET开发人员都非常熟悉Viewstates,因为它能够自动保存post返回的状态,减少开发时间。但是这种开发时间的减少会带来巨大的消耗,Viewstate增加了页面的大小。在做的加载测试中,与MVC 对比,我们发现Viewstate增加了两倍的页面存储。
页面尺寸的增加是因为viewstate产生了额外的字节。
1、HTML消耗
2、后台代码类的重用性
3、单元测试(既然无法实例化后台代码类,单元测试也是非常困难的,也无法执行自动化测试。必须手动测试。)
解决方案:
就是我们需要将后台代码迁移到独立的简单的类库,并且摆脱Asp.net服务器控件,使用HTML。
MVC是如何弥补WebForm存在的问题
先来看一张图:
Asp.Net MVC 由Model,View,Controller三部分组成。Controller中包含后台代码逻辑,View是ASPX,如纯HTML代码,Model是中间层。通过上图可获得这三部分的关系。
所以MVC的改变有两点,View变成简单的HTML,后台代码移到简单的.Net类中,称为控制器。
以下是Asp.net MVC 请求的通用步骤:
(1)首先获取控制器。
(2)依赖行为控制器创建Model对象,Model通过转换调用数据访问层。
(3)数据填充Model后,传递到View显示层,实现显示的目的。
为什么使用ASP.NET MVC?
易于进行单元测试
易于进行测试驱动开发
避免了WebForm中大量的ViewState导致页面文件变得臃肿