ASP.NET下难道就非得WebForm不可?

之前发过一篇《混乱的MVC,.NET非要MVC不可么?》的Post,其后纷争不断。又有之前的《为什么要使用MonoRail?》和其后的《MonoRail和WebForm,谁是瑞士军刀》等关于MVC和WebForm的讨论。其实最大的感受就是在.NET社区的人大多比较保守,宁愿跟着党走,WebForm的WebForm,MonoRails的MonoRails,而开源社区的思维就活跃多了,可以说是百花齐放,思维的碰撞使我们能够在其中得到更多的收益,从Struts,到springMVC,从Cocoon到Tapestry,从RoR到django不断的有新的idear冒出来,不断的有新的features。而在.NET社区却还在为选择WebForm还是MVC而伤脑经。且不说企业应用要如何如何,就纯技术的讨论来说也是百花齐放的比一言堂来的让人觉得舒心。为什么.NET老是要啃冷馒头吃剩饭(Nunit,Nhibernate,Nvelocity,N....)而没有一点自己的能够推广到其他的平台去的技术呢?.NET技术是要靠大家来一起推动,不是需要宣传,.NET已经够出名了,我们需要的是思考微软在ASP.NET中留下了很多的HOCK,我们还可以利用来做点什么,Web开发我们还有什么更好的idear没。正如怪怪所说MVC也好,WebForm也罢,都是出来多年的东西了,我们只需要学习,使用。而我们要研究,是如何用更先进的概念去提升他们,或者也许还有一些更新鲜的东西,比如让SmartClient如何摆脱对FramwWork的依赖等。
也许有人会骂我,你娃娃自己都基础不牢靠爬都没学会就想学飞。但是我想提醒一下,学习和研究并不是前后关系,外国的小孩在读小学的时候就开始尝试自己研究历史等东西,交的作业也都是自己完成的研究报告,反过来看中国的小孩可能在小学就会解高阶方程,但是大多数都不会独立的去探索未知的东西。所以造成的结果就是---我们都能看见的,开源社区的项目,我们之前列举的项目,有多少是国内的技术人员提供的呢?这的确是一个很伤自尊心的事情。但是仔细研究会发现,其实这些项目并非使用了什么很高深的技术,而其中的每一行代码我们都能写得出来,但是为什么就没有人去想这么做和去这么做。
如果你是真正热爱.NET技术,热爱编程,而不是只是想用编程的技能来养家糊口得过且过的话,我想你应该会认同我的看法。

接下来的事情就是等着挨骂。

posted on 2007-10-24 13:21 亚历山大同志 阅读(6208) 评论(29)  编辑 收藏 网摘 所属分类: 随笔

评论

#1楼  2007-10-24 13:27 kiler      

其实说白了就是一点,这个东西现在还不是微软的正统的开发方式,不放心。等微软的mvc出来以后,我估计就没有这种争论了。   回复  引用  查看    

#2楼 [楼主] 2007-10-24 13:32 亚历山大同志      

忘了提到Nbear了,希望NBear能越做越好并期待早日出现JNbear   回复  引用  查看    

#3楼  2007-10-24 13:38 henry      

WebForm是个好东西,但要得心应手,控制自如怕没几个人能做得到.
因为在某些情况实在难以控制(有时还不如html+js来得直接),所以根据场合选择应用.
MS的MVC也会看重这一点在其新的框架兼职两者,让使用者根据VIEW的处理情况选择使用.
  回复  引用  查看    

#4楼  2007-10-24 13:40 kiler      

@亚历山大同志

为什么.NET老是要啃冷馒头吃剩饭(Nunit,Nhibernate,Nvelocity,N....)而没有一点自己的能够推广到其他的平台去的技术呢?

冷馒头和剩饭还是要吃的,不然什么都没有,严格的说。net这块发展的好一点的开源基本都和java有关系的,就算是castle都是以前一个java的项目改过来的,说老事话,。net现在还真的只能虚心学习。   回复  引用  查看    

#5楼  2007-10-24 13:42 GSpring      

有道理
不过MS太强势了   回复  引用  查看    

#6楼  2007-10-24 13:49 charleschen      

微软的mvc出来又能怎样,,洗洗早睡吧。
还有2年.net就十岁了。不定微软又出什么了   回复  引用  查看    

#7楼  2007-10-24 13:50 怪怪      

@kiler
你这话有问题, 对于Hibernate这些东西, Java世界的程序员就不需要虚心学习了? 这不是阵营的问题. 要说到冷饭, MVC的冷饭要追踪到20/30年前了. ASP.NET MVC和MonoRail和Ruby有关系, 和Java又有什么关系? 别告诉我Java阵营就没有象别人学习这种被动式MVC的应用, 这回大家都是抄的那些"做网站的菜鸟"的简单玩意. 不是说.NET没有Clone别人, 不过不要一讨论什么, 都要和Java扯上关系, 这会让人怀疑你发言的动机.

话说回来了, WebForm这些微软出的东西就没有Java式的实现? 当年WebService时髦的时候谁最早给出对开发者最容易的实现? 只是MS的实现不是开源的罢了, 但是你不能因为它们是商业软件, 就认为它们不是出自于.NET社区. 没有.NET社区的探索和实践, 微软凭空想像啊?

受到IronPython启发(这个也是开始于社区吧), 现在DLR也出来了, 很多东西也是.NET阵营远远走在前头的, 而且你马上会看到更多, 无论是Linq, 还是VBX, 还是ServerSide JavaScript, 甚至Haskell这样的纯种函数式编程.

Java阵营那点工具式软件, 几十万行代码, 你我都能理解的"问题->解决"的浅显思路, 别人试验了, 拿过来用又能说明什么? Java那边也不乏重头, 比如EJB现在被认为是个失败的东西, .NET不是没抄袭么? 我觉得这恰恰不是劣势, 而是优势.

说实话, 这反而说明Java社区没有真正概念复杂的东西拿出来, 所以被别人Clone太容易. 但有些东西是不同的, 比如C#和.NET, 如果Anders等几个大牛不被微软整个人买下, 会有后来这一切吗? 可能C#就真成了Java Clone了, .NET也变成了纯粹的COM+进化. 被抄袭说明了它有一定用处, 被轻易抄袭, 只能说明它除了是一种新的应用性质的实验, 没有太多技术含量和复杂度.

至于学习, 说难听点, 我等菜鸟, 无论对于什么层次上的东西, 永远要虚心学习, 这和你我搞Java还是搞.NET无关. 倒是LZ说的对, 既然咱们就像Hibernate/Lucene这些东西的作者一样, 都是普通程序员, 关键是咱们的行为要像他们看齐, 毕竟, 这些应用大多都是我们也能实现的, 最后还是一个价值观的问题: 编程对你我是吃饭, 还是有更多的含义在里面?   回复  引用  查看    

#8楼  2007-10-24 14:00 lovecherry      

用什么往往不是一个人能决定的,还需要看团队的整体实力、项目的性质等,难!   回复  引用  查看    

#9楼  2007-10-24 14:11 yet      

总的来说这些MVC框架太大型了。。很多时候不适合自己用。。。。   回复  引用  查看    

#10楼 [楼主] 2007-10-24 14:12 亚历山大同志      

@怪怪
开源社区不是只有java。而java的问题是在于Sun的反应太慢了。

还有一点就是 开源社区的东西容易被抄袭,不是你所以为的
----------------------------------------------------------
只能说明它除了是一种新的应用性质的实验, 没有太多技术含量和复杂度.
----------------------------------------------------------
而是开源社区不会为了实现功能而去改变他的根本,比如如果struts为了实现某个功能而去改变了jre,那么会是怎样?这是开源的挚肘但是恰恰也是开源精神的可贵之处-思想的先进性。
而微软的优势在于掌握了CLR,所有的资源都在微软的掌控之中,他想要LingQ,想要ServerSide JavaScript,基本上都在虚拟机上把文章做足了,并不是说明微软在思想上就多么的前卫先进了。
  回复  引用  查看    

#11楼  2007-10-24 14:22 Jeffrey Zhao      

首先把微软和开源社区对立起来就是不对的,微软没有开源社区?.NET没有开源社区?现在.NET开源已经发展起来了。而且说起来,DLR是抄谁的?Linq是抄谁的?而且把微软和开源进行比较,就好比把个人和集体进行比较,哈,当然是集体的产出多了——这就是比较方法的问题了。   回复  引用  查看    

#12楼 [楼主] 2007-10-24 14:24 亚历山大同志      

@亚历山大同志
微软的最好用的WebService兼容性问题还很多,我做过很长一段时间的ASP系统接口的接入调试,和包括java,.NET,asp,php还有很多古怪的系统之间使用WebService对接的工作,苦不堪言。微软总喜欢在实现里头加点料,害死人   回复  引用  查看    

#13楼 [楼主] 2007-10-24 14:25 亚历山大同志      

@Jeffrey Zhao
微软向开源社区靠拢是好事,所谓集思广益,我所关心的是既然微软本身都在开拓思路,而我们也不能光靠微软给我把路铺好了然后再去无止境的学习吧   回复  引用  查看    

#14楼  2007-10-24 14:30 怪怪      

@亚历山大同志
这是一样的, 虽然不能改变JRE, 但是可以另起炉灶. 只是光以Struts一个团队来说, 不具备这样的能力. 这是他们的东西只能停留在表面层次的根本原因. 而不是优点. 我更希望的是百花齐放, 然后自然淘汰掉那些不好的; 而不是因为这样那样的原因做不出来, 还美其名曰统一和兼容, Vista甚至和Windows 3.1还能兼容, 何况程序开发框架还允许程序员更换框架后进行代码重构和升级呢.

微软不是说多么前卫和先进, 但是从开发技术的角度来讲, .NET社区也从来不是落后的. 其实说实在的, 对于我个人来说, 随时转到别的阵营也不会成太大问题, 也不用面对甚至延续到现实生活中的Java vs .NET, Windows vs Linux这些争吵. 但即使换到其它社区, 我的思想感情发生了变化, 我也不能小看无论是微软还是.NET社区.

我为什么留在.NET社区, 有几点:
1. 看Sun/IBM这些公司不顺眼, 而微软孤军奋战的英雄气概让我觉得爽, 无论它在作战时手段如何. 再加上我说的, 微软这么下去, 只有两种可能性: 被群殴致死; 把最基础的事情都做完了, 退出历史舞台; 或者变成下一个IBM. 总而言之, 在我看来, 微软的命运注定是悲剧性的和贡献式的, 将来总有一天大多数骂微软的人会发现, 微软给软件行业留下的财富, 比它那些竞争对手要多的多.

2. 微软是一家平民公司. Wintel联盟总是更多的让技术平民化, 让计算能力和应用能力更多的普及到最普通民众, 甚至希望老大妈都能掌握. 而不是象其它公司, 总有一种豪门大宅养着一群皇家骑士的感觉. 虽然微软做为一家大公司, 照样有大公司的操行, 但本质是不同的. 这和廉价无关. 比如AMD, 虽然民用芯片更便宜, 但实际上他们的策略永远是挤进豪门大宅. RedHat这些搞Linux中小公司也是这样, 一群奴才相.

3. 微软的东西, 最差也凑合能用, 好的, 就绝对没有对手. 比如Macromedia和Adobe, Flash搞了那么多年, 还是一个破烂货. 2进制自有格式, 耗资源太大又不充分利用硬件, BUG那么多, 频繁导致浏览器死机. Sun的Applet又怎么样不用我说了吧? SilverLight的理念先进吗? 按照你标准不先进. 但是在几家商业公司之中, 已经是最好的了. 现在它SL唯一的敌人, 就是市场, 除非在SL打败市场和用户习惯之前, Adobe让Flash重新站起来, 否则只有败亡的结局.

对于这样一家公司, 我不知道我还能有什么可求的, 他没做的, 做的不是我想要的形式的, 我自己搞定呗.   回复  引用  查看    

#15楼  2007-10-24 14:31 Klesh Wong      

介不介意把
MonoRails 改回 MonoRail
Idear 改回 Idea
HOCK 应该是 HACK 吧?
冒犯了   回复  引用  查看    

#16楼 [楼主] 2007-10-24 14:32 亚历山大同志      

@Klesh Wong
经常打错字,不好意思   回复  引用  查看    

#17楼  2007-10-24 15:02 Klesh Wong      

@怪怪
哈哈,兄台可谓感情丰富。人生不如意十有八九吧?
当然每个人阅历不同,立场不同对事物的观点自然就不同。
当然你也可能特别倾向于某个特定的公司。
但若只是基于这种特别感情就否则一切的其它则不科学了吧,牵涉到人各有好的问题彼此是很难说服对方接受自己的观点的。   回复  引用  查看    

#18楼 [楼主] 2007-10-24 15:28 亚历山大同志      

@Klesh Wong

我主要是看大家都熄火了所以发个靶子出来大家轰一轰   回复  引用  查看    

#19楼  2007-10-24 15:53 橘子&猪      

@Jeffrey Zhao

老赵,我倒是觉得有必要把MS和开源阵营对立一下.
MS太强势了.换句话说太霸道了.什么东西都要自己经手.不利于开源项目的发展.
看看Castle Team给MS MVC Team的公开信,多少感觉到他们的不满.和鄙夷.   回复  引用  查看    

#20楼  2007-10-24 19:51 伍迷      

@怪怪
同意,微软不管人家如何骂它,它对整个软件业的贡献是无人可比的。单就开发平台和开语言来讲,很难想像,没有VB,没有ASP,没有VC++6,没有.net,世间的开发人员会少多少?就更不要说,Windows、Office等更加大众化的软件。   回复  引用  查看    

#21楼  2007-10-24 19:51 韩现龙      

亚历山大,把你的MSN给我发一个呗。   回复  引用  查看    

#22楼 [楼主] 2007-10-24 21:42 亚历山大同志      

@伍迷
就事论事,微软确实干了很多恶心人的事情,当然并不是说IBM,Sun之流就没恶心过人,甚至有的时候更恶心。但是,人家弄ORM,他就来个Linq,别人利用Hock实现了MVC,他也来个MVC,那不是给之前大谈的MVP自扇耳光,还是微软自己都没搞清楚Web编程模型该怎么做,还是对WPF没有信心呢?对这点恶心的事情发点牢骚并不是否定了微软在业界的正面影响力,不能因为表扬了别人送老奶奶过马路就不能批评他随便吐痰,道理都是一样的,java开源社区的一样在骂Sun如何如何恶心,大家都知道怎么回事。
所谓爱之深恨之切,对微软的善意批评绝不是对微软公司不好的事情。   回复  引用  查看    

#23楼  2007-10-24 21:44 昊子      

--引用--------------------------------------------------
橘子&猪: @Jeffrey Zhao

MS太强势了.换句话说太霸道了.什么东西都要自己经手.不利于开源项目的发展.
--------------------------------------------------------
有道理,

但是说.net开源项目少也不公道,看看codeplex里面的.net项目有多少,有几个是我们知道的。

学习总是要的,而且永远都不够,各自努力吧   回复  引用  查看    

#24楼  2007-10-24 22:44 怪怪      

@Klesh Wong
我从来不否认哪个公司, 从本质上讲他们都是一样的. 但是从历史来讲, 是MS/Intel/Compaq而不是Apple打破了IBM对计算机行业的垄断性质的影响力, 是MS而不是Sun/IBM打破了Apple对于图形界面的垄断. 在咱们中国人的角度, 他们的东西都贵, 但是实际上MS永远是最廉价的, 最平民化的. 即使今天的MS象一个独裁者, 它也更多的像一个亲民的独裁者; 而不是那些嘴上全是仁义道德, 背后互相算计的那帮子寡头.

微软无论干什么, 只要是对技术普及的好处大于坏处, 我都不认为有什么道德问题. 哪怕有一天微软对一些中小组织的摧残毁掉了我自己的事业. 我不信仰微软, 我只信仰信息的组织和流通,与信息技术的普及, 只要对这个目标有好处, 毁一两个ORM开源组织, 毁一两个MVC框架作者算什么, 如果我成了牺牲者, 我的东西提醒了微软该怎么做, 那我还是有价值的人; 如果微软的成功没有我的血, 那么只能说我找错了方向或者是个废物; 当然, 如果总是能比微软这样的巨无霸做的好, 那是每一个技术从业者都希望然而可遇不可求的. 技术的平民化, 信息的普及, 就是我眼里最大的道德.

这个嘛, 为什么我这么想, 可能我是个怪人吧.

@亚历山大同志
Linq上我不认同, Linq对于一般人和一般情况来说, 远比一般ORM框架好用, 而且Linq的很多新特性的意义也远大于ORM. 你不能说这是因为微软掌握着Windows平台.NET底层更改的全部权利. 你没有Novell那样甚至更大的实力, 就注定你只能做这些事, 然后安静的死去. 毕竟这些东西不是专利, 美国人也不是傻子. 当我们听到这样那样的言论的时候, 我们要想一想, 这些声音是一个小小的IT业的角度, 还是整个社会的角度.

如果某小组织搞了ORM这样的东西, 微软就只能乖乖避开这个领域或者交专利费, 更适合美国软件业的发展, 从而促进美国社会的进步, 那美国会更改它们的制度的. 美国是这个世界上最保护和最鼓励真正意义上的创新的国家, 在对MS这种行为的反映上, 我觉得更多的是要这么理解: 即对于这种并非真正意义上创新的东西, 美国社会对改进的支持大于对小型竞争者组织的保护. 这里头必然有他的道理.

对于Web, 我赞同你的说法, 微软绝对没想好Web编程模型到底是什么样. 但至于MVC框架, 牵扯不到什么WPF, 也跟MVP没关系. MVP和ASP.NET MVC, 这些对微软来说举手之劳的小框架, 解决的问题根本不同..., 而WPF就又是另外一个故事了..

另外, 我是上了你的当, 被引蛇出洞了.. -___-   回复  引用  查看    

#25楼  2007-10-25 06:42 金色海洋(jyk)      

好多回复呀,高手就是高手!


我是一个实用派,我只注重是否实用,其他的不管,当然还有效率。


应该好好利用一下asp.net自己的东东,

比如用户控件(*.ascx文件),

服务器控件,

代码后置,

ADO.NET等等。




不要生搬硬套 java里的东东,是套过来了但是自己的特点都没有了。


  回复  引用  查看    

#26楼 [楼主] 2007-10-25 08:50 亚历山大同志      

@怪怪
博客园就是大家吐水的地方,发言要积极撒,不然大家都潜水就不好玩了   回复  引用  查看    

#27楼  2007-10-25 12:46 老刀把子      

不管怎么,觉得MS能把window 的一些开发模式和理念,搬到web上来就是很大的创新,更接近人的习惯思维方式。
特别是它的事件触发机制和代理,可以很方便地进行页面和控件之间的交互,而不必把过多精力花在如何交互的细节上。
想想以前在servlet时,要分别在doGet,doPost 写东西 真的是噩梦。
structs 用过一下,但不知道它是否也有类似的事件触发和代理机制。
只是觉得每次加个页面都要改xml配置文件特别麻烦,跳转的时候也要特别折腾一下。
像我这种从windows过来,一个table老半天也摆不整齐,又要用 out.println 生成页面的人,webform 真的是个好东西。
  回复  引用  查看    

#28楼  2007-10-25 14:53 钢钢      

@怪怪
师傅,好久不见啊
大概现在微软太强大了,所以木秀于林,风必摧之吧。呵呵^-^
-----------------------------
微软这么下去, 只有两种可能性: 被群殴致死; 把最基础的事情都做完了, 退出历史舞台; 或者变成下一个IBM. 总而言之, 在我看来, 微软的命运注定是悲剧性的和贡献式的, 将来总有一天大多数骂微软的人会发现, 微软给软件行业留下的财富, 比它那些竞争对手要多的多.
-----------------------------
看了这段话,让我想起了三国里面的诸葛亮,蜀国的兴亡
兴也孔明,灭也孔明   回复  引用  查看    

#29楼  2007-11-08 15:18       

感觉中国的地域差异很大,导致人的思想差异很大,有些人思想天生好像比较保守。   回复  引用  查看    

导航

公告

鉴于很多TX投诉黑色背景杀伤眼球,遂换个容易阅读的
<2007年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

统计

与我联系

搜索

 

常用链接

留言簿(30)

我参加的小组

我的标签

随笔分类(84)

随笔档案(83)

相册

朋友的Blog

同事的Blog

最新随笔

积分与排名

最新评论

阅读排行榜

评论排行榜