什么是ASP.NET MVC,以及其优点概览

开发 后端
ASP.NET MVC是既ASP.NET WebForms之后,微软推出的Front Controller式的Web开发模型,它弥补了前者对HTML控制能力不足,单元测试较为困难等缺点。本文介绍了什么是ASP.NET MVC,以及其优点。

ASP.NET MVC是相对于传统的ASP.NET Web Form形式而言的。MVC框架具有很强的优越性,而WebForm也不是一无是处,在简单的应用中更加容易开发。以下对ASP.NET MVC做一些简单的介绍。

什么是ASP.NET MVC?

在了解ASP.NET MVC之前,先了解一下什么是MVC。MVC是Model-View-Controller的缩写,也就是模型—视图—控制器的意思。MVC用于表示一种软件架构模式,它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Controller)。模型(Model)一般是指“数据模型”,用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。“模型”有对数据直接访问的权利,例如对数据库的访问。“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。视图(View)也就是UI层,实现数据的显示。控制器(Controller)起到不同层面间的组织作用,用于控制应用程序的流程,它处理事件并作出响应。

ASP.NET MVC是在现有ASP.NET 3.5运行时的顶层提供一种新的模型-视图-控制器(MVC, Model-View-Controller)框架。这就允许开发人员利用MVC设计模式的优势创建自己的ASP.NET Web应用程序,它将内容显示(UI或者View)、业务逻辑和后台数据进行了清晰分离,可以说是MVC在ASP.NET中的实现。

什么是ASP.NET MVC之ASP.NET MVC和ASP.NET Web Form有什么关系?

ASP.NET MVC只是另外一种开发ASP.NET应用程序的设计模式,不会取代ASP.NET Web Form模式,两者是不行的,不会冲突。

什么是ASP.NET MVCASP.NET MVC的优点:

不再有ViewState:传统的ASP.NET WebForm模式利用ViewState保存表单的状态信息,由于B/S程序本身的限制,ViewState存储数据需要在隐藏表单域里面放置很大一段字符串,这会大大增加页面的字节数,导致网页加载变慢;

简介的HTML:最终生成的 HTML代码完全由自己控制,不会生成任何“垃圾代码”;

更快的服务器端处理和客户端呈现:MVC只简单地处理“模板”,而无需构建复杂的控件树,因此,无论是在服务器处理的时间,和客户端的呈现速度都会有所提高;

为多种视图只需一种模型:有时候一个页面要显示的数据是同一个,但表现形式有细微的差别,此时只需要修改视图部分,可以采用现有的控制器行为;

单元测试:Webform的测试是很困难的,使用MVC,可以将业务逻辑与页面分离开,可以不在ASP.NET进程中执行控制器,方便测试

【编辑推荐】

  1. ASP.NET MVC与WebForm区别谈
  2. ASP.NET MVC单元测试:HttpContext类的Path属性解惑
  3. 自定义的ControllerFactory:接口实现,支持Area
  4. ASP.NET Routing之“解析URL”功能详解
  5. 为ASP.NET MVC应用添加自定义路由
责任编辑:yangsai 来源: 曹杰的博客
相关推荐

2009-08-03 14:22:33

什么是ASP.NET

2009-08-05 15:50:13

ASP.NET优点

2009-07-23 11:33:18

2009-08-10 18:46:07

ASP.NET基础语法

2009-07-31 12:43:59

ASP.NET MVC

2009-07-20 17:48:44

ASP.NET MVC

2009-07-24 13:20:44

MVC框架ASP.NET

2009-07-23 13:47:28

2009-07-23 14:31:20

ASP.NET MVC

2009-07-20 10:53:59

ASP.NET MVC

2009-07-23 15:44:39

ASP.NET MVC

2009-07-22 10:09:59

ASP.NET MVC

2009-07-22 13:24:24

ASP.NET MVC

2009-07-24 15:47:35

ASP.NET与ASP

2009-07-22 10:13:31

异步ActionASP.NET MVC

2009-07-29 09:17:12

jQuery删除

2009-07-20 15:44:32

ASP.NET MVC

2009-04-01 12:00:43

ASP.NETMVC

2009-07-22 09:11:02

Action方法ASP.NET MVC

2010-06-23 15:44:03

ASP.NET MVC
点赞
收藏

51CTO技术栈公众号