Model-View-Controller(MVC) 架构模式将一个应用程序分为三个组成部分:模型,视图与控制器。ASP.NET MVC框架为创建基于MVC的Web应用程序提供了一种替代方案。ASP.NET MVC框架是一个轻量级的,可高度测试的展示框架(基于Web窗体的应用程序),它继承了现有的ASP.NET特性,比如母版页和成员资格权限。MVC框架定义在 System.Web.Mvc 命名空间下而且是System.Web 命名空间的基础和支持部分。
MVC是很多开发人员都熟悉的标准设计模式。使用MVC的Web应用程序将会从中获得好处,而其它不用的将会继续使用传统的基于Web窗体和回发的ASP.NET应用程序模式,还有的Web程序会结合两者同时使用,而两者却又互不相干。
MVC 框架包括以下三个部分:
-
模型. 模型对象是应用程序中实现程序数据域逻辑的部分。通常情况下,模型对象在数据库中存取模型状态。例如,一个Product对象可以从SQL Server数据库中取得信息,对其进行操作,然后将更新后的信息写回到Products表里。
在小型的应用程序里,模型一般是概念上的分隔而不是物理上的。例如,如果应用程序只是读取一个数据集并把它发送到视图中的话,应用程序并不需要一个物理的模型层和隔离类。在这种情况下,数据集就扮演了模型对象的角色。
-
视图. 视图是用来显示应用程序用户界面(UI)的组成部分。通常,这个UI是从模型数据里创建的。举个例子,Products表的编辑视图就会用几个输入框,下拉框和复选框来表示当前Products对象的状态。
-
控制器. 控制器是处理用户交互,与模型打交道并最终选择用来显示UI的视图的。在MVC应用程序中,视图仅仅是显示信息;控制器处理并回应用户的输入与交互。例如,控制器处理查询字符串的值,并将这些值传给模型,模型反过来用这些值来查询数据库。
MVC 模式帮助你将应用程序分为几个不同的方面(输入逻辑,业务逻辑和UI逻辑),而降低了这几个方面的耦合。此模式指定了各个逻辑分别应该位于应用程序的何处。UI逻辑属于视图。输入逻辑属于控制器。业务逻辑属于模型。这样划分能帮你在生成应用程序的时候管理复杂度,因为它能让你一次只专注于一个实现方面。例如,你可以只专注于视图而不用依赖于业务逻辑。
除了管理复杂度,用MVC模式来测试程序比基于Web窗体的应用程序更容易。例如,在基于Web窗体的ASP.NET Web程序中,一个简单的类,显示输出和响应用户输入都要做到。为基于Web窗体的ASP.NET应用程序编写自动化测试可能会很复杂,因为好比说测试个别页面,你就得实例化页面类,它的子控件和其他的程序里的依赖类。由于有这么多的类被实例化来运行网页,就会很难仅仅专注于测试程序中个别页的部分。基于Web窗体的ASP.NET程序的测试因此变得比MVC程序难以实现。而且,基于Web窗体的ASP.NET程序需要一个Web服务器。MVC框架将组件解耦并大量使用接口,这使得从其他框架中分离个别组件来进行测试成为可能。
MVC应用程序中的这三大组件的松耦合同时促进了并行开发。例如,一个开发人员可以做视图,另一个可以做控制器逻辑,第三个可以专注于模型中的业务逻辑。
决定何时使用MVC程序
你必须考虑清楚到底是用ASP.NET MVC框架还是ASP.NET Web窗体模型来实现Web应用程序。MVC框架并没有替代Web窗体模型;这两个框架都可以用来开发Web程序。(如果你已经在用基于Web窗体的程序,继续使用它们也是没错的。)
在你决定要为网站使用MVC框架或Web窗体模型之前,最好先权衡一下两者哪个更好。
基于MVC的Web程序的优势
ASP.NET MVC 框架有以下两个优势:
- 将应用程序分为模型,视图和控制器利于管理复杂度。
- 不必使用视图状态(View State)或者服务器表单。这使得MVC框架非常适合想要完全控制程序行为的开发人员。
- 使用前端控制器模式通过一个简单的控制器来处理Web应用请求。这使你能够设计支持丰富的路由基础结构应用程序。更多信息,请参考MSDN网站中的前端控制器。
- 更好的支持测试驱动开发(TDD)。
- 适合于需要高度控制整个程序行为的大型开发和设计团队所支持的Web程序。
基于Web窗体的程序的优势
基于Web窗体的程序有以下优势:
- 支持通过HTTP预留状态的事件模型,有利于业务流水线的Web程序开发。基于Web窗体的程序提供了数十种支持数百种服务器控件的事件。
- 使用页面控制器模式增加页面功能。更多信息,请参考MSDN网站中的页面控制器。
- 使用视图状态或服务器表单,能使管理状态信息更容易。
- 适合于想要利用大量组件来进行快速开发的小型开发和设计团队。
- 通常,程序开发相对没那么复杂,因为组件(页面类,控件等等)被紧密集成而且比MVC模型需要更少的代码量。
ASP.NET MVC 框架特性
ASP.NET MVC 框架提供以下特性:
- 应用程序默认分为程序任务(输入逻辑,业务逻辑和UI逻辑),可测试性和测试驱动开发(TDD)。MVC框架中的核心协议是基于接口和通过使用模拟对象实现可测试,模拟对象是程序中模拟实际对象行为的对象。你可以不必运行ASP.NET进程来对程序进行单元测试,这使得单元测试更快而且更可靠。 你可以使用任何兼容.NET Framework的单元测试框架。
- 可扩展和可插拔的框架。 ASP.NET MVC 框架组件这种设计方法使得它们可以轻松地替换和自定义。你可以插入你自己的视图引擎,URL路由策略,action方法参数的序列化,还有其他的组件。 ASP.NET MVC 框架同时支持依赖注入(DI)和控制反转(IOC)容器模型。DI允许你注入对象到类中,而不是依靠类来创建对象自己。IOC 指定如果一个对象需要另一个对象,第一个对象应该从外部源如配置来获得第二个对象。这使得测试更为简单。
- 强大的URL映射组件让你生成能够解析和检索URL的程序。 URL不需要包括文件扩展名,并且被设计成支持URL命名模式,有利于搜索引擎优化(SEO)和表象化状态转变(REST)。
- 支持使用现有ASP.NET页面(.aspx文件),用户控件(.ascx文件)和母版页(.master文件)等标记文件的标记作为视图模板。你可以使用带有ASP.NET MVC框架的现有ASP.NET特性,如嵌套母版页,内联表达式(<%= %>),声明服务器控件,模板,数据绑定,本地化等等。
- 支持现有ASP.NET特性。ASP.NET MVC 让你使用如forms身份验证和Windows身份验证,URL身份验证,成员资格和角色,输出和数据缓存,session和profile状态管理,健康监控,配置系统和provider架构等特性。
原文地址:http://www.asp.net/learn/mvc/tutorial-01-cs.aspx
分享到:
相关推荐
项目创建过程始于Visual Studio中的“新建”项目选项,选择C#中的Web模板组里的ASP.NET MVC3 Web应用程序。项目名称设定为`MvcMusicStore`,并选择空项目模板和Razor视图引擎。这一步骤奠定了项目的基础,并遵循了...
### 精通ASP.NET MVC 1.0(Professional ASP.NET MVC1.0) #### 知识点概览 本书由Scott Guthrie撰写的第一章,是关于构建ASP.NET MVC应用程序的详细指南。它包含了从零开始创建一个小而完整的ASP.NET MVC应用所需的...
### ASP.NET MVC 3 Framework 3rd Edition 关键知识点概览 #### 一、书籍概述与作者信息 - **书籍名称**:《Pro ASP.NET MVC 3 Framework 3rd Edition》 - **书籍版本**:正式完全版 - **书籍定位**:权威指南 - **...
**C# ASP.NET MVC 视频教程概览** C# ASP.NET MVC 是一种构建Web应用程序的强大框架,由Microsoft开发,它结合了Model-View-Controller(MVC)设计模式,C#编程语言以及ASP.NET技术栈的优势。在这个视频教程中,你...
### ASP.NET MVC 3 框架概览与关键技术知识点 #### 一、ASP.NET MVC 3 框架简介 - **框架定位与特点**:ASP.NET MVC 是微软推出的一种用于构建动态网站的框架,它采用了 Model-View-Controller(MVC)设计模式。...
ASP.NET MVC3是一个用于构建动态网站的开源框架,它基于模型-视图-控制器(Model-View-Controller)设计模式,提供了高度可测试性和灵活性。在这个项目中,我们将探讨如何利用ASP.NET MVC3来实现一个功能完备的访问...
### ASP.NET MVC in Action知识点概览 #### 一、ASP.NET MVC框架介绍 - **MVC模式概述**:模型-视图-控制器(Model-View-Controller,简称MVC)是一种广泛采用的设计模式,用于软件工程中分离业务逻辑、用户界面和...
#### 二、ASP.NET MVC 3.0入门教程内容概览 - **学习目标**: 本教程旨在帮助初学者快速掌握ASP.NET MVC的基本概念和开发流程。 - 创建ASP.NET MVC项目 - 实现控制器与视图 - 使用Entity Framework Code First创建...
技术栈:使用C#语言和ASP.NET MVC框架开发,数据库后端使用SQL Server。 项目类型:是一个完全自动化的Web应用程序。 关键特点 数据管理:处理医院各个部门的数据,比如患者信息、医疗记录、药品库存、实验室测试...
综上所述,《Professional ASP.NET MVC 3》是一本全面覆盖 ASP.NET MVC 3 各个方面的专业书籍,不仅深入浅出地介绍了 MVC 3 的各个组成部分及其使用方法,还提供了大量实用案例,非常适合希望深入了解并掌握 ASP.NET...
#### 一、ASP.NET MVC 3框架概览 **ASP.NET MVC 3**是Microsoft推出的一款强大的Web开发框架,它不仅继承了传统的ASP.NET平台的优点,还融合了现代敏捷开发的最佳实践以及模型-视图-控制器(MVC)架构模式的优势。...
#### 一、ASP.NET Core MVC 概览 ASP.NET Core MVC 是一个用于构建现代 Web 应用程序的框架,它结合了 ASP.NET 的强大功能与 MVC(Model-View-Controller)设计模式的优势。此框架由微软开发,并且是开源的,支持跨...
#### Asp.net MVC概览 Asp.net MVC是Microsoft推出的一种Web应用程序架构模式,它基于Model-View-Controller(模型-视图-控制器)设计模式。这种模式将业务逻辑、用户界面和数据处理分离,从而提高了代码的可读性...