那种结合正是REST

     ASP.NET
MVC是微软公司的一款WEB开辟框架,整合了“模型-视图-调整器”架构的高效与清洁,是便捷开采最当代的构思与技术。它是守旧ASP.NET
WebForm的3个宏观的取代品。

1、当今的Web开发

    
一)REST(Representational State
Transfer)已经变为应用程序在HTTP上互操作的机要种类架构,完全使SOAP失色。REST是依附代表真实世界实体的财富(UPRADOI)和代表在这个能源上可用的科班操作方法(HTTP方法)来叙述二个应用程序。经过HTTP方法与能源地址的整合就能够对能源实施相应的操作,那种组合正是REST,试行那种操作的乞请也叫做REST化的央浼。(对于REST的敞亮个人依然不彻底,后边会对此概念举办增加补充)

脚下的Web应用程序不只是提供HTML服务,日常也要求将XML或JSON数据提供给用户,而WebForm很难支撑。

    
二)整个软件行业向着敏捷与测试驱动开辟方向的提升,如单元测试工具(NUnit、xUnit)、模仿框架(Moq、Rhino、Mocks)、调节反转容器(Ninject、AutoFac)、持续集成服务器(CruiseControl、TeamCity)、对象关系映射器(NHibernate、Subsonic、EF、Dapper、Petapoco)、UI自动化学工业具的提供。(测试驱动开荒TDD理念:首先描述想要获得的行事楷模,称为测试规范;然后开始展览软件设计,那样经超过实际施依附于这一直彻的一套测试,来验证应用程序的协调和不利

    
3)顺应Web标准和REST化的矛头。

二、ASP.NET WebForm的野史与难点

    
ASP.NET WebForm的才能货仓,如下图所示:

    
图片 1

    
此图的意思是WebForm创建在ASP.NET之上,而ASP.NET又另起炉灶在.NET平台之上,MVC框架所起的服从是代表WebForm。

    
WebForm的规划观念是,让Web开拓在感到上与Windows
Form开辟一样。开采者不再必要以一文山会海独立的HTTP请求与响应举行职业,能够认为它是一种状态化的UI,人们能够淡忘WEB及其无状态本质,转而用①种“拖–放”式设计器来创立UI,并思索全数职业都产生在服务器上。

    
乘胜时间的推迟,WebForm在事实上项目中冒出了壹部分欠缺:

    
1)视图状态重负:维护状态的莫过于机制,约等于ViewState(视图状态)导致在客户端与服务器之间传输大块数据(达到几百KB),而且来回于每一趟请求之间,导致响应时间极慢,增添了服务器的带宽供给;

    
二)页目生命周期:连接客户端与劳动器端事件管理器代码的机制很复杂,对于应用程序运转时期很难展开维护;

    
三)关怀分离的荒谬观点:本身将代码从HTML提收取来,放到后台代码类中进行管理是很壹种很好的艺术,但是部分开辟者在后台代码中校呈今世码与利用工作逻辑混合在同步,导致最终代码混乱并难以保险;

    
肆)HTML的受限调整:服务器控件将和谐渲染成HTML,但并不是所期待见到的HTML,在ASP.NET
4在此之前,并不能够很好的利用CSS。同时会生成不可预见或复杂的ID,那样JavaScript就很难展开走访。

    
5)不日常的虚幻:WebForm试图尽量隐去HTML和HTTP(那是透过WebForm的抽象层落成的)。当您兑现自身的诀窍时,供给舍弃这种肤浅,迫使选择回发事件机制的逆向工程。所以那种肤浅对于开垦者来讲就整合1个小幅度的拦Land Rover和挑衅;

    
陆)低可测试性:WebForm的这种紧耦合种类布局并不吻合于单元测试,对于集成测试也很具备挑衅性;

3、ASP.NET
MVC的特点

    
1)ASP.NET
MVC框架实现了MVC情势(MVC方式在一九七玖年就已经提议来了),由于ASP.NET
MVC非常大的立异了关怀分离,所以特地适用于Web应用程序。因为与MVC应用程序的互动遵守着用户动作与视图更替的当然周期,在那些周期中,假诺视图是无状态的。那与援救Web应用程序的HTTP请求与响应措施尤其吻合。

    
二)可扩张性,MVC框架被创设成1体系独立的零部件,如路由系统、视图引擎、调节器工厂,你能够很轻便地用2个要好的两样完毕来替换那一个零件,平时有两种选拔:

         
a、使用组件现行反革命的暗中认可完结,此种可以满意大繁多应用程序;

         
b、派生私下认可完毕的一个子类,以调治其行为;

         
c、用接口恐怕抽象基类的1个新的贯彻来完全替换该零件;

    
3)HTML和HTTP上的严密调整,ASP.NET
MVC会时有产生整洁与正规极度的暗记,其置于的HTML帮忙器方法,能够爆发与正式1贰分的出口。ASP.NET
MVC生成的页面不分包别的ViewState数据,这种对带宽的节约,能够相当大的改良用户的感受,并且能够对浏览器与服务器之间传递的请求加以调控。

    
四)可测试性,ASP.NET
MVC应用程序不仅能够拓展单元测试,还足以与UI自动化测试工具出色合作。

    
5)庞大的路由系统,选用REST风格的路由方案,有如下好处:

    
     a、搜索引擎对URubiconL中找到的基本点词有威名昭著的权重,对同样的主要词的查找,极有望会转接1个较为轻易的UBMWX三L地址;

         
b、多数Web用户未来对ULANDL有丰盛的精晓,并且愿目的在于浏览器的地方栏目中输入UBMWX伍L地址;

         
c、当知道U昂科威L地址的结构后,人们才会更有望链接它,并向其外人共享;

         
d、此种UOdysseyL结构并不会将应用程序的工夫细节、文件夹、文件名称等结构揭发给网络。对于底层达成能够私自修改,而不会损坏链接;

    
陆)营造在ASP.NET平台之上,一方面ASP.NET
MVC是基于.NET平台的,因而能够灵活的采纳任何.NET语言来编排代码,能够运用大规模的.NET类库和大度的第3方.NET类库类别;另一方面,已经变成的ASP.NET平台湾特务色,如认证、成员、剧中人物、配置文件、国际化等可以缩短费用和保安Web应用程序所需求的代码量。

    
七)ASP.NET MVC是针对.NET
四.X而建构的,由此它的API能够充足利用当前语言和周转时的换代,如await关键字、扩充方法、lambda表明式、佚名、动态类型、LINQ。

    
八)ASP.NET MVC是开源的。

4、ASP.NET
MVC与ASP.NET WebForm的比较

    
首先要求表明的是,纵然ASP.NET MVC相对于ASP.NET
WebForm来讲有一部分优势,但这并不表示前者要代表后者,也不代表后者要流失。

  • WebForm的守旧是,UI应该是状态化的,其结果是,在HTTP和HTML之上增多一个抽象层,用视图状态(ViewState)和回发(Postback)来创设状态化的作用。这是壹种“拖放”式Windows
    Form风格的支付。

  • MVC选拔了HTTP真正无状态的真面目。MVC框架供给用户领会Web应用程序实际的工作措施,在领悟的前提下,进行保证和增添,提供1种功效庞大、轻易的、整洁的、今世的不二等秘书籍来编排Web应用程序,摆脱复杂的限量。

  • 故此说,开垦小型的,集团内部型应用程序,可以思念动用WebForm的秘技来落到实处,但更加多的时候,开垦网络应用程序恐怕大型的应用程序时,MVC无论从效能、包容性、维护性都是一种越来越好的挑选。

参考资料:《驾驭ASP.NET MVC X》

相关文章