【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

  • 2008-01-23
  • 本文字数:2375 字

    阅读完需:约 8 分钟

在 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

2008-01-23 03:461777
用户头像

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

关注

评论

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

借品牌升级之际,谈一谈技术开发者为什么选择 InfoQ 写作社区

宇宙之一粟

4月月更 InfoQ写作社区2周年

【分享汇总】AIoT开源科技节暨OpenHarmony技术论坛(附链接)

OpenHarmony开发者

OpenHarmony AIoT开源科技节

如何优雅的记录操作日志

flyhero

Java Spring Boot 后端 造轮子 4月月更

踩了个DNS解析的坑,但我还是没想通

捉虫大师

DNS 问题排查 4月月更

STI生态迎来新进展,登录Gate.io意味着什么?

西柚子

初创企业需要CRM系统的原因

低代码小观

初创公司 企业管理系统 CRM系统 客户关系管理系统 初创型企业

记一次CPU持续增长的问题解决

BUG侦探

Python py-spy CPU增长问题

用uniapp写一个内外循环的全选与反选,不会的赶紧围观

CRMEB

多个私有云设施管理用什么云管理软件好?

行云管家

云计算 私有云 云管理 多有云

STI即将登录Gate.io,我们有哪些期待?

小哈区块

科创中国开源创新榜单发布,EMQX 获评“年度优秀开源产品”

EMQ映云科技

开源 物联网 IoT emq emqx

百度程序员开发避坑指南(移动端篇)

百度Geek说

移动端

48天打造你的专属 Twilio——浅谈运营商通信中台

网易云信

通信

Sitemap的重要性

源字节1号

软件开发 网站优化

省掉80%配置时间,这款Mock神器免费又好用

Liam

前端 前端开发 Postman 前端教程 web前端开发

【高并发】一文秒懂Happens-Before原则

冰河

并发编程 多线程 协程 异步编程 精通高并发系列

hash,bloomfilter,分布式一致性hash

Linux服务器开发

分布式 hash 后端开发 Linux服务器开发 C++后台开发

百度程序员开发避坑指南(3)

百度Geek说

前端

从趋势到必选项,探讨企业数字化转型方式方法

华为云开发者联盟

数据 数字化 企业数字化转型 业务数字化

腾讯二面:Linux操作系统里一个进程最多可以创建多少个线程?

Java全栈架构师

Linux 程序员 架构 面试 操作系统

详解离线数仓和实时数仓的区别

五分钟学大数据

4月月更

亚马逊云科技 loT 百亿连接力量

亚马逊云科技 (Amazon Web Services)

亚马逊云

公司产品手册的编写方法

小炮

企业 产品宣传手册

一张长图带你看懂物联网产业十数载“江湖风云”!

亚马逊云科技 (Amazon Web Services)

物联网

恒源云(Gpushare)_自动化训练小技巧白送给你,不要吗?

恒源云

OSS SSH hy-tmp

问题来了!拔掉网线几秒,再插回去,原本的 TCP 连接还存在吗?

Java全栈架构师

程序员 架构 面试 计算机网络 底层知识

大数据培训Hive如何控制map个数与性能调优参数

@零度

hive map 大数据开发

进阶篇|有了这招,用文本编辑器搞前端代码都能保证格式统一

Jianmu

运维 前端 自动化 工作流 格式化

去中心化的 React Native 架构探索

Shopee技术团队

前端 去中心化 React Native

看板的作用是什么?任务看板如何跟进

阿里云云效

云计算 阿里云 持续交付 看板 项目协作

VNC中文是什么意思?全称是什么?

行云管家

运维 服务器 vnc

GWT携其大量开源框架项目“来势凶猛”_Java_R.J Lorimer_InfoQ精选文章