当前位置:编程学习 > C#/ASP.NET >>

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

首先  .net的框架确实不错,层次分明,定义清晰。Asp.net的整个框架结构开始也设计的不错,但是asp.net落后的地方就在于从Control开始,直到衍生出一系列控件以及Page类的这个最大的垃圾控件!!特别是在ajax年代,这种设计已经让人出离愤怒了!

不想说MVC,但是切记asp.net的webform已经完全没有学的必要了。和ajax格格不入,毫无用处,同时webform设计也有很大缺陷。


--------------------编程问答-------------------- 同感 楼主结贴率... --------------------编程问答-------------------- 兰州烧饼,鉴定完毕。。。。
asp.net原来对你而言就是一堆control而已。。。。
没发现ajax跟asp.net有冲突关系 --------------------编程问答--------------------
引用 2 楼 starfd 的回复:
兰州烧饼,鉴定完毕。。。。
asp.net原来对你而言就是一堆control而已。。。。
没发现ajax跟asp.net有冲突关系


webform不是一堆控件又是什么?
从本质上说webform 要依靠viewstate运行 
但viewstate是一个错误的设计。 --------------------编程问答-------------------- 没有人规定你要用asp.net必须要用控件吧

当然  page这个东西肯定是必须的,除非你的权限控制很特别,或者根本就不需要权限控制
至于其它的,有必要用么???没规定必须用吧??

顺带说一下,存在就是合理,asp.net的控件在快速开发方面比ajax方式要快的多,而很多内部应用完全不需要做的多么好看,交互做的多么犀利,只要功能实现正确就可以,这时候有必要用ajax么?? --------------------编程问答-------------------- 同感,任何程序都是虚拟的,有一天停电了,什么都是浮云 --------------------编程问答-------------------- --------------------编程问答--------------------  控件技术本身是很优秀的, 但是asp.net的控件技术之所以糟糕, 是由于三个原因.

1: web开发技术是基于http请求的,而不是基于基础服务器控件Dom的.服务器控件之间本质上不需要交互,控件只于http请求交互
2: asp.net的ajax控件太少.比如你想弄带搜索文本自动提示的文本框控件,要从头自己写.
3: 本质上asp.net的控件不需要viewstate,只有页面需要viewstate. --------------------编程问答-------------------- 关ajax屁事。。。 --------------------编程问答--------------------
引用 楼主 Neutri 的回复:
首先  .net的框架确实不错,层次分明,定义清晰。Asp.net的整个框架结构开始也设计的不错,但是asp.net落后的地方就在于从Control开始,直到衍生出一系列控件以及Page类的这个最大的垃圾控件!!特别是在ajax年代,这种设计已经让人出离愤怒了!

不想说MVC,但是切记asp.net的webform已经完全没有学的必要了。和ajax格格不入,毫无用处,同时webform设计也有很大缺陷。


AJAX只是前端技术,跟webform没有关系。当然,我也同意你的观点,webform的出发点是有悖于web本质的。 --------------------编程问答-------------------- --------------------编程问答-------------------- 坐等停电!! --------------------编程问答-------------------- 无聊的时候,泡上一杯龙井,熟练的打开VS,建立一个Web项目,咔咔控件一拖,F5走起,看见自己拖拽来的控件正确的显示在了浏览器中,是多么自豪,心中一种牛币的感脚油然而生。 --------------------编程问答-------------------- LZ拖控件流,鉴定完毕! --------------------编程问答-------------------- 自己水平不行就别埋怨人家东西不行。
/**************************************/
莫非楼猪是专门来挑起战争给CSDN拉人气的? --------------------编程问答--------------------
引用 3 楼 Neutri 的回复:
从本质上说webform 要依靠viewstate运行 
但viewstate是一个错误的设计。


+1

Webform确实是一种很丑陋的设计,为了模拟状态连接,搞出来的一套畸形的东西。ASP.net之所以名声不好,Webform绝对脱不了干系。
试一下ASP.Net MVC,你会发现ASP.Net其实一点都慢! --------------------编程问答-------------------- Webform确实不适合某些场合,要不MS也不会发明asp.net MVC了。 --------------------编程问答-------------------- webform的唯一好处,只能是快速开发了,但由此带来的后期成本是巨大的 --------------------编程问答-------------------- 微软的web开发方案,除了webform,asp.netMVC
还有Microsoft Ajax --------------------编程问答--------------------
引用 12 楼 hrabeyond 的回复:
无聊的时候,泡上一杯龙井,熟练的打开VS,建立一个Web项目,咔咔控件一拖,F5走起,看见自己拖拽来的控件正确的显示在了浏览器中,是多么自豪,心中一种牛币的感脚油然而生。

敢黑我霸气.NET 作死! --------------------编程问答-------------------- lz的话虽然有些偏激,但没错
webform的本质是和ajax或者说js是背离的,状态都由服务器端控制

比如你用js改变一个div的颜色,但回传生成新页面后div的颜色又变回原来的了

想要让webform保持状态的话就一定要改变viewstate,js直接改变viewstate不可行,那么只有提交到服务器了,既然都要做一次回传,那还要js干嘛? --------------------编程问答-------------------- --------------------编程问答-------------------- 现在好多帖子讨论这个。 --------------------编程问答-------------------- webform也不是一无是处啊。
其实也有他存在的价值。 
用了MVC感觉还不错,但是有些简单的应用,用webform还是很方便的。
有些功能根本不需要用到ajax,也不需要非常好的用户体验,快速开发并满足应用需求。

小汽车跑的很快,坐着也挺舒适,但并不是说自行车难看,不能挡风遮雨,速度又慢,就是个垃圾。
有时候路不远,穿几条小巷就到。 用汽车要开启车库,车库开出来掉头,发动机还没热就到,还要找个车位。
这个时候用自行车和电动车反而更快捷。

您说呢? --------------------编程问答-------------------- 技术更新太快了,必须不断的学习学习再学习…… --------------------编程问答--------------------
引用 23 楼 banian_cn 的回复:
webform也不是一无是处啊。
其实也有他存在的价值。 
用了MVC感觉还不错,但是有些简单的应用,用webform还是很方便的。
有些功能根本不需要用到ajax,也不需要非常好的用户体验,快速开发并满足应用需求。

小汽车跑的很快,坐着也挺舒适,但并不是说自行车难看,不能挡风遮雨,速度又慢,就是个垃圾。
有时候路不远,穿几条小巷就到。 用汽车要开启车库,车库开出来掉头,发动机还没热就到,还要找个车位。
这个时候用自行车和电动车反而更快捷。

您说呢?


想方便的话直接上银光啊,都不用考虑浏览器兼容性了 --------------------编程问答-------------------- 有口饭吃就不错了,不敢说不好 --------------------编程问答-------------------- 过程不重要,结贴给分才是目的! --------------------编程问答--------------------
引用 5 楼 yeness 的回复:
同感,任何程序都是虚拟的,有一天停电了,什么都是浮云


引用 26 楼 lizeyuan8238386 的回复:
有口饭吃就不错了,不敢说不好

不要纠结了,混口饭吃而已,老板让你用啥你就用啥,干几年照样回家种田。 --------------------编程问答--------------------
引用 20 楼 ltcszk 的回复:
lz的话虽然有些偏激,但没错
webform的本质是和ajax或者说js是背离的,状态都由服务器端控制

比如你用js改变一个div的颜色,但回传生成新页面后div的颜色又变回原来的了

想要让webform保持状态的话就一定要改变viewstate,js直接改变viewstate不可行,那么只有提交到服务器了,既然都要做一次回传,那还要js干嘛?



正解! webform控件和ajax和js是完全背离的。控件的属性完全由ViewState来控制了,你用js完全无从下手。 --------------------编程问答--------------------
引用 楼主 Neutri 的回复:
首先  .net的框架确实不错,层次分明,定义清晰。Asp.net的整个框架结构开始也设计的不错,但是asp.net落后的地方就在于从Control开始,直到衍生出一系列控件以及Page类的这个最大的垃圾控件!!特别是在ajax年代,这种设计已经让人出离愤怒了!

不想说MVC,但是切记asp.net的webform已经完全没有学的必要了。和ajax格格不入,毫无用处,同时webform设计也有很大缺陷。

楼主,我问你 在MVC没有兴起的时候,也有解决办法。
当然,楼主你喜欢拖控件,那么也只有抱怨 viewstate了。 --------------------编程问答-------------------- 楼主请勿在未深入了解.NET的时候就下结论
不懂没关系 但是不懂装懂很可耻 --------------------编程问答-------------------- tuo liu --------------------编程问答-------------------- --------------------编程问答-------------------- 呵呵,看不到精华的人是理解不了滴,所以你要觉着是垃圾那就垃圾把

反正你都认为ajax这种从垃圾堆里蹦出来的,而且注定只是一个阶段过度技术的玩意当宝贝看,那估计你看啥都觉着垃圾,因为他们身上没有ajax这宝贝出生于与垃圾堆而特有的“香味” --------------------编程问答-------------------- 用安卓还是用苹果,呵呵 --------------------编程问答--------------------
引用 34 楼 wanghui0380 的回复:
呵呵,看不到精华的人是理解不了滴,所以你要觉着是垃圾那就垃圾把

反正你都认为ajax这种从垃圾堆里蹦出来的,而且注定只是一个阶段过度技术的玩意当宝贝看,那估计你看啥都觉着垃圾,因为他们身上没有ajax这宝贝出生于与垃圾堆而特有的“香味”


引用 34 楼 wanghui0380 的回复:
呵呵,看不到精华的人是理解不了滴,所以你要觉着是垃圾那就垃圾把

反正你都认为ajax这种从垃圾堆里蹦出来的,而且注定只是一个阶段过度技术的玩意当宝贝看,那估计你看啥都觉着垃圾,因为他们身上没有ajax这宝贝出生于与垃圾堆而特有的“香味”


Very funny. --------------------编程问答-------------------- 如果是新的项目 webforms 还是不要再用了。
如果是新手, 建议也不要用webforms。 误导,走很多的弯路. 到后来,关于web 开发的基本概念, 还是要补上。
--------------------编程问答-------------------- 我们使用它开发那些不值钱的OA软件,毕竟他的门槛最低! --------------------编程问答--------------------
引用 38 楼 sp1234 的回复:
我们使用它开发那些不值钱的OA软件,毕竟他的门槛最低!


啥软件值钱? --------------------编程问答--------------------
引用 38 楼 sp1234 的回复:
我们使用它开发那些不值钱的OA软件,毕竟他的门槛最低!


我认为“值钱”的软件就是能够满足用户的业务需求,能为用户提高生产力,提高用户的工作效率,为用户的生产生活带来帮助,为用户创造价值,我这里一直强调“用户”。

事实上技术的产生还是源于对用户的服务,用户并不关系你用到了什么牛逼的技术,能满足需求就是最大的价值。当然牛逼的技术可以更好地为用户服务。

值钱不值钱这个跟什么软件无关,跟技术实现更无关,这是我的理解,谢谢! --------------------编程问答-------------------- webform比较适合原来做cs程序的人,但是又不想专研web,拖下控件,和CS一样。 --------------------编程问答-------------------- webform比较适合原来做cs程序的人,但是又不想专研web,拖下控件,和CS一样
》》这话好像是给我说的, 我才刚刚转过来, 可惜我真的没有发现拖控件有什么好处。而且非常痛苦,比如 我想它像CS那样 放在哪个位置就在哪个位置 结果完全不听我的话 连一个对齐都搞不定。。。。 
--------------------编程问答--------------------
引用 12 楼 hrabeyond 的回复:
无聊的时候,泡上一杯龙井,熟练的打开VS,建立一个Web项目,咔咔控件一拖,F5走起,看见自己拖拽来的控件正确的显示在了浏览器中,是多么自豪,心中一种牛币的感脚油然而生。
--------------------编程问答--------------------
引用 41 楼 wrost 的回复:
webform比较适合原来做cs程序的人,但是又不想专研web,拖下控件,和CS一样。
这种调调只能说明初学的无知。

很多API类库,能实现强大的b/s功能,别把自己的认知,搞得像全人类的认知。 --------------------编程问答-------------------- 除 --------------------编程问答--------------------
引用 40 楼 x_wy46 的回复:
Quote: 引用 38 楼 sp1234 的回复:

我们使用它开发那些不值钱的OA软件,毕竟他的门槛最低!


我认为“值钱”的软件就是能够满足用户的业务需求,能为用户提高生产力,提高用户的工作效率,为用户的生产生活带来帮助,为用户创造价值,我这里一直强调“用户”。

事实上技术的产生还是源于对用户的服务,用户并不关系你用到了什么牛逼的技术,能满足需求就是最大的价值。当然牛逼的技术可以更好地为用户服务。

值钱不值钱这个跟什么软件无关,跟技术实现更无关,这是我的理解,谢谢!


用户的感觉是慢,对于频繁操作的OA更为明显。

而慢的原因并不是菜鸟们认为的控件的执行速度慢,而是来回传递viewstate造成的带宽浪费

有些人甚至让gridview等含有大量数据的控件也保持viewstate,一个viewstate要上百k

webform的问题是生不逢时,如果早生几年能赶在ajax流行前自成一派,或者过10年等人人用上光纤时再生。 --------------------编程问答--------------------
引用 44 楼 yeness 的回复:
Quote: 引用 41 楼 wrost 的回复:

webform比较适合原来做cs程序的人,但是又不想专研web,拖下控件,和CS一样。
这种调调只能说明初学的无知。

很多API类库,能实现强大的b/s功能,别把自己的认知,搞得像全人类的认知。

API类库是webform独有的吗?麻烦看清标题行不行,这里讨论的是webform的问题,不是asp.net --------------------编程问答--------------------
引用 47 楼 ltcszk 的回复:
Quote: 引用 44 楼 yeness 的回复:

Quote: 引用 41 楼 wrost 的回复:

webform比较适合原来做cs程序的人,但是又不想专研web,拖下控件,和CS一样。
这种调调只能说明初学的无知。

很多API类库,能实现强大的b/s功能,别把自己的认知,搞得像全人类的认知。

API类库是webform独有的吗?麻烦看清标题行不行,这里讨论的是webform的问题,不是asp.net
只能说无知,不解释。也就能看到巴掌大的天。以为做点狗屁jq,会点MVC,就可以显摆或者贬低,纯粹的无知者无畏。 --------------------编程问答-------------------- 这个IT需要学的东西,海了去了,以为MVC或者WebForm就是 BS开发的全部,真是屌爆了。 --------------------编程问答-------------------- 小公司实习生,才学会winform,现在老板又让做web了,听你们说的都前途无望了?!
难道要转型?? --------------------编程问答--------------------
引用 49 楼 yeness 的回复:
这个IT需要学的东西,海了去了,以为MVC或者WebForm就是 BS开发的全部,真是屌爆了。

你懂不懂中文啊,不懂这贴在讲啥请委婉的滚出去 --------------------编程问答-------------------- 用webform的时候仅仅是为了方便点,毕竟C#出身,最先接触到的就是webform --------------------编程问答--------------------
引用 46 楼 ltcszk 的回复:
而慢的原因并不是菜鸟们认为的控件的执行速度慢,而是来回传递viewstate造成的带宽浪费

 有些人甚至让gridview等含有大量数据的控件也保持viewstate,一个viewstate要上百k


ViewState可以驻留在服务端,一般来说web应用发布的时候提供给客户一个设置选项,
如果网络条件不好,就让ViewState放在IIS或者状态服务器又或者是数据库 --------------------编程问答--------------------
引用 51 楼 ltcszk 的回复:
Quote: 引用 49 楼 yeness 的回复:

这个IT需要学的东西,海了去了,以为MVC或者WebForm就是 BS开发的全部,真是屌爆了。

你懂不懂中文啊,不懂这贴在讲啥请委婉的滚出去
这类的傻X问题,就别提了,今天整个MVC,明天发明个ssh,又说ssh好,有意义吗?人家用c一样能写出百度贴吧,一样有人能用asp写出比你高速的体验好的,一样有人用asp.net写出比你高速的体验好的,跟毛mvc有半分钱关系,整点正常说法。关键在开发人员的素质懂不懂,动不动就毛技术过时,就毛技术如何如何,经都不调。 --------------------编程问答-------------------- 今天搞个新浪微博后台是php,php又好了;
明天搞个j2ee的全球社交,j2ee又好了;

买个咸盐要排队,做个技术也跟风,随 --------------------编程问答--------------------
引用 50 楼 yuyang00000 的回复:
小公司实习生,才学会winform,现在老板又让做web了,听你们说的都前途无望了?!
难道要转型??

三言两语就要转型?我说现在大米全部都是转基因,吃完就直接躺尸了你是不是考虑去超市抢购面条了? --------------------编程问答-------------------- 其实我想表达的就是,站在技术的肩膀上去评论技术,本身就是一种sb,一种大大的sb+自身的卖弄

估计楼主懂点ajax之类的东西,就感觉自己上天了,

就像一个人站在当今社会去评论古代人,他们没有空调,没有汽车,他们是sb

其实提出这种论调的人就是sb,楼主是代表。 --------------------编程问答-------------------- 说俗了,MVC 还不是 从 MFC思想延续下来的,MFC不过众多架构的一种,那会MFC的岂不觉得自己更牛,而且MFC一样可以开发bs,速度一样会很快;

要是够猛的话,把微软的整套平台全部搬运到 unix或者 aix上,这算牛;

会点jq就自以为是,真是受不了。 --------------------编程问答--------------------
引用 56 楼 nice_fish 的回复:
Quote: 引用 50 楼 yuyang00000 的回复:

小公司实习生,才学会winform,现在老板又让做web了,听你们说的都前途无望了?!
难道要转型??

三言两语就要转型?我说现在大米全部都是转基因,吃完就直接躺尸了你是不是考虑去超市抢购面条了?


确实说的武断了,该怎么做还得怎么做。但是,还是想知道今后的发展啊?初入职场,总有些担忧! --------------------编程问答--------------------
引用 54 楼 yeness 的回复:
Quote: 引用 51 楼 ltcszk 的回复:

Quote: 引用 49 楼 yeness 的回复:

这个IT需要学的东西,海了去了,以为MVC或者WebForm就是 BS开发的全部,真是屌爆了。

你懂不懂中文啊,不懂这贴在讲啥请委婉的滚出去
这类的傻X问题,就别提了,今天整个MVC,明天发明个ssh,又说ssh好,有意义吗?人家用c一样能写出百度贴吧,一样有人能用asp写出比你高速的体验好的,一样有人用asp.net写出比你高速的体验好的,跟毛mvc有半分钱关系,整点正常说法。关键在开发人员的素质懂不懂,动不动就毛技术过时,就毛技术如何如何,经都不调。


webform的问题我上面已经说的很清楚了,你要反驳至少拿出些干货来

我上面根本没提到过mvc和jq,这贴也只是在指出webform的不足,倒是你一直在不着调往外扯。
如果汇编或c能让所有人成为程序员的话,要这么多语言干嘛? --------------------编程问答--------------------
引用 53 楼 microtry 的回复:
Quote: 引用 46 楼 ltcszk 的回复:

而慢的原因并不是菜鸟们认为的控件的执行速度慢,而是来回传递viewstate造成的带宽浪费

 有些人甚至让gridview等含有大量数据的控件也保持viewstate,一个viewstate要上百k


ViewState可以驻留在服务端,一般来说web应用发布的时候提供给客户一个设置选项,
如果网络条件不好,就让ViewState放在IIS或者状态服务器又或者是数据库


这也只是变通
会造成服务器端的压力,而且回传依然要重新加载页面 --------------------编程问答--------------------
引用 61 楼 ltcszk 的回复:
这也只是变通
 会造成服务器端的压力,而且回传依然要重新加载页面 

1.viewState是为网络应用程序而生的"客户端数据驻留"方案,
  即使微软不提供,开发组织也要自己研发一套,
  诟病视图状态的人基本上我猜他们是做网站的吧,没有这种需求;
2.webform页面早就可以异步刷新了,详情参见我18楼回复 --------------------编程问答--------------------
引用 61 楼 ltcszk 的回复:
Quote: 引用 53 楼 microtry 的回复:

Quote: 引用 46 楼 ltcszk 的回复:

而慢的原因并不是菜鸟们认为的控件的执行速度慢,而是来回传递viewstate造成的带宽浪费

 有些人甚至让gridview等含有大量数据的控件也保持viewstate,一个viewstate要上百k


ViewState可以驻留在服务端,一般来说web应用发布的时候提供给客户一个设置选项,
如果网络条件不好,就让ViewState放在IIS或者状态服务器又或者是数据库


这也只是变通
会造成服务器端的压力,而且回传依然要重新加载页面
大哥麻烦你看看你46#

用户的感觉是慢,对于频繁操作的OA更为明显。

而慢的原因并不是菜鸟们认为的控件的执行速度慢,而是来回传递viewstate造成的带宽浪费

有些人甚至让gridview等含有大量数据的控件也保持viewstate,一个viewstate要上百k

webform的问题是生不逢时,如果早生几年能赶在ajax流行前自成一派,或者过10年等人人用上光纤时再生。
-------------------------------------------------------------------
不知道你用没用过moss,或者听没听过,知道什么样的公司在使吗?他慢吗?知道是什么吗?知道微软的云计算吗? --------------------编程问答-------------------- 任何开发都在人,有那两下子,搞什么都行,没整明白,就别怪什么语言不语言的,内功不强劲,片面追新都是浮云。

太多的事实证明,拉不出来怪地球没吸引力,是没意义的 --------------------编程问答-------------------- 不用说别的,moss的存在可以打败一切 asp.net 或者 什么webform 无用论,ajax是万能论。

强中自有更强,怪就怪自己啥都没学明白。

另外如果不知道moss,自己去打听打听,他们的工资。 --------------------编程问答-------------------- moss工资高啊。。。 --------------------编程问答--------------------
引用 62 楼 microtry 的回复:
Quote: 引用 61 楼 ltcszk 的回复:

这也只是变通
 会造成服务器端的压力,而且回传依然要重新加载页面 

1.viewState是为网络应用程序而生的"客户端数据驻留"方案,
  即使微软不提供,开发组织也要自己研发一套,
  诟病视图状态的人基本上我猜他们是做网站的吧,没有这种需求;
2.webform页面早就可以异步刷新了,详情参见我18楼回复


In fact, MicrosoftAjax also sucks. --------------------编程问答--------------------
引用 62 楼 microtry 的回复:
Quote: 引用 61 楼 ltcszk 的回复:

这也只是变通
 会造成服务器端的压力,而且回传依然要重新加载页面 

1.viewState是为网络应用程序而生的"客户端数据驻留"方案,
  即使微软不提供,开发组织也要自己研发一套,
  诟病视图状态的人基本上我猜他们是做网站的吧,没有这种需求;
2.webform页面早就可以异步刷新了,详情参见我18楼回复



viewstate的存在不是做网站,嫌弃它看着碍眼。具体原因看20楼和29楼,按照你的观点和理解,你根本没弄明白viewsate是什么,以及为什么需要它。实际上ajax根本不需要它,它一无是处。

2:webform是可以异步刷新。但它的callback还是重建整个页面的控件树,完全没有必要,web应用是基于http请求的,而不是基于控件交互的。交互只存在于客户端的HTML元素
--------------------编程问答--------------------
引用 68 楼 Neutri 的回复:

你根本不仔细看别人的回复,再和你说一遍:
1.web应用程序需要客户端驻留,ViewState是现成的方案,而且可以放在服务器端;
2.webform异步刷新可以不需要重建页面;
以上两点MSDN都有详细介绍 --------------------编程问答-------------------- 控件本身并没有错,错的是界面控件竟然是服务器端的,界面交互也是服务器端代码。这种感觉也许就是别人说的“戴着套套XX”。

从我2003年第一次接触asp.net的时候,我的直觉就告诉我这是一种错误的设计,因为你很难灵活的保持与控制页面状态,所以我在项目中一直都坚持选择js做界面交互。那时候不知道ajax,但是动态加载脚本可以实现同样的功能。当然那时候也有一个比较严重的问题,就是屏蔽了搜索引擎。

比如这个页面http://www.51nod.com/today.html#!type=all,你在浏览器地址栏执行
javascript:alert(Showjim.PageView.SkinValue.header.Set({focus:{count:1,isCurrent:1}}));

或者在调试器里执行
Showjim.PageView.SkinValue.header.Set({focus:{count:1,isCurrent:1}});

你看到了界面的变化吗?
如果你看到了变化,那你就可能看到了一种js编程模式。如果你感兴趣,欢迎关注开源项目fastCSharp。
如果你没有看到变化,那很可能是我遇到了新的需要修复的问题。是的,很可能是浏览器兼容问题,这就是js编程的真正缺陷。是不是腾讯刚才发布了一款企鹅浏览器呢?

当然对于界面交互比较简单的应用,不管选择什么技术方案都差不多。这就好像一把锤子要十块钱,而另一个地方十块钱一个工具箱(不仅有同样的锤子,还有一大堆其它工具),我当然选择后者。 --------------------编程问答-------------------- 无所谓好不好,能达到目的,就是好框架。 --------------------编程问答--------------------
引用 70 楼 sbwwkmyd 的回复:
从我2003年第一次接触asp.net的时候

记错了,修改一下,是2005年,用的是vs2003 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- webform 很好啊,对新手来说控件很方便啊 !我从半年前开始接触网页编码就是从 webform 开始的,从全部都是asp control 到现在一个都没用,全部改用 ajax ashx ,但是 ! 我还是觉得 webform 有其价值 !不认同楼主说法。 --------------------编程问答--------------------
引用 69 楼 microtry 的回复:
Quote: 引用 68 楼 Neutri 的回复:

你根本不仔细看别人的回复,再和你说一遍:
1.web应用程序需要客户端驻留,ViewState是现成的方案,而且可以放在服务器端;
2.webform异步刷新可以不需要重建页面;
以上两点MSDN都有详细介绍


ajax不需要viewstate,因为根本不需要维护控件状态,页面不会刷新,控件状态也不会丢失,要viewstate有何用? --------------------编程问答--------------------
引用 76 楼 Neutri 的回复:

客户端驻留你不懂是吧?谁告诉你视图状态是用来维护控件状态的?
webform早就可以不用重建页面进行异步提交了,
还要跟你说几遍啊

楼主抱着自己错误的认识一味的胡搅蛮缠
你既不了解webform,也不了解ajax,更不了解什么是web应用程序 --------------------编程问答-------------------- 首先想说一下,看着撸猪的结帖率就知道是个不负责任的人;
其次以为啃了一点.Net就云里雾里,这是变相的误导到来着;
再次,高谈阔论就跟哪种编程语言好,完全是找抽型的帖子;
最后,discuznt版的论坛你啃了么,fastcharp你学习了吗,能做一个京东商城、当当那样的项目吗,你让我中国招商银行情何以堪 --------------------编程问答--------------------
引用 65 楼 yeness 的回复:
不用说别的,moss的存在可以打败一切 asp.net 或者 什么webform 无用论,ajax是万能论。

强中自有更强,怪就怪自己啥都没学明白。

另外如果不知道moss,自己去打听打听,他们的工资。

Moss也不咋地,做了2年moss,纠结了2年,最后moss只用来存放文档了,网站只能做最基本的,如果做逻辑有点复杂的网站,等需求稍微一变更,擦,你光调试就要整死人,不开源搞死人 --------------------编程问答-------------------- 当年38楼鼓吹viewstate的时候,技术最终还是向0控件的方向发展。
于是服务端有了ASP.NET Web API和OData,客户端则可以使用knockout.js等实现数据和视图的双向绑定。 --------------------编程问答--------------------
引用 79 楼 blue_apple2006 的回复:
Quote: 引用 65 楼 yeness 的回复:

不用说别的,moss的存在可以打败一切 asp.net 或者 什么webform 无用论,ajax是万能论。

强中自有更强,怪就怪自己啥都没学明白。

另外如果不知道moss,自己去打听打听,他们的工资。

Moss也不咋地,做了2年moss,纠结了2年,最后moss只用来存放文档了,网站只能做最基本的,如果做逻辑有点复杂的网站,等需求稍微一变更,擦,你光调试就要整死人,不开源搞死人
只是想说明,每个框架或者语言都有自己的独到之处,不认为某个技术有多强大,也不认为webform有多弱小,同样MVC作为一个前端技术开发,也就是用它赚钱而已。有必要让人踩上两脚吗?那j2ee的 s2配合上xwork+jq更前卫,更前端,没看见谁就上来一顿痛批 struts标签,痛批jsf。会的更多可以写出更多,更优秀的方案。moss不是万能的,但是能和exchange和ocs和lync+n多的组合,设计完整的集成方案。moss开发难度不大,会给那么高的薪水吗? --------------------编程问答--------------------
引用 77 楼 microtry 的回复:
Quote: 引用 76 楼 Neutri 的回复:

客户端驻留你不懂是吧?谁告诉你视图状态是用来维护控件状态的?
webform早就可以不用重建页面进行异步提交了,
还要跟你说几遍啊

楼主抱着自己错误的认识一味的胡搅蛮缠
你既不了解webform,也不了解ajax,更不了解什么是web应用程序

 
viewstate如果不是为了维护控件在客户端服务器端往返的的状态,那是用来做什么的?我给你举个例子,比如说你定义了一个<asp:TextBox id="text1" CssClass="css1" />, 如果你在.aspx.cs里更改了text1.CssClass="css2"; 这样做的悲剧是什么;

就是从此以后,每次你必须在服务器-客户端中反复的来回传送这个CssClass="css2"。即使你用了异步回调,它一样需要维护这个状态。而你一旦关闭了viewstate,则css2不会再起作用。

而web的本质是我们只需要在客户端更改下这个css,然后把它传送到服务器一次,告诉服务器是不是应该持久化的存储在数据库中就完全OK了。 

 
此外,你所谓的不需要重建整个页面进行异步提交是个误解,asp.net的异步callback是psotback的简化版本。如果不重建整个页面的控件树,你如何在.aspx.cs里引用页面上的任何控件,然后给控件的属性赋值?  --------------------编程问答-------------------- 这里面很可悲的就是我改一下css,必须得在服务器端,而且必须维护其viewstate。同时客户端更改了其css,在服务器端也接受不到,只能手动通过url传值,多可悲。 --------------------编程问答--------------------
引用 82 楼 Neutri 的回复:
Quote: 引用 77 楼 microtry 的回复:

Quote: 引用 76 楼 Neutri 的回复:

客户端驻留你不懂是吧?谁告诉你视图状态是用来维护控件状态的?
webform早就可以不用重建页面进行异步提交了,
还要跟你说几遍啊

楼主抱着自己错误的认识一味的胡搅蛮缠
你既不了解webform,也不了解ajax,更不了解什么是web应用程序

 
viewstate如果不是为了维护控件在客户端服务器端往返的的状态,那是用来做什么的?我给你举个例子,比如说你定义了一个<asp:TextBox id="text1" CssClass="css1" />, 如果你在.aspx.cs里更改了text1.CssClass="css2"; 这样做的悲剧是什么;

就是从此以后,每次你必须在服务器-客户端中反复的来回传送这个CssClass="css2"。即使你用了异步回调,它一样需要维护这个状态。而你一旦关闭了viewstate,则css2不会再起作用。

而web的本质是我们只需要在客户端更改下这个css,然后把它传送到服务器一次,告诉服务器是不是应该持久化的存储在数据库中就完全OK了。 

 
此外,你所谓的不需要重建整个页面进行异步提交是个误解,asp.net的异步callback是psotback的简化版本。如果不重建整个页面的控件树,你如何在.aspx.cs里引用页面上的任何控件,然后给控件的属性赋值? 


说的是。 --------------------编程问答-------------------- 楼主的观点有点太过偏激 
    不可否认,webform确实存在诸多弊端,学东西在于灵活致用,也许ms当初设计它的时候就没有全面考虑,
 方便了开发者,缺忽略了用户体验,这是ms产品的普遍的硬伤,不过话说回来了,纵观业界,webform在一些小型后台管理上或者无需用户体验的小网站上还是有一定优势的,开发成本低,这也是。net总被歧视的原因之一吧。
    再说Mvc特点,无非主要两点,一业务与界面分离,业务逻辑比较清晰,二:嵌套ef,linq ,很多人都喜欢说mvc性能高,基本上都是因为拿它跟webform比较,感觉很搞笑,。net不是只有webform,你别用服务器控件,我的页面一样无需重编译,linq这种语言集成查询,高度集成的背后肯定会是性能的消耗为代价,如果你有足够的数据优化,内存管理经验,完全能写出个性能相仿的project,再说EF,给你整个mysql,oracle大家一般都会束手无策。
    学以致用,随机应变,每种技术其实也就是一个框架,几种设计模式的集成,现在的程序员恰恰忽略的面向对象的本质,思维固化,死盯着几种框架不懂变通。
    再说一点,。net被歧视不是微软不厉害,恰恰相反,ms太过霸气,封装,集成,让开发者如履平地,简化开发者,这点是任何其他语言无法匹及的。 --------------------编程问答-------------------- EF 可以支持 mysql,oracle 和jdbc一样,是由厂商提供技术支持。

85#分析很到位,就盯着几个框架,不研究本质,不会变通是不行的。 --------------------编程问答-------------------- 除 --------------------编程问答--------------------
引用 85 楼 Aileennan 的回复:
楼主的观点有点太过偏激 
    不可否认,webform确实存在诸多弊端,学东西在于灵活致用,也许ms当初设计它的时候就没有全面考虑,
 方便了开发者,缺忽略了用户体验,这是ms产品的普遍的硬伤,不过话说回来了,纵观业界,webform在一些小型后台管理上或者无需用户体验的小网站上还是有一定优势的,开发成本低,这也是。net总被歧视的原因之一吧。
    再说Mvc特点,无非主要两点,一业务与界面分离,业务逻辑比较清晰,二:嵌套ef,linq ,很多人都喜欢说mvc性能高,基本上都是因为拿它跟webform比较,感觉很搞笑,。net不是只有webform,你别用服务器控件,我的页面一样无需重编译,linq这种语言集成查询,高度集成的背后肯定会是性能的消耗为代价,如果你有足够的数据优化,内存管理经验,完全能写出个性能相仿的project,再说EF,给你整个mysql,oracle大家一般都会束手无策。
    学以致用,随机应变,每种技术其实也就是一个框架,几种设计模式的集成,现在的程序员恰恰忽略的面向对象的本质,思维固化,死盯着几种框架不懂变通。
    再说一点,。net被歧视不是微软不厉害,恰恰相反,ms太过霸气,封装,集成,让开发者如履平地,简化开发者,这点是任何其他语言无法匹及的。


评价webform说可以不用控件
评价mvc非要带上ef

好一个双重标准

mvc是视图层再分3层,DAL是什么东西和他完全无关,底层换nhibernate也是分分钟的事情。

webform不用服务器控件,怎么用事件驱动?
模拟winform开发这最大的卖点都没了,也好意思叫“webform”
而且上面已经说的很清楚了,重编译不是webform慢的主要原因,php那种解释执行的语言都没这类问题,MS自然不会犯这种低级错误 --------------------编程问答--------------------
引用 86 楼 yeness 的回复:
EF 可以支持 mysql,oracle 和jdbc一样,是由厂商提供技术支持。

85#分析很到位,就盯着几个框架,不研究本质,不会变通是不行的。


webform就是在阻止新人去研究html的本质,事件驱动模式让人分不清服务器端和浏览器端,很多人连最常用的4种请求类型都说不上来
--------------------编程问答-------------------- LZ拖控件流,WebFrom和Ajax有什么冲突? --------------------编程问答--------------------
引用 89 楼 ltcszk 的回复:
Quote: 引用 86 楼 yeness 的回复:

EF 可以支持 mysql,oracle 和jdbc一样,是由厂商提供技术支持。

85#分析很到位,就盯着几个框架,不研究本质,不会变通是不行的。


webform就是在阻止新人去研究html的本质,事件驱动模式让人分不清服务器端和浏览器端,很多人连最常用的4种请求类型都说不上来
按照这种说法,做MVC的连会话bean和数据bean还有分不清的 --------------------编程问答-------------------- 目测楼主水平真的一般 --------------------编程问答--------------------
引用 91 楼 yeness 的回复:
Quote: 引用 89 楼 ltcszk 的回复:

Quote: 引用 86 楼 yeness 的回复:

EF 可以支持 mysql,oracle 和jdbc一样,是由厂商提供技术支持。

85#分析很到位,就盯着几个框架,不研究本质,不会变通是不行的。


webform就是在阻止新人去研究html的本质,事件驱动模式让人分不清服务器端和浏览器端,很多人连最常用的4种请求类型都说不上来
按照这种说法,做MVC的连会话bean和数据bean还有分不清的


那么做webform的人分得清吗?
而做mvc的模板生成的action上就有HttpPost --------------------编程问答-------------------- 颠倒是非呀,天理何在呀 --------------------编程问答--------------------
引用 88 楼 ltcszk 的回复:
Quote: 引用 85 楼 Aileennan 的回复:

楼主的观点有点太过偏激 
    不可否认,webform确实存在诸多弊端,学东西在于灵活致用,也许ms当初设计它的时候就没有全面考虑,
 方便了开发者,缺忽略了用户体验,这是ms产品的普遍的硬伤,不过话说回来了,纵观业界,webform在一些小型后台管理上或者无需用户体验的小网站上还是有一定优势的,开发成本低,这也是。net总被歧视的原因之一吧。
    再说Mvc特点,无非主要两点,一业务与界面分离,业务逻辑比较清晰,二:嵌套ef,linq ,很多人都喜欢说mvc性能高,基本上都是因为拿它跟webform比较,感觉很搞笑,。net不是只有webform,你别用服务器控件,我的页面一样无需重编译,linq这种语言集成查询,高度集成的背后肯定会是性能的消耗为代价,如果你有足够的数据优化,内存管理经验,完全能写出个性能相仿的project,再说EF,给你整个mysql,oracle大家一般都会束手无策。
    学以致用,随机应变,每种技术其实也就是一个框架,几种设计模式的集成,现在的程序员恰恰忽略的面向对象的本质,思维固化,死盯着几种框架不懂变通。
    再说一点,。net被歧视不是微软不厉害,恰恰相反,ms太过霸气,封装,集成,让开发者如履平地,简化开发者,这点是任何其他语言无法匹及的。


评价webform说可以不用控件
评价mvc非要带上ef

好一个双重标准

mvc是视图层再分3层,DAL是什么东西和他完全无关,底层换nhibernate也是分分钟的事情。

webform不用服务器控件,怎么用事件驱动?
模拟winform开发这最大的卖点都没了,也好意思叫“webform”
而且上面已经说的很清楚了,重编译不是webform慢的主要原因,php那种解释执行的语言都没这类问题,MS自然不会犯这种低级错误


又是一个mvc的忠实fans,我没有说webform可以不用控件,webform本来就是控件机制,我只是说其并非一无是处,也有其价值! 我没有拿webform跟mvc比较  ok? 只是指出2者各有优劣。
我指的重编译也没有说是webform重编译吧?不要提web就让你想到webform。
对于初学者来说mvc确实性能不错。说实话开发没个两三年经验,一般人很难做好性能优化,但是话说回来了,对于任何一个架构师来说,mvc最大的卖点又在哪里? --------------------编程问答--------------------
引用 89 楼 ltcszk 的回复:
Quote: 引用 86 楼 yeness 的回复:

EF 可以支持 mysql,oracle 和jdbc一样,是由厂商提供技术支持。

85#分析很到位,就盯着几个框架,不研究本质,不会变通是不行的。


webform就是在阻止新人去研究html的本质,事件驱动模式让人分不清服务器端和浏览器端,很多人连最常用的4种请求类型都说不上来


100%支持。。。
能看透的人太少了。。。 --------------------编程问答--------------------
引用 楼主 Neutri 的回复:
首先  .net的框架确实不错,层次分明,定义清晰。Asp.net的整个框架结构开始也设计的不错,但是asp.net落后的地方就在于从Control开始,直到衍生出一系列控件以及Page类的这个最大的垃圾控件!!特别是在ajax年代,这种设计已经让人出离愤怒了!

不想说MVC,但是切记asp.net的webform已经完全没有学的必要了。和ajax格格不入,毫无用处,同时webform设计也有很大缺陷。


基本上同意。我是从.net framework 1.1开始的。以前写asp.
很多人现在不明白也很正常,以后就会明白了。

另外,目前web form也不是一点也不能用。
asp.net的控件是不好,但是可以不用或少用。但是.net提供的那些类有很多还是不错的。

我一般写asp.net第一件事就是去掉form runat=server
需要的地方手动加form或根本不用form,直接获取表单元素拼post格式ajax提交。 --------------------编程问答--------------------
引用 96 楼 u010286221 的回复:
Quote: 引用 89 楼 ltcszk 的回复:

Quote: 引用 86 楼 yeness 的回复:

EF 可以支持 mysql,oracle 和jdbc一样,是由厂商提供技术支持。

85#分析很到位,就盯着几个框架,不研究本质,不会变通是不行的。


webform就是在阻止新人去研究html的本质,事件驱动模式让人分不清服务器端和浏览器端,很多人连最常用的4种请求类型都说不上来



100%支持。。。
能看透的人太少了。。。


这种说法正好前后矛盾,事件驱动模式让人分不清服务器和客户端,恰恰因为这个问题,我相信每个刚接触webform的同学都吃过不少苦头吧,为了解决这些问题,肯定必不可少的引导他们去研究html,解决问题,从而理解客户端与服务端机制,理解web机制,webform=web+form,呵呵 如果真理解了webform能不理解web吗?
--------------------编程问答--------------------
引用 97 楼 u010286221 的回复:
Quote: 引用 楼主 Neutri 的回复:

首先  .net的框架确实不错,层次分明,定义清晰。Asp.net的整个框架结构开始也设计的不错,但是asp.net落后的地方就在于从Control开始,直到衍生出一系列控件以及Page类的这个最大的垃圾控件!!特别是在ajax年代,这种设计已经让人出离愤怒了!

不想说MVC,但是切记asp.net的webform已经完全没有学的必要了。和ajax格格不入,毫无用处,同时webform设计也有很大缺陷。


基本上同意。我是从.net framework 1.1开始的。以前写asp.
很多人现在不明白也很正常,以后就会明白了。

另外,目前web form也不是一点也不能用。
asp.net的控件是不好,但是可以不用或少用。但是.net提供的那些类有很多还是不错的。

我一般写asp.net第一件事就是去掉form runat=server
需要的地方手动加form或根本不用form,直接获取表单元素拼post格式ajax提交。


去掉form runat=server 等与.net的web,和webform其实就没什么关系了,无论webform或者mvc或者其他设计模式其实都是对web的一种封装,进化,都是有性能消耗的。 --------------------编程问答--------------------
引用 99 楼 Aileennan 的回复:
Quote: 引用 97 楼 u010286221 的回复:

Quote: 引用 楼主 Neutri 的回复:

首先  .net的框架确实不错,层次分明,定义清晰。Asp.net的整个框架结构开始也设计的不错,但是asp.net落后的地方就在于从Control开始,直到衍生出一系列控件以及Page类的这个最大的垃圾控件!!特别是在ajax年代,这种设计已经让人出离愤怒了!

不想说MVC,但是切记asp.net的webform已经完全没有学的必要了。和ajax格格不入,毫无用处,同时webform设计也有很大缺陷。


基本上同意。我是从.net framework 1.1开始的。以前写asp.
很多人现在不明白也很正常,以后就会明白了。

另外,目前web form也不是一点也不能用。
asp.net的控件是不好,但是可以不用或少用。但是.net提供的那些类有很多还是不错的。

我一般写asp.net第一件事就是去掉form runat=server
需要的地方手动加form或根本不用form,直接获取表单元素拼post格式ajax提交。


去掉form runat=server 等与.net的web,和webform其实就没什么关系了,无论webform或者mvc或者其他设计模式其实都是对web的一种封装,进化,都是有性能消耗的。


不完全是,去掉form runat=server ,实质上是从根本上去掉了viewstate
但不代表不能使用asp.net控件。
其实,我用asp.net仅会用到repeater和literal
这两个可以满足99.9%的要求。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,