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

    
XML 1

1、当今的Web开发

3、ASP.NET
MVC的特点

2、ASP.NET WebForm的野史与问题

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

    
3)关注分离的失实看法:本身将代码从HTML提取出来,放到后台代码类中展开处理是很一种很好的法门,不过有些开发者在后台代码上校显示代码与应用工作逻辑混合在一块,导致最后代码混乱并难以保障;

参考资料:《了然ASP.NET MVC X》

    
4)HTML的受限控制:服务器控件将协调渲染成HTML,但并不是所期望见到的HTML,在ASP.NET
4以前,并不可能很好的拔取CSS。同时会生成不可预知或复杂的ID,这样JavaScript就很难展开走访。

         
b、派生默认实现的一个子类,以调动其表现;

    
     a、搜索引擎对URL中找到的关键词有彰着的权重,对同一的重要性词的查找,极有可能会转接一个较为简单的URL地址;

    
5)有瑕疵的虚幻:WebForm试图尽量隐去HTML和HTTP(这是因此WebForm的抽象层实现的)。当你实现和谐的艺术时,需要放任这种肤浅,迫使采纳回发事件机制的逆向工程。所以这种肤浅对于开发者而言就整合一个宏大的拦奔驰和挑衅;

    
8)ASP.NET MVC是开源的。

    
2)页面生命周期:连接客户端与服务器端事件处理器代码的编制很复杂,对于应用程序运行期间很难展开保养;

    
乘势时光的延迟,WebForm在其实项目中出现了一些缺陷:

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

         
c、当知道URL地址的构造后,人们才会更有可能链接它,并向其外人共享;

    
1)ASP.NET
MVC框架实现了MVC情势(MVC格局在1978年就曾经指出来了),由于ASP.NET
MVC极大的改正了关心分离,所以特别适用于Web应用程序。因为与MVC应用程序的竞相遵从着用户动作与视图更替的本来周期,在那个周期中,如果视图是无状态的。这与扶助Web应用程序的HTTP请求与响应措施充足适合。

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

    
3)顺应Web标准和REST化的倾向。

    
1)REST(Representational State
Transfer)已经变为应用程序在HTTP上互操作的重点序列架构,完全使SOAP失色。REST是遵照代表真实世界实体的资源(URI)和代表在这个资源上可用的正儿八经操作方法(HTTP方法)来叙述一个应用程序。通过HTTP方法与资源地址的三结合就足以对资源执行相应的操作,这种结合就是REST,执行这种操作的请求也称之为REST化的乞求。(对于REST的知情个人仍然不透彻,前边会对此概念举办补给)

    
WebForm的筹划思想是,让Web开发在感觉到上与Windows
Form开发相同。开发者不再需要以一多元独立的HTTP请求与响应举办工作,可以认为它是一种状态化的UI,人们得以淡忘WEB及其无状态本质,转而用一种“拖–放”式设计器来创制UI,并考虑所有事情都发出在服务器上。

    
6)低可测试性:WebForm的那种紧耦合体系布局并不符合于单元测试,对于集成测试也很富有搦战性;

    
6)建立在ASP.NET平台之上,一方面ASP.NET
MVC是基于.NET平台的,因而得以灵活的使用任何.NET语言来编排代码,可以应用大规模的.NET类库和大度的第三方.NET类库体系;另一方面,已经形成的ASP.NET平台特色,如认证、成员、角色、配置文件、国际化等可以减弱支出和保养Web应用程序所急需的代码量。

     ASP.NET
MVC是微软公司的一款WEB开发框架,整合了“模型-视图-控制器”架构的飞快与卫生,是很快开发最现代的思维与技能。它是传统ASP.NET
WebForm的一个到家的替代品。

         
c、用接口或者抽象基类的一个新的实现来完全替换该器件;

         
d、此种URL结构并不会将应用程序的技术细节、文件夹、文件名称等结构透露给互联网。对于底层实现可以随意修改,而不会损坏链接;

    
3)HTML和HTTP上的严密控制,ASP.NET
MVC会生出整洁与标准卓越的标志,其放置的HTML匡助器方法,可以生出与业内非常的出口。ASP.NET
MVC生成的页面不含有其他ViewState数据,这种对带宽的节约,可以大幅度的精益求精用户的体会,并且可以对浏览器与服务器之间传递的呼吁加以控制。

    
ASP.NET WebForm的技艺堆栈,如下图所示:

    
2)可扩大性,MVC框架被构建成一多重独立的零部件,如路由系统、视图引擎、控制器工厂,你可以很容易地用一个协调的不比实现来替换这么些零部件,平时有三种采纳:

  • WebForm的价值观是,UI应该是状态化的,其结果是,在HTTP和HTML之上添加一个抽象层,用视图状态(ViewState)和回发(Postback)来创立状态化的效果。这是一种“拖放”式Windows
    Form风格的开支。

  • MVC采取了HTTP真正无状态的实质。MVC框架要求用户知道Web应用程序实际的办事办法,在精通的前提下,举行保障和增添,提供一种效率强大、简单的、整洁的、现代的不二法门来编排Web应用程序,摆脱复杂的界定。

  • 故此说,开发小型的,公司内部型应用程序,可以考虑采用WebForm的法门来实现,但更多的时候,开发互联网应用程序或者大型的应用程序时,MVC无论从效能、兼容性、维护性都是一种更好的选用。

         
b、许多Web用户现在对URL有充足的精晓,并且愿目的在于浏览器的地址栏目中输入URL地址;

    
1)视图状态重负:维护状态的其实机制,也就是ViewState(视图状态)导致在客户端与服务器之间传输大块数据(达到几百KB),而且来回于每一遍请求之间,导致响应时间很慢,扩充了服务器的带宽需求;

    
首先需要表达的是,即便ASP.NET MVC相对于ASP.NET
WebForm来说有部分优势,但这并不意味前者要代表后者,也不表示后者要没有。

         
a、使用组件现行的默认实现,此种可以知足大多数应用程序;

    
7)ASP.NET MVC是针对.NET
4.X而建立的,因而它的API可以丰盛利用当前语言和运行时的立异,如await关键字、扩大方法、lambda表明式、匿名、动态类型、LINQ。

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

    
2)整个软件行业向着敏捷与测试驱动开发方向的腾飞,如单元测试工具(NUnit、xUnit)、模仿框架(Moq、Rhino、Mocks)、控制反转容器(Ninject、AutoFac)、持续集成服务器(CruiseControl、TeamCity)、对象关联映射器(NHibernate、Subsonic、EF、Dapper、Petapoco)、UI自动化工具的提供。(测试驱动开发TDD思想:首先描述想要拿到的行事范例,称为测试规范;然后开展软件设计,这样经过执行依附于这一实现的一套测试,来注脚应用程序的淮北久安和不利

相关文章

网站地图xml地图