1、ASP.NET MVC ASP.NET MVC 程序开发程序开发第一章第一章 ASP.NET ASP.NET MVCMVC概概述述第一章第一章 ASP.NET MVCASP.NET MVC概述概述ASP.NET MVC 程序开发 第 2页1.1 示例项目概述在线书店1.2 利用项目模板创建ASP.NET MVC项目1.3 创建控制器小结1.1 ASP.NET MVC1.1 ASP.NET MVC简介简介ASP.NET MVC 程序开发 第 3页 ASP.NET MVC是在现有的ASP.NET框架基础上提供的一个新的MVC框架。利用ASP.NET MVC,.NET开发人员可以用MVC模式来构建W
2、eb应用,做到清晰的概念分离(UI或者视图与业务应用逻辑分离, 应用逻辑和后端数据分离),同时还可以使用测试驱动开发。1.1.1 1.1.1 初识初识MVCMVC模式模式ASP.NET MVC 程序开发 第 4页 MVC不是一种编程语言,严格来说也不算是一种技术,而是一种开发架构,一种开发观念或者也可以说是一种程序设计模式。 在开发软件时,开发人员最熟悉也是最长面对的状况之一就是“变化”。需求会变、技术会变、老板和客户也会变。有些情况下项目经理也常在变。需求的不断变化对软件质量和可维护性有很强的破坏性。但这是我们必须面对的现实,我们唯一能够做的就是有效降低变化所带来的冲击,而MVC就是一种可行
3、的解决方案。1.1.1 1.1.1 初识初识MVCMVC模式模式ASP.NET MVC 程序开发 第 5页 MVC将软件开发过程大致切割成3个主要单元,分别为模型(Model)、试图(View)和控制器(Controller),简称MVC,其定义如下:模型模型:一组类,描述了要处理的数据以及修改和操作数据的业务规则;视图视图:定义应用程序用户界面的显示方式;控制器控制器:一组类,用于处理来自用户、整个应用程序流以及特定应用程序逻辑的通信。1.1.2 MVC1.1.2 MVC模式在模式在WebWeb开发中的应用开发中的应用ASP.NET MVC 程序开发 第 6页模型(Model),也可称作数据
4、模型,负责所有与数据有关的任务:定义数据结构;负责连接数据库;从数据库中读写数据;执行存储过程;进行数据格式验证;定义与验证业务逻辑规则;对数据进行加工和处理。1.1.2 MVC1.1.2 MVC模式在模式在WebWeb开发中的应用开发中的应用ASP.NET MVC 程序开发 第 7页视图(View)负责所有与用户有关的接口,简单来说就是输入与输出。输出工作指将数据显示在用户接口上,如HTML,输入工作则是将用户输入的数据传回服务器,具体任务包括:1.1.2 MVC1.1.2 MVC模式在模式在WebWeb开发中的应用开发中的应用ASP.NET MVC 程序开发 第 8页从控制器(Contro
5、ller)处取得数据,并将数据显示在用户接口上;负责控制页面的版式、字体、颜色等各种显示方式;参考模型(Model)定义的数据格式来定义数据显示方式;在Web页面中送出数据到服务器;决定数据的传递格式和传送方式;完成基本的数据验证。1.1.2 MVC1.1.2 MVC模式在模式在WebWeb开发中的应用开发中的应用ASP.NET MVC 程序开发 第 9页控制器(Controller),其任务与名称一样,就是掌控全局,它负责的工作如下:决定系统运作流程;负责从模型(Model)中获取数据;决定该显示哪个视图(View);1.1.2 MVC1.1.2 MVC模式在模式在WebWeb开发中的应用开
6、发中的应用ASP.NET MVC 程序开发 第 10页1.1.3 ASP.NET1.1.3 ASP.NET与与ASP.NET MVCASP.NET MVCASP.NET MVC 程序开发 第 11页ASP.NET是微软在2002年首次推出的Web应用开发平台,在发布之初,其包含两个抽象层:System.Web.UI:Web Forms层,由服务器控件、ViewState等组成;System.Web:管道程序,提供基本的Web堆栈,其中包括组件模块、处理程序和HTTP堆栈等。1.1.3 ASP.NET1.1.3 ASP.NET与与ASP.NET MVCASP.NET MVCASP.NET MVC
7、 程序开发 第 12页 在ASP.NET MVC出现以前,在Web Forms层开发是ASP.NET开发的主流方向,利用拖放控件,ViewState以及强大的服务器控件来处理Web应用逻辑。然而,ASP.NET Web Forms开发方式也会带来一些问题,比如经常混淆页面生命周期,生成的HTML页面代码不理想等。面对越来越复杂的Web应用需求,ASP.NET Web Forms也变得异常复杂且难以维护。尤其是需要进行HTML代码微调的时候,更是ASP.NET Web Forms开发人员的噩梦,而且还看不到控件的源代码。 1.1.3 ASP.NET1.1.3 ASP.NET与与ASP.NET M
8、VCASP.NET MVCASP.NET MVC 程序开发 第 13页 在ASP.NET MVC发布之后,Web Forms被视图(View)取代,视图里面不再有复杂的程序或业务逻辑,而仅留下显示的部分,如HTML、JavaScript、数据显示和表单等。然后由控制器(Controller)负责控制其余的部分,由模型(Model)负责访问数据或验证数据格式,进而提升项目的可维护性。1.1.3 ASP.NET1.1.3 ASP.NET与与ASP.NET MVCASP.NET MVCASP.NET MVC 程序开发 第 14页 ASP.NET MVC开发模式可以给我们带来如下好处:清晰地功能分明的
9、架构可以帮助我们写出较ASP.NET Web Forms更易于维护的程序完全的开源;可以让我们完全控制HTTP的输出内容;易于测试的架构;易于分工的架构。1.1.4 MVC 1.1.4 MVC 现状现状ASP.NET MVC 程序开发 第 15页1、ASP.NET MVC 1概述 2007年2月,微软公司的Scott Guthrie草拟出了ASP.NET MVC的核心思想,并编写了实现代码。这是一个只有几百行代码的简单应用程序,但它给微软公司Web开发框架带来的前景和潜力是巨大的。 在官方发布之前,ASP.NET MVC并不符合微软的产品标准。ASP.NET MVC经历的开发周期非常多,在官方
10、版本发布之前已有9个预览版本,它们都进行了单元测试,并在开源许可下发布了代码。在最终版本发布之前,ASP.NET MVC已经被多次使用和审查。2009年3月13日ASP.NET MVC正式发布。1.1.4 MVC 1.1.4 MVC 现状现状ASP.NET MVC 程序开发 第 16页 在官方发布之前,ASP.NET MVC并不符合微软的产品标准。ASP.NET MVC经历的开发周期非常多,在官方版本发布之前已有9个预览版本,它们都进行了单元测试,并在开源许可下发布了代码。在最终版本发布之前,ASP.NET MVC已经被多次使用和审查。2009年3月13日ASP.NET MVC正式发布。1.1
11、.4 MVC 1.1.4 MVC 现状现状ASP.NET MVC 程序开发 第 17页2、ASP.NET MVC 2概述 与ASP.NET MVC 1发布时隔一年,ASP.NET MVC 2于2010年3月发布。ASP.NET MVC 2的主要特点如下:带有自定义模板的UI辅助程序;在客户端和服务器端基于属性的模型验证;强类型HTML辅助程序;升级的Visual Studio开发工具。1.1.4 MVC 1.1.4 MVC 现状现状ASP.NET MVC 程序开发 第 18页 根据应用ASP.NET MVC 1开发各种应用程序的开发人员的反馈意见,ASP.NET MVC 2中也增强了许多API
12、功能,比如:支持将大型应用程序划分为区域;支持异步控制器;使用Html.RenderAction支持渲染网页或网站的某一部分;新增许多辅助函数和实用工具等。1.1.4 MVC 1.1.4 MVC 现状现状ASP.NET MVC 程序开发 第 19页3、ASP.NET MVC 3概述 在微软新发布的开发工具Web Matrix的推动下,ASP.NET MVC 3于ASP.NET MVC 2发布后第10个月推出,做出了如下改进:支持更友好的视图表达,包括新的Razor视图引擎;支持.NET 4.0数据新特性;改进了模型验证,使验证更加简洁高效;丰富的JavaScript支持,其中包括非侵入式Jav
13、aScript、jQuery验证和JSON绑定;支持使用NuGet。1.1.4 MVC 1.1.4 MVC 现状现状ASP.NET MVC 程序开发 第 20页4、ASP.NET MVC 4概述ASP.NET MVC 4被内置于微软的Visual Studio 2012开发工具发布,其做出了如下改进:新增了手机模版、单页应用程序,Web API等模版;更新了一些JavaScript库,其中示例页面也使用了jQuery的Ajax登录;增加了OAuth认证与Entity Framework5的支持;增强了对HTML5、AsyncController等的支持。1.2 MVC1.2 MVC模式下的模式
14、下的WebWeb项目开发项目开发ASP.NET MVC 程序开发 第 21页 学习ASP.NET MVC的最好方法就是通过项目开发来理解其工作原理。在实际的开发工作开始之前,让我们先把ASP.NET MVC所需的开发环境准备好。1.2.1 1.2.1 开发环境开发环境ASP.NET MVC 程序开发 第 22页 ASP.NET MVC 4可以在以下Windows操作系统中运行:Windows XP;Windows Vista;Windows 7;Windows 8。1.2.1 1.2.1 开发环境开发环境ASP.NET MVC 程序开发 第 23页 同时ASP.NET MVC 4可以运行在以下
15、服务器操作系统中:Windows Server 2003;Windows Server 2008;Windows Server 2008 R2;Windows Server 2012。 ASP.NET MVC 4的开发工具可以安装在Visual Studio 2010和Visual Web Developer 2010 Express中或它们的后续版本中。1.2.1 1.2.1 开发环境开发环境ASP.NET MVC 程序开发 第 24页1、安装ASP.NET MVC 4开发组件 在安装好Visual Studio 2010或Visual Web Developer 2010 Express开
16、发工具后,可以使用Web Platform Installer(http:/ MVC 4。1.2.1 1.2.1 开发环境开发环境ASP.NET MVC 程序开发 第 25页2、在服务器上安装ASP.NET MVC 4 WebPI安装程序会检测其是否在没有开发环境支持的计算机上运行,如果是的,WebPI将只安装服务器部分。 当在一台服务器上安装ASP.NET MVC 4 后,MVC运行时程序集将安装在全局程序集缓存(GAC)中,这意味着服务器上的任何站点都可以访问这些程序集。安装好后,发布在服务器上的Web应用程序可以不用包含ASP.NET MVC 4已经安装在服务器上的程序集了。1.2.2
17、1.2.2 应用程序的结构应用程序的结构ASP.NET MVC 程序开发 第 26页 安装了ASP.NET MVC 4之后,在Visual Studio 2010和Visual Web Developer 2010中会出现一些新的选项,本书将专注于Visual Studio 2010上ASP.NET MVC 4应用程序的开发。 通过如下步骤可以创建一个新的ASP.NET MVC项目:1.2.2 1.2.2 应用程序的结构应用程序的结构ASP.NET MVC 程序开发 第 27页1、选择“文件新建项目”选项1、选择“文件新建项目”选项1.2.2 1.2.2 应用程序的结构应用程序的结构ASP.N
18、ET MVC 程序开发 第 28页2、在“新建项目”对话框中左栏的“已安装的模板”列表中选择“Visual C#”分类下的“Web”,这将在中间栏显示Web应用程序类型列表1.2.2 1.2.2 应用程序的结构应用程序的结构ASP.NET MVC 程序开发 第 29页3、选择“ASP.NET MVC 4 Web应用程序”,然后单击“确定”按钮。1.2.2 1.2.2 应用程序的结构应用程序的结构ASP.NET MVC 程序开发 第 30页在使用Visual Studio创建了一个新的ASP.NET MVC应用程序之后,将自动向这个项目中添加一些目录和文件1.2.2 1.2.2 应用程序的结构应
19、用程序的结构ASP.NET MVC 程序开发 第 31页ASP.NET MVC 4项目默认含有9个顶级目录,每个目录都由特定的分工目录用途Controller该目录用于保存那些处理URL请求的Controller类Models该目录用于保存那些表示和操纵数据以及业务对象的类Views该目录用于保存那些负责呈现和输出结果(如HTML)的UI模板文件Scripts该目录用于保存JavaScript库文件和脚本(.js)Content该目录用于保存CSS和其他非动态/非JavaScript的内容App_Data该目录用于存储想要读取/写入的数据文件App_Start该目录用于保存那些项目配置相关的类
20、Filters该目录用于保存那些动作过滤器相关的类Images该目录用于保存图像文件1.2.2 1.2.2 应用程序的结构应用程序的结构ASP.NET MVC 程序开发 第 32页 ASP.NET MVC就是一个合理利用约定优于配置思想的开发框架。它通过MVC设计模式的规则将开发框架切割成Model、View和Controller三个部分,而且明确定义开发人员必须按照特定的约定来开发程序,比如:控制器控制器类:类:必须位于项目的Controllers目录下,控制器类的名称必须以Controller结尾;视图视图:必须置于项目的Views目录下,Views目录的第一级目录名称必须与其对应的控制器
21、的名称相同,Views目录的控制器名称目录下的文件名必须与其对应的Action的名称相同。1.3 ASP.NET MVC 1.3 ASP.NET MVC 生命周期生命周期ASP.NET MVC 程序开发 第 33页 ASP.NET MVC的执行生命周期主要分为三个阶段,分别是网址路由对比、执行控制器(Controller)与动作(Action)和执行视图(View)并返回结果。本章小结本章小结ASP.NET MVC 程序开发 第 34页 本章涵盖了很多内容。首先对ASP.NET MVC进行了介绍,展示了ASP.NET Web框架和MVC软件模式如何结合起来为构建Web应用程序提供强大的系统。回顾了ASP.NET MVC经由三个版本发展成熟的历程,深入讲解了ASP.NET MVC的特征及其关注点。在后面的章节中本书将更加详细的介绍ASP.NET MVC的每一个部分。