关于ASP.NET WebForm与ASP.NET MVC的比较

 


 

WebForm的理解css

一、 WebForm概念html

ASP.NETWebform提供了一个相似于Winform的事件响应GUI模型(event-drivenGUI),隐藏了HTTP、HTML、JavaScript等细节,将用户界面构建成一个服务器端的树结构控件(Control),每一个控件经过ViewState保持本身的状态,并自动把客户端的js事件和服务器端的事件联系起来。这种作法使得开发WinForm和WebForm程序具备相近的开发体验,填平WinForm开发(有状态、面向对象的)和WebForm开发(无状态、面向HTML的)之间的鸿沟。前端

二、WebForm 请求流程jquery

好比访问 http://www.qidian.com/Default.aspx程序员

一、Http请求(物理地址:Default.aspx)web

①发送请求: 浏览器向服务器发送请求报文,此时由IIS虚拟目录接收。(经过配置过IIS,把网站挂载在服务器上,经过访问虚拟目录的方式访问网站的。)数据库

②转交请求: 服务器端的IIS软件接收到请求后,把请求交给.NET FrameWork进行处理。编程

③建立页面类对象:.NET FrameWork根据请求的地址index.aspx,会建立对应的index_aspx类的对象(页面对象)。浏览器

IIS的内部机制:缓存

实现一个IHttphandler的接口

该接口实现一个ProcessRequest方法

该方法会调用对应页面的Page_load方法

处理的业务逻辑或者是访问数据库的代码

要输出的Html或者其它内容

二、返回给浏览器

①转交回复: 经过IIS传输出给浏览器,要输出的html元素或其余内容(html+js+css等)

②解析为图形界面:浏览器解析html代码,并翻译为图形化界面

如图:


 

二、 WebForm的优势:

1.   有大量的服务器控件支持,好比:GridView、Repeater等控件能够方便的进行数据绑定,从而减小的大量代码的编写。

2.   学习成本低,因为微软封装的比较深,形成深刻学习的难度加大。

3.   基于事件驱动编程,如:click事件等,aspx和cs文件分离,即显示逻辑和处理逻辑分离。

4.   支持视图状态,每一个控件以“隐藏域”的形式存在当前表单页面未达到“有状态”,即ViewState。

三、 WebForm的缺点

1.   因为使用的ViewState会增长页面的负担,形成性能不是很高。

2.   代码重用性不高,缺乏对并行开发的支持,

3.   由于采用code-behind 代码后植技术,使aspx页面与cs紧密耦合度过高。

4.   对Seo不友好,由于URL指定具体的aspx页面。

5.   由于紧密耦合度过高、使用大量的事件处理函数,不利于单元测试。

2、       MVC的理解

一、 MVC的概念

Asp.netMvc架构模式是一种 低耦合、可测试的web应用程序框架,它是基于CLR和成熟的MVC架构构建的。ASP.NET MVC不支持ViewState和服务器控件。

二、 MVC的请求流程

好比访问:http://www.google.com.hk/FirstPage/Default

一、Http请求(逻辑地址:FirstPage/Default)

①发送请求(FirstPage/Default)

②转交请求(同上)

③建立类对象+方法

.NET FrameWork根据路由配置,解析URL,并建立news类的对象,并调用对象的index方法。经过View方法加载视图,而后访问视图文件夹下的index.cshtml

二、返回给浏览器

如图:


 

三、 MVC的优势

1.   架构下降了程序间的耦合性。

2.   不支持ViewState,页面更加干净,能够提高程序的性能。

3.   支持并行开发,可扩展性好,继承了asp.net的特性,表单验证、缓存、会话等。

4.   因为程序耦合度低,能够比较顺利的进行单元测试。

5.   经过修改路由规则,能够控制生成自定义的url,所以控制生成seo友好的url将更加容易。

6.   强类型view实现,更安全,更高效。

四、 MVC的缺点

须要有必定的html、css、js、jquery前端技术,也就增长了一些学习的成本。

MVC和WebForm的选择场景

新开发的项目建议采用MVC。

想要快速开发的中小型项目能够选择WebForm。

比较关注单元测试、性能、SEO、代码重用性的话建议采用MVC。

最后结语

MVC和WebForm都有本身的优缺点,目前两种技术都存在,证实都有本身的价值,虽然如今MVC应用愈来愈广发,咱们不能一味的否认WebForm。一个高级程序员用WebForm实现的网站性能并不必定比初级程序员用MVC实现的网站性能差,最重要的仍是努力提高本身的技术能力才是王道!

欢迎关注个人公众号:DoNet技术分享平台 

相关文章
相关标签/搜索