应用JSF、Ajax和Seam开发Portlets(1/3)
本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。
作者 Ryan Slobojan译者 张龙 发布于 2008年9月4日 上午1时18分
用来创建基于JavaScript web应用的以Java为中心的编译器Google Web Toolkit(GWT),今天(8月28日)它发布了1.5版。InfoQ有幸采访了其技术领导Bruce Johnson以了解关于该发布的更多信息及增加的新特性。
GWT 1.5的主要新特性包括:
Johnson阐述了1.5版的几个变化:
[@gwt.eventArgs以前用作]针对RPC的基于javadoc的元数据。这是一个很棒的示例,因为当升级到GWT 1.5时,大多数人一开始都会遇到这个变化。RPC现在变得更简单也更丰富,因为RPC接口可以简单地指定泛型集合。另一个值得注意的事情就是GWT 1.5现在已经完全支持“long”原始数据类型了。在GWT 1.5之前,“long”并没有得到真正支持,因为JavaScript没有64位的整数类型,因此使用本地的JS number并不能表示“long”的全部范围。在GWT 1.5中,我们通过产生额外的代码来确保long的行为是完全正确的,尽管在性能上要比GWT 1.4稍微低点。这是不可避免的:我们必须在性能和正确性上做出抉择,显然我们会选择后者。如果你在GWT 1.4中大量使用了long类型并且速度要比数字范围更加重要的话,请考虑将这些变量改为“int”或者“double”以保持与GWT 1.4一样的速度。
Johnson还详细分析了编译器的变化——以此来支持1.5版:
GWT编译器前端重用了Eclipse提供的优秀的Java编译器。它处理所有的解析和语法检查,然后构建一个抽象的语法树(abstract syntax tree,即AST)。接下来我们使用该AST进行优化并生成JavaScript输出。Eclipse编译器让我们变得更加轻松,因为它处理了大量工作。但是,寻求在JavaScript中有效地表达新概念的方式,如枚举和增强的for循环,仍然花费了我们大量的工作。新的语言特性还对GWT库起到了积极的连锁反应,最明显的就是在RPC中能够使用泛型这个新功能,我们还对注解进行了扩展以在下面这些情况中代替基于javadoc的元数据方式:国际化、图像包和基准。
Johnson说到GWT在web开发方面的主要竞争对手可以分为三类,同时也谈到了GWT该如何使自己有别于这些竞争对手:
当被问到GWT与Google的其他工程的整合时,Johnson说到:
关键点:GWT给予你很多,但是它不想变成一个“围墙花园(walled garden)”。任何抽象都会有遗漏的东西,所以最好接受这个事实。我们有意简化该抽象,这样你就可以触及JavaScript的具体细节,那么你就可以集成你喜欢的任何其他技术了。这种灵活性对于GWT本身和其用户来说都是一种保险单:你可以确定你能将任何客户端技术与GWT集成,同时我们(GWT开发小组)也不必显式地将其与开放的东西进行集成,因为你总是可以自己完成这件事而不必等我们来完成。对于我所提到的灵活性的示例,请参考Ray Cromwell的工作——Syndroid。
Johnson还说有很多与GWT的集成,包括将其集成到Spring、Flash以及大量的Google Code projects。
当被问到GWT未来的计划时,Johnson说到:
我们将继续关注性能改进以及将要从GWT孵化器中出来的几个新widget,包括一个日历控件和几个漂亮的表格widget。我们还在着手做其它完全新鲜的东西,如声明式的基于XHTML的UI模板机制。我们尚未计划好一切,但我期望在随后一个或两个版本中能将其加进来。顺便提一下,我希望它的开发周期比GWT 1.5更短。
Johnson还希望能将GWT作为Google App Engine的一个开发环境,要是这样的话,那真是太酷了。
查看英文原文:GWT 1.5: Java 5 Support, Performance Improvements and JavaScript Enhancements
本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。
在这篇文章里,Bryon Jacob和Chris Berry将和我们继续探讨AtomServer,它是基于Apache Abdera的完整Atom存储实现。作者还创建了几个Atompub规范扩展,其中包括自动标记、批处理和Feeds聚合。
InfoQ中文站的电子杂志《架构师》试刊第二期出版了!相比于上期,我们在内容的选择安排和版式上都根据读者的意见重新做了修正。“细节决定成败”,我们希望基于InfoQ中文站的专业内容,《架构师》能逐渐成为大家喜欢的电子刊物!
在本文中,Steven Haines探讨了Web应用性能调优问题。该领域过去更像是一门艺术而不是一门科学。他提出了一种称为基于等待调优的方法,使整个调优过程更加可度量,也因此更具科学性。
通常来说,改变技术路线时最艰难的部分是辨别语言语法之间的不同。这篇文章就为Java开发者提供了一份如何转向Flex基础语言ActionScript的指南。
本视频主要以财帮子为例,介绍了如何创建一个PV为百万级的Rails应用。其中包括:Rails应用的服务器架构、Rails Cache的优化、负载均衡的处理、Web服务器的调试、分布式解决方案、Open API的设计等等。
InfoQ首席架构师Alexandru Popescu在采访中谈论了InfoQ架构、Webwork与DWR、Hibernate与JCR、Hibernate可扩展性、最新的InfoQ视频流系统和InfoQ的未来规划。
相对于Java,.NET在持续重构方面所给与的重视仍然少为人知,大多数人对于重构是否真正属于开发过程,以及如何将其应用到开发过程中持观望态度。Danijel Arsenovski试图为你揭示这些谜题。
没有回复
回复