写点什么

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:462224
用户头像

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

关注

评论

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

架构训练营模块三作业

gigifrog

架构训练营

SpringBoot 自动装配原理,一文掌握!

程序员小毕

源码 程序员 面试 springboot 自动装配

vivo 实时计算平台建设实践

vivo互联网技术

大数据 flink 实时计算

华为云CDN,多场景网络加速服务,为企业发展强势赋能

i生活i科技

CDN

模块四作业

张贺

架构训练营

机器学习服务活体检测算法荣获CFCA权威安全认证

HarmonyOS SDK

HMS Core

中国北京|HICOOL 2023 全球创业大赛

科兴未来News

Hicool 海外 #双创赛事#

爱奇艺:基于龙蜥与 Koordinator 在离线混部的实践解析 | 龙蜥技术

阿里巴巴云原生

阿里云 云原生 Koordinator

网络拥堵?上网体验差,还不赶紧看看华为云CDN!

i生活i科技

CDN

下载速度慢怎么办?使用华为云CDN,让网速更快更稳

i生活i科技

CDN

如何用弹出对话框实现登录页非空提示?

Towify

云原生技术在离线交付场景中的实践

北京好雨科技有限公司

Kubernetes 云原生交付 离线交付

阿里云 ACK One 多集群管理再升级:GitOps 多集群持续集成,统一报警管理

阿里巴巴云原生

阿里云 云原生 容器服务

为什么说IO密集型业务,线程数是CPU数的2倍?

Java永远的神

程序员 程序人生 后端 cpu io

一些Web安全漏洞

穿过生命散发芬芳

HTTP 1月月更

2023-01-03:超过5名学生的课。编写一个SQL查询来报告 至少有5个学生 的所有班级,返回结果不限顺序。请问sql语句如何写? +---------+ | class | +-----

福大大架构师每日一题

数据库 sql 福大大

架构实战营 - 写出外包学生管理系统的架构文档

huiwen

架构实战营

Java高手速成│实战:应用数据库和GUI开发产品销售管理软件(2)

TiAmo

数据库 Java、 JDBC

性能测试技术笔记(二):如何准备测试环境和数据

老张

性能测试

外包学生管理系统详细架构设计文档

Geek_7d539e

如何导入本地数据?

Towify

云存储生态构建的技术基因和最佳实践

云布道师

阿里云 云存储

创业邦2022中国未来独角兽100强揭晓:总估值超3000亿元,累计融资总额达685亿元;红杉中国、顺为资本成年度最佳捕手

创业邦

Wallys/QCN9074 WiFi 6E Card OpenWRT, IPQ6010,802.11ax/Support:QUECTEL RM500Q-GL/QCN9074 11ax 4x4 6G M.2

wallysmeng

市面上到底有没有免费的云渲染平台?

Renderbus瑞云渲染农场

云渲染 云渲染平台 免费云渲染平台

再快一点?动态内容如何加速

蔡农曰

程序员 互联网

下载速度不尽人意,华为云CDN来助力,尽享高速体验!

i生活i科技

CDN

华为云弹性负载均衡服务,赋能现代企业加速发展

i生活i科技

ELB

基于 EventBridge API Destination 构建 SaaS 集成实践方案

阿里巴巴云原生

阿里云 云原生 EventBridge

RelativeLayout(相对布局)

芯动大师

Android Studio padding margin

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