GWT-Ext 2.0 发布: Sanjiv Jivan访谈

2月6日 GWT-Ext 2.0正式发布。GWT-Ext是一个为 Google Web Toolkit(GWT)开发的widget库,它提供很多控件,比如:带有拖放功能的树(trees with drag and drop)、可分页/可排序表格(page-able/sortable grids)、校验表单(validating forms)和标签面板(tab panels)等。GWT-Ext中可使用的控件来自于 ExtJS Javascript widget库。GWT-Ext 2.0将 GWT 1.4和最近发布的 ExtJS 2.0相捆绑起来。(若想获得更多关于ExtJS 2.0的信息,可以查看 InfoQ对ExtJS创建者Jack Slocum的访谈)

这些是GWT-Ext 2.0与之前版本相比所包含的一些改变:
  • 性能的改进
  • 统一的组件模型
  • 新布局管理API
  • Bean-friendly API 
  • 一些新的widget
完整的2.0发布文档可以 从GWT-Ext的网站获得。

InfoQ.com有幸和Sanjiv Jivan —— GWT-Ext背后的创建者及主要开发者做了一次短暂的对话,以此获知他对2.0版本的看法:

请用您自己的话(在较高层面)来简单的概括一下2.0中的改变。
首先,我想恭喜Jack和Ext团队,恭喜他们在Ext 2.0中所做的出色的工作。GWT 2.0中很多改进其实都直接得益于Ext 2.0中的强化和构架的改进。

这个版本中最大的构架方面的进步是一个统一的组件模型和改进的布局管理。现在所有的widgets都遵循一个一致的体系,都是同一个管理创建、展现和销毁生命周期操作的基础组件的子类。该版本拥有可以将容器(containers)的各种职能划分开来的构架,容器仅获知它的子组件,而容器中组件的布局管理则交由所指派的LayoutManager来管理。创建复杂的布局现在只是小菜一碟。

GWT-Ext 2.0 还拥有一个bean friendly API,这使得它更易于使用,并且有助于与像GWT Designer这样的UI builder相集成。它还有很多很酷的新特性,比如对Grid中分组(grouping)的支持、Accordion、进度条(ProgressBar)、支持Grid和Tree之间的拖放(Drag & Drop)等等。该发布中另一个亮点是一个新改进的Showcase示范( http://www.gwt-ext.com/demo),这个示范中包含了很多例证性的例子及相关源代码,可单独运行每一个样例。我崇尚通过例子来学习,我希望在这个Showcase示范中投入的努力能够对用户有很大的帮助。

另一个值得一提的是GWT-Ext 2.0的许可问题。据我所知,根据FSF的规定,GWT背景下的LGPL许可实际上被转换成了GPL,除非类库作者声明不要做这样的转换。我在GWT-Ext的许可页面( http://gwt-ext.com/license/)上添加了有关说明,这样大部分用户可以在商业项目中自由使用GWT-Ext,免遭违反许可的厄运。
该版本中性能得到巨大的提高,主要得益于Ext 2.0中性能的提高。你可以从他们的网站了解他们究竟做了怎样的修改,但我可以讲一下GWT-Ext相关的一些巨大变化。
  • 所有的组件/widgets现在可以支持延迟渲染(lazy rendering),这意味着他们可以在没有任何开销的情况下被初始化和管理,它们的渲染被延迟到其必须要被放到DOM时才进行。仅仅这个改变就换来了性能大大改善的结果,尤其是对于大应用程序来说。
  • 所有组件都遵循一个标准生命周期,从创建到销毁都由允许适当的内存管理的框架来管理。表单和Grids(表格)尤其得到很大的改进,用户可以期望这些widgets能有更好的性能表现。
  • 使用GWT-Ext 2.0,每个widget不再需要各自的“config”类。用户可以简单地在Component本身调用Javabean setters来设置一个Component属性。这不但使得API来的更加清晰,而且还帮助减少了很多行代码。
  • 最后,眼见为实。一些用户在将他们的GWT-Ext升级到2.0之后发表说,他们的应用程序响应更加流畅、性能更加出色了。你也可以通过运行GWT-Ext 2.0的Showcase示范中的例子来感受一下改进了的性能。
布局管理API有所改变,但这些改变还是受到了大部分用户的欢迎,因为新的API更加容易上手,并且可以帮助你更快更简单地实现繁复的布局。为Component做配置时,不再需要单独的config类——用户只需要在Component本身调用Javabean setters。在升级中实现这个改变几乎只是几个钟头的苦力活而已,实在不是什么需要深入的大工程。再次地,用户很欢迎这个改变。实际上,使用Javabean而非分隔的config类是受到了GWT-Ext 0.9的用户反馈的影响。

Java编译器也是你的朋友,任何不能处理的不兼容问题,编译器都有相应的报告。我们欢迎用户在GWT-Ext论坛发表任何关于升级的问题。但不同用户升级所花销的时间不同,曾有一个用户报告说他升级他1万行代码的程序到GWT-Ext 2.0的时候花了两天。用户可以期待API将更加稳定。
GWT 1.5作了一些改变,改进了跨越Java-Javascript边界的性能,这也会给GWT-Ext带来了巨大的性能改进。我正在进行必要的(内部)改变以利用GWT 1.5的这个优点做一些优化。

另外,我正在计划添加一些wiki文档、FAQ以及指南来帮助用户更快的提高开发效率。除了正在进行的优化以外,我还计划将注意力放在用户上,帮助他们将开发成果推向产品。最后要说的是,这是一个成功类库的真正基准点。
GWT-Ext拥有 LGPL 3.0 许可。社区论坛、Wiki文档、下载链接、以及更多许可信息可以在 GWT-Ext主页找到。

查看原文:GWT-Ext 2.0 Released: An Interview with Sanjiv Jivan

你可能感兴趣的:(GWT-Ext 2.0 发布: Sanjiv Jivan访谈)