这种结合就是REST

     ASP.NET
MVC是微软公司的风华正茂款WEB开采框架,整合了“模型-视图-调节器”架构的火速与卫生,是火速开荒最今世的思考与技能。它是理念ASP.NET
WebForm的一个圆满的代替品。

1、当今的Web开发

    
1卡塔 尔(阿拉伯语:قطر‎REST(Representational State
Transfer卡塔 尔(阿拉伯语:قطر‎已经济体改为应用程序在HTTP上互操作的重要连串架构,完全使SOAP失色。REST是基于代表真实世界实体的能源(U福特ExplorerI卡塔 尔(阿拉伯语:قطر‎和象征在此些能源上可用的规范操作方法(HTTP方法卡塔 尔(阿拉伯语:قطر‎来说述叁个应用程序。透过HTTP方法与财富地址的三结合就足以对财富推行相应的操作,这种组合就是REST,施行这种操作的呼吁也称之为REST化的伸手。(对于REST的精晓个人照旧不通透到底,前面会对此概念举办增加补充卡塔 尔(阿拉伯语:قطر‎

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

    
2卡塔 尔(阿拉伯语:قطر‎整个软件行当向着敏捷与测量检验驱动开荒方向的向上,如单元测量检验工具(NUnit、xUnit卡塔尔国、模仿框架(Moq、Rhino、Mocks卡塔 尔(英语:State of Qatar)、控制反转容器(Ninject、AutoFac卡塔 尔(阿拉伯语:قطر‎、持续集成服务器(CruiseControl、TeamCity卡塔尔、对象关联映射器(NHibernate、Subsonic、EF、Dapper、Petapoco卡塔尔、UI自动化学工业具的提供。(测验驱动开荒TDD思想:首先描述想要拿到的一坐一起表率,称为测量试验标准;然后举行软件设计,那样经过实践凭仗于这一直彻的后生可畏套测量试验,来表达应用程序的康乐和准确

    
3卡塔 尔(英语:State of Qatar)顺应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、寻找引擎对UXC90L中找到的要害词有同理可得的权重,对相仿的重大词的探寻,极有望会转变二个较为简单的U大切诺基L地址;

         
b、非常多Web顾客以往对URL有丰富的驾驭,並且愿意在浏览器的地址栏目中输入URAV4L地址;

         
c、当领悟UEnclaveL地址的协会后,大家才会更有超大可能率链接它,并向别的人共享;

         
d、此种U奥迪Q5L结构并不会将应用程序的本事细节、文件夹、文件名称等结构揭露给网络。对于底层实现能够任性矫正,而不会毁掉链接;

    
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卡塔 尔(英语:State of Qatar)ASP.NET MVC是开源的。

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

    
首先必要表明的是,纵然ASP.NET MVC相对于ASP.NET
WebForm来讲有部分优势,但那并不代表前面叁个要替代前者,也不意味后者要流失。

  • WebForm的人生观是,UI应该是状态化的,其结果是,在HTTP和HTML之上增多二个抽象层,用视图状态(ViewState卡塔 尔(英语:State of Qatar)和回发(Postback卡塔尔来成立状态化的功效。那是意气风发种“拖放”式Windows
    Form风格的支付。

  • MVC选取了HTTP真正无状态的原形。MVC框架供给客户掌握Web应用程序实际的做事章程,在知道的前提下,实行吝惜和扩大,提供大器晚成种成效强盛、不难的、整洁的、今世的艺术来编排Web应用程序,解脱复杂的界定。

  • 之所以说,开垦迷你的,公司内部型应用程序,能够虚构使用WebForm的方法来落到实处,但越来越多的时候,开垦网络应用程序或然大型的应用程序时,MVC无论从效能、包容性、维护性都以大器晚成种越来越好的精选。

参谋资料:《掌握ASP.NET MVC X》

相关文章