ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
ASP.NET 支持三种不同的开发模式:Web Pages(Web 页面)、MVC(Model View Controller 模型-视图-控制器)、Web Forms(Web 窗体)。
MVC 编程模式
MVC 是三种 ASP.NET 编程模式中的一种。
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:
Model(模型)表示应用程序核心(比如数据库记录列表)。
View(视图)显示数据(数据库记录)。
Controller(控制器)处理输入(写入数据库记录)。
MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。
MVC 模式定义 Web 应用程序,带有三个逻辑层: 业务层(模型逻辑) 显示层(视图逻辑) 输入控制(控制器逻辑) |
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。
View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
Controller(控制器)是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。
MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。
Web Forms 对比 MVC
MVC 编程模式是对传统 ASP.NET(Web Forms)的一种轻量级的替代方案。它是轻量级的、可测试性高的框架,同时整合了所有已有的 ASP.NET 特性,比如母版页、安全性和认证。
MVC各版本比较
【MVC 1.0】
view接收用户输入,把命令传到controller ——>> controller处理命令,更新model ——>> model被更新后,会通知view需要update ——>> view更新后向用户显示
【MVC 2.0】
由于mvc1中,model可以通知view,然后view就可以被更新,这在windows程序中很常见,像MFC的frame-document-view架构,如果document改变了,他会主动通知view进行update。
但是在web中,作为model的java bean更新后,无法调用作为view的jsp(而且view通常很多,需要选一个),因此改为mvc2模式:
view接收用户输入,把命令传到controller ——>> controller处理命令,更新model ——>> model被更新后,controller会选一个view并forward到这个jsp,附带把model放到request参数 ——>> 这个view获得model然后显示
MVC2.0的新特性主要有:
1.Areas:允许组织多个逻辑层,便于团队开发。
2.UIHelpers:可以使用strongly-typedhelpers修改和展示数据,更易于维护旧有程序,从而提供高开发效率。
3.服务器端验证:可以使用声明式注解定义模型的验证规则。
4.客户端验证:自动产生基于模型验证的客户端验证。
【MVC 3.0】
新特性重点解析:
ASP.NETMVC3.0带来了一个新名为Razor视图引擎,其提供以下优点:
一、新加技术或属性
1. 支持多视图引擎:在新建项目对话框中,你可以指定项目默认的视图引擎。
2. ActionResult类型:MVC3.0中ActionResult新添加的
3. 远程验证:一个新标签RemoteAttribute对jQuery.Validate插件的远程验证提供支持。
二、属性的改进:
1. 新的ViewBag属性:将MVC2.0中的ViewData属性改变为MVC3.0中ViewBag来更加简单的完成。
三、技术的改进:
1. 控制器改进:允许你将过滤器加入到GlobalFilters集合中区来创建全局的过滤器,也就是说提供过滤器等功能例如:Filter功能,在执行Action之前先执行了转化字符集的filter或者监听器等,纵向切入型技术。
2. JavaScript和Ajax改进:新添Javascript库,验证助手默认使用的是jQuery.Validate插件完成。
3. ValidationAttribute类:在。NETFramework4中改进了ValidationAttribute类支持新的IsValid重载
4. 默认启用了客户端验证
5. Model验证的改进
6. 接口验证
【MVC 4.0】
重点分析:新添WebAPI,Mobile Application,以及Single Page Application.
WebAPI与SinglePage Application之中,目前view只支持Razer语法。
WebAPI:其实就是一中建立在RESTful服务基础上的平台,当然一定是HTTP的协定。当您建立好一个空的Web API的MVC项目后,在Controller中你会出现一个新的类别ApiController设定,它先帮你制作 Get(), Post(),Put(), Delete() 等方法,其中 Get() 有一个是Overloading传回IEnumerable<T> 的方法,这也是Web API主要强大的特性之一,强行别的HttpWebRequest.
首先JQuery以及其他的一些脚本版本进行了升级,当然也移除了微软自己的AJAX库。使用HTML5来布局。
ASP.NET Web API(支持Rest风格接口)
ASP.NET Single Page Application(单页面应用程序)
Enhancements to Default Project Templates(完善了项目模板)
Mobile Project Template(手机项目模板)
【MVC 5.0】
MVC5 (需要.net 4.5.1 )多了对 webapi 2.0的支持。