浅谈MVC框架的优点(翻译)_实用技巧

来源:脚本之家  责任编辑:小易  

1Learning in the Internet and the tradictional learning are the most common method in our daily study and life.2The two ways both have their advantage and disadvantage.3Learning in the Internet has the advantage that it brings free time for students to study.4Moreover,it can be watched repeatedly,which can deepen the impression.5However,it also has the disadvantage that teacher cannot supervise the students' study.6The tradictional learning supplyes the Internet's disadvantage,for it has a perfect supervise machism.7But it doesn't mean the tradictional's has not shortcoming.8It limit the students' freedom and let students' be passivewww.zgxue.com防采集请勿采集本网。

传统的ASP.NET Web Forms是一个非常好的主意,但现实需求非常复杂。随着时间的推移,现实世界的项目暴露出Web Forms的一些不足之处:

简单的来说就是 模型model 控制器controller 视图view MVC最初所实现的目的就是使得三层分类,每层能够都独自的开发,低耦合。控制器作为桥梁连接其余两层进行业务逻辑处理,模型层作为数据库的

“沉重的”视图状态:现实中在http请求之间维持状态(术语叫视图状态)导致了服务端和客户端巨大的数据块来回传递。典型情况下这个数据块会大到数百K字节,而且这个数据块会在每次请求时来回传输,导致网站访问者访问速度下降,同时增加了服务器的带宽负担。

任何事物都有它的两面性互联网也如此优点是它让我们可以接触到更多的人认识的或不认识的,让沟通变得更方便,拉近人与人之间的关系。比如说QQ,当然它给了我们更多的信息量,我们可以通过它更好

页面生存周期:作为页面生存周期的一部分,连接客户端事件和服务端事件处理代码的机制,有时会非常复杂和微妙。很少有开发者能够在运行时成功操纵控件的层次结构而不发生视图状态错误,有时还会发现一些事件处理代码在运行神秘的失败了。

Advantages and disadvantages交友利弊 1.You meet new people from all over the world,and learn different culture in different place. 你可以和来自世界各地的人交流,并了解不同地方的

对HTML控制有限:服务端控件在客户端将自身转化为HTML标记,但往往并不是你想要的。在ASP.NET 4.0以前版本中,它的HTML输出通常并不符合WEB标准,和层叠样式表(CSS)也没有良好的结合,而且服务端控件自动创建不可预知的、复杂的标记ID值,导致Javascript难以访问。这些问题在在ASP.NET 4.0里有所改善,但要获取你期望的HTML标记可能依然比较棘手。

Face–to–face communication can be friendly,powerful to show to the audience and promote your ideas.Like now i communicate with you,face–to–face communication can

有问题的抽象:Web Forms试图尽可能隐藏HTML和HTTP的实现细节。当你想要实现自定义的行为时,你必须频繁地从这种抽象里跳出来,强制你对回发事件机制实施进行逆向工程,采取一些繁琐的方法(obtuse acts)生成你想要的HTML文本。这些抽象甚至会令极富经验的WEB开发者感到令人沮丧的挫折。

Some people believe that attending a college or university in a foreign country has many advantages.They think that attending a college or university abroad can help them learn

低级的可测试性:ASP.NET的设计者压根没有把自动测试作为这个软件开发平台的必要工具。这并不奇怪,他们设计的紧密耦合的体系结构根本不合适进行单元测试,集成测试也是个问题。

ASP.NET在不断发展。2.0版增加了一套标准应用程序组件集,可以减少你需要自己输入的代码量。2007年发布的AJAX版本是微软对当时Web 2.0/AJAX疯狂流行的响应,它支持富客户端交互。最近发布的ASP.NET 4.0版,可以产生大部分可以预见的符合标准的HTML标记,但许多其固有的局限性依然存在。

ASP.NET MVC的主要优势

ASP.NET在商业上取得了巨大成功,但正如前所述,其它的WEB开发平台也在不断向前发展。尽管微软一直在努力把緾绕在WEB Forms上的“蜘蛛网”清除掉,但其内在的设计理念已经落伍了。

2007年10月份,在美国德克萨斯州奥斯丁市召开的第一届ALT.NET会议上,微软公司副总裁Scott Guthrie发布并演示了一个基于ASP.NET的崭新的MVC WEB开发平台,明确的被设计为针对类似Rails这样的技术的直接响应,也是对业界关于Web Forms的批评的回应。本章的余下部分描述这个新的平台如何解决Web Forms的种种不足,并令ASP.NET重返顶峰。

(一) MVC体系结构

把MVC构建模式和ASP.NET MVC框架之间的区别搞清楚是十分重要的。MVC模式并不是新生事物-这要追溯到1978年施乐公司帕洛阿尔托研究中心的Smalltalk项目-之所以在今天的WEB开发领域广受欢迎,有以下原因:

MVC应用程序的用户交互符合自然周期:用户执行一个动作,作为响应,应用程序改变它的数据模型,并向用户提供一个更新了的视图。应用程序就一直这样循环的运行。这种模式非常适合WEB应用程序传递

一连串的HTTP请求和响应。

WEB应用程序必然要涉及若干不同的技术领域(数据库,HTML,可执行代码),通常这些技术都分布在不同层面。而MVC的概念很自然的就和这些技术的组合模式对应起来了。

ASP.NET MVC框架实现了MVC模式,而且这样做,有利于更好分离关注。实际上,ASP.NET MVC实现了一个特别为WEB应用开发定制的MVC模式。在第4章你将会了解这个体系的更多的理论,并亲身体验。

通过包含和改进MVC模式,ASP.NET MVC框架相对于Ruby on Rails这样的框架具备了强大的竞争力,同时也将MVC模式引入到主流的.NET领域。通过使用其它平台的开发者提供的对ASP.NET MVC的体验评估和实际应用中反馈,ASP.NET MVC在许多方面甚至已经超越了Rails。

(二) 可扩展性

你的桌面型电脑都是由一些相互独立的部分组成,它们之间通过标准的公开的文档化的接口相互联系。你可以很轻松的把你的显卡和硬盘换成另一个制造商生产的产品,并确信它们可以插进相应的槽位并正常工作。MVC框架的原理和PC一样也是构建在一系列相互独立的组件的基础之上-如一个可信的.NET接口或继承抽象基类的用户类-这样你就可以轻而易举的用你自己的实现替换这些组件,诸如路由系统,视图引擎,控制器工厂等等。

ASP.NET MVC设计者对如何使用MVC框架的每个组件向你提供了三个选择:

使用默认组件实现(对于大部分应用来说已经足够了)

从默认实现继承实现一个子类,以对某些行为进行微调

使用新的接口或抽象基类实现替换这些组件

这些看起来有点像ASP.NET 2.0中的供给者模式(provider model),但它更进了一步-完全进入了MVC框架的核心。从第10章起,你将会了解到各种各样的组件,并且知道为什么要调整或替换它们。

(三) 对HTML代码和HTTP的严密控制力(Tight Control over HTML and HTTP)

ASP.NET MVC知道产生整洁、符合标准的标记的重要。它内置的HTML helper方法的输出完全符合标准,但同Web Forms相比较其更多的重要变化体现在其设计哲学上。以往你对Web Forms自动生成的一大堆令人作呕的封装的HTML标记只有很小的控制权,作为替代,MVC框架鼓励你使用CSS设计简洁、优雅的标记。

当然,如果你想在你的页面摆上一些现成的复合UI元素的小玩意,像日历或级联菜单,ASP.NET MVC中的“无特殊要求”的标记方法让你可以轻易的使用最好的UI库,比如JQuery或雅虎的YUI库。微软已经把JQuery内置为ASP.NET MVC默认项目模板的一部分,JavaScript程序员会对ASP.NET MVC和当前流行的JQuery库结合如此紧密感到欣慰,甚至在微软自己的内容分发网络(CDN)服务器上你都可以直接引用Jquery.js文件。我们将在第20章涉及到JQuery。

ASP.NET MVC生成的页面不包含任何视图状态数据,因此它们比典型的ASP.NET Web Forms页面会小数百K。尽管今天的宽带连接已经非常快了,但这种带宽的节约依然会给最终用户带来巨大的体验改善。

和Ruby on Rails一样,ASP.NET MVC和HTTP合作和谐。你对往返于浏览器和服务器之间请求拥有完整的控制权,这样你就按你的喜好可以微调你的用户体验。AJAX现在实现起来很简单,而且没有任何影响客户端状态的自动回发。关注Web开发领域的任何开发者几乎肯定会发现,ASP.NET MVC会极大减少工作量,在同样的时间内完成的任务会更加令人满意。

(四) 易测试性

MVC使你在应用程序的可维护和可测试方面迈出了一大步,因为你可以自然的根据程序要实现的不同功能将其分离成许多不同的、相互独立的软件块。然而,ASP.NET MVC的设计师们并不满足于到底就止步了。为了支持单元测试,他们在框架中引入了面向组件设计的概念,并确保每个分离的代码块都以满足单元测试和模拟工具的需要的形式构建。

出于为开发者考虑的角度,他们还在Visual Studio向导中增加了创建单元测试向导,它可以使用许多开源的单元测试工具,如NUnit和xUnit,甚至微软自己的MSTest。即使你以前从来没有写过单元测试代码,你也会有一个良好的开始。

本书中,你会看许多为ASP.NET MVC控制器(controller)和行为(action)编写的简洁、简单的单元测试示例,这些示例会使用各种测试和模拟策略来冒充框架组件的实现,以确定实际运行中可能出现的任何情况。

易测试性不只是体现在单元测试中,ASP.NET MVC应用程序和UI自动化测试工具之间工作也非常好。你可以模拟用户交互的情景编写测试脚本,再不用去猜测HTML元素的结构,使用的CSS类,或者框架将要生成的ID,也用不着担心页面的结构会出现莫名其妙的变化。

(五) 强大的路由系统

URL的风格伴随着Web应用技术的发展也在不断发展。像下面的URL:

/App_v2/User/Page.aspx?action=show%20prop&prop_id=82742

将会逐渐稀少,它将被一种简单的、整洁的格式所代替,就像下面的这个:

/to-rent/chicago/2303-silver-street

之所以关注URL的结构问题,有以下几个很好的原因:第一,搜索引擎给在URL中搜索关键字分配了很大的权重。搜索“芝加哥的租金”会更容易匹配上面那个简单的URL。第二,现在许多网络用户的理解能力足够搞明白一个URL的意思,而且他们很欣赏在浏览器地址栏输入地址时的智能导航选项。第三,当人们理解了一个URL的结构,他们更有可能去链接它,把它和朋友共享,甚至可以通过电话大声的读出来。第四,它不会把你的应用程序的技术细节,目录,文件名结构公开到整个互联网上,因此,你可以自由的改变底层的实现而不会影响到你已经拥有的连接。

早期的框架难以实现精准的URL,不过ASP.NET MVC默认使用System.Web.Routing命名空间很容易提供精准的URL。它可以让你控制你的URL的样式,并将其和你的应用相关联,为你提供创造一个有意义的、对用户有用的地址样式的自由,不需要遵守预定义的模式。另外,只要你愿意,你完全可以容易的定义时髦的REST风格的URL样式。你会第11章看到一个详细的路由方案和关于URL的最佳练习。

(六) 构建于ASP.NET平台最好的部分之上

微软现有的ASP.NET平台已经为开发实用和高效的web应用程序提供了一整套成熟的、久经考验的组件和工具集。

首先也是最明显的地方,因为ASP.NET MVC构建在.NET平台之上,所以用户可以灵活的使用任意.NET语言编写代码和访问相同API功能-不光是MVC里面的,也包括大量的系统.NET类库和浩瀚的第三方.NET库。

其次,现有的ASP.NET平台的一些功能-比如母版页,表单验证,成员资格,角色,profiles,还有国际化-能够减少你需要开发和维护任意应用程序的代码量,这些功能在MVC框架中同样有效,因为它本来就是一个杰出的Web Forms项目。你可以在ASP.NET MVC的项目中继续使用一部分Web Forms内置的服务器控件,以及你在早期的ASP.NET项目中创建的自定义控件。(不过不能再依赖Web Forms中的特有概念,比如视图状态)

开发和布署是交替进行的。ASP.NET不仅和Visual Studio紧密结合在一起,它也作为一种原生的web编程技术为Windows XP,Vista,7和服务器操作系统中安装的Internet信息服务(IIS)所支持。IIS7发布后,将.NET托管代码它的请求处理管道的原生部分,为其提供第一流的支持,这也是ASP.NET的特殊待遇。因为MVC应用基于ASP.NET平台核心,因此它也会同样享受这些待遇。第23章我们会详细说明如何在Windows服务器上的IIS中部署MVC应用程序。

(六) 现代化的API

自微软2002年发布 .NET平台以来,它一直在持续的发展,支持甚至是定义了现代编程技术顶级水准。

ASP.NET MVC是专为.NET 4.0打造的,所以它的API可以使用最新的编程语言和运行时创新的所有益处,包含扩展方法,lambda表达式,匿名和动态类型,语言集成查询(LINQ)。许多MVC框架的API方法和编码模式尽可能的比早期平台整洁,更富表现力。

(七) ASP.NET MVC是开源的

和微软先前的平台不同,ASP.NET MVC的原始代码你可以随意下载,甚至可以对其进行修改,重新编译为你自己的版本。当你的调试足迹深入到一个系统组件内部,想对它的代码进行步进(甚至阅读原作者的注释)时,代码开源是非常有用的。另外,如果你想构建一个更高级的组件,看看可能会发生什么,或者观察内置组件是如何工作的,这点也非常有帮助。

同时,如果你不喜欢某些工作的实现方式,或者你发现了一个错误,又或者你想访问一些其它方式无法访问的东西,开源好处是非常强大的。因为你自己就可以简单的改变它。

不过,如果将来有一天你将你的框架升级到新版本,你还要重复你所作的改变再重新应用它们。ASP.NET MVC是按照微软公共许可(Ms-PL,http://www.opensource.org/licenses/ms-pl.html)发布的,这是一个经过开源促进组织批准的开源许可。也就是说你能够修改源代码并部署它,甚至把它作为一个衍生项目向公众发布。然而,微软在其官方版本上不接受任何补丁,现阶段,微软只维护其产品开发和质量保证团队的负责的代码,你可以从http://aspnt.codeplex.com/网站上下载MVC的源代码。

Nowadays,with the rapid development of our society,especially the IT and information industry,cell phones are accessible and they play a dominant role in our daily life,which greatly facilitate our lives.Firstly,it’s very useful and convenient.As a wireless mobile phone,it can be easy to carry and make people reach others and be reached immediately,without considering the location.Secondly,it’s also a perfect recreational tool.With the progress of science and technology,cell phones are much powerful than ever.With them,people not only can make a phone call,send SMS,but also can play games and search the internet,even do shopping.Furthermore,when you are in trouble,the handy cell phone is an effective way to help you.目前,随着社会的快速发展,特别是IT和信息产业,手机普遍被使用了,而且它们在我们的日常生活中扮演着一个很重要的角色,极大的促进了我们的生活。第一,手机很有用而且很方便。作为一个无线移动电话,它易拿、可以忽略地理位置快速的联系别人。第二,手机也是一个完美的娱乐工具。随着科技的进步,手机比以前更加强大了。有了手机,人们不仅可以打电话,发简讯,还可以玩游戏,上网,甚至还可以购物。此外,当你遇上麻烦时,用身边的手机是一个有效的方法来帮助你。However,some people argue that the mobile phones bring some negative impacts to people’s lives as well as convenience.Firstly,to a certain extent,the mobile phones will affect interpersonal relationships.If you constantly fiddle with your mobile phone when you’re communicating with your friends or families,the mobile phone will make dialogue delay to make others feel that you lack of sincerity and even likely to cause conflict.Secondly,mobile phones will narrow the circle of life by making the traditional social models,such as family gatherings,school reunions,less important.Because mobile phones occupy too much of our time and attention,and force us to focus on them.Last but not the least,mobile phones are harmful to our health.然而,有些人争论说手机也给人们的生活带来了一些负面的影响就像带来方便是一样的。第一,在某种程度上,手机会影响人际关系。如果你不断的摆弄的你手机当你在和你的朋友和家人交流时,手机会使对话延迟让别人觉得你没有诚意甚至引起冲突。第二,手机会缩小生活圈子使得传统的交流方式,比如,家庭聚会,同学会不那么重要。因为手机会占用我们太多的时间和注意力来迫使我们去注意它。最后一点也是非常重要的一点,手机对我们健康有害。To sum up,moblie phones as a tool to faciliate our lives,we should use them appropriately to make convenience and reduce their negative impacts.总结,手机作为一种促进我们生活的工具,我们应该正确的使用它,从而让它变得方便并减少它的负面影响内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • asp.net 之 mvc框架及搭建教程(推荐)
  • 请求如何进入asp.net mvc框架
  • .net web开发之.net mvc框架介绍
  • asp.net弹出窗口 返回值
  • asp.net使用h5新特性实现异步上传的示例
  • asp.net编程简单实现生成静态页面的方法【附demo源码下载】
  • asp.net core全面扫盲贴
  • asp.net微信开发(高级群发图文)
  • 使用.net存储xml数据的方法
  • wpf制作一个简单的倒计时器实例附源码
  • datatable数据导出成excel文件的小例子
  • asp.net导出数据到excel的实现方法
  • 如何在.net core应用中使用nhibernate详解
  • 关于手机的优缺点的英语作文
  • 网络课程和传统课程优缺点的英语作文
  • 谈谈手机优缺点的英语作文
  • 用英语写五条网购优缺点
  • MVC开发模式的优点?
  • 关于写网络优缺点的100字英语作文带翻译
  • 网上交友的优缺点英文回答?
  • 网络教学与面对面教学相比的优缺点英文作文
  • 出国留学的优缺点 英语演讲稿
  • 求一篇关于智能手机优缺点的英语作文?
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全基础应用实用技巧自学过程首页asp.net实用技巧asp.net 之 mvc框架及搭建教程(推荐)请求如何进入asp.net mvc框架.net web开发之.net mvc框架介绍asp.net弹出窗口 返回值asp.net使用h5新特性实现异步上传的示例asp.net编程简单实现生成静态页面的方法【附demo源码下载】asp.net core全面扫盲贴asp.net微信开发(高级群发图文)使用.net存储xml数据的方法wpf制作一个简单的倒计时器实例附源码datatable数据导出成excel文件的小例子asp.net导出数据到excel的实现方法如何在.net core应用中使用nhibernate详解java正则表达式 pattern和matche未将对象引用设置到对象的实例 (asp.net(c#)网页跳转七种方法小结未能加载文件或程序集“xxx”或它asp.net“服务器应用程序不可用”asp.net中的几种弹出框提示基本实asp.net gridview 72般绝技asp.net生成excel并导出下载五种asp.net汉字转拼音和获取汉字首字asp.net对路径"xxxxx".net 单点登录的设计与实践ajaxtoolkit:modalpopupextender演示及实关于asp.net页面page_load被执行两次的问asp.net mvc 从ihttp到页面输出的实例代码asp.net ajax时用alert弹出对话框asp.net 通用万级数据分页代码[修正下载地asp.net中防止页面刷新造成表单重复提交执.net下文本相似度算法余弦定理和simhash浅asp.net下使用dbproviderfactories的数据解读asp.net密码强度验证代码实例分享
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved