Klesh.Cn

concentrating on knowing more...

MonoRail和WebForm,谁是瑞士军刀

  从学习成本上来看,无疑WebForm的初期学习成本是相当的低。对于完全的新手,控件拖放然后编写后台代码应该是相当容易理解和接受的方式;对于从WinForm上转过来的开发人员,这种开发方式则早已成为他们的习惯;即使是对我这种由Classicl ASP/PHP那种coding/html混编转过来的人来讲,WebForm也一度让我觉得很完美(coding/html各自放在不同的地方,让人有种说不出来的舒服)。学习WebForm甚至不需要去了解什么是HTTP,什么是HTML,什么是Javascript……

  但若要使用MonoRail,事情就麻烦了,初级阶段需要了解的东西会比WebForm多出很多来,比如说,首先得习惯用传统的HTTP视角去看待客户端和服务器之间的交互,像是在做Classical ASP/PHP做开发一样,每一次的交互都是独立的。你要了解什么是HTML,什么是FORM,什么是INPUT,为了实现一些比较特别的功能,还需要Javascript,然后还要另外还要学习模板语法……

  不难得出的结义是,WebForm比MonoRail容易上手。特别是对没做过web开发的人来讲,它隐藏了web的许多底层的东西,展现出来是一个近似WinForm的快速开发方式。行文至此,可以说,WebForm比MonoRail更像是一把瑞士军刀,难道WebForm的功能不是比MonoRail更加强大吗?你要什么控件就给你什么,不需要另外去弄,都集成好了,不是吗?反过来看MonoRail,原本在WebForm上简单一拖就有的控件,却需要另外花力气去实现。

  瑞士军刀是好东西,功能强大,携带方便,当然也没有什么学习成本,但是,这些优点不是MonoRail所具备的。

  随着一步一步将WebForm应用到开发中去,我意识到,WebForm也只是易上手而已,当要对控件进行定制时,就不得不深入去了解控件的模型,事件,方法等,有时候已有的控件也未必能满足定制的需求,又不得不依赖于第三方控件,找不到第三方控件时,则得自己进行控件开发,当涉入到控件开发领域时(主要指自定义控件),我才了解到什么叫做高昂的学习成本。前前后后我曾经花了三个月在这上面,大概也是能做到一般复杂的控件开发而已。更加不幸的是这么一来,本来由设计师做的界面修改工作变成了要我来做。唉,罪过啊罪过,这简直是在浪费生命。

  我想,既然大家选择了做Web开发,那怎么可能不去了解什么是HTTP?什么是HTML?什么是Javascript?WebForm能帮你挡得了一时,可 能帮你挡一世?要知道,即使你将来换了开发平台,掌握这些基础知识即使不是不可或缺的,至少也是大有裨益的。

  然而,对于一个基础扎实的Web开发人员来讲,MonoRail还剩多少东西可学?看完MonoRail的 Getting Statrted Sample 就可以开工了,把它的Documentation全部看完也花不了多少时间。但若是要把WebForm玩转,进入控件开发领域的时候,不但要了解HTTP/HTML/Javascript/...等等这些底层的东西,还得额外去了解WebForm的生命周期,控件继承树,各种各样的接口……

  MonoRail不是瑞士军刀,它不帮你输出html,不帮你管理页面状态,主要还是帮助你把视图、控制器分开来而已,其他的都是辅助性可有可无的东西。

posted on 2007-10-22 16:27 Klesh Wong 阅读(2783) 评论(17)  编辑 收藏 所属分类: NETMVP

Feedback

#1楼  2007-10-22 19:41 行万里路      

关注。。。
  回复  引用  查看    

#2楼  2007-10-22 20:50 niukun      

有道理   回复  引用  查看    

#3楼  2007-10-22 21:03 橘子&猪      

呵呵,严重同感.
有很多人是从Webform进入到web开发世界的.
今天我还在某群说过抛弃webform的话,结果有人告诉我用不用webform会直接影响产品好坏,会影响用户体验..我那个汗啊。..   回复  引用  查看    

#4楼  2007-10-22 22:19 Felix      

赞同,当开发到高级阶段,根本就用不上几个控件,但一些特定的场合,一般的控件又无法满足的,这是WEBForm的软肋,要研究透WebForm是一件相当费时又费力的事情,而且容易忘,特别是WEB的生命周期,如果这个都不知道,开发复杂一点的WEB应用,死都不知道怎么死的,越来越讨厌WebForm了,其实很复杂,把一件简单的事情弄那么复杂,shit!!

有时,看看Java或PHP开发和原理是那么的明朗   回复  引用  查看    

#5楼  2007-10-23 08:42 超晨      

对于我这种从ASP转过来的人来说,WEBFORM一直让我很郁闷!简单的response,request,让webform把我搞得头晕晕,控件开发真让人抓狂。
想当年做ASP开发,是多么潇洒啊   回复  引用  查看    

#6楼  2007-10-23 09:27 RexTse      

汗啊.我最早就是做asp开发的.好不容易适应了webform,难道都成了浪费时间了。   回复  引用  查看    

#7楼  2007-10-23 10:23 仁面寿星      

答复5楼的,我没做过ASP开发,不然帮别人看多VS2002的程序,典型的ASP风格,我都想跳楼,一个页面几乎什么都实现了……   回复  引用  查看    

#8楼 [楼主] 2007-10-23 10:33 Klesh Wong      

@RexTse
呵呵,并不是说WebForm就没用,只是不太适合用来做网站,我认为是在那些对界面要求不太高的企业开发场景中是比较适用的,关于企业开发我做得不是很多,只能说是猜测啦。
然后即使不用WebForm,它有许多东西还是值得学习的。   回复  引用  查看    

#9楼  2007-10-23 10:35 Neher      

严重反对这种观点,WebForm相对比MonoRail更复杂   回复  引用  查看    

#10楼  2007-10-23 10:35 Neher      

MonoRail可以更多控制底层的东西   回复  引用  查看    

#11楼  2007-10-23 11:47 巫云      

webform控件做起来也不是太麻烦的啦,而且控件可以重用嘛。   回复  引用  查看    

#12楼  2007-10-23 11:54 亚历山大同志      

BZ应该是看了我发的上篇Post而作的此文。之前的Post里面我几乎都在说WebForm的坏话,呵呵。可能BZ误会了我所谓瑞士军刀的比喻。我之所以把MonoRails比喻成瑞士军刀并不是和WebForm相比较来说,而只是针对自己使用上的一些看法而已。至于WebForm,如果说MonoRails是瑞士军刀的话,那么WebForm就是万用组合工具包了。^_^。
BTW:个人觉得Monorails的实现还是不够轻量化,太灵活意味着更高的学习成本,我更喜欢更加简单的解决问题的方法。   回复  引用  查看    

#13楼 [楼主] 2007-10-23 12:01 Klesh Wong      

@亚历山大同志
原来如此   回复  引用  查看    

#14楼  2007-10-23 16:39 Jeffrey Zhao      

不觉得WebForm开发起来麻烦,或者封装地太好让人难以控制。
WebForm其实是提供了一种解决方案模型,它构建于其他模型之上。WebForm可以被认为它是一个Implementation Pattern,而其他模型是Architecture Pattern。
有了WebForm就丧失了Architecture Pattern的任何特性吗?可以说丝毫没有。
通过观察我发现一个怪现象:如果一个东西上手容易而提升困难,就会被很多开发人员所不齿。如果一个东西上手困难,提高也困难,那些开发人员就会去敬仰它。这一点很多地方都有体现阿。   回复  引用  查看    

#15楼  2007-10-23 16:56 亚历山大同志      

可能主要是老赵对WebForm已经出神入化了,按武侠的说法就是已趋化境,所以......呵呵。
就如我上一篇Post里所阐述的,WebForm,MVC还是什么MVP都不是问题,也都不会是设计上的绝对屏障。只不过是很多人对WebForm下的一些特性比较厌恶,于是绕道了,而老赵同志则是迎着困难上。   回复  引用  查看    

#16楼 [楼主] 2007-10-23 17:44 Klesh Wong      

@Jeffrey Zhao
那其实,各人从事的领域不一样,对技术的选择自然就会有所区别了。若你的项目不需要对职责进行切割,对生成html代码也没什么要求,自然不会觉得麻烦。但对于网站开发来讲,特别是现在如此流行web2.0,你能说在这上面应用webform也不麻烦?总不能让大家跟着你的感觉走吧?
阁下太言重了,鄙人不才又岂敢不齿webform,只是认为如此强悍的东西用在网站开发上不太适合而已。这顶帽子太重了,您真是太客气了。
"如果一个东西上手困难,提高也困难,那些开发人员就会去敬仰它。",却不知MonoRail有那些可以提高的?你实践过了很难?
我觉得MonoRail基本上是个简单的框架,对我而言上手也并不难,运用它我可以快稳准地完成手头上的项目,所以我认为它比webform更适用来做网站开发。因此推荐工作性质跟我差不多的人可以尝试一下,然后它作为一种工具,完全没有敬仰它的必要。
觉得MonoRail上手难的说明基础知识不札实,这可不是MonoRail的错。   回复  引用  查看    

#17楼  2007-10-24 10:31 Pleasure      

顺着文章里面的链接,看来一下MonoRail的Getting Start,感觉上仿佛到了一个Jsp的世界,这还是Asp.net吗?   回复  引用  查看