论坛首页 Java企业应用论坛

组件框架技术tapestry及简单对比

浏览 6508 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-07-12  
JSF和Tapestry都是基于页面组件技术的开发框架,但jsf基于jsp,仍然是jsp架构,开发维护起来非常麻烦。tapestry则不同,是基于servlet的一种完全页面组件化的开发框架,
而且现在已经非常成熟,目前已经推出t4.0-beta2。
页面开发走向组建化是一种越来越明显的趋势,这方面tapestry可以说是引导了这个方向,也许是sun太厉害,jsf一出生就得到大家的关注,
不过顺此东风,tapestry的用户社区比以前更加繁荣了:http://news.gmane.org/gmane.comp.java.tapestry.user
tapestry有很多范例精彩,参看它的官方网站:http://jakarta.apache.org/tapestry/
若想致力于web页面的开发,个人觉得jsp/serlvet是首要精通的,至于选择框架,则是一件费精力的事情。框架的目的是为了简化开发流程,
提高生产效率,典型的框架如turbine、struts、webwork、jsf、tapestry等。如何选择框架是一个经久不衰的讨论,没有多年的实践经验是难
以作出实际评价和最终抉择的。愚以为turbine过于厚重,无论是开发速度还是运行速度都令人难以接受,2.4M1到现在快一年还是M!,运行起
来真是满如蜗牛,打开一个页面要等浏览器的地球要转上半圈,这也许要归功于velocity解析和没有页面缓存的功劳了。还有就是扩展性、可
维护性等,实际上都很差,象它的核心类Turbine,居然定义为final!实际开发起来还不如我自己实现的velocity+servlet+filter框架效率高
,速度快。struts,webwork实际都是jsp的MVC包装,无法摆脱jsp页面难以维护的烦恼,也许开发起来快,但维护呢?还有就是美工人员,他
们都得懂jsp。实际的mvc分工在页面这块还是打了折扣。jsf,在一定程度上借鉴了tapestry的组件思想,但大项目应用中狂多的标签封装和定
义把你搞疯也得把机器搞疯,估算有两大弊端:运行速度相对慢和页面维护相对复杂。最后是tapestry,唯一的难度是理解它的组件开发方法
,理解的转变就好比从过程开发到OO开发一样,但对初学者无所谓,一张白纸总是容易上画的。
选择tapestry有如下几大优点:
1、最彻底的MVC开发框架,页面代码全部由HTML标准标签组成,页面美工人员无须了解特别的标签定义。
2、可重用组件开发节省开发资源,一句话:越开发越轻松
3、优秀的页面流转开发。传统方式都是基于URL实现激活页面流转,而tapstry除了此方式,你还可象开发普通java类一样实现page页面流,更
重要的是,还可由此实现页面类的复用。
4、丰富的组件资源。除了官方维护的资源外,还可找到一大堆的tapestry组件库。
5、超强的扩展性。tapestry是一个真正的开放性架构,说白了,你觉得哪个服务不爽,你就可写个替代它。
6、生命力超强,不断的自我更新、发展。tapestry4.0与3.0相比简直就是另一个飞跃,如支持jdk1.5的Annotations,仅这点开源产品中目前
还只看到一个hibernate;支持portlet JSR-168,又一个顺应潮流的web开发支持。规划中的4.1将支持页面静态化,这不正是众多开发人员的
另个期待吗?
7、tapestry的开发人员稳定。不是一个两个人在那里单打独斗,而是有一群人在开发和支持tapestry的进程。
8、tapestry技术成熟吗?基于tapestry的软件和大网站已经很多了,
国外的:软件如SeaView内容管理系统、WidenTM Digital Asset Management System
网站大的如:http://www.nhl.com/,http://www.theserverside.com/,https://merchant.shopping.com/enroll/app,http://www.identitytheft911.com/home.htm,http://admissions.chicagogsb.edu/admissions/app

国内的:软件如http://www.onetsoft.com,网站如:http://love.9618.com.cn/dating/app,http://dbi.lib.ntu.edu.tw/libraryList/,http://www.cdcin.com/,http://www.xtcin.com/,http://www.xnjs.com/

tapestry的优点和带给你的便利不是两句话可讲清楚的,还需要自己去多多体会
   发表时间:2005-07-12  
Tapestry的作者Harword Lewis Ship已经把精力放在开发Hivemind上面去了,并且他现在很醉心于整合Tapestry和Hivemind,这对于Tapestry来说,并不是什么好消息。况且Tapestry的组件库并不丰富,反而缺乏的厉害。

基于事件响应机制的组件框架,其成败更多取决于组件的丰富程度,VB,Delphi莫不如是,ASP.net也是在组件库上极大丰富。Tapestry的组件库建设现在没有看到什么起色。JSF在这一点上,可以预见在未来组件会比Tapestry丰富的多,这是JSF优势。不过JSF基于JSP Tag的实现方式实在太蹩脚,而且JSF的Tag还异常复杂,也不是什么好东西。

在Java的事件响应机制的Web框架上,我还看不到什么未来。
0 请登录后投票
   发表时间:2005-07-12  
嗯,说到组件,还是等那个js组件吧.我觉得最适合目前开发.
0 请登录后投票
   发表时间:2005-07-13  
tapestry的组件库显得过于分散,要求组建官方组件维护的要求在邮件讨论区中越来越强烈。但是tapestry是很优秀的技术,我非常关注它。
0 请登录后投票
   发表时间:2005-07-13  
引用
基于事件响应机制的组件框架,其成败更多取决于组件的丰富程度,VB,Delphi莫不如是,ASP.net也是在组件库上极大丰富。Tapestry的组件库建设现在没有看到什么起色。JSF在这一点上,可以预见在未来组件会比Tapestry丰富的多,这是JSF优势。不过JSF基于JSP Tag的实现方式实在太蹩脚,而且JSF的Tag还异常复杂,也不是什么好东西。


Tapestry官方提供了40个组件,实际上我觉得不少了,基本上含盖了常用的开发需要。。。而且我不知道大家是否留意,实际上Tapestry官方至始至终都在鼓励使用者自己开发组件。我没有用过VB和Delphi,不过Java的Applet我曾经接触过,swing也用JBuilder开发过,我的感觉是“简单”呀。有IDE嘛,拖拽及可视化开发,我听说VB和Delphi更浅学易用(至少10个人里面有8个人这样对我说)。可是在使用VB或Delphi的时候可曾有人在一开始接触的时候就想:万一有一天遇到VB或Delphi丰富组件库都没有含盖的特例情况,需要开发VB或Delphi组件怎么办呢?也许有人会说:压根不会存在这种问题,因为已经向VB或Delphi组件库妥协,官方没有的,就是做不出来的。“是受之以鱼,还是受之以渔?”我不知道Howard开发Tapestry时是否一开始就有这个理念,不过我认为可以自己想一想。如果Howard一开始就有此理念,那么可见这位大哥野心不小。

使用Tapestry开发过一段时间的程序员,实际上都有自己所积累的组件库,虽然常会听说有些积累组件的网站地址,不过我从来都没有去用过,甚至压根就没有关注过。其实理由很简单,因为我不需要。我可以为自己项目需求量身定做更合理的组件。另外一个公司或者一个团队,对项目开发实际上都是在原有已开发项目中不断积累的“二次”或“多次”再开发,因此量身定做的组件,能够成为一种积累,这就是为什么任何接触过Tapestry的人,都无法否认:“随着项目开发的组件积累,开发项目会越来越容易。”

引用
Tapestry的作者Harword Lewis Ship已经把精力放在开发Hivemind上面去了,并且他现在很醉心于整合Tapestry和Hivemind,这对于Tapestry来说,并不是什么好消息。况且Tapestry的组件库并不丰富,反而缺乏的厉害。


对于Hivemind与Tapestry的结合,其实一直以来我对此都是持“恶心”立场。不过前段时间在TSS淘了一篇文章,使我开始对Hivemind有一些肤浅的认识。

Hivemind的字面意思:hive-蜂巢,mind就不说了。。Howard说:就好比蜜蜂的巢穴或者蚂蚁洞,在蜂巢里,工蜂和兵蜂,还有女王蜂,它们每种类型都干着自己的分工而且互相不打搅。工蚁,兵蚁也是一样。。如果说spring的service和serviceImpl是面向服务的观点,那么Hivemind就是面向项目,我觉得,Hivemind是面向比服务更高的一种层次,只是Hivemind也是利用IoC,配置也很简单。。。这也就是为什么虽然spring和Hivemind看起来似乎是相同的东西,但是spring官方已经正式宣布支持Hivemind的存在。我个人设想将来的情况应该是这样的:使用Hivemind的“面向项目”同时在一个项目里面对多个子项目进行开发,而用spring的“面向服务”单独针对某个子项目进行开发。也许引进Hivemind并非什么坏事。不过我还没有实际将spring+Howard应用过,所以这些也仅仅是设想。目前,我对Hivemind持谨慎地观望态度,我在静静地等待Hivemind和Tapestry的正式版发布。

下面是Howard对HiveMind的原话:
引用
My vision for HiveMind is drawn from the workings of a bee hive or ant colony (or, for Star Trek fans, the Borg collective). Each individual member has a very limited job to do, and does its work without concern with what any other member is doing. And yet, a bee hive or ant colony will expand physically, collect food, produce new generations of workers, fight against intruders ... do all the things necessary to survive, as if it were a single living entity (Douglas R. Hofstadter's book "G&del Escher Bach: An Eternal Golden Braid" entertainingly discusses this concept at length). This directed behavior on the part of the bee hive is emergent behavior: the individual bees of the hive don't have or need an understanding of the greater goals in order to pursue their part; they just react to their environment, and the constant stream of chemical signals that flow about the hive.
0 请登录后投票
   发表时间:2005-07-13  
robbin 写道
Tapestry的作者Harword Lewis Ship已经把精力放在开发Hivemind上面去了,并且他现在很醉心于整合Tapestry和Hivemind,这对于Tapestry来说,并不是什么好消息。况且Tapestry的组件库并不丰富,反而缺乏的厉害。

基于事件响应机制的组件框架,其成败更多取决于组件的丰富程度,VB,Delphi莫不如是,ASP.net也是在组件库上极大丰富。Tapestry的组件库建设现在没有看到什么起色。JSF在这一点上,可以预见在未来组件会比Tapestry丰富的多,这是JSF优势。不过JSF基于JSP Tag的实现方式实在太蹩脚,而且JSF的Tag还异常复杂,也不是什么好东西。

在Java的事件响应机制的Web框架上,我还看不到什么未来。


非常赞同robbin 说的
0 请登录后投票
   发表时间:2005-07-13  
相对于 Spring的IOC,根本不知道 Hivemind存在的意义,它能像 spring那样方便的集成各种 ORM么,它提供可配置的Transaction的处理机制么

JSP 维护起来还是最方便的,尤其是不同人员接手模块的时候,不可能懂 tapestry的比jsp得还多吧
JSF 虽然架构很烂,而且编写它的tag异常复杂,一个小的验证工具就要上百行代码,起码是asp.net代码量的几十倍.但是它是标准,所以以后肯定会流行,支持他的厂商太多了,包括IBM,Oracle,Bea. IDE都很强大.尤其是Oracle的实现, ADF face. 如果不从政治和商业的角度考虑,真不知道为什莫这莫烂和复杂的JSF会流行
0 请登录后投票
   发表时间:2005-08-13  
robbin 写道
Tapestry的作者Harword Lewis Ship已经把精力放在开发Hivemind上面去了,并且他现在很醉心于整合Tapestry和Hivemind,这对于Tapestry来说,并不是什么好消息。况且Tapestry的组件库并不丰富,反而缺乏的厉害。

基于事件响应机制的组件框架,其成败更多取决于组件的丰富程度,VB,Delphi莫不如是,ASP.net也是在组件库上极大丰富。Tapestry的组件库建设现在没有看到什么起色。JSF在这一点上,可以预见在未来组件会比Tapestry丰富的多,这是JSF优势。不过JSF基于JSP Tag的实现方式实在太蹩脚,而且JSF的Tag还异常复杂,也不是什么好东西。

在Java的事件响应机制的Web框架上,我还看不到什么未来


这种机制已经存在了好几年了,可惜能看到的人太少~ Tapestry 不是 J2EE 阵营里第一个使用组件思维开发的框架。

JSP Tag 不是很差的东西,看你怎么用, JSP Tag 用来触发 Web 事件,是一种很不错的解决文案。
0 请登录后投票
   发表时间:2005-08-15  
现在的tapestry4确实非常好用,基于hivemind后,配置起来很简单。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics