开发者社区> 异步社区> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介: ASP.NET MVC为在.NET平台上构建Web应用程序的Web Form提供了一个替代品。它是微软在2007年11月第一次披露的,现在已有四个主要版本。第三版,即ASP.NET MVC 3,发布于2011年1月,是第一个依赖于.NET 4的ASP.NET MVC版本。
+关注继续查看

本节书摘来自异步社区《ASP.NET MVC 4 实战》一书中的第1章,第1.2节,作者: 【美】Jeffrey Palermo , 【美】Jimmy Bogard , 【美】Eric Hexter , 【美】Matthew Hinze , 【英】Jeremy Skinner,译者: 徐燕萍 , 李萍 , 林逸 , 更多章节内容可以访问云栖社区“异步社区”公众号查看。

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所示。


6b07a3fcd8cab976df2b13d211e8ca84a3adca17

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框架的所有主要特性。以下是你将了解到的一些好处:


6d1af341741e95d03f42f07ec9462b02470805fd

随着本书的展开介绍,这些好处会变得越为清晰。而现在,我们将简要考察建立该框架的底层模式。为什么要用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展示了这三个组件是如何关联的。控制器接受用户输入,构造适当的模型,然后将其传递给视图。控制器和视图对模型都有依赖性,但模型本身对控制器和视图是一无所知的。

图像说明文字


4a97bc0452b374651113f4bbe5744448bbc5f228

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的一些好处,以下将简要探讨该框架第三版的新特性。

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
基于Asp.Net Mvc开发的个人博客系统
一个基于Mvc 5构建的简单、代码层级分明的开源个人博客系统。前端美观大气、后台采用RightControl .NET通用角色权限系统,开发简单、效率高。网站配置采用XML配置,灵活可以根据自己是需求进行个性化配置。系统功能完备,完全可以满足需求,基本不用二次开发,非常使用程序员的个人博客。
0 0
解决ASP.NET MVC间歇性响应缓慢
解决ASP.NET MVC间歇性响应缓慢
0 0
ASP.NET MVC增删改查带图片路径读取
ASP.NET MVC增删改查带图片路径读取
0 0
ASP.NET MVC多表示例题-酒店管理
ASP.NET MVC多表示例题-酒店管理
0 0
ASP.NET MVC+LayUI视频上传
ASP.NET MVC+LayUI视频上传
0 0
ASP.NET Core MVC+Layui使用EF Core连接MySQL执行简单的CRUD操作
ASP.NET Core MVC+Layui使用EF Core连接MySQL执行简单的CRUD操作
0 0
ASP.NET MVC使用Layui选择多图片上传
ASP.NET MVC使用Layui选择多图片上传
0 0
ASP.NET MVC中使用jQuery Ajax通过FormData对象异步提交图片文件到服务端保存并返回保存的图片路径
ASP.NET MVC中使用jQuery Ajax通过FormData对象异步提交图片文件到服务端保存并返回保存的图片路径
0 0
关于ASP.NET MVC 项目在本地vs运行响应时间过长无法访问时,解决方法!
关于ASP.NET MVC 项目在本地vs运行响应时间过长无法访问时,解决方法!
0 0
ASP.NET MVC默认配置如有跳转到指定的Area区域中的对应程序中
ASP.NET MVC默认配置如有跳转到指定的Area区域中的对应程序中
0 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Java Spring Boot开发实战系列课程【第7讲】:Spring Boot 2.0安全机制与MVC身份验证实战(Java面试题)
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载