Asp.net vs JServlepts+

"JServlepts+"是"Jsp + Servlet"的一个拆拼,学习"Tom Marvolo Riddle"=>"Lord of Voldemort",嘻嘻

servlet像个开瓶器,不过切水果极不好用。Sun发现这一点之后就搞了个水果刀jsp专门用来切水果。本以为这样就好了,可惜不久很多人发现水果刀也能凑活用来开汽水瓶,于是他们嫌麻烦就用水果刀开瓶,结果总是弄伤手。

Sun一看这样不行呀就弄出一堆指南“开汽水瓶用开瓶器”、“切水果用水果刀”、“吃饭的时候饮料上来就拿出开瓶器,水果上来就拿出水果刀”,这些写了许多本书(core j2ee pattern,etc)

有些人说这也太麻烦了,就把水果刀、开瓶器组装起来弄成一把“瑞士军刀”(MVC),这样就不会出现手头上没有合适工具的情况,但是这也不能避免误用,而且携带起来也太笨拙了。

M$说你们这也太没有发明创造性了,于是他把开瓶器的两端磨出刃来,说这是个叫WebForm的颠覆性万能工具――其实在M$提出之前很多人都有这个创意了,不过M$从来也没有什么创意,只是在把一个想法实现成一件精美的产品方面,M$无出其右。

好了Asp.net这个东西轻便了很多,而且对于Sun的那一堆指南,asp.net几乎在大多数情况下都能出于本能地对应(事件处理函数对应应用控制器,behind code对应视图助手等等)

虽然个人觉得能在事件处理函数中同时调用Model操作并且控制View控件(只要你愿意那么这些可以以一种OO的方式来进行)绝对是一种进步,但这不能否认asp.net带来的好处使它极为复杂――相对servlet+jsp。比如如果你不搞清楚asp.net的页面生命周期,那么你几乎总会犯错;而对于servlet+jsp来说可能了解http协议的一次响应流程就足够了。所以这可能反而引发更多的误用,特别当M$似乎从不喜欢出一些有条理的指南(相对于一本对知识进行系统描述的书来说MSDN就是一锅粥)或者人们还没总结出有条理指南的时候,这一切尤为明显。

M$,也许你认为身为一个开发人员理应有能力弄清这一切,可反过来说你不是一直在着力让隔离的玛格丽特阿姨来抢大家的饭碗吗?这真是一件奇怪之极的事情。