2006-09-11

点评Java full-stack框架

关键字: full-stack
2005年ruby on rails横空出世般的流行刺激了Java开源框架整合的大趋势,ruby on rails这个号称“full-stack”的框架能做的我们都能做,它就是整合的更好,省略了配置文件,提供了快速代码生成器,暂且不论ruby on rails本身,但是诸多Java开发人员把目光从只做好一件事情上面挪到了“提供最方便的full-stack框架”上面,因此我们可以看到整个Java开源社区雨后春笋般的出现了一批又一批的full-stack框架,Java社区的开源软件哲学已经修改为:“要做最方便好用的full-stack框架”,那么就让我们来一一细数这些full-stack框架吧:

一、RIFE
最老牌的Java full-stack框架,作者Geert Bevin颇为不屑ruby on rails,和ruby on rails作者DHH有过对骂的战斗经验,8月份RIFE发布了1.5版本,提供了更多更方便的功能和更加简化的开发。RIFE功能相当完善,在Continuations方面颇有独到之处,但是RIFE独辟蹊径,整个解决方案不与现有任何流行开源框架相同,采用RIFE需要一些勇气。

二、Grails
最像ruby on rails的Java full-stack框架,Grails即Groovy on rails的意思,采用Java动态脚本语言groovy来写程序,底层实现采用Hibernate/Spring/SpringMVC/JSTL,即groovy的脚本语言在运行期动态生成Hibernate/Spring的Java编译好的字节码。8月份Grails发布了最新的0.2.1版本,在可用性的道路上又向前进了一步。

三、JBoss Seam
最正宗的Java full-stack框架。JBoss Seam整合了EJB3,Hibernate3,JSF,JBPM等框架,主持大局者是Hibernate作者Gavin King,Seam提供了一个非常简化的完整框架。说Seam最正宗是因为Seam采用的EJB3,JSF等技术都是Java EE5规范的官方技术,可谓系出名门。

四、Trails
最强调领域模型驱动的Java full-stack框架。Trails是Hibernate,Spring和Tapestry框架的整合版本,鉴于Tapestry是一个组件驱动的Web框架。Trails非常强调以领域模型来驱动快速开发。这是一个值得Tapestry爱好者使用的Java full-stack框架。

五、Able
最不甘寂寞的Java full-stack框架。这是8月份刚刚发表的新框架,Able的作者是前Webwork,现Struts2.0的主开发人员Patrick Lightbody。Pat同学也是一个对ruby on rails颇为不屑的人,曾经和RIFE作者Geert Bevin一唱一和的对战过DHH。Pat一边忙于开发Struts2.0,一边不甘寂寞的推出了Able框架,这是一个整合了Webwork,Spring和iBATIS的框架,但是对Webwork进行了大幅度简化。

这些成型的full-stack框架,加上最经典的Java full-stack框架……Hibernate/Spring/Struts组合(或者Hibernate/Spring/Webwork组合),一夜之间,Java开源世界的full-stack框架如千树万树梨花开,让我们这些Java开发人员挑花了眼,有人说,选择太多,即是Java开发人员之福,也是Java开发人员之痛,如何挑选适合自己需要的框架,则成为Java开发人员必备的能力之一。
评论
江南白衣 2006-10-06
Able 风格多变,最近貌似已经从Spring+Webwork+Ibatis 转为 Spring+Stripes+JPA(by Hibernate) (最近的更新都集中在sandbox/able-web 里)。

Able和Seam 都是每天update的项目,还在JavaEE的,就指望他俩做指路明灯了。

而对Trails 和 RIFE不大看好,前者没什么开发力量,后者太怪了.
sean 2006-09-25
引用
Pat同学也是一个对ruby on rails颇为不屑的人,曾经和RIFE作者Geert Bevin一唱一和的对战过DHH。Pat一边忙于开发Struts2.0,一边不甘寂寞的推出了Able框架,这是一个整合了Webwork,Spring和iBATIS的框架,但是对Webwork进行了大幅度简化。


对ruby on rails颇为不屑? 为什么able的一些目标却向ror看齐:
引用

provide a RAD, Rail-ish user experience. Kinda POJOs on rails
sean 2006-09-25
Able home : http://wiki.opensymphony.com/display/ABLE/Home

Source code: svn co https://svn.opensymphony.com/svn/sandbox/able/sandbox able
Arden 2006-09-25
我刚看了Able,用的是webwork啊!
Arden 2006-09-25
Able 框架在哪可以下载?官方网站的网址是?
sean 2006-09-20
引用

五、Able
最不甘寂寞的Java full-stack框架。这是8月份刚刚发表的新框架,Able的作者是前Webwork,现Struts2.0的主开发人员Patrick Lightbody。Pat同学也是一个对ruby on rails颇为不屑的人,曾经和RIFE作者Geert Bevin一唱一和的对战过DHH。Pat一边忙于开发Struts2.0,一边不甘寂寞的推出了Able框架,这是一个整合了Webwork,Spring和iBATIS的框架,但是对Webwork进行了大幅度简化。


前些天svn able,发现web层用的是Stripes,并不是webwork, 也不是struts2.0.不知道为什么Patrick Lightbody连自己开发的webwork/struts2.0都没有信心。
SteveGY 2006-09-18
manmoon 写道
得了吧
java只会越做越好
只是一部分同志感觉掌握起来越来越难。
java社区活动性很大,你跟不住脚步,就只能被淘汰!


哎~~~,这种论调听的实在太多,似乎每一个人都要理所当然的掌握所有的细节,这是不现实的,也是令人沮丧的。
再说,如果只有那些“能跟上变化的人”留在这个社区里,那我看,这个地方的发展也就到头了,因为这样就排斥了很多人,不是每个人都有时间、精力和兴趣,投入在跟上变化这样的无聊事情上的。于此相比,我倒是情愿多花点时间躺在海边的摇椅上,看看海滩、日落、泳装MM什么的,我相信,这一定比跟上变化有趣多了
java之所以会越做越好,正是因为它现在离“好”还有一段距离呢;之所以变化这么大,也是因为它还没有一个确定的方向,就像有N个牛人朝M个方向拼命拉动同一张网,而且谁都声称“跟我来,这是正确的方向”。呵呵,要想跟住脚步,哈哈,除非你有N次分身术。
melin 2006-09-16
虽然ejb3.0注释没有spring的配置文件那么灵活,如果系统需要群集环境。还是首选EJB3.0,JSF是我最喜欢的WEB框架,期待SEAM。
manmoon 2006-09-16
得了吧
java只会越做越好
只是一部分同志感觉掌握起来越来越难。
java社区活动性很大,你跟不住脚步,就只能被淘汰!
独狼 2006-09-16
好酸,好酸啊
Allen 2006-09-15
Spring 首页上面有这样的话:
引用
Welcome to the home of the Spring Framework. As the leading full-stack Java/J2EE application framework, Spring delivers significant benefits for many projects, reducing development effort and costs while improving test coverage and quality.

一联想到2.0这个月就要正式发布了,看来Spring这次的决心是很大很大的啊!
jacshan 2006-09-13
现在学习Spring,也不管其它的怎么好了,先学好一个用着再说,同时关注太多的东西,到头来会弄得什么都学不好。
江南白衣 2006-09-13
bigpanda 写道
今天看了一遍Seam的文档,对这个东西的兴趣越发大了起来,它吸引我的一点是代码量小,总共才255个类外加一个JavaScript的文件。Spring 2.0有1200多个类,WebWork 2.2.3有六百多个类,实在头大。

Seam中别的都是标准,看一看specification,就能知道程序的行为。比起文档不全的框架,是个优势。都是标准对向客户推销也有优势。

里面用到JSF, JSF 的1.2版有不少改动,还得好好看看。



代码量少是因为他做的东西少,很多还是todo.
bigpanda 2006-09-13
今天看了一遍Seam的文档,对这个东西的兴趣越发大了起来,它吸引我的一点是代码量小,总共才255个类外加一个JavaScript的文件。Spring 2.0有1200多个类,WebWork 2.2.3有六百多个类,实在头大。

Seam中别的都是标准,看一看specification,就能知道程序的行为。比起文档不全的框架,是个优势。都是标准对向客户推销也有优势。

里面用到JSF, JSF 的1.2版有不少改动,还得好好看看。
geszJava 2006-09-12
咋办,偶现在的项目用的是grails,勉勉强强可以凑和着用,不过。。。偶非常担心groooooooovy的的速度。
icebing 2006-09-11
有同感,不到最后不见分晓!
Allen 2006-09-11
Gavin King在谈到自己的Seam时显得信心满满(文章时间有点点早,是今年3月的了):
引用
Seam(Gavin King)

1、你认为你的framework的"甜点"在哪里?他最适合哪种类型的项目?
拥有丰富用户交互体验的应用。方便实现多窗口的操作,回退的支持,单窗口多工作区,无状态浏览。对商务流程(BPM)的集成是独一无二的。Seam方便使用数据驱动的ORM。遵循JSF和EJB3,多任务支持(多窗口/多工作区),BPM的领先解决方案。

2、它不适合于什么样的场景?在这些场景你推荐什么fremework?它是哪个?
不适合只是将数据从数据库显示到网页的应用,这时应该使用PHP或RoR。不适合需要设计特别的HTML组件的情况,此时应该选用Tapestry或Wicket。还在使用JDK1.4的人们。还有那些喜欢Struts的人(嘿嘿,够狠)。

3、在下面提到的framework中,你试验过他们么?如果试验过,你比较喜欢哪个?你不喜欢哪个?
JSF:喜欢他的事件/交互模型。喜欢他的EL和模型绑定。不喜欢那么多XML(为什么没有annotation)。创建自己的controls太难了。
Tapestry:非常好。form验证是它的杀手锏!模版方式很有创意。不过非基于POJO的组件模型则让我对它失去兴趣。
RIFE:这个东西很怪,但是有创业也有趣。我想进一步学习。如果学习先要自费武功:D
Struts:这个东西的模型view绑定太复杂了。东西已经过时了。
WebWork:比Struts好一点,不过也过时了。XWork曾经是个很好的实现,不过现在也过时了。

4、你的framework的未来会怎样?对于用户开发会有什么方便使用的变化?你会原生支持Ajax么?你们计划支持它了么?
Portal支持。远程框架Seam Remoting Framework(Ajax)。模版消息的工具支持。以后还要集成ESB,计划引擎和异步支持。

5、有对你们的framework的传言需要澄清么?如果有,是哪个?
这些都不是真的:JSF不能处理GET requests。JSF post后无法redirect。JSF不能与REST共存。

6、你对Ruby on Rails的看法如何?
它是PHP的很好替代品。如果它有一个正经一点的持久化层它就可以和Java竞争了。


原文参加:http://www.matrix.org.cn/resource/article/2006-03-31/Java+Web_44309.html
zingers 2006-09-11
看国外项目运动真是好看,和奥运会比赛一样
robbin
搜索本博客
我的相册
213cbb75-7dae-37b2-b9ce-9e7b49f784d3-thumb
游乌镇
共 33 张
其他分类
存档
最新评论