写点什么

GWT-Ext 2.0 发布: Sanjiv Jivan 访谈

  • 2008-02-26
  • 本文字数:2209 字

    阅读完需:约 7 分钟

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,免遭违反许可的厄运。

请您解释一下在 2.0 版本中,是什么方法使得 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 示范中的例子来感受一下改进了的性能。

GWT-Ext 0.9.3 的用户升级到 GWT-Ext 2.0 会遇到什么障碍吗?

布局管理 API 有所改变,但这些改变还是受到了大部分用户的欢迎,因为新的 API 更加容易上手,并且可以帮助你更快更简单地实现繁复的布局。为 Component 做配置时,不再需要单独的 config 类——用户只需要在 Component 本身调用 Javabean setters。在升级中实现这个改变几乎只是几个钟头的苦力活而已,实在不是什么需要深入的大工程。再次地,用户很欢迎这个改变。实际上,使用 Javabean 而非分隔的 config 类是受到了 GWT-Ext 0.9 的用户反馈的影响。Java 编译器也是你的朋友,任何不能处理的不兼容问题,编译器都有相应的报告。我们欢迎用户在 GWT-Ext 论坛发表任何关于升级的问题。但不同用户升级所花销的时间不同,曾有一个用户报告说他升级他 1 万行代码的程序到 GWT-Ext 2.0 的时候花了两天。用户可以期待 API 将更加稳定。

2.0 发布以后,GWT-Ext 的开发会向何处发展呢?下一步会带来什么呢?

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

2008-02-26 21:273100
用户头像

发布了 71 篇内容, 共 23.9 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

【LeetCode】 解密消息Java题解

Albert

LeetCode 7月月更

简单介绍一下闭包及它的一些应用场景

是乃德也是Ned

7月月更

LeetCode-144. 二叉树的前序遍历(java)

bug菌

Leet Code 7月月更

Qt 实现容器的DELETE的方式

小肉球

qt 7月月更

Android自定义TextView实现高度和宽度,解决字体适配问题

芝麻粒儿

Android Studio TextView 7月月更

Vue 灰度发布新功能的那些事

南城FE

Vue 前端 灰度发布 7月月更

系统入门-Linux系统基础命令

Albert Edison

7月月更

Nginx 主机配置文件中如何配置能够支持 IPv4 和 IPv6

HoneyMoose

如何在博客中添加Aplayer音乐播放器

echeverra

前端

java零基础入门-Java正则表达式

喵手

Java 7月月更

【Python技能树共建】动态渲染页面爬取

梦想橡皮擦

Python 7月月更

基于鲲鹏原生安全,打造安全可信的计算平台

极客天地

Java 9 中的字符串(String)压缩的改进

HoneyMoose

electron添加SQLite数据库

空城机

sqlite Electron 7月月更

如何参与开源项目 - 细说 GitHub 上的 PR 全过程

胡说云原生

GitHub 开源 pull request DevStream

Android 面试知识点

沃德

android 程序员 7月月更

千人规模互联网公司研发效能成功之路

laofo

互联网 DevOps 研发效能 工程效率

Scala 基础 (六):面向对象(下篇)

百思不得小赵

scala 大数据 7月月更

iOS基础--属性(setter方法 、getter方法、点语法、@property)

NewBoy

前端 移动端 iOS 知识体系 7月月更

盘点JS判断空对象的几大方法

猪痞恶霸

前端 js 7月月更

关于 Web Content-Security-Policy Directive 通过 meta 元素指定的一些测试用例

汪子熙

JavaScript 前端开发 CSP meta 7月月更

wallys/Qualcomm IPQ8072A networking SBC supports dual 10GbE, WiFi 6

wallys-wifi6

IPQ8072 IPQ9072a

自律,提升自制力原来也有方法

沃德

程序员 7月月更

Qt|多个窗口共有一个提示框类

中国好公民st

qt 7月月更

【玩转 RT-Thread】 RT-Thread Studio —— 按键控制电机正反转、蜂鸣器

攻城狮杰森

OS 7月月更 RT-Thread

科普达人丨一文弄懂什么是云计算?

阿里云弹性计算

云计算 阿里云 虚拟化 神龙架构 IT资源利用

基于华为云IOT设计智能称重系统(STM32)

DS小龙哥

7月月更

开发一个小程序商城需要多少钱?

CRMEB

Python|正则表达式

AXYZdong

Python 7月月更

决策树算法

秃头小苏

决策树 7月月更

GWT-Ext 2.0 发布: Sanjiv Jivan访谈_Java_R.J. Lorimer_InfoQ精选文章