ASP.NET MVC是一种构建web应用程序的框架,它将一般的MVC模式应用于ASP.NET 框架。那么,如何看待asp.net框架和asp.net mvc之间的关系呢?在asp.net 1.0发布时,asp.net和web from被人们看成是同一事物,尽管当时(2002)asp.net已经支持两层抽象,即ui层(web from层,由服务器控件和ViewState等组成);web层(管道程序,提供基本的web堆栈,其中包括组件模块、处理程序和http堆栈等)。
MVC模式简介
Model-View-Controller,将其应用于web模式中,虽然在显示分离上一定程度的增加了设计的复杂性,但大大增加了其可扩展性。所以,MVC将应用程序的用户界面(UI)分为三个主要部分,注意,MVC指的是一种用户界面模式。MVC模式是处理用户交互的一种方案,它并不处理应用程序关注的其他问题,如数据访问、服务交互等。须知,ASP.NET MVC的上下文是问题域(一个无状态的Web环境)和宿主系统(asp.net)。ASP.NET MVC注重应用MVC模式来提供一个运行在.NET平台上强大Web开发框架,上下文是其强大原因的一部分。
部分 | 定义 |
模型 | 一组类,描述了要处理的数据以及修改和操作数据的业务规则。它是设计人员需要关注的问题域的一些类,这些类通常封装存储在数据库中的数据,即model,以及操作这些数据和执行特定域业务逻辑的代码。这些模型似乎是用来调用封装在DAL层的类的方法。 |
视图 | 定义应用程序用户界面的显示方式,它是动态生成HTML页面的模板。 |
控制器 | 一组类,用于处理来自用户、整个应用程序流以及特定应用程序逻辑的通信,即控制器是模型和视图之间的桥梁,相当于用于协调视图和模型之间关系的特殊类。它可响应用户输入,与模型进行对话,并决定呈现哪个视图。 |
本质上,ASP.NET采用了大部分给予MVCd的Web框架所使用的一些基本原则:
约定优于配置 不重复(DRY原则) |
尽量保持可插拔性 尽量为开发人员提供帮助,但必须时允许开发人员自由发挥 |
ASP.NET MVC概述
ASP.NET Web API | 设计ASP.NET MVC的目的是用来创建网站,即响应浏览器的请求,并返回HTML。使用MVC模式创建Web服务,这些服务可以返回XML、JSON和其他非HTML格式的数据。ASP.NET Web API,简称Web API,专门用来编写HTTP服务。该框架包括在HTTP服务域修改一些ASP.NET MVC概念,并提供一些新的面向服务的功能。 下面是一些类似于MVCd的Web API功能,它们只适用于HTTP服务:
| ||||||||||||||||||
显示模式 | 显示模式根据浏览器发出的请求,使用j基于约定的方法来选择不同的视图。当浏览器的用户代理指示一台已知的移动设备时,默认的试图引擎首先查找以.Mobile.cshtml结尾的视图。 | ||||||||||||||||||
捆绑和微小框架 | ASP.NET MVC支持的捆绑和微小框架与ASP.NET 4.5中包含的框架相同。该框架通过合并脚本引用可以把若干请求合并为一个请求,从而减少发送到站点的请求数量。与此同时,它也采用各种技术来压缩请求大小,如缩短变量名、删除空格和注释等。它也适用于CSS,可以把若干CSS请求打包成一个请求,并压缩CSS请求的大小,使其用最少的字节,产生等价的规则,也采用高级技术(像语义分析)来折叠CSS选择器。 捆绑系统是高度配置的,我们也可以创建包含特定脚本的自定义捆绑,并用单一的URL来引用这些捆绑。 |
安装MVC和创建应用程序
服务器安装MVC:MVC是完全bin部署的,这意味着所有必要的程序集都包含在应用程序的bin目录中。只要服务器上有.NET 4.5,就可以进行安装。
创建新的MVC项目的b步骤 | 备注 |
ASP.NET Web应用程序 | ![]() |
选择模板和添加框架特定的文件夹和核心引用共同起作用,须知,模板和核心引用的选择是可选项,因为任何时候我们都可以添加对任意框架的支持,因为框架文件夹和核心引用s是通过Nuget包添加的。 | ![]() |
此时,解决方案包含两个项目:web应用程序;单元测试 | ![]() |
创建新的ASP.NET MVC应用程序后,接下来就是了解ASP.NET MVC应用程序的结构。当然,ASP.NET MVC并不是非要这个结构。事实上,那些处理大型应用程序的开发人员通常跨多个项目来分割应用程序。
ASP.NET MVC和约定
默认情况下,ASP.NET MVC应用程序对约定的依赖性很强。这样就避免了开发人员配置和指定一些项,因为这些项可以根据约定来推断。