2007-01-03
web framework选型的困惑
关键字: web framework
困惑的来由:
一直在用struts开发,虽然对struts进行了封装和改进,并使用其动态formbean,但是,还是有狂多的配置文件,狂多的jsp,狂多的action,太多的机械性重复,页面不可以复用,action也不可以复用,我受够了。
以前在C/S结构里,一个界面可以完成许多按钮动作,但是现在,却不得不一个按钮对应一个动作、一个界面,真是折腾人。
所以,我决定做出改变,从而提出理想的web framework的两个基本标准:
其一:组件化,能抽象出几个form,比如单记录form,主从记录form,查询form等
其二:异步处理,天然的异步交换,拒绝不停的刷新页面。
按第一个标准,就只有jsf和Tapestry可以选择,按第二个标准,就没有了。
后来考虑用dwr+qooxdoo+freemark,但是去网上一搜,发现大家都用得灰心丧气的,不但没有减轻开发,反而增加了很多麻烦。听说gwt不错,一看到它是从服务器端生成js代码,类似RPC之类的调用,我就没兴趣了。
想来想去,又回到mvc,在struts 2和webwork之间逗来逗去,struts 2要实现0配置还需要一段时间,要实现类似jsf和Tapestry那种组件化的计划都没有。
唉,我都不知道该如何办才好。
一直在用struts开发,虽然对struts进行了封装和改进,并使用其动态formbean,但是,还是有狂多的配置文件,狂多的jsp,狂多的action,太多的机械性重复,页面不可以复用,action也不可以复用,我受够了。
以前在C/S结构里,一个界面可以完成许多按钮动作,但是现在,却不得不一个按钮对应一个动作、一个界面,真是折腾人。
所以,我决定做出改变,从而提出理想的web framework的两个基本标准:
其一:组件化,能抽象出几个form,比如单记录form,主从记录form,查询form等
其二:异步处理,天然的异步交换,拒绝不停的刷新页面。
按第一个标准,就只有jsf和Tapestry可以选择,按第二个标准,就没有了。
后来考虑用dwr+qooxdoo+freemark,但是去网上一搜,发现大家都用得灰心丧气的,不但没有减轻开发,反而增加了很多麻烦。听说gwt不错,一看到它是从服务器端生成js代码,类似RPC之类的调用,我就没兴趣了。
想来想去,又回到mvc,在struts 2和webwork之间逗来逗去,struts 2要实现0配置还需要一段时间,要实现类似jsf和Tapestry那种组件化的计划都没有。
唉,我都不知道该如何办才好。
评论
zzsczz
2007-01-08
0 jsp
标签库 资源多多啊;可以预编译;wtp对jsp的编辑支持不错;不使用预编译就可以热部署,但第一次编译花时间多多。
属于一次编写处处调试的;如果没设计工具支持而且一个人做就很痛苦;就算有美工,美工也很痛苦。
1 struts 1 + tiles
这个是标杆。如果单干的话 view换成velocity会提高开发效率,像坛子里说的velocity指令和脚本写入html注释可以用可视化HTML工具编辑vm模板。
2 webwork2 + sitemesh
比上一个要进步,减少很多累赘比如actionform。测试简单。以后改名成struts 2。
webwork和struts需要xdoclet 生成配置文件来提高开发效率、减少出错机会。
3 tapestry
我正在玩版本4。组件式开发。使用组件非常简单。设计组件就要深入研究
除了文档数量,一切都满意
至于单元测试和javascript嘛,组件使用者不必管。
标签库 资源多多啊;可以预编译;wtp对jsp的编辑支持不错;不使用预编译就可以热部署,但第一次编译花时间多多。
属于一次编写处处调试的;如果没设计工具支持而且一个人做就很痛苦;就算有美工,美工也很痛苦。
1 struts 1 + tiles
这个是标杆。如果单干的话 view换成velocity会提高开发效率,像坛子里说的velocity指令和脚本写入html注释可以用可视化HTML工具编辑vm模板。
2 webwork2 + sitemesh
比上一个要进步,减少很多累赘比如actionform。测试简单。以后改名成struts 2。
webwork和struts需要xdoclet 生成配置文件来提高开发效率、减少出错机会。
3 tapestry
我正在玩版本4。组件式开发。使用组件非常简单。设计组件就要深入研究
除了文档数量,一切都满意
至于单元测试和javascript嘛,组件使用者不必管。
ahuaxuan
2007-01-08
这个智能化的action servlet我确实不太清楚,如果你很清楚的话不防写出来大家共享一下,我也想看看能智能到什么程度,现在一点概念也没有,ror一点都没有看过
netfly
2007-01-07
引用
action和service的职责是不一样的,怎么能混为一谈呢,action主要是负责控制,service是业务计算的地方,应该分开的
理解错了,或者是我表达错了,action主要是负责控制,service是负责业务,这个我清楚。
控制器有一个智能化的action servlet就够了,至于请求前从哪里来,请求后到哪里去,不必要用一个一个的action去做,能象RoR那样智能处理就行了。那么多个action,每个action都很简单的,完全可以抽象处理,用一个通用的东西处理掉,而不是什么继承dispatchAction,去一次又一次做请求前从哪里来,请求后到哪里去的重复工作。
struts 2.0.2已经开始解决这个问题了,这个我更清楚。
ahuaxuan
2007-01-07
action和service的职责是不一样的,怎么能混为一谈呢,action主要是负责控制,service是业务计算的地方,应该分开的
netfly
2007-01-07
引用
不同意这一个种说法;
如果让你页面直接调用业务层的东西,你乐意吗?也不太清楚netfly自身是怎样看待MVC的..
如果让你页面直接调用业务层的东西,你乐意吗?也不太清楚netfly自身是怎样看待MVC的..
有个智能的actionServlet做control就行了,没必要写那么多没有什么作用的actoin,几乎是service方法的拷贝。
lighter
2007-01-07
netfly 写道
因为具体的service方法已经能处理各种具体的业务了,struts硬生生的加入了n多个action,去调用相关service方法,而实际应用中几乎所有的业务逻辑都用service实现,action还有什么用?
不同意这一个种说法;
如果让你页面直接调用业务层的东西,你乐意吗?也不太清楚netfly自身是怎样看待MVC的..
netfly
2007-01-07
引用
现在可以使用lazyform了,1。2。7之后的版本都是可以使用的,这样可以少配置点struts-config文件了,而且页面元素改了也不需要改struts-config,而action的重用需要继承dispatchAction,页面的重用可以使用tiles和sitemesh,这些都不是问题哦
因为具体的service方法已经能处理各种具体的业务了,struts硬生生的加入了n多个action,去调用相关service方法,而实际应用中几乎所有的业务逻辑都用service实现,action还有什么用?我看了springside对ation的封装,感觉应用起来还是需要写大量的ation,毕竟具体的业务不是简单的CRUD。
tiles和sitemesh就是把页面像瓷瓦一样拼起来,tiles是一个页面一个页面地配置,sitemesh可以一次配置一大堆。而我想,更好的方式是采用动态生成页面,整个系统的页面可以根据模板动态生成,这样才能真正达到简化重复工作的效果。
ahuaxuan
2007-01-07
引用
netfly 写道
困惑的来由:
一直在用struts开发,虽然对struts进行了封装和改进,并使用其动态formbean,但是,还是有狂多的配置文件,狂多的jsp,狂多的action,太多的机械性重复,页面不可以复用,action也不可以复用,我受够了。
困惑的来由:
一直在用struts开发,虽然对struts进行了封装和改进,并使用其动态formbean,但是,还是有狂多的配置文件,狂多的jsp,狂多的action,太多的机械性重复,页面不可以复用,action也不可以复用,我受够了。
现在可以使用lazyform了,1。2。7之后的版本都是可以使用的,这样可以少配置点struts-config文件了,而且页面元素改了也不需要改struts-config,而action的重用需要继承dispatchAction,页面的重用可以使用tiles和sitemesh,这些都不是问题哦
CosmicWind
2007-01-07
netfly 写道
困惑的来由:
一直在用struts开发,虽然对struts进行了封装和改进,并使用其动态formbean,但是,还是有狂多的配置文件,狂多的jsp,狂多的action,太多的机械性重复,页面不可以复用,action也不可以复用,我受够了。
一直在用struts开发,虽然对struts进行了封装和改进,并使用其动态formbean,但是,还是有狂多的配置文件,狂多的jsp,狂多的action,太多的机械性重复,页面不可以复用,action也不可以复用,我受够了。
对于Struts里的jsp不能复用问题,我觉得Struts里的tiles应该可以解决复用的问题吧。
netfly
2007-01-06
引用
其实你的framework需求也一样,明明是最基本的桌面应用,可大家偏要在WEB下实现,好了,您慢慢来吧,
我相信总有一天会做好的。只不过,还请大家不要一条路跑到底,有时间,也抬头看一下,看一看GOOGLE EARTH是如何实现的,再想想MS的SMART CLIENT的概念。
我相信总有一天会做好的。只不过,还请大家不要一条路跑到底,有时间,也抬头看一下,看一看GOOGLE EARTH是如何实现的,再想想MS的SMART CLIENT的概念。
哈哈,说中要害了,我的两个标准就是目前web开发面临的困境,谁能完全的满足这两个标准,谁就能成为下一代web开发的王者。GOOGLE EARTH和gmail我都看过,的确很棒,只是用来做企业管理系统的开发,心中没底。
手机就不同了,那些技术都很成熟了,而且我的要求实现不难,相信大部分人也都有我这种需求,关键还是需求分析没有做到位。
rtdb
2007-01-06
netfly 写道
这世界到底怎么了!
mp3?我有专门的mp3,要它干嘛?
拍照?我有DV,呵呵,手机拍照,效果惨不忍睹,能跟DV比吗?
游戏?pc、node我都有,换xbox倒有点兴趣,在手机上玩游戏,太小儿科了。
可是我去市场上一问,发现能满足我这三个基本功能几乎没有,哦,天哪,这些手机厂商都干什么去了?最基本的功能都做不好?
可现实就是这样,我选个web framework,也就两条标准,没想到也那么难找!
mp3?我有专门的mp3,要它干嘛?
拍照?我有DV,呵呵,手机拍照,效果惨不忍睹,能跟DV比吗?
游戏?pc、node我都有,换xbox倒有点兴趣,在手机上玩游戏,太小儿科了。
可是我去市场上一问,发现能满足我这三个基本功能几乎没有,哦,天哪,这些手机厂商都干什么去了?最基本的功能都做不好?
可现实就是这样,我选个web framework,也就两条标准,没想到也那么难找!
手机的原因很简单,手机人手需要一个,可是同时再拿个MP3,DV和GAMEBOY就太夸张了,所以集成是必然之路,也是手机厂商的突破方向。按这个方向发展,过两年MP3和DC的市场还真不乐观,完全有可能被手机通吃了,就象收音机和BP机一样。
其实你的framework需求也一样,明明是最基本的桌面应用,可大家偏要在WEB下实现,好了,您慢慢来吧,
我相信总有一天会做好的。只不过,还请大家不要一条路跑到底,有时间,也抬头看一下,看一看GOOGLE EARTH是如何实现的,再想想MS的SMART CLIENT的概念。
wl95421
2007-01-06
以手机为例,不是没有做需求,而是说对于大部分人而言,这些功能并不重要,不必为此花钱,对于95%的人,如果让他们为使用不到的功能付出双倍的价钱,手机市场可能就让位给其它厂家了!所以说他们不是没有做需求,而是有需求定位,象你的手机要求,一个PDA手机就满足了,所以PDA手机是你的需求。象philps的手机,待机时间很长,但是在同等价位时,它的功能就少一些,因为它的定位不一样。
所以Web Framework也是一样,只不过它的重点不是功能,而是扩展性,毕竟手机不容易扩展,而程序相对容易。
所以选择Web Framework有两点:一是易用性,也就是它的学习曲线;二是它的扩展性。
个人浅见。
所以Web Framework也是一样,只不过它的重点不是功能,而是扩展性,毕竟手机不容易扩展,而程序相对容易。
所以选择Web Framework有两点:一是易用性,也就是它的学习曲线;二是它的扩展性。
个人浅见。
netfly
2007-01-06
衷心感谢各位的指点,让我看清楚了方向,我先试试Wicket。
netfly
2007-01-06
wl95421 写道
不是没有框架可选
而是因为可选的太多
象Wicket,Tapestry,Echo2都可以满足要求
只不过就看个人的喜好了
就象手机一样
你要的功能其实许多手机厂商都有
只不过要看你怎么选择了还有价钱的问题了
而是因为可选的太多
象Wicket,Tapestry,Echo2都可以满足要求
只不过就看个人的喜好了
就象手机一样
你要的功能其实许多手机厂商都有
只不过要看你怎么选择了还有价钱的问题了
绝大多数手机只能说实现了我的部分基本要求,比如有自动关机但没有自动开机,有分时段闹钟却还要人工干预一下。
web framework也一样,绝大多数都只能满足其中一点。
真是搞不懂,这些都是最基本的需求呀,在设计之前就应该解决的问题呀,为什么会有那么多的产品都无法做到,真不知道那些需求分析是怎么做出来的?
wl95421
2007-01-06
我仍然推荐Wicket而不是ROR
可能是因为我个人的偏见,我觉得ROR的生命力不会很强
对于一般的系统可能很好用,但是如果深入一些内容,可能会有些力不从心
一家之言
可能是因为我个人的偏见,我觉得ROR的生命力不会很强
对于一般的系统可能很好用,但是如果深入一些内容,可能会有些力不从心
一家之言
netfly
2007-01-05
lighter 写道
netfly 写道
可现实就是这样,我选个web framework,也就两条标准,没想到也那么难找!
不知道你是为负责的项目选框架啊,还是自己想选定一个框架当作学习东搞西搞一点东西出来?
如果是后者,我自己的话会选择RoR。
我负责的项目已经ok了,是典型的SSI(ibatis),开发中发现struts太多的不足,甚至是bug,所以想为未来的项目先做个规划,RoR,下一个计划就是它了!
wl95421
2007-01-05
不是没有框架可选
而是因为可选的太多
象Wicket,Tapestry,Echo2都可以满足要求
只不过就看个人的喜好了
就象手机一样
你要的功能其实许多手机厂商都有
只不过要看你怎么选择了还有价钱的问题了
而是因为可选的太多
象Wicket,Tapestry,Echo2都可以满足要求
只不过就看个人的喜好了
就象手机一样
你要的功能其实许多手机厂商都有
只不过要看你怎么选择了还有价钱的问题了
lighter
2007-01-05
netfly 写道
可现实就是这样,我选个web framework,也就两条标准,没想到也那么难找!
不知道你是为负责的项目选框架啊,还是自己想选定一个框架当作学习东搞西搞一点东西出来?
如果是后者,我自己的话会选择RoR。
netfly
2007-01-05
这世界到底怎么了!
手机服务6年了,该换了,于是我确立了买手机的三个基本标准:
1.自动开机、自动关机,我太懒,经常忘记了开关机,所以希望新手机能自己照顾好自己;
2.智能闹钟,上班时间和周末能设不同时间段,把自己从睡梦中给闹起来,当然,闹完也不要管,第二天会接着闹。
3.待机时间要长,我的电话不多不少,一个月充一次最好了,但至少得一个星期吧。
mp3?我有专门的mp3,要它干嘛?
拍照?我有DV,呵呵,手机拍照,效果惨不忍睹,能跟DV比吗?
游戏?pc、node我都有,换xbox倒有点兴趣,在手机上玩游戏,太小儿科了。
可是我去市场上一问,发现能满足我这三个基本功能几乎没有,哦,天哪,这些手机厂商都干什么去了?最基本的功能都做不好?
可现实就是这样,我选个web framework,也就两条标准,没想到也那么难找!
手机服务6年了,该换了,于是我确立了买手机的三个基本标准:
1.自动开机、自动关机,我太懒,经常忘记了开关机,所以希望新手机能自己照顾好自己;
2.智能闹钟,上班时间和周末能设不同时间段,把自己从睡梦中给闹起来,当然,闹完也不要管,第二天会接着闹。
3.待机时间要长,我的电话不多不少,一个月充一次最好了,但至少得一个星期吧。
mp3?我有专门的mp3,要它干嘛?
拍照?我有DV,呵呵,手机拍照,效果惨不忍睹,能跟DV比吗?
游戏?pc、node我都有,换xbox倒有点兴趣,在手机上玩游戏,太小儿科了。
可是我去市场上一问,发现能满足我这三个基本功能几乎没有,哦,天哪,这些手机厂商都干什么去了?最基本的功能都做不好?
可现实就是这样,我选个web framework,也就两条标准,没想到也那么难找!
karna
2007-01-05
自己写一个,想怎么爽就怎么爽
- 浏览: 61262 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
最近加入圈子
链接
最新评论
-
让Eclipse拖着myeclipse ...
不錯,Eclipse3.3會好很多
-- by wenson -
Yale CAS最佳实践 --全部
引用能否再介绍一下这种解决方案呢 修改edu.yale.its.tp.cas. ...
-- by netfly -
Yale CAS最佳实践 --全部
太复杂了,看不明白!
-- by Arden -
Yale CAS最佳实践 --全部
netfly 写道呵呵,最近从网上查到一点资料,完全不必要再改C:\WINDOW ...
-- by juliashine -
Yale CAS最佳实践 --全部
哈哈,本人欢迎任何朋友转载,只要保留出处就行。
-- by netfly






评论排行榜