Microsoft ASP.NET学习笔记(1)我眼中的ASP.NET
以前一直用的Java, J2EE平台,现在因为课题需要初学了一下ASP.NET,小谈一下二者做WEB开发的体会。
都说.NET做WEB开发效率高,我的体会就是MS的东西用着就是方便,一个控件放上去,设几个属性,填几个事件,写几个SQL,就成了,觉得这种模式跟原来ASP的那个代码运行起来效率差不多,就是多了点图形界面,吸引了不少编程初学者。基本上这种模式做出来的程序没用到什么数据层、逻辑层、表现层。数据层没用数据库连接池,逻辑层没用BEAN来操作,表现层也不一定用了AJAX,最近MS宣传的MVC Framework不知道是什么结构,应该在这些层面都有改进吧,不过麻烦的是还要去研究一下这个框架,估计不少人为图省事都不去深究它吧,即使是开源的估计也没多少人会去改它吧,能用熟就不错了,最好的运气,就是没在你用熟前MS把它给更新换代了;MS也搞了AJAX,从Atlas,UpdatePanel到ASP.NET AJAX Toolkit/Library,组件封装的那叫一个好,效果那叫一个炫,但你要想实现点它没提到的效果,你就得学DOM,学JQuery,理解微软的一大堆Behavior,Extender概念,做自己的组件,难度也不小吧。
不过,J2EE的那些Hibernate, Spring, Struts, JSF的也够折磨人的,除了这些主流的还有一大堆非主流的框架估计初学者都分不清重点。这些Java派的组件框架缺图形界面不说,配置文件一大堆,概念更庞大,还挺容易出错,即是用了Eclipse, BEA workshop一类的,效率也高不到哪儿去,编译运行时候就得学会慢慢欣赏硬盘嘎吱的美妙旋律了,有人喜欢把这些组件框架什么的都挂上,然后改句代码就看看效果,每次都要经历漫长的编译开网页的折磨,但也有人乐此不疲。倒是听说Ruby on Rails, Groovy, Grails一类的东西把这些东东都整合了,效率高10倍,不过身边研究的人少,也没仔细用过。框架一大堆,估计懂得原理的人很少,会炒概念的人很多,一个小网上商城据说能用上七八个流行框架,结果运行效率高不到哪儿去,还把开发者累得够呛。.net最近也开始整框架了,有人就把好好的viewstate抛弃弄了MVC出来确不作页面保持。Java平台的框架从本质上来说比.net成熟很多,也给了我很多透过看到底层和原理的机会,这是.net的高效开发很难体会到的,当然不可滥用。
最后聊点单机程序和Web开发的问题。以前编单机程序时候的时候,不用log而想停哪步停哪步,想看哪个变量看哪个变量,界面上想拽什么元件拽什么元件,现在Web开发,看log得想想放到界面上IDE里还是控制台上,忘了加log就得重新再来,界面上放个组件运气好点不会变形,运气不好可能IDE不支持给你来个乱码或错误。Web开发的世界里,MS那一套虽然也没做到像做单机程序一样好,但至少路子是对的,效率高吗。不过也别想总是好用,不然简单方法对付不了的该看代码还得看代码,代码庞大了运行效率不高了该分层还是得分层。
总之,要学习Java平台的开放性,学习.NET的高效性,别被名词和概念忽悠,别被框架牵着走。