以前一直在用jsp,什么struts,hibernate都搞过,自己也开发过一个类似struts,但是又比之简单易用(当然功能也不够多,够用就行了)的,用在很多的项目上,有一定的作用,自此也迷上了java带来的海阔天空的感觉,你可以自由的发挥,用各种各样的设计模式来提升你的开发,简化你的工作,减少工作量。
但是做了几个项目,发现jsp在做客户端方面,总是不够好,我总是幻想有一天,写b/s程序可以和写c/s程序一样,用rad工具拖拖拉拉,然后写代码,jsf出来了,好像有这么一点意思,但是还不成熟,并且缺乏ide的有效支持,据我所知,只有ibm的websphere studio application developer 5.1以上才支持,但是这个东东太耗资源了,忍痛舍弃。。。。。。
这时候,恰逢.net甚嚣尘上,这段时间就在看.net,发现.net在做客户端方面很强大,跟微软的一些软件产品如excel/word等交互也比较容易,也可以用上一些设计模式了提高工作效率,但是,不知道是由于我是从java阵营中转过来的原因,还是对原来asp的坏印象作祟,我总觉得asp.net在某些方面跟java还是有差距的:
1。对于整个web模型,我觉得ms一开始就没有考虑到可能会采取的一些分层开发,所以有些东西支持的不好,最明显的莫过于在session/request/response的设计了,本来我以为.net会参考java的一些东西来改进这些本来在asp中比较失败的部分,但是我发现,基本上还是asp那些东西,比如,我的页面的东西交给后台的业务逻辑层去做处理,完成后,我想将返回结果写到response中,然后在页面对应的class中,从response取出这些数据,展现出来,这样有利于进行分层,和松耦合设计,但是在.net中(我用C#),response无法将数据传回到页面,我查了一下msdn,发现只有用cookie才能完成传递key-value的这样一些功能,但是天哪!cookie?我受不了了,如果客户端禁用cookie呢?而且安全性呢?
2。在O/R Mapping方面,在java有很多开源的框架,如hibernate就是其中的佼佼者,当然,在.net中,也有一个nhibernate(请注意名字,不用说是参考java的hibernate做的),目前还没怎么使用,不好评论,但是从网上的反映来看,还是不怎么成熟。
上面只是一点个人学习的认识,由于接触.net不久,也不知道对不对。
最大的希望是在新版本的.net框架中,对session/request/response作更好的改进,同时也希望.net的第三方开发框架快点成熟起来,呵呵,那样我们就有福了。 |
|