新足迹

 找回密码
 注册

精华好帖回顾

· 樱花般美丽。。。 (2008-7-31) 阿Ka · 日本的照片(二)—— 本州的山水 (2010-6-3) 老陶
· 我爱我家征文活动:Chatswood的传说 (2010-9-11) Martin_2F · 我给19个月的女儿自然断奶 (2007-12-4) haohaohaohao
Advertisement
Advertisement
查看: 2573|回复: 31

有一点asp.net webform让我很不喜欢 [复制链接]

发表于 2010-9-15 10:54 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
它让developer忽略了围绕http的programming的方式,有latency方面的问题一点都不奇怪。

仅从这点上说php,classic asp developer就好很多(oo concepts三不是现在讨论的范围).

其他方面的问题seperation of concern, testability同时很容易导致developer误用这个frame work(如果很注意的话,这些问题可以从经验上避免)。

尽管ms一直声称不会放弃web form,但对中大规模的web site,个人觉得在当前市场上的可选范围内,它应该不是首选,历史的原因也不能忽视(如msdn)。
Advertisement
Advertisement

2010年度奖章获得者

发表于 2010-9-15 11:03 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
都一樣的啦。

webform 限制少點而已, 容易導致青少年寫很壞的code

你完全可以做到page-behind zero code. 完全走http。 完全不用或少用server control, 多用輕量級的control, 減少view state.

在4.0 裡一些mvc的東西東被拿到webform來了。 再往後這兩者會更相近。
足迹 Reader is phenomenal. If you never used, you never lived 火速下载

发表于 2010-9-15 11:11 |显示全部楼层
此文章由 kanjunhai 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kanjunhai 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 乱码 于 2010-9-15 10:54 发表
它让developer忽略了围绕http的programming的方式,有latency方面的问题一点都不奇怪。

仅从这点上说php,classic asp developer就好很多(oo concepts三不是现在讨论的范围).

其他方面的问题seperation of concern, te ...



ok, you got a perfect reason to use ASP.NET MVC instead.

2010年度奖章获得者

发表于 2010-9-15 11:23 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 kanjunhai 于 2010-9-15 11:11 发表



ok, you got a perfect reason to use ASP.NET MVC instead.


你知道webform 和 mvc的真正區別嗎?
足迹 Reader is phenomenal. If you never used, you never lived 火速下载

发表于 2010-9-15 11:34 |显示全部楼层
此文章由 kanjunhai 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kanjunhai 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2010-9-15 11:23 发表


你知道webform 和 mvc的真正區別嗎?



看来这位很自以为是. 老子天下第一啊.

LZ说的webform的缺陷,真是MVC的强项啊.

[ 本帖最后由 kanjunhai 于 2010-9-15 11:36 编辑 ]

特殊贡献奖章

发表于 2010-9-15 11:38 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 kanjunhai 于 2010-9-15 11:34 发表



看来这位很自以为是. 老子天下第一啊.

LZ说的webform的缺陷,真是MVC的强项啊.

恭喜打老虎又做了一次版主
Advertisement
Advertisement

特殊贡献奖章

发表于 2010-9-15 11:38 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
晕,楼上编辑好快

2010年度奖章获得者

发表于 2010-9-15 11:39 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
討論科學,別老子老子的 :)

你說的”缺陷“,從另一個角度看就會是“靈活度”

mvc的所有特性,全部可以在webform裡實現。

魯迅說過,世界上沒有不好的工具,問題是你會不會用好工具?
足迹 Reader is phenomenal. If you never used, you never lived 火速下载

发表于 2010-9-15 11:47 |显示全部楼层
此文章由 kanjunhai 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kanjunhai 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2010-9-15 11:39 发表
討論科學,別老子老子的 :)

你說的”缺陷“,從另一個角度看就會是“靈活度”

mvc的所有特性,全部可以在webform裡實現。

魯迅說過,世界上沒有不好的工具,問題是你會不會用好工具? ...



nice, you need to keep a open mind.
Yes, you surely can address the issues within webform. BUT is it nice to be supported generically by a better framework?

2010年度奖章获得者

发表于 2010-9-15 11:52 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 kanjunhai 于 2010-9-15 11:47 发表

nice, you need to keep a open mind.
Yes, you surely can address the issues within webform. BUT is it nice to be supported generically by a better framework?


I wouldn't use "Better or worse" to describe them. Microsoft doesn't use this word either.

Its just now you have two choices, mvc is probably more "fashionable", but webform is far from "worse or dying".
足迹 Reader is phenomenal. If you never used, you never lived 火速下载

发表于 2010-9-15 11:58 |显示全部楼层
此文章由 任二举 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 任二举 所有!转贴必须注明作者、出处和本声明,并保持内容完整
jt请教一下MVC和MVVM的区别?

谢谢
Advertisement
Advertisement

发表于 2010-9-15 11:58 |显示全部楼层
此文章由 Dan.and.Andy 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 Dan.and.Andy 所有!转贴必须注明作者、出处和本声明,并保持内容完整
你们谈天说地就行, 我发个贴就转大千世界了

发表于 2010-9-15 11:59 |显示全部楼层
此文章由 kanjunhai 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kanjunhai 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2010-9-15 11:52 发表


I wouldn't use "Better or worse" to describe them. Microsoft doesn't use this word either.

Its just now you have two choices, mvc is probably more "fashionable", but webform is far from "worse or d ...


for the issues raised by LZ, the MVC is obvious choice.

one thing i am with you is that you can do nasty things with any framework or tools.

发表于 2010-9-15 12:00 |显示全部楼层
此文章由 cdfei 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cdfei 所有!转贴必须注明作者、出处和本声明,并保持内容完整
围观一下

2010年度奖章获得者

发表于 2010-9-15 12:03 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 任二举 于 2010-9-15 11:58 发表
jt请教一下MVC和MVVM的区别?

谢谢


你是說MVVMC 吧? :) 其實本來就是MVVMC, 不好marketing, 就改名叫mvc了。

vm 就是指給view 他需要的, 一個也不少,一個也不多。也確保了data context 不外流到view
足迹 Reader is phenomenal. If you never used, you never lived 火速下载

特殊贡献奖章

发表于 2010-9-15 12:10 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2010-9-15 12:03 发表


你是說MVVMC 吧? :) 其實本來就是MVVMC, 不好marketing, 就改名叫mvc了。

vm 就是指給view 他需要的, 一個也不少,一個也不多。也確保了data context 不外流到view ...

这东西不算controller的部分吗?
Advertisement
Advertisement

2010年度奖章获得者

发表于 2010-9-15 12:12 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 kr2000 于 2010-9-15 12:10 发表

这东西不算controller的部分吗?


controller 是把model 送到 view的

Controller = 神族的那個水晶燈
View = 對方老家。
Model = 士兵。
足迹 Reader is phenomenal. If you never used, you never lived 火速下载

发表于 2010-9-15 12:21 |显示全部楼层
此文章由 cdfei 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cdfei 所有!转贴必须注明作者、出处和本声明,并保持内容完整
能不能指点一下为啥classic asp是围绕http的呢?我写过一些classic asp,但没什么印象了。

原帖由 乱码 于 2010-9-15 10:54 发表
它让developer忽略了围绕http的programming的方式,有latency方面的问题一点都不奇怪。

仅从这点上说php,classic asp developer就好很多(oo concepts三不是现在讨论的范围).

其他方面的问题seperation of concern, te ...

特殊贡献奖章

发表于 2010-9-15 12:25 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2010-9-15 12:12 发表


controller 是把model 送到 view的

Controller = 神族的那個水晶燈
View = 對方老家。
Model = 士兵。

哈哈,那vm是什么呢

2010年度奖章获得者

发表于 2010-9-15 12:34 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 kr2000 于 2010-9-15 12:25 发表

哈哈,那vm是什么呢


View Model 就是另一種打法了。

VM 就像你只把一部份的兵送到對方老家去打, 而這部分兵並不是你所有的兵。

大家多打星際吧, 會領悟到很多的。哈哈。

如果說水晶燈是Controller 的話, 那你的老家就是 Business Layer了。

水晶燈並不知道你老家的則麼佈局的, 也不知道你資源有多少, 水晶燈只負責把老家造好的兵的傳送。

如果說老家是Business Layer 的話, 那 礦和氣就是數據庫了。

你的兵營並不知道你有多少錢, 兵營只管你有足夠多的錢時,他才能造兵。
足迹 Reader is phenomenal. If you never used, you never lived 火速下载

发表于 2010-9-15 12:41 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 cdfei 于 2010-9-15 12:21 发表
能不能指点一下为啥classic asp是围绕http的呢?我写过一些classic asp,但没什么印象了。



content of response:
classic asp直接往response里面写,你要控制你自己在browser那边的dom tree,webform有framework提供的helper帮你生成tree.

header of response:
classic asp 和 webform都可以对header的东西直接访问,但webform很少有人这么做。

controls :
很多webform server control都有auto postback的功能,classic asp在client那边基本上一片空白,render到browser那边,就基本上主要依靠javascript还有js framework来帮助来完成business requirement,相对经验不足的webform developer更倾向于postback到server side来完成。

webform对于security方面做得相当不错,但有时候过于严格了,反而失去了它的灵活性。

同意大家说的,framework/tools本身没有错(充其量算是有误导性),关键是看我们如何去用。

作到一定程度,可能大家更加需要一种松散的,不是很严格的framework来帮助我们来做些low level的事。
Advertisement
Advertisement

发表于 2010-9-15 12:51 |显示全部楼层
此文章由 cdfei 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cdfei 所有!转贴必须注明作者、出处和本声明,并保持内容完整
content of response:
这个在webform里面也经常用啊,比如文件提取,显示图片或者表格转文件。
你实现个IHttpHandler可以完全用response来生成用户界面。

header of response:
在webform里还是挺方便的吧,

sever control
也挺方便的的,节约很多时间啊

其实webform就是一个典型的快速开发框架,只要你了解你它的lifecycle,基本上还是能控制的,用这个做大部分应用都是足够的吧,而且最重要是快速,和丰富的控件资源,就象以前的VB和delphi一样。如果有特殊要求当然可以选择其他的。


原帖由 乱码 于 2010-9-15 12:41 发表


content of response:
classic asp直接往response里面写,你要控制你自己在browser那边的dom tree,webform有framework提供的helper帮你生成tree.

header of response:
classic asp 和 webform都可以对header的东西 ...

发表于 2010-9-15 13:11 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 cdfei 于 2010-9-15 12:51 发表
content of response:
这个在webform里面也经常用啊,比如文件提取,显示图片或者表格转文件。
你实现个IHttpHandler可以完全用response来生成用户界面。

header of response:
在webform里还是挺方便的吧,

sever contro ...


是啊,我们可以用IhttpModule alone(或者加上点handler)作classic asp能做得任何事情,因为这个阶段我们拥有需要的context(request/response),完全可以忽略webpage的life cycle.

不能否认它很方便/快捷,但让viewstate让本来stateless的http变成臃肿的stateful,个人觉得不是什么好事,可能唯一好的地方就是enabled security features.

发表于 2010-9-15 13:17 |显示全部楼层
此文章由 bulaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 bulaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 Dan.and.Andy 于 2010-9-15 11:58 发表
你们谈天说地就行, 我发个贴就转大千世界了


你那个太hot,这里都快着火了

发表于 2010-9-15 13:19 |显示全部楼层
此文章由 cdfei 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 cdfei 所有!转贴必须注明作者、出处和本声明,并保持内容完整
我的理解是stateful应该是指你把状态放session中吧,你用viewstate,其实才是stateless的,因为服务器并不保存你的状态,当然一般大东西就不要放进去了,你总还要找地方放状态吧。

发表于 2010-9-15 15:22 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 cdfei 于 2010-9-15 13:19 发表
我的理解是stateful应该是指你把状态放session中吧,你用viewstate,其实才是stateless的,因为服务器并不保存你的状态,当然一般大东西就不要放进去了,你总还要找地方放状态吧。 ...


它也许不该maintain state.

任何非operational的request都用get,需要operation的request在client side手动post,而不是server side generate viewstate,然后post的时候再收集form的field,根着viewstate postback,然后再recover state,这种行为基本上是在abuse http.

在server side放关键的info作validation,不重要的不用去管。

once again,我强调的只是performance,而不是security.

[ 本帖最后由 乱码 于 2010-9-15 15:24 编辑 ]
Advertisement
Advertisement

发表于 2010-9-15 15:35 |显示全部楼层
此文章由 huazhb 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 huazhb 所有!转贴必须注明作者、出处和本声明,并保持内容完整
呵呵, 我觉得webform做纯粹的website确实是不合适的, 虽然你可以用,但是你要做很多客户化的东西. MVC这个东西本身也是建立在asp.net上, 所以他们的底层都是一致的. 只不过MVC是微软帮你做了一套Framework, 省了你很多事了. 目前好像还没有看到用MVC做的大型网站. Web Form做做网站Application还是不错的. Viewstate压缩一下也是可以接受的.

特殊贡献奖章

发表于 2010-9-15 15:48 |显示全部楼层
此文章由 kr2000 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kr2000 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 dalaohu 于 2010-9-15 12:34 发表


View Model 就是另一種打法了。

VM 就像你只把一部份的兵送到對方老家去打, 而這部分兵並不是你所有的兵。

大家多打星際吧, 會領悟到很多的。哈哈。

如果說水晶燈是Controller 的話, 那你的老家就是 Business Laye ...


view model 是直接从model拿数据还是通过controller?
按你说的,没有水晶(controller)敌营(view)也是没有兵(数据)传过去的
view model实际上是model的一部分?

2010年度奖章获得者

发表于 2010-9-15 15:52 |显示全部楼层
此文章由 dalaohu 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 dalaohu 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 kr2000 于 2010-9-15 15:48 发表


view model 是直接从model拿数据还是通过controller?
按你说的,没有水晶(controller)敌营(view)也是没有兵(数据)传过去的
view model实际上是model的一部分? ...


KR2000 你晚上跟Diggypiggy 1v1 我們來圍觀好嗎?

你贏了, 我告訴你:)
足迹 Reader is phenomenal. If you never used, you never lived 火速下载

发表于 2010-9-15 15:55 |显示全部楼层
此文章由 乱码 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 乱码 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 huazhb 于 2010-9-15 15:35 发表
呵呵, 我觉得webform做纯粹的website确实是不合适的, 虽然你可以用,但是你要做很多客户化的东西. MVC这个东西本身也是建立在asp.net上, 所以他们的底层都是一致的. 只不过MVC是微软帮你做了一套Framework, 省了你很 ...


www.stackoverflow.com 是asp.net mvc作的

http://blog.stackoverflow.com/20 ... verflow-built-with/

msdn forum也是mvc的产品,2.0的版本。

http://social.msdn.microsoft.com/Forums/en/csharpgeneral/threads

用firebug,看它的header.有 "X-AspNetMvc-Version    2.0"

[ 本帖最后由 乱码 于 2010-9-15 16:08 编辑 ]

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部