《ASP.NET MVC 4 实战》----1.2 ASP.NET MVC是什么

1.2 ASP.NET MVC是什么

ASP.NET MVC 4 实战
ASP.NET MVC为在.NET平台上构建Web应用程序的Web Form提供了一个替代品。它是微软在2007年11月第一次披露的,现在已有四个主要版本。第三版,即ASP.NET MVC 3,发布于2011年1月,是第一个依赖于.NET 4的ASP.NET MVC版本。ASP.NET MVC 4可以与.NET 4以及.NET 4.5一起工作,此刻尚未正式发布(ASP.NET MVC 4在本书出版时还只是预览版—译者注)。

MVC代表模型-视图-控制器(Model-View-Controller),这是一种在Web开发领域非常流行的设计模式。

作为Web Form的一个替代品,在构造Web应用程序时,ASP.NET MVC采用了一种不同的方法。这意味着你不必处理ASPX页面和控件、回递或视图状态,或复杂的事件生命周期。相反,你要定义控制器、动作以及视图。然而,底层的ASP.NET平台是相同的,因此,HTTP处理程序和HTTP模块等仍然适用,而且,你可以在同一个应用程序中混合使用MVC和Web Form页面。ASP.NET Web Form和ASP.NET MVC都并驾于核心的ASP.NET平台之上,如图1.2所示。

ASP.NET Web Pages

在图1.2所示中,你可能已经注意到位于ASP.NET核心之上的第三种基于ASP.NET的技术― ASP.NET Web Pages(也叫作ASP.NET Web页面—译者注)。

ASP.NET Web Pages是与ASP.NET MVC 3同一时间发布的,它是为期望学习使用ASP.NET平台的新手而设计的,并作为Web Form与MVC的一种更简单的替代品。它也适用于十分简单的网站,在这种场合下,不必使用成熟的MVC应用程序。它与ASP.NET MVC共享了许多技术,这些技术使新开发人员易于将使用ASP.NET Web Pages所学到的技能转换到MVC场合。

虽然ASP.NET Web Pages项目可以在Visual Studio中开发,但微软还是发布了一个简化的IDE,叫作WebMatrix。它提供了一种更精简的开发体验,以便完全专注于Web开发,而不需要Visual Studio的高级特性。尽管WebMatrix本身超出了本书的范围,但一些与ASP.NET Web Pages相关的技术,在本书的许多例子中将起重要作用。这包括Razor模板引擎,它是一种也由ASP.NET MVC使用的、通过使用C#或VB.NET生成HTML的新方式。
本书将涉及ASP.NET MVC框架的所有主要特性。以下是你将了解到的一些好处:

随着本书的展开介绍,这些好处会变得越为清晰。而现在,我们将简要考察建立该框架的底层模式。为什么要用MVC?它从哪里来的呢?

1.2.1 MVC模式

“模型-视图-控制器” (Model-View-Controller)模式起源于20世纪70年代的Smalltalk开发社区—尽管它是2003年随着Ruby on Rails的出现才在Web上流行使用的。

MVC模式有三个部分:

boll 模型(Model)—建立软件所围绕的主域(这种模型称为“主域模型”,或简称“域模型”—译者注)。如果你正在建立一个博客,则模型可能是帖子和评论。在某些上下文中,术语“模型”可能是指视图专用的模型(这种模型称为“视图模型”—译者注)—专用于在用户界面上显示的模型。

boll 视图(View)—模型的可视化表示。它通常是框架渲染给浏览器的结果标记,比如表现博客帖子的HTML。

boll 控制器(Controller)—提供视图和模型之间关联的协调程序。控制器负责处理输入、对模型进行操作,并决定执行哪一个动作,如渲染一个视图,或重定向到另一个页面。仍以博客为例,控制器可能要找出一篇帖子的最新评论(模型),并将它们传递给视图进行渲染。

图1.3展示了这三个组件是如何关联的。控制器接受用户输入,构造适当的模型,然后将其传递给视图。控制器和视图对模型都有依赖性,但模型本身对控制器和视图是一无所知的。

图像说明文字

ASP.NET MVC不是.NET框架上第一个实现MVC模式的。开源的MonoRail框架,最初的灵感来自于Ruby on Rails,2005年将MVC范例带到了.NET的Web开发。今天的ASP.NET MVC中仍可以看到它的许多影子。

另外,除ASP.NET MVC和MonoRail之外,现在.NET平台上还有其他几个MVC风格的框架。这些框架包括:FubuMVC(http://mvc.fubu-project.org/) ,这是一个开源的约定驱动式框架;OpenRasta (http://openrasta.org ),这是另一个开源项目,其目标是基于资源与HTTP方法的概念来建立Web应用程序与服务。

通过利用MVC模式,ASP.NET MVC提供了几个优于ASP.NET Web Form的好处。

1.2.2 ASP.NET MVC的好处

ASP.NET MVC解决了ASP.NET Web Form的许多缺点。当在.NET平台上开发新的应用程序时,这使ASP.NET MVC成为一种更好的选择。

与协议更接近
ASP.NET Web Form试图完全隐藏HTTP的无状态本质,而ASP.NET MVC却不是。通过采纳MVC模式,并将一个HTTP请求映射成一个方法调用,ASP.NET MVC为许多具有Web开发背景的人提供了更加熟悉的开发体验。其模型也彻底被简化—Web Form的那种复杂的页面生命周期不存在了,而且HTTP上的抽象是最小限度的。

关注分离
ASP.NET Web Form将用户界面与其后台代码紧密地耦合在一起,而ASP.NET MVC却是鼓励将用户界面(视图)与驱动界面的代码(控制器)保持分离的一种设计方式。如果实现良好,便意味着开发人员更易于理清应用程序的脉络,也使应用程序更易于维护—对控制器的修改不一定意味着也必须修改用户界面。

可测试性
通过将应用逻辑从用户界面中分离出来,ASP.NET MVC更易于独立地测试个别组件。可以测试控制器类,而不必测试实际的用户界面(意即,控制器与界面的测试是可以分开进行的―译者注)。与Web Form不同,MVC控制器对完全不可测试的HttpContext类没有直接的依赖性,而只是依赖于抽象,这使得编写出自动化的单元测试要容易得多。

现在,你已经看到了ASP.NET MVC的一些好处,以下将简要探讨该框架第三版的新特性。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

时间: 2024-09-17 03:26:41

《ASP.NET MVC 4 实战》----1.2 ASP.NET MVC是什么的相关文章

《ASP.NET MVC 4 实战》----2.3 Guestbook示例应用程序

2.3 Guestbook示例应用程序 ASP.NET MVC 4 实战 为使Guestbook应用程序有用,我们需要为用户提供一些递交条目的方式,将这些条目存储起来,以便稍后进行查看.为了达到这一目标,我们打算对应用程序添加一个数据库,将其作为该留言簿的后台存储库. 首先从创建数据库开始,然后考察如何接受用户输入并存储它,最后演示如何获取数据,以便将其显示给用户. 2.3.1 创建数据库 绝大多数Web应用程序都需要某种数据仓库的支持,这可能是一个关系型数据库(如微软的SQL Server或M

《ASP.NET MVC 4 实战》----2.2 创建第一个MVC应用程序

2.2 创建第一个MVC应用程序 ASP.NET MVC 4 实战 现在,你的PC机上已经安装了ASP.NET MVC,可以创建第一个MVC应用程序了.我们首先使用默认模板简单地创建一个新项目,然后扩展它显示一些动态内容.在此之后,将漫游一个标准的项目布局,以使你明白构成一个MVC应用程序的各个组件. 2.2.1 创建新项目 创建新的MVC项目是一个简单的过程-在Visual Studio 2010(或Visual Web Developer Express)中点击"文件"(File)

《ASP.NET MVC 4 实战》---- 1.4 小结

1.4 小结 ASP.NET MVC 4 实战 本章简要介绍了ASP.NET MVC的背景历史.你看到了ASP.NET平台是如何随时间演变的,而且,微软目前在ASP.NET核心上提供三个Web开发框架-AS.NET Web Form.ASP.NET MVC,以及ASP.NET Web Pages.本章介绍了MVC 3.4版的一些新特性,本书中将对它们做更深入的解释. 下一章将介绍Guestbook项目,它是本书第1部分将使用的示例.Guestbook将提供一个沙箱示例(一种引导性或启发性的示例-

《ASP.NET MVC 4 实战》----第 2 章 第一个MVC应用程序 2.1 设置开发环境

第 2 章 第一个MVC应用程序 ASP.NET MVC 4 实战 本章内容 本章将介绍Guestbook(留言簿)应用程序,它也是本书第1部分的其余章节所使用的示例.Guestbook是一个简单的应用程序,它让用户向网站递交他们的姓名和消息,并查看其他用户递交的消息.虽然这个Guestbook的概念很简单,但是我们将用它来考察ASP.NET MVC的核心组件. 在本书的第1部分中,我们将建立这个示例.为了使用MVC应用程序,首先看看需要安装的开发工具,然后创建Guestbook应用程序的初步骨

《ASP.NET MVC 4 实战》---- 1.3 ASP.NET MVC 3/4的新特性

1.3 ASP.NET MVC 3/4的新特性 ASP.NET MVC 4 实战 除了对.NET 4有新的依赖性之外,MVC 3.4版有许多改进和一些新的特性.这些新特性包括: 本节中将简要介绍每一种新特性,然后整个这本书都将对它们做更为深入的探讨.我们还将介绍移动模板.Web API,并在第23章和第24章介绍MVC 4特有的其他特性. 1.3.1 Razor视图引擎 新的ASP.NET Web Pages技术的核心组件之一是Razor视图引擎.该引擎提供了一种在同一个文件中将代码与标记混合在

《ASP.NET MVC 4 实战》----2.4 小结

2.4 小结 ASP.NET MVC 4 实战 在本章中,我们开始了ASP.NET MVC的第一步.我们看到了如何创建新项目,并开始探讨默认项目模板的各个部分.我们考察了如何将第1章的控制器概念关联到控制器类和动作方法,而且看到了Razor模板是如何像视图那样执行的.我们也看到了路由是如何负责将输入URL映射到一个特定的控制器动作的,这让我们能够创建一个定制的.应用程序专用的URL结构(第9章将做深入探讨). 遵照这些方法,我们建立了Guestbook示例应用程序的逻辑-为用户提供一种递交留言簿

ASP.NET MVC案例教程(基于ASP.NET MVC beta)—第七篇:闲话ASP.NET MVC

摘要 本文作为<ASP.NET MVC案例教程>的完结篇,仅从个人角度,发表一些对ASP.NET MVC框架的看法.并且在最后会附上本系列文章的Demo下 载. 前言 写这篇文章的目的,是想总结一些东西,以帮助朋友们更好的使用这个框架.但是,我又不像把官方列举的哪些优势.功能翻译过来列举在 这里.所以,我想干脆我就纯从个人观点上对这个框架评论一下吧.说的不好的,不对的还请批评指正.^_^ ASP.NET MVC--螺旋进步的产物 对于微软为什么要推出ASP.NET MVC,我们是无从得知的,也

《精通 ASP.NET MVC 5》----第1章 ASP.NET MVC背景 1.1 理解ASP.NET历史

第1章 ASP.NET MVC背景 精通 ASP.NET MVC 5 ASP.NET MVC是微软公司的一款Web开发框架,整合了"模型-视图-控制器"架构的高效与整洁.敏捷开发最现代的思想与技术,以及当前ASP.NET平台最好的部分.ASP.NET MVC是传统ASP.NET Web Form的一个完善的替代品.除了一些微不足道的Web开发项目之外,在各种Web开发项目中,它都具有明显的优势.在本章中,你将了解微软公司当初为什么创建ASP.NET MVC,与它的前版和替代品之间的比较

《精通 ASP.NET MVC 5》----1.3 ASP.NET MVC的关键优点

1.3 ASP.NET MVC的关键优点 2007年10月,微软公司发布了一款新的MVC Web开发平台.它建立在核心ASP.NET平台之上,明确地形成了对Rails这类技术进展的直接响应,并作为对Web Form批评的一种反应.下面几小节将描述这一新平台如何克服Web Form的局限性,并将ASP.NET重新带回到先进行列. 1.3.1 MVC的体系结构 重要的是区别MVC体系结构模式与ASP.NET MVC框架.MVC模式并不新--这要回溯到1978年Xerox PARC的Smalltalk