ASP.NET MVC与ASP.NET WebForm

ASP.NET MVC与ASP.NET WebForm

     ASP.NET
MVC是微软公司之平等慢性WEB开发框架,整合了“模型-视图-控制器”架构的速与干净,是很快开发极现代之合计以及技能。它是传统ASP.NET
WebForm的一个全面的替代品。

1、当今的Web开发

    
1)REST(Representational State
Transfer)已经化为应用程序在HTTP上互操作的要害系架构,完全使SOAP失色。REST是根据代表真实世界实体的资源(URI)和代表以这些资源达到可用的正统操作方法(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模式于1978年尽管曾领到出来了),由于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、搜索引擎对URL中找到的重大词起肯定的权重,对同样的要词之探寻,极生或会见转化一个较为简单的URL地址;

         
b、许多Web用户现在本着URL有足的会心,并且愿意在浏览器的地点栏目中输入URL地址;

         
c、当知道URL地址之布局后,人们才见面还发出或链接它,并通往其他人共享;

         
d、此种URL结构并无见面以应用程序的技术细节、文件夹、文件名称等组织暴露于互联网。对于底层实现好随便修改,而休会见毁掉链接;

    
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地图