为什么我们都选择Mvc而不是选择Webform

>>>  技術話題—商業文明的嶄新時代  >>> 簡體     傳統

      每年到这个季节。公司都会从校园里面招聘一些新毕业的学生补充到公司的开发阵容中。从2013年,2014年的招聘过程中发现一个很奇怪的现象。当我为这些新员工做入职培训的时候,开始教他们一些开发的基础知识。看到很多新员工在做.Net开发。直接打开新建的就是Mvc程序。我问他们,你们怎么确定咱们是采用开发模式的。他们一脸惶恐的看着我。我说webform开发也是咱们公司的一种模式。有些新员工还是一脸茫然。经过询问才发现原来很多新员工根本不知道netWeb开发还存在着一种叫做WebForm的开发。原来他们入校学习的时候校园里直接交绶的就是Mvc开发模式。

      WebForm开发模式一直以来都是微软习以为傲的开发方式,他便捷性的GUI图像。控件拖拽的HTML封装,还有极其隐秘的HTTP协议封装。为许多初学者提供了入门开发的舞台。可是这一切随着时间的推移,被诟病的毛病也是越来越多。我们下面就来悉数一下Webform。

   Webform的毛病到底出现在哪里

       视图状态负荷过大跨请求状态维护的实际机制(Viewstate),导致在客户端与浏览器之间传输大片冗余数据。这种数据即使在最合适的Web应用程序中也到达几百Kb,而且他来回于每次请求之间,以很长时间令网站访问者十分不爽。

       页面生命周期: 连接客户端事件与服务器端事件处理代码的机制(是页面生命周期)格外复杂和棘手。很少有开发者再不产生视图状态错误或者是不发现某些事件处理程序莫名失效的情况下,能够在程序运行过程中成功维护控件层。

 

        html受限:服务器端控件层将自己渲染成HTML。但并不适合你希望想要得到的那种必要的HTML。在ASP.NET之前。这种HTML输出甚至都不符合Web标准。或者不能很好的使用CSS。而且诞生不可预知的Id值。这些Id值不能用于JavaScript。而且过度的封装。试图隐藏http协议的无状态。这种封装对于深入理解HTTP协议的人来说始终莫大的障碍。公司曾经一个新员工老是不知道Mvc为啥一刷新文本框里面的值就没有了。这让我有点吃惊。

      传统的asp.net  webform

1371009111601271.png

    ASP.net在2002年刚问世的时候,给Web开发领域带来了很大的转变。此图的含义是,Webform建立在ASP.NET之上,而Asp.net又建立在Net平台之上。Mvc所起的作用是替换这里的Webform

  mvc和webform比较的优势是什么

      用户与Mvc应用程序的交互遵循一种自然循环:用户每次采取一个动作,应用程序对其作出相应,修改其数据模型,并把一个更新视图提供给该用户,然后循环这一过程。这非常适合一系列的HTTP请求与相应进行传递的Web应用程序。

     在HTTP及HTTP上的严密控制  不像Webform那样生成大量不可控的html代码。甚至可以直接部署到cdn上面。

     强大的路由系统 http://www.amazon.cn/b/ref=cngwv1_SL_c1_5?ie=UTF8&node=2118816051&pf_rd_p=197350732&pf_rd_s=center-2&pf_rd_t=101&pf_rd_i=899254051&pf_rd_m=A1AJ19PSB66TGU&pf_rd_r=0ZWZ81V42A7R4TGZWTWB

像上述这种冗余的URL已经不再适合我们网站   

    总结:Webform的观念是Ui应当是状态话的,并最终在http和HTML之上添加一个非常复杂的抽象层;用视图状态和回发(postback)来创建状态话的视图,适合于托-放的开发模式。而Mvc采纳了http真正的无状态本质。遵循而不是违背他。清除了离奇的复杂性和限制。

 


网载 2015-05-29 22:23:44

[新一篇] 太陽系外首次發現含水行星殘骸

[舊一篇] 10個跡象表明程序員編碼太久了
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表