MVC是一种ASP.NET应用程序系统的设计模式,当前被广泛应用于企业级Web应用的开发中。MVC设计模式将Web应用分解成三个部分:模型(Models)、视图(Views)和控制器(Controllers),这三部分分别完成不同的功能以实现Web应用。微软为了方便MVC设计模式的构建,推出了基于.NET框架,与ASP.NET 集成的MVC框架。这个框架提供了集成与Visual Studio的模板,利用这个模板可以方便地构建MVC Web应用程序。
1.1 传统ASP.NET Web表单方案存在的问题
在MVC设计引进到ASP.NET Web应用开发之前,程序员都在采用Web表单的方式来开发应用。Web表单的指导思想是把Windows桌面应用中的表单模型引入到Web应用程序的开发中。这种模型很快就吸引了大批的传统Windows桌面应用开发程序员,特别是以前的VB6.0程序员。今天,许多VB6.0开发者已经转到了ASP.NET Web开发领域,但是他们并没有基本的HTTP与Web基本知识。为了模拟传统型Windows桌面应用程序中的表单开发体验,Web表单引入了事件驱动的方法,而且还引入了ViewState和Postback等相关概念。最终,Web表单技术彻底地攻克了Web中无状态特征这个难关。正是基于这种指导思想,Web表单技术存在如下缺点
Web表单技术存在如下缺点:
- Viewstate和Postback提高了Web应用程序开发的复杂性。例如,即使一些非常简单的Web页面也有可能产生大于100KB的Viewstate,这当然会在某些情况下严重影响系统的性能。
- 开发人员无法控制Web表单生成的HTML。
- ASP.NET服务器控件生成的HTML既混杂有内联方式还包含不符合标准的、过时的标签。
- 与JavaScript框架的集成比较困难,主要是因为生成的HTML的命名惯例所造成的。
- Web表单相应的页面声明周期太复杂,在整个ASP.NET框架中所有内容都是紧密耦合性的,并且仅适用一个类来负责显示输出和处理用户输入。因而,单元测试几乎是一项不可能的任务。
1.2 MVC
MVC英文即Model-View-Controller,即把一个Web应用的输入、处理、输出流程按Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层,视图层、控制层。
视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。
模型(Model)就是业务流程状态的处理以及业务规则的制定。业务流程的处理过程对其他层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。按这种模型设计就可以利用默写技术组件,从而减少技术上的困难。这对于开发者来说,可以专注于业务模型的设计。MVC设计模式说明把应用模型按一定的规则抽取出来的,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,只说明了应该组织管理这些模型,以便于模型的重构和提高重用性。可以用对象编程来做比喻,MVC定义了一个顶级类,并规定它的子类也只能做这些,但没法限制能做这些。这点对开发人员非常重要。
设计模式存在如下优点:
1.3 ASP.NET MVC
ASP.NET MVC框架具有如下特性:
1.4 ASP.NET MVC 4 框架的安装
ASP.NET MVC 4 内置于Visual Studio 2012中,安装Visual Studio2012后,ASP.NET MVC4会自动配置到开发者的机器上。
1.5 ASP.NET MVC应用程序
1.5.1 MVC应用程序结构
1.5.2 MVC应用程序的执行
实验1 创建第一个应用程序
Ch01 ASp.NET MVC 4概述(4学时),古老的榕树,5-wow.com