ASP.NET MVC与ASP.NET WebForm

2019-10-15 23:23 来源:未知

     ASP.NET MVC是微软公司的一款WEB开拓框架,整合了“模型-视图-调整器”架构的登时与清洁,是快速开拓最今世的考虑与技艺。它是价值观ASP.NET WebForm的一个周密的代替品。

1、当今的Web开发

     1)REST(Representational State Transfer)已经济体改成应用程序在HTTP上互操作的主要种类架构,完全使SOAP失色。REST是基于代表真实世界实体的能源(UPRADOI)和象征在这里些能源上可用的科班操作方法(HTTP方法)来描述八个应用程序。经过HTTP方法与财富地址的三结合就能够对能源推行相应的操作,这种结合便是REST,试行这种操作的乞求也叫做REST化的乞请。(对于REST的领会个人依然不透顶,后面会对此概念举办补充)

此时此刻的Web应用程序不只是提供HTML服务,经常也急需将XML或JSON数据提要求客户,而WebForm很难支撑。

     2)整个软件行当向着敏捷与测量检验驱动开辟方向的迈入,如单元测量试验工具(NUnit、xUnit)、模仿框架(Moq、Rhino、Mocks)、调整反转容器(Ninject、AutoFac)、持续集成服务器(CruiseControl、TeamCity)、对象关系映射器(NHibernate、Subsonic、EF、Dapper、Petapoco)、UI自动化学工业具的提供。(测验驱动开辟TDD观念:首先描述想要得到的一颦一笑范例,称为测验标准;然后开展软件设计,这样经超过实际行借助于这一直彻的一套测量试验,来验证应用程序的平静和不易

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

2、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),並且来回于每一回哀告之间,导致响合时间相当的慢,增添了服务器的带宽须求;

     2)页素不相识命周期:连接顾客端与劳务器端事件管理器代码的建制很复杂,对于应用程序运营时期很难张开珍惜;

     3)关心分离的荒唐理念:自己将代码从HTML提抽取来,放到后台代码类中开展拍卖是很一种很好的格局,然而一些开垦者在后台代码中将表今世码与使用专门的学业逻辑混合在联合,导致最终代码混乱并难以维护;

     4)HTML的受限调整:服务器控件将协和渲染成HTML,但实际不是所期待见到的HTML,在ASP.NET 4此前,并不能够很好的行使CSS。同有时间会生成不可预言或复杂的ID,那样JavaScript就很难张开访问。

     5)有宿疾的虚幻:WebForm试图尽量隐去HTML和HTTP(那是由此WebForm的指雁为羹层达成的)。当你达成和谐的方法时,要求遗弃这种肤浅,迫使选取回发事件机制的逆向工程。所以这种肤浅对于开荒者来讲就重组叁个天崩地裂的阻力和挑衅;

     6)低可测量检验性:WebForm的这种紧耦合系列布局并不符合于单元测验,对于集成测验也很具有挑衅性;

3、ASP.NET MVC的特点

     1)ASP.NET MVC框架达成了MVC格局(MVC形式在一九七六年就已经提议来了),由于ASP.NET MVC不小的精雕细刻了关注分离,所以特意适用于Web应用程序。因为与MVC应用程序的竞相服从着客商动作与视图更替的当然周期,在此个周期中,若是视图是无状态的。这与协理Web应用程序的HTTP须要与响应措施要命相符。

     2)可扩充性,MVC框架被营造设成一多级独立的组件,如路由系统、视图引擎、调整器工厂,你能够很轻松地用多少个自身的例外实现来替换那个零件,平时有二种选取:

          a、使用组件现行反革命的默许达成,此种可以满意大大多应用程序;

          b、派生暗中同意达成的二个子类,以调治其一举一动;

          c、用接口或许抽象基类的叁个新的贯彻来完全替换该零件;

     3)HTML和HTTP上的严密调整,ASP.NET MVC会时有发生整洁与标准特别的标记,其放置的HTML支持器方法,能够产生与专门的职业非常的出口。ASP.NET MVC生成的页面不分包别的ViewState数据,这种对带宽的节约,可以大幅的革新顾客的心得,何况能够对浏览器与服务器之间传递的伸手加以调控。

     4)可测验性,ASP.NET MVC应用程序不只可以拓宽单元测验,还是能够与UI自动化测量试验工具特出同盟。

     5)强大的路由系统,采纳REST风格的路由方案,有如下好处:

          a、搜索引擎对U昂科雷L中找到的要害词有猛烈的权重,对同样的机要词的检索,极有希望会转化叁个较为轻松的U兰德酷威L地址;

          b、相当多Web客户以往对U福特ExplorerL有丰硕的会心,而且愿旨在浏览器的地方栏目中输入U奥迪Q5L地址;

          c、当精通U昂CoraL地址的构造后,人们才会更有希望链接它,并向其余人分享;

网页测试游戏,          d、此种UWranglerL结构并不会将应用程序的技术细节、文件夹、文件名称等组织暴光给互连网。对于底层实现能够Infiniti制修改,而不会毁掉链接;

     6)建设构造在ASP.NET平台之上,一方面ASP.NET MVC是基于.NET平台的,因而得以灵活的施用任何.NET语言来编排代码,能够行使大范围的.NET类库和大气的第三方.NET类库连串;另一方面,已经产生的ASP.NET平台湾特务色,如认证、成员、角色、配置文件、国际化等足以减少支出和护卫Web应用程序所急需的代码量。

     7)ASP.NET MVC是针对.NET 4.X而树立的,因而它的API能够充足利用当前语言和平运动转时的更新,如await关键字、扩充方法、lambda表达式、佚名、动态类型、LINQ。

     8)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应用程序实际的工作格局,在领略的前提下,进行保险和扩充,提供一种作用强盛、轻巧的、整洁的、今世的艺术来编排Web应用程序,摆脱复杂的限定。

  • 因而说,开荒Mini的,集团内部型应用程序,能够牵记使用WebForm的主意来促成,但更加的多的时候,开拓网络应用程序也许大型的应用程序时,MVC无论从效用、宽容性、维护性都以一种更加好的抉择。

参谋资料:《精晓ASP.NET MVC X》

TAG标签:
版权声明:本文由澳门国际银河备用网址发布于网页测试游戏,转载请注明出处:ASP.NET MVC与ASP.NET WebForm