比较一下Struts,Turbine,Avalon,Maverick 的优缺点


正在选择一种framework,能否比较一下Struts,Turbine,Avalon,Maverick 的优缺点?

就没有人发表一下高见吗?其中某一个也行

Struts是关于jsp的,目前用得多。
Turbine就不只是jsp的模板了,我看也没看,有一个Jsp对付应用就可以了,要那么多模板技术干什么?Jarkata的很多项目还拼命贴上Turbine,比如JetSpeed,jarkata的很多项目都是纯Web结构的,做做网站还可以,搞ERP或无线应用就都不行了,这些应用中EJB以及肥客户端等技术都是主要的。

Avalon好像是一个Web下的框架,Web下都是javabeans,不需要考虑远程分布式,不需要考虑事务机制,因此想怎么玩就怎么玩,结果玩得很复杂,只有他们自己看得懂复杂的源代码,这样的源代码类似Petstroe只能作为研习,不能作为实战参考。

最要命的是,你一旦钻进一个Jarkata项目,没有一段时间你出不来,浪费时间和精力啊,所以建议你对Jarkata的开源项目不要过多重视,他们的项目大都已经偏向平台性,不是实战应用型,而平台型的东西是要立标准的,立标准的事就要看Sun公司和java社区,Jarkata经常自说自话立自己的标准,试图建立标准,这很乱,不好。

我的建议相反,应该非常关注Jarkata的项目,作用如下:
1,项目很多,大部分的项目都是有针对性的,你需要有个概括性的了解,知道它们涵盖了那些方面,进展情况。进一步,根据自己的情况选择合适的应用,深入学习。学习有两层含义,一层是学习使用,一层是学习源码。对于开发一般项目你只要学习使用就足够了,而Jarkata为你提供了最基本的文档,而且有一些项目本身就是使用其他项目很好的例子,这时,你就要看源码了。
2,对于你要开发的项目,你需要自己设计框架时,Jarkata更是一个很好的样板,尤其是Avalon,建议好好看看。决不是一个简单的web框架。但却是会有让人掉进去的感觉,关键在于你的目标是什么,如果想学习写框架,你还真要掉进去才能学到精髓。

对于项目的开发,尤其是希望采用一些开源的东西时,寻找合适的例子,这些例子本身不是Jarkata的,但都是Jarkata和其他一些常用开源的组合。通过学习和训练,形成自己一套组合。这也是DIY:)

提到erp,对于基于瘦客户端部分的,还是需要这些项目的,尤其是对客户端要求高的,可能struts就不如Turbine好用了。而且除了框架和服务,还有很多工具帮助你开发,比如ant,Cactus等。

当然,一个项目的开发会涉及很多方面的技术,Jarkata只能为你提供部分的帮助,解决不了全部问题。对于关注它的力度,就要自己平衡了。
这些框架的选择是和你的项目有关的,也和你们的技术积累有关的。
就上手容易度来讲,Struts应该是最快的,资料也最多。

>
> 正在选择一种framework,能否比较一下Struts,Turbine,Avalo
> ,Maverick 的优缺点?


市面上还有 webwork 据说也不错,我只用过 struts 和 maverick ,姑妄言之吧。

1 它仅仅是一个 mvc 不提供其他校验或者格式化之类的东西,好理解,够简单。
2 你可以选择 jsp/velocity/xsl/domify/etc... 来和 maverick 配合使用,爱用什么用什么,够灵活。
3 maverick 的 pipe 非常好用。

个人更喜欢 maverick 。

mav的maillist上有一篇比较文章,更详细,可以看看。

选择 mvc 框架更多的是取决于自己的口味,所以,别管现在流行什么,多试试,选择自己有感觉的才是最重要。

现在并不是准备开发自己的framework,只是作目项目的一种选择.特别是在view上,感觉jsp处理无论从维护还是开发都比较费劲,对于其他的地方能够作好Controller就行了,后台的东西也没啥要求,可以别的jdo,ejb来作,其实个人感觉后台的东东处理起来比较独立,比较好做,反而是前台的总另人不很满意,一些控制和显示作的不好,最近正在看cocoon(基于Avalon的),看能不能改善改善前台.
同意you.cai的观点,现在的开发可能就是要用到很多的opensource,无论从前台还是后台都有一些,但纵观全局,前台的好像少一些,后台有jdo,HB,ejb等等,前台Cocoon,framework提供的taglib等,说到taglib我就烦,怎么taglib就没有一个标准?都是每一个framework都有各自的taglib?
另:个人以为ant,cactus只是程序开发的一种build,test工具,这些东西可以在项目作起来后再掌握.而且掌握一种工具肯定比掌握一种framework更快(使用层面).所以对于xp,在项目的前期应该不会太在意吧 :)
有没有人对Maverick了解的? 介绍一下?

to jackyz:
>>maverick 的 pipe 非常好用
是不是和cocoon中的pipe概念差不多?

>>选择 mvc 框架更多的是取决于自己的口味?
要知道自己的口味,岂不是每个都要尝尝 :)

jakarta的东西也不见得就是最好的,比如bcel,jetspeed,都很不爽
struts不是也有很多非议阿
avalon其实已经不是jakarta的项目了阿:)不过真的很有价值,但apache的实现我不喜欢,也很难用


to shenli :
Jakarta有很多还是不错的,log4j,lucence,struts,velocity,tomcat等,但是和banq想法有点一致,Jakarta的子项目都好像要建立自己的标准 :(

>但apache的实现我不喜欢,也很难用
>


呵呵,看来网管们都喜欢很难用的东西呢;)

哪位兄弟说说Tapestry(据说是基于servlet面向对象的J2EE web框架)

struts自动化的东西少,难学!
相比Turbine,它比struts易学易用,现已开始支持J2EE,但在导航性这方面没有struts好~

哪位兄弟说说Tapestry(据说是基于servlet面向对象的J2EE web框架)

Tapestry,听说过,没用过 :(
熟悉的也介绍介绍?

struts 是web framework
avalon是服务端的framework,和web毫不相关,是面向服务和组件的,例如james就是基于avalon的
不关apache的怎么样,至少struts ,log4j,poi,avalon,cocoon等还是很成功的。