Asp.net的WebForm已经是一种相当落后和有缺陷的技术了, 完全可以撤了

小大飞 2017-01-16 06:29:14
http://bbs.csdn.net/topics/390451604?page=4#new_post

很多人说这个楼主的技术水平有问题,我认识是没问题的。

因为webform确实,企图通过在html标签中的runat="server",在iis接受请求后,通过aspx页面引擎解析,想在服务器端,将所有标签构建成对象,各种Label对象,Button对象,然后还有一大堆属性Css,Style等等,包含一大堆本该服务器不应该关心的东西。
我认为只有对html页面进行数据填充的地方,才需要服务器端关心,其他地方都不是服务器端的责任,软件开发时,页面表现,前端工程师都写好了,不该是服务器关心的。

然后Webform为了干预这引擎生成的对象,以及深入的说干预最后生成的html页面(字符串)加了很多事件!这个就是页面生命周期,这个本来没什么问题。但是每次事件回传都要把这些事件执行一遍就有点问题了。

每次事件回传,都对页面重新生成,将客户端提交的form表单元素解析,然后还原html字符串中各个地方的值,这是是楼主说的框架设计的问题吧!
服务器控件的存在,页面生命周期的过长,这些与ajax确实是冲突的,如ViewState的完整性验证,不允许客户端修改服务器控件生成的内容,这个只能在服务器端对内容进行更改,这样就可ajax冲突了。比如:
刚开始用服务器控件做了个多级联动,然后如果在前端用ajax修改了控件生成的内容,再次提交到后台就会验证出错,不得不关闭安全验证。

ajax请求也不得不再写一个ashx页面,不能请求自身这个文件,不然的话,又一次生命周期,又一次状态还原。整个框架给人的感觉是想要精细控制的话,自己又必须写很多代码,或者以前的框架做了过多的事情,不够清爽!










...全文
7216 73 打赏 收藏 转发到动态 举报
写回复
用AI写文章
73 条回复
切换为时间正序
请发表友善的回复…
发表回复
小大飞 2020-04-10
  • 打赏
  • 举报
回复
嗯,现在前端框架自动化很多很强大了,后端确实可以想选啥就选啥了。
longhunzixin 2020-04-10
  • 打赏
  • 举报
回复
现在后端可选的东西多如牛毛,想用啥就用啥呗,没必要纠结
bzme 2020-04-08
  • 打赏
  • 举报
回复 1
webform是基于事件驱动设计,目的是适用于开发人员长期习惯于事件驱动编程,说webform落后是没有明白其设计初衷和设计模式。可以说以后的编程仍然会回到类似于webform这种编程模式,毕竟可视化才能真正地提高效率。现在的mvc模式就是我们当初用asp的时候,即回到了“原始社会”,开发效率仍然很低。以后web编程会向沙箱靠拢,这也是十几年前最初想要达成的愿望,现在webassembly已经在进行尝试。
bzme 2020-04-08
  • 打赏
  • 举报
回复
webform的唯一缺陷就是在ajax兴起的时候微软没有花时间对其完善。
杀马特丶蛮牛 2019-11-01
  • 打赏
  • 举报
回复
webform对没接触过网页开发的winform程序员还是很友好的,直接可以上手 不过现在都是mvc了,webform都是老项目了
小大飞 2019-10-31
  • 打赏
  • 举报
回复
我之所以不结贴,是为了让大家可以持续讨论,希望各位大佬谅解。
小大飞 2019-10-31
  • 打赏
  • 举报
回复
引用 65 楼 张天星 的回复:
两年过去了,楼主在web开发方面应该积累了不少的经验,现在有什么新的体悟么。
感觉楼主都没有回复啊。


没有啊,现在也还在用webform,有时候感觉还是挺好用的。
因为我不怎么用服务器控件,偶尔 runat="server"自定义服务器控件。
其他都是ajax+jquery,因为是老项目所以也都是老技术。

----------------
现在推荐asp.net Core了。
新项目用新技术吧,可以上linux服务器。




bzme 2019-10-30
  • 打赏
  • 举报
回复
实际上这是非常好的技术,开发效率高,后期易于维护,遗憾的是微软在原型设计上没有对其进一步优化。如果你们觉得webform很low,为什么不去看看devexpress这些组件优秀的实现?他们是如何让webform变得优秀的?
秋的红果实 2019-03-02
  • 打赏
  • 举报
回复
每种技术都有缺陷 不敢苟同lz 即使MVC也不都是基于http协议的么
张天星 2019-03-02
  • 打赏
  • 举报
回复
两年过去了,楼主在web开发方面应该积累了不少的经验,现在有什么新的体悟么。 感觉楼主都没有回复啊。
月夜惹人醉 2019-03-01
  • 打赏
  • 举报
回复
两年过去了
紫魂一号 2019-01-16
  • 打赏
  • 举报
回复
没啥说的。总的来说,有封装好的东西直接拿来用就行了。你管他是服务端的还是前端的。。目前就是高效快速的开发,无所谓哪个好与坏。。
thinksea_com 2019-01-08
  • 打赏
  • 举报
回复
@lovezq85 抱歉,误引用了你的贴子,但不知如何修改或删除帖子
thinksea_com 2019-01-08
  • 打赏
  • 举报
回复 1
引用 59 楼 lovezq85 的回复:
对于新学asp.net网页开发,可以学好了c#,直接从asp.net mvc开始学了,可学可不学webfrom
话说现在又开始流行asp.net core了,我还在用webform(服务器控件几乎不用,提交主要都是ajax),只有一个小项目尝试过mvc,你让我情何以堪啊。 使用心得: 1、学习成本:用webform,关键时候C# winform开发人员可以直接顶上去做webform,玩mvc的有这么潇洒吗? 2、开发效率:排除post成本因素,对于一般的小项目而言,webform的服务器控件用起来就是比ajax的开发周期短。而对于大项目,抛弃服务器控件等特性,把asp.net当成asp和php来用就好了,有哪一点比不上mvc呢?! 3、运行效率:mvc本质上没有改变,反而拖着一堆东西,这路由那路由的,效率优势又在哪里呢?!如果仅仅单纯比运行效率个人更倾向于asp.net core,不过话说大型项目不是分布式+负载均衡的吗?而且更应该优先考虑维护成本吧?程序员要善待自己 :-) 4、项目臃肿:mvc除了上来就给一堆的代码(只是程序需要的不是业务需要的,给我也只会增加负担),与Webform相比没啥本质上的优势,还要引入一大堆的东西,我一个webform页面啥非业务相关的dll都不需要引用,代码量少了心情也就好了。 5、分离和压测:我webform不用服务器控件等特性,也照样页面和代码分离,难道我就不可以压测吗?同样都是页面和代码分离,开发效率真的比mvc低吗? 说的有点儿乱,反正能赚良心钱的就是好项目,容易维护就是好产品,能满足项目需求的就是好技术,写代码别人很容易看懂的就是好员工,能按时发工资不克扣员工福利的就是好公司,能维护员工利益的就是好领导。
lovezq85 2018-11-14
  • 打赏
  • 举报
回复
对于新学asp.net网页开发,可以学好了c#,直接从asp.net mvc开始学了,可学可不学webfrom
stevenjin 2018-06-20
  • 打赏
  • 举报
回复
只能说呵呵了
爱睡的猫 2018-06-20
  • 打赏
  • 举报
回复
webfrom只不过是一种开发模式,不必纠结。不过目前貌似都在MVC模式了。
  • 打赏
  • 举报
回复
引用 49 楼 hfjcloud 的回复:
富客户端~ 当年还有applet这么超前滴东西类~~ 写java界面直接在浏览器上跑多爽。
微软有多很多倍的插件都可以跑在浏览器端,例如 OCX,例如 Silverlight 等等。 问题是今天是 h5 编程时代。什么 web 服务器端编程、什么 flex 和 applet 编程之类的,都转为了历史。
  • 打赏
  • 举报
回复
引用 42 楼 ying1234 的回复:
MVC只用了一个项目就没有再用了,webform的服务器控件有其方便的地方,你如果不喜欢可以不用嘛,可以不用服务器控件,IOC,AOP什么的,自已也能实现吧?自已实现的还容易控制细节,当然也可以用框架,看情况定吧。说起胖客户端,有些公司喜欢用大量的js去实现,造成的结果是产品的js代码量惊人, 实际来说,熟悉精通js的开发人员相对比较少,人手不够,加入了一些半吊子的开发人员,到了后期就是js维护困难,问题多多,页面运行速度反而很慢,浏览器不兼容。你能说是js过时了吗?
这其实就是我在 csdn 基本上不谈前端设计开发的主要原因。 我们全部平台的交互界面级别的开发都使用 web 前端技术(包括手机app),自然是比较擅长大型的前端程序,而不是惧怕它。但是我不能把真正的技术拿出来,我们只能提基本的编程素质问题。 asp.net 程序员则有着这样那样的误区,许多都是不擅长前端、认为前端程序员技术水平不如整天写数据库增删改查的人的水平。这种误区造成了他们对前端学不进去。
  • 打赏
  • 举报
回复
webform不是指单纯 webform 这个名词儿,而是一大堆 GridView、FormView、各种 EditTemplate 等等高度嵌套的服务器控件。是指这些。 假设说“我去掉所有的服务器控件”,那么这个时候你再说你用 WebForm 搞企业级的系统开发,那么你的核心技术就一定不是 WebForm 了。
加载更多回复(53)

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧