manbetx官方网站

ASP.NET MVC与ASP.NET WebFormASP.NET MVC与ASP.NET WebForm

九月 30th, 2018  |  足球投注manbetx

     ASP.NET
MVC是微软公司的平缓缓WEB开发框架,整合了“模型-视图-控制器”架构的敏捷和清洁,是飞速开发极现代之思量以及技能。它是风ASP.NET
WebForm的一个完美之替代品。

     ASP.NET
MVC是微软公司的一样舒缓WEB开发框架,整合了“模型-视图-控制器”架构的高效和洁,是高速开发极现代的想和技术。它是风ASP.NET
WebForm的一个到家之替代品。

1、当今的Web开发

1、当今的Web开发

    
1)REST(Representational State
Transfer)已经改为应用程序在HTTP上互操作的机要系架构,完全而SOAP失色。REST是基于代表真实世界实体的资源(URI)和表示在这些资源达成可用之专业操作方法(HTTP方法)来描述一个应用程序。透过HTTP方法与资源地址的结就可针对资源执行相应的操作,这种重组就是REST,执行这种操作的求也称为REST化的求。(对于REST的掌握个人还是休透,后面会指向之概念进行补偿)

    
1)REST(Representational State
Transfer)已经变为应用程序在HTTP上互操作的机要系架构,完全使SOAP失色。REST是依据代表真实世界实体的资源(URI)和象征于这些资源达到可用的正统操作方法(HTTP方法)来叙述一个应用程序。经HTTP方法和资源地址的组合就好对资源执行相应的操作,这种做就是REST,执行这种操作的请也号称REST化的请求。(对于REST的知晓个人还是未透,后面会针对是概念进行补充)

时的Web应用程序不只是供HTML服务,通常为用拿XML或JSON数据提供给用户,而WebForm很不便支撑。

当前底Web应用程序不只是供HTML服务,通常为需以XML或JSON数据提供给用户,而WebForm很不便支撑。

    
2)整个软件行业向着敏捷和测试驱动开发方向的提高,如单元测试工具(NUnit、xUnit)、模仿框架(Moq、Rhino、Mocks)、控制反转容器(Ninject、AutoFac)、持续集成服务器(CruiseControl、TeamCity)、对象关系映射器(NHibernate、Subsonic、EF、Dapper、Petapoco)、UI自动化工具的提供。(测试驱动开发TDD思想:首先描述想如果拿走的行事范例,称为测试规范;然后开展软件设计,这样经过实施依附于当时无异于落实之一律套测试,来证明应用程序的平稳和不易

    
2)整个软件行业向着敏捷和测试驱动开发方向的迈入,如单元测试工具(NUnit、xUnit)、模仿框架(Moq、Rhino、Mocks)、控制反转容器(Ninject、AutoFac)、持续集成服务器(CruiseControl、TeamCity)、对象关系映射器(NHibernate、Subsonic、EF、Dapper、Petapoco)、UI自动化工具的供。(测试驱动开发TDD思想:首先描述想使赢得的一言一行范例,称为测试规范;然后开展软件设计,这样经过实施依附于当下无异于兑现之平等法测试,来验证应用程序的长治久安和科学

    
3)顺应Web标准和REST化的样子。

    
3)顺应Web标准及REST化的主旋律。

2、ASP.NET WebForm的史以及题材

2、ASP.NET WebForm的史与问题

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

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

    
图片 1

    
图片 2

    
此图的意思是WebForm建立于ASP.NET之上,而ASP.NET又建立以.NET平台之上,MVC框架所由底意图是代WebForm。

    
此图的意义是WebForm建立在ASP.NET之上,而ASP.NET又建立于.NET平台之上,MVC框架所起底作用是替WebForm。

    
WebForm的计划思想是,让Web开发在感到上与Windows
Form开发同。开发者不再需要以同一文山会海独立的HTTP请求和响应进行工作,可以当它们是如出一辙种植状态化的UI,人们可以淡忘WEB及其无状态本质,转而用一栽“拖–放”式设计器来创造UI,并考虑所有事情都发生在服务器上。

    
WebForm的计划性思想是,让Web开发以感觉上跟Windows
Form开发同。开发者不再要坐平等层层独立的HTTP请求和响应进行工作,可以看她是千篇一律栽状态化的UI,人们可淡忘WEB及其无状态本质,转而用一种植“拖–放”式设计器来创造UI,并考虑所有业务都有在服务器上。

    
趁着时光之延,WebForm在实际上项目中起了一部分缺点:

    
乘势日的推移,WebForm在事实上项目遭到起了有些短:

    
1)视图状态重负:维护状态的骨子里机制,也就是ViewState(视图状态)导致在客户端和服务器之间传输大块数据(达到几百KB),而且来回于每次要中,导致响应时间很缓慢,增加了服务器的带动富需求;

    
1)视图状态重负:维护状态的实际上机制,也尽管是ViewState(视图状态)导致在客户端和服务器之间传输大块数据(达到几百KB),而且来回于每次要中,导致响应时间特别缓慢,增加了服务器的带动富需求;

    
2)页面生命周期:连接客户端与劳动器端事件处理器代码的体制很复杂,对于应用程序运行中生麻烦展开维护;

    
2)页面生命周期:连接客户端和劳务器端事件处理器代码的建制好复杂,对于应用程序运行期间非常不便展开保障;

    
3)关注分离的不当看法:本身将代码从HTML提取出来,放到后台代码类吃进行拍卖是怪一致种很好的法,但是有的开发者在后台代码中将展现代码和使用工作逻辑混合在一起,导致最后代码乱并难以维护;

    
3)关注分离的荒唐观点:本身将代码从HTML提取出,放到后台代码类中展开处理是充分均等种植好好的点子,但是有些开发者在后台代码中将展现代码和使用工作逻辑混合在一起,导致最终代码乱并难以保障;

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

    
4)HTML的受限控制:服务器控件将自己渲染成HTML,但连无是所愿意观看的HTML,在ASP.NET
4之前,并无克很好的应用CSS。同时会生成不可预知或复杂的ID,这样JavaScript就不行为难展开访问。

    
5)有瑕疵的纸上谈兵:WebForm试图尽量隐去HTML和HTTP(这是由此WebForm的架空层实现的)。当您兑现好的办法时,需要放弃这种肤浅,迫使采取回发事件机制的逆向工程。所以这种肤浅对于开发者而言即构成一个巨大的拦路虎以及挑战;

    
5)有毛病的悬空:WebForm试图尽量隐去HTML和HTTP(这是经WebForm的肤浅层实现之)。当您实现和谐的法门时,需要放弃这种肤浅,迫使采取回发事件机制的逆向工程。所以这种肤浅对于开发者而言即做一个庞然大物的阻碍与挑战;

    
6)低可是测试性:WebForm的这种紧耦合体系布局并无称给单元测试,对于集成测试呢够呛有挑战性;

    
6)低可测试性:WebForm的这种紧耦合体系布局并无抱吃单元测试,对于集成测试为殊具挑战性;

3、ASP.NET
MVC的特点

3、ASP.NET
MVC的特点

    
1)ASP.NET
MVC框架实现了MVC模式(MVC模式于1978年即使早已领出来了),由于ASP.NET
MVC极大的改进了关爱分离,所以特地适用于Web应用程序。因为与MVC应用程序的互动遵循着用户动作与视图更给之本周期,在这个周期中,假设视图是管状态的。这同支持Web应用程序的HTTP请求和应措施大符合。

    
1)ASP.NET
MVC框架实现了MVC模式(MVC模式在1978年就既提出来了),由于ASP.NET
MVC极大的改进了关注分离,所以特地适用于Web应用程序。因为与MVC应用程序的相遵循着用户动作与视图更给之本周期,在是周期被,假设视图是随便状态的。这同支持Web应用程序的HTTP请求和响应措施大入。

    
2)可扩展性,MVC框架被构建成一样多重独立的组件,如路由于网、视图引擎、控制器工厂,你可以很易地用一个和好之不等实现来替换这些零件,通常有三种选择:

    
2)可扩展性,MVC框架被构建成一样密密麻麻独立的零件,如路由于系统、视图引擎、控制器工厂,你可以非常容易地用一个好的异实现来替换这些零件,通常发生三种选择:

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

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

         
b、派生默认实现的一个子类,以调整其行事;

         
b、派生默认实现之一个子类,以调动其行为;

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

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

    
3)HTML和HTTP上之严密控制,ASP.NET
MVC会发生整洁和专业相当的符号,其置于的HTML辅助器方法,可以起和正式相当的出口。ASP.NET
MVC生成的页面不分包其他ViewState数据,这种对带宽的节,可以极大的改善用户的心得,并且可对浏览器与服务器之间传递的伸手加以控制。

    
3)HTML和HTTP上之严密控制,ASP.NET
MVC会发整洁和标准相当的记,其放的HTML辅助器方法,可以产生及正规相当的出口。ASP.NET
MVC生成的页面不包含其他ViewState数据,这种针对带宽的节约,可以大幅度的改良用户的心得,并且可针对浏览器和服务器之间传递的乞求加以控制。

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

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

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

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

    
     a、搜索引擎对URL中找到的根本词来显而易见的权重,对平的最主要词的搜,极有或会见转化一个较为简单的URL地址;

    
     a、搜索引擎对URL中找到的首要词有强烈的权重,对相同的要害词之寻,极生或会见转接一个较为简单的URL地址;

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

         
b、许多Web用户现在本着URL有足够的领悟,并且愿意当浏览器的地方栏目中输入URL地址;

         
c、当了解URL地址之布局后,人们才见面再也发生或链接它,并于其他人共享;

         
c、当了解URL地址的组织后,人们才见面再度发出或链接它,并通往其他人共享;

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

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

    
6)建立于ASP.NET平台之上,一方面ASP.NET
MVC是基于.NET平台的,因此得以活的应用任何.NET语言来修代码,可以采用大规模的.NET类库和大量底老三方.NET类库系统;另一方面,已经形成的ASP.NET平台特色,如认证、成员、角色、配置文件、国际化等好抽开支以及维护Web应用程序所需要的代码量。

    
6)建立以ASP.NET平台之上,一方面ASP.NET
MVC是基于.NET平台的,因此好活的以任何.NET语言来修代码,可以应用大规模的.NET类库和大气底老三方.NET类库系统;另一方面,已经形成的ASP.NET平台特色,如认证、成员、角色、配置文件、国际化等足以抽开支暨保安Web应用程序所待的代码量。

    
7)ASP.NET MVC是针对.NET
4.X一旦起的,因此她的API可以充分利用当前语言和周转时之换代,如await关键字、扩展方法、lambda表达式、匿名、动态类型、LINQ。

    
7)ASP.NET MVC是针对.NET
4.X而树立的,因此她的API可以充分利用当前语言与周转时之更新,如await关键字、扩展方法、lambda表达式、匿名、动态类型、LINQ。

    
8)ASP.NET MVC是开源之。

    
8)ASP.NET MVC是开源的。

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

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

    
首先需证实的凡,虽然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无论从效率、兼容性、维护性都是一样种更好之抉择。
  • WebForm的思想意识是,UI应该是状态化的,其结果是,在HTTP和HTML之上添加一个抽象层,用视图状态(ViewState)和回发(Postback)来创造状态化的机能。这是一样种植“拖放”式Windows
    Form风格的付出。

  • MVC采纳了HTTP真正无状态的面目。MVC框架要求用户知道Web应用程序实际的劳作方式,在懂的前提下,进行保障与壮大,提供相同栽功能强大、简单的、整洁的、现代之主意来编排Web应用程序,摆脱复杂的限量。

  • 因而说,开发小型的,企业里型应用程序,可以考虑采用WebForm的方式来实现,但还多的时,开发互联网应用程序或者大型的应用程序时,MVC无论从效率、兼容性、维护性都是平等栽更好之取舍。

参考资料:《精通ASP.NET MVC X》

参考资料:《精通ASP.NET MVC X》

标签:, , ,

Your Comments

近期评论

    功能


    网站地图xml地图