翻看了“Tapestry会成为Web表示层框架的主流解决方案吗?”一文。 我自己过去也是对Java世界的各种web framework不胜其烦,框架实在太多,一个个都是重复发明的轮子,但真正理想的不多,其中我最欣赏的是Tapestry.

如今这些年过去了,我也从Java为主转投入了ASP.NET阵营了,最近抽空回顾一下最近Java的发展,又重新来看了看一些旧文。

的确,到现在为止,纯粹从概念角度来看,ASP.NET是最优秀的web framework, 是真正的OO解决方案,ASP.NET的code behind, view state, user control都是非常先进的理念(先进的理念未必是最合理的,比如view state这个东西就有利有弊,另外MVP的概念没有MVC那么清晰 )。Tapestry可以说是Java web framwork中最像 asp.net的东西。

Tapestry自身的发展也让人有些失望,毕竟是个人的作品,其继承性可延续性,升级速度等方面和商业化的产品无法比。看到这篇贴子今年有深度使用tapestry的朋友泼的冷水

网上说了不少tapestry的好话,我来泼点冷水吧。我们公司从2004年就开始研发tapestry系统,并用于大型系统,而且自己封装了一系列的组件。经过封装后的组件,也确实能达到减少开发代码的效果。但带来的问题更严重,一确实tapestry相对资料很少,尤其是中文的更少(虽然现在已有书籍出版,但都是今年中期才出来的),为研究学习tapestry带来了不少的困难。这样的话企业人员一旦流动,后面接手的人相当困难,适应期很长。 二经过重型封装的tapestry组件运行效率确实有问题。恐怕很少有人真正知道这点。当tapestry在运行的时候,是先render页面,再 render组件的。当系统运行慢的时候,你将可以清楚地看到这一过程。所以当系统刚刚render出页面,还没有render出组件的时候,你将看到不完整的页面,要再等一会,你才能看到render完整的页面(想必各位都没有见过这个奇观)。并且在页面没有render完全之前,你却可以点击页面上那些基本组件了,然后马上就会报错。所以我们不得不叫客户慢一点,要等页面完全出来以后才能继续操作,这种用户体验真是太差了。三就如hantsy所说,tapestry会在升级中迷失自己。我们公司在研发tapestry的时候,用的是3.0版本,可是当4.0版本出来的时候,发现已经大变样,如果我们要升级,将要付出沉重的代价。所以只能不升级了。但是时代在发展,当ajax这些新技术不断地抢我们的眼球的时候,我们却毫无办法。因为tapestry要4.02版本才支持ajax。当tapestry5快发布的时候,听说又经过了大幅的改造。哦,这个时候我们已经不关心了,管它怎么升级呢。也许我们也有使用tapestry不当的地方,但所谓实践才有发言权,我不希望更多的同行走我们走过的路,选择tapestry,要慎重!慎重!



Leave a Comment

Close
E-mail It