《精通 ASP.NET MVC 4》----第 1 章 伟大的思想 1.1 Web开发简史

第 1 章 伟大的思想

精通 ASP.NET MVC 4
ASP.NET MVC是微软的一个Web开发框架,它整合了“模型—视图—控制器(MVC)”架构的高效与整洁、敏捷开发最新的思想与技术以及当前ASP.NET平台的精华部分。ASP.NET MVC可以完全替代传统的ASP.NET Web Form,除了一些微不足道的Web小项目之外,在各种Web开发项目中都具有明显的优势。在本章中,读者将了解微软当初创建ASP.NET MVC的原因,与它的前辈和替代品之间的区别,以及ASP.NET MVC 4的新特性。

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

1.1 Web开发简史

精通 ASP.NET MVC 4
为了理解ASP.NET MVC的特色及其设计目标,有必要先来了解一下到目前为止Web开发的历史——虽然这很简短。近年来,微软的Web开发平台演变得越来越强大,但也越来越复杂。如表1-1所示,每一个新平台都修正了它前一版本中的不足。

*CGI是Web服务器与返回动态内容的任意可执行程序进行连接的一种标准方法。其规范由美国国家超级计算应用中心(NCSA)维护。

1.1.1 传统的ASP.NET Web Form

ASP.NET在2002年刚问世起就是一种巨大的转移。图1-1描述了当时微软的技术堆栈。

(注:此图的含义为,Web Form建立在ASP.NET之上,而ASP.NET又建立在.NET平台之上,MVC所起的作用是替代这里的Web Form——译者注)

通过将用户界面(UI)模拟为服务器端控件对象层的办法,微软试图利用Web Form把HTTP(具有无状态本质)和HTML(当时许多开发人员尚不熟悉)都隐藏起来。每个控件在请求期间都跟踪自己的状态(通过使用View State工具),在需要时把自己渲染成HTML,并自动地将客户端事件(如按钮点击)与相应的服务器端的事件处理器代码相关联。结果,Web Form被设计成在Web上传递传统的事件驱动式图形用户界面(GUI)的一个巨大的抽象层。

其思想是,让Web开发在感觉上与Windows Form开发相同。开发者不再需要以一系列独立的HTTP请求和响应进行工作,可以认为它是一种状态化的UI。人们可以忘记Web及其无状态本质,转而用一种“拖—放”式设计器来创建UI,并设想——或至少假装——所有事情都发生在服务器上。

1.1.2 ASP.NET Web Form的问题

传统的ASP.NET Web Form开发曾是一种了不起的思想,但事实证明它更加复杂。随着时间的推移,Web Form在实际项目中显现出了一些缺陷。

视图状态重负:跨请求地维护状态的实际机制(称为视图状态,View State)导致在客户端与服务器之间传输大块数据。这种数据即使在最适度的Web应用程序中也达到几百KB,而且它来回于每次请求之间,导致响应时间很慢,增加了服务器的带宽需求。

页面生命周期:连接客户端事件与服务器端事件处理器代码的机制(是页面的部分生命周期)格外复杂和棘手。很少有开发者在不产生View State错误或不发现某些事件处理器莫明失效的情况下,能够在程序运行期间成功地维护控件层。

关注分离的错误观念:ASP.NET的后台代码模型提供了一种手段,把应用程序代码从它的HTML标记中提取出来,并放到一个独立的后台代码类中。这种逻辑与表现的分离曾得到广泛的赞许,但事实上,却又鼓励开发者在这些怪异的后台代码类中,把表现代码(如操纵服务器端控件树)与它们的应用程序逻辑(如维护数据库数据)混在一起。最终结果是脆弱和难以理解。

HTML上的受限控制:服务器控件将自己渲染成HTML,但并不是用户所希望的那种必要的HTML。在ASP.NET 4之前,这种HTML输出通常不符合Web标准,或不能很好地使用层叠式样式表(CSS,Cascading Style Sheets)。而且,服务器控件会生成不可预知且复杂的ID标签属性值,这些ID难以用JavaScript进行访问。这些问题在ASP.NET 4和ASP.NET 4.5中改善了不少,但要得到人们所期望的HTML,仍然是需要技巧的。

有缺陷的抽象:Web Form试图尽可能地隐去HTML和HTTP(这是通过Web Form的抽象层实现的——译者注)。当用户试图实现自定义行为时,时常需要放弃这种抽象,这迫使用户需要采取回发事件机制的逆向工程,或采取笨拙的方法(这样才可能绕过Web Form的抽象层,但给编程造成了难度——译者注),以使它生成所希望的HTML。这种抽象可能对有能力的Web开发者构成一个极大的障碍(由于编程难度,给希望实现自定义行为的开发人员造成了一定障碍——译者注)。

低可测试性:ASP.NET的设计者们恐怕未曾预料到,自动测试会成为软件开发的主要成分。因此,他们设计的这种紧耦合体系结构不适合单元测试也就不足为奇了。集成测试也很具挑战性。

ASP.NET一直在不断改进,2.0版添加了一组标准的应用程序组件,可以减少开发者需要自行编写的代码量。2007年发布的AJAX是微软对Web 2.0/AJAX疯狂时代的回应,它支持富客户端交互,同时也简化了开发者的工作。随着ASP.NET 4的发布事情又改进了很多,它第一次以严肃的方式迎合Web标准。最新版的ASP.NET 4.5实际上采用了ASP.NET MVC的一些新特性,并将它们运用于Web Form领域,这解决了一些较棘手的问题。不过,即便如此,许多固有的局限性依然存在。

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

时间: 2024-08-28 01:45:20

《精通 ASP.NET MVC 4》----第 1 章 伟大的思想 1.1 Web开发简史的相关文章

《精通 ASP.NET MVC 4》----1.6 小结

1.6 小结 精通 ASP.NET MVC 4 在本章中,本书描述了Web开发领域的高速演变,从CGI可执行程序的原始沼泽到最新的高性能.标准兼容.敏捷平台:回顾了微软自2002年开始就在使用的主流Web平台ASP.NET Web Form的强项.弱点和局限性,以及迫使微软用一些新事物作出响应的广泛的Web开发行业的变革. 读者看到了ASP.NET MVC平台如何克服ASP.NET Web Form的弱点,以及它的现代设计如何把优势带给那些想编写高质量.可维护代码的开发者. 在下一章中,读者将看

《精通 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》----第2章 第一个MVC应用程序 2.1 准备Visual Studio

第2章 第一个MVC应用程序 精通 ASP.NET MVC 5 鉴赏一款软件开发框架最好的方式是介入其中并使用它,本章将使用ASP.NET MVC框架创建一个简单的数据录入应用程序.笔者会将过程分解成一个个的步骤,以便笔者能够看出如何构造ASP.NET MVC应用程序.为了保持过程简单,这里将跳过某些技术细节.但不必着急,如果是MVC新手,你会发现大量感兴趣的内容.对于一些未进行解释的内容,笔者提供了参考章节,在那里你会看到完整的细节. 2.1 准备Visual Studio Visual St

《精通 ASP.NET MVC 4》----第 2 章 第一个MVC应用程序 2.1 准备工作站

第 2 章 第一个MVC应用程序 精通 ASP.NET MVC 4 鉴赏一个软件开发框架最好的办法是投入其中并使用它.本章将带领读者创建一个简单的.使用ASP.NET MVC框架的数据录入应用程序.本书将把事情分成一个个步骤,以使读者能够明白ASP.NET MVC应用程序是如何构造的.为简化起见,本书会跳过某些技术细节.但不必担心--如果是MVC新手,就会发现大量有趣有东西.对于一些未进行解释的内容,本书提供了参考章节,读者会在那里看到完整细节. 本文仅用于学习和交流目的,不代表异步社区观点.非

《精通 ASP.NET MVC 3 框架(第三版)》----第2章 准备工作 2.1 准备工作站

第2章 准备工作 精通 ASP.NET MVC 3 框架(第三版)在进行MVC框架的应用程序开发之前,需要进行一些基础的准备工作.本章将介绍工作站开发和服务器部署做准备所需的一些工具. 本文仅用于学习和交流目的,不代表异步社区观点.非商业转载请注明作译者.出处,并保留本文的原始链接. 2.1 准备工作站 精通 ASP.NET MVC 3 框架(第三版)MVC框架开发的基础是一组工具集.这些包括Visual Studio 2010.Web平台安装程序以及诸如IIS之类的可选组件.下面将解释如何安装

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

1.3 ASP.NET MVC的关键优点 精通 ASP.NET MVC 4 ASP.NET已经获得了巨大的商业成功,但正如所讨论的,其他Web开发领域也在进步,即使是微软也在不断清理Web Form的垢病,因为其基本设计看上去已经相当陈旧了. 2007年10月,在德克萨斯-奥斯汀举行的第一次ALT.NET国际会议上,微软副总裁ScottGuthrie宣布并演示了崭新的MVC Web开发平台,它建立在核心ASP.NET平台之上,明确地作出对Rails等技术进展的直接回应,以及对Web Form批评

《精通 ASP.NET MVC 3 框架(第三版)》---- 1.2 当今的Web开发

1.2 当今的Web开发 精通 ASP.NET MVC 3 框架(第三版) 除微软之外,自Web Form首次发布以来,Web开发技术发展迅速,这表现在几个不同的方向.除了已经提及的AJAX之外,还有一些其他的主要发展. 1.2.1 Web标准与REST 近些年来,向Web标准兼容的趋势已在增强.Web网站建立在比以往更广泛的设备和浏览器之上,Web标准(HTML.CSS.JavaScript等)使人们有望能够在任何地方--甚至在可联网的冰箱上--都可以有相当好的浏览体验.现代Web平台不可忽视

《精通 ASP.NET MVC 4》----1.2 当今的Web开发

1.2 当今的Web开发 精通 ASP.NET MVC 4 除微软之外,自Web Form首次发布以来,Web开发技术发展迅速,这表现在几个不同的方向.除了Ajax之外,还有一些其他的主要发展. 1.2.1 Web标准与REST 近年来,向Web标准兼容的趋势已在增强.Web网站建立在比以往更广泛的设备和浏览器之上,Web标准(HTML.CSS.JavaScript等)使人们有望在任何地方--甚至在可联网的冰箱上--都可以有相当好的浏览体验.现代Web平台不能忽视这种商业环境和开发者对遵从Web

《精通 ASP.NET MVC 4》----2.4 创建一个简单的数据录入应用程序

2.4 创建一个简单的数据录入应用程序 精通 ASP.NET MVC 4 本章的其余部分将通过建立一个简单的数据录入应用程序,来考察MVC的更多基本特性.本节将分步进行,目的是演示MVC的运转,因此会跳过对幕后工作原理的一些解释.不用担心--在后面的章节中还会重新深入地讨论这些论题. 2.4.1 设置场景 设想一个朋友要主办一个"新年除夕晚会",需要创建一个Web网站,以便让被邀请人进行RSVP(电子回复).这个网站需要以下四个关键特性: 一个显示此晚会信息的主页: 一个可以用来进行R