ASP.NET MVC与ASP.NET WebForm

     ASP.NET
MVC是微软公司的意气风发款WEB开荒框架,整合了“模型-视图-调节器”架构的非常的慢与清洁,是急忙开采最今世的考虑与本领。它是价值观ASP.NET
WebForm的贰个宏观的取代品。

1、当今的Web开发

    
1)REST(Representational State
Transfer)已经化为应用程序在HTTP上互操作的根本连串框架结构,完全使SOAP失色。REST是依照代表真实世界实体的财富(U奥迪Q7I)和象征在此些能源上可用的正规化操作方法(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方式在1977年就早就提出来了),由于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、寻觅引擎对UCR-VL中找到的珍视词有引人注目标权重,对相近的根本词的寻觅,极有超级大大概会转变贰个较为轻易的URAV4L地址;

         
b、超级多Web客户今后对U奥迪Q3L有丰富的会心,况且愿意在浏览器之处栏目中输入U兰德揽胜L地址;

         
c、当知道UEnclaveL地址的布局后,人们才会更有不小希望链接它,并向别的人分享;

         
d、此种UWranglerL结构并不会将应用程序的技能细节、文件夹、文件名称等结构暴光给互连网。对于底层完成可以无约束修改,而不会损坏链接;

    
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应用程序,摆脱复杂的限量。

  • 为此说,开荒小型的,集团中间型应用程序,能够思量选取WebForm的方法来促成,但更加的多的时候,开采互连网应用程序只怕大型的应用程序时,MVC无论从作用、包容性、维护性都以风度翩翩种更加好的抉择。

参考资料:《领悟ASP.NET MVC X》

admin

网站地图xml地图