GWT携其大量开源框架项目“来势凶猛”

在RIA(rich internet application)社区中,越来越多的人选择使用GWT(Googel Web Toolkit)。由此催生了很多框架和类库,这些框架和类库或者作为GWT的补充、或者以GWT为基础提供更强大的功能:

GWTx( 下载)

GWTx关注于加强Google提到的 JRE模拟(JRE Emulation)。GWT提供使用Javascript实现的一些核心Java类库,这样一来,使用Java为GWT所做的编程,GWT本身可以将它们恰当的“编译”或者翻译成Javascript。

GWT-DND ( 下载)

GWT-DND是对GWT提供drag-and-drop支持的一个扩展库。GWT-DTD在社区中被广泛使用,另外有一些项目(例如下面将要提到的GWT Diagrams)直接使用该扩展库,或提供对它的集成。该扩展库已经非常成熟,去年,在它作为对核心GWT的系列补丁包提供下载时,很多用户就已经证实了它的价值。

Hibernate4gwt ( 下载)

Hibernate4gwt是特别为将GWT的Java后端与成熟的ORM Java工具 Hibernate相集成而提供的开发框架。在GWT应用软件中使用类似Hibernate这样的类库时,GWT既表现出了无与伦比的复杂性,也展现了前所未有的机会。通过利用GWT中远程服务的API以及Hibernate库的特性,Hibernate4gwt能够提供一大把优缺点各不相同的不同集成选项:
  • 无状态型(默认选项):你的服务器保持无状态,不保存任何额外信息。你的域类不得不从LazyGwtPojo继承从而储存延迟属性(lazy attributes)。
  • 动态代理:代理是用来处理服务器端和客户端的延迟属性信息的。你只需要实现Serializable接口,并迫使GWT延缓捆绑于客户端(详细信息请查看相关文档)。
  • 支持Java 5:鉴于GWT并不支持Java5的bean,hibernate4gwt允许你将你的Domain类动态克隆成GWT兼容的DTO。这些克隆类必须使用和域类本身一样的名字(但两者在不同的包中),并且继承LazyGwtPojo。另一方面,hibernate4gwt会为你管理延迟属性,且不要求任何克隆映射文件。
  • 状态型:延迟信息并不储存于POJO,而是储存在HTTP会话中,因而,你的域类不必再从LazyGwtPojo继承,但你的Web服务器变成有状态的了。
另外,Hibernate4gwt也对结合使用Spring框架(该框架对于要使用下文将提到的GWT-SL的开发者同样很有价值)提供支持。

MyGWT ( 下载)

MyGWT是目前最受欢迎的GWT开发框架之一,它使用了基于LGPL许可的 Ext Javascript库,该Javascript库和开发框架是由同一个团队开发的。MyGWT通过引入现存并已经很成熟的Ext库而给GWT提供了大量的Javascript功能。
在MyGWT库中包含有像按钮、对话框、表格、树型结构、列单以及标签等等控件的实现。MyGWT还提供了一些布局来在用户界面中组织组件。

此外,它还支持对各种组件的多种动态数据加载方案,包括XML数据仓库、JSON和 GWT远程通信层。

GWT-Ext ( 下载)

GWT-Ext在很多方面都跟MyGWT相似。正如MyGWT一样,GWT-Ext也建立于Ext Javascript库之上。也正是出于这个原因,GWT-Ext中所提供的控件和widget无论是在外观还是行为上都近似于MyGWT。但是,GWT-Ext另外支持一些MyGWT中没有的组件跟特性,比如DatePickers、显性表单和验证功能、以及树型结构中的drag-and-drop。

和MyGWT一样,GWT-Ext也对它的控件支持很多后端数据源(back-end data sources)。

Gwittir ( 下载)

Gwittir项目是GWT的一个组件库,它的重点在于使用一个一致的用户界面对交互机制建模。Gwittir的开发者这样描述它:
这个项目的目的在于提供一组代码生成器、建构基本框架、工具和基本的MVC框架,供给基于Google Web Toolkit的应用软件使用。
在很多方面,Gwittir与MyGWT、GWT-Ext很相像,他们都是GWT的用户界面库,提供像组件、流程控制、验证、甚至是动画方面的功能。然而,MyGWT和GWT-Ext使用的是一个相当常见的MVC风格的模式(比如类似Swing组件的布局),但Gwittir采用一个不同寻常的方式将业务模型集成到用户界面上。作者在Gwittir官方网站上指出了传统MVC模型的一些弱点:

我有一些想法想坦白地告诉大家。我几乎讨厌过所有曾使用过的任何环境下的用户界面工具。如今,模型-视图-控制器的模式引入使用已经有很长一段时间,在Java领域的一些用户界面工具像Swing或SWT在建立用户界面控件的时候广泛采用了这一模式。但问题是他们的模型和你的模型永远都不一样。在你使用用户界面工具的时候,你总是想要竭尽全力去创建一个能够很好地结合你的业务模型来工作的用户界面,而并不是用户界面工具的设计者所使用的抽象模型。

GWT-SL 和 GWT-WL ( 下载)

GWT Server Library(GWT-SL)是一个旨在简化GWT应用软件和Spring框架集成的项目。
SL是GWT Widget Library的一个子项目,它通过允许将POJO作为RPC服务发布的方法帮助实现GWT RPC服务与Spring的集成。

同时,GWT Widget Library(GWT-WL)是另外一个将目标瞄准于提供比基本GWT安装提供功能更强大的widget的项目。在GWT-WL中支持的widget包括日历、计算器、图像按钮、状态条、分页标记等等。

GWT Diagrams (下载)

和上面所提到的组件库不同的是,GWT Diagrams致力于为通过GWT展现变化多端的图像提供更多功能。GWT diagrams所包含的特性包括:支持多种连接线类型,将任意GWT UIObject作为连接点的能力,以及控制连线连接到组件的不同边的能力。

---

除了在上面列出的这些项目以外,还有一些其他为GWT提供的开源代码库,它们活跃程度与社区采用程度各不相同。在我们前面没有提到的库中还包括Rocket GWT(这个库提供从widget到额外的JRE模拟库等各种各样的功能),gwt-maven(提供GWT与Maven的集成),gwt-math(提供了核心Java math API的一个扩展库实现),这里就列举这些。

InfoQ将继续追踪报道GWT开源开发社区的最新进展。

查看英文原文:GWT Shows Momentum With the Creation of Numerous Open Source Framework Projects

你可能感兴趣的:(GWT携其大量开源框架项目“来势凶猛”)