NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

《原则》(十四)

Changing Lin

6月日更

拆分电商系统为微服务

chenmin

[译] Android 的 Java 8 支持

Antway

6月日更

一文带你了解vue2之响应式原理

法医

Vue 大前端 6月日更

数字化转型的征途

CECBC

【译】Chrome 90 DevTools 中的新特性

KooFE

Chrome开发者工具 6月日更

经济金融的数字化转型并没有消除风险,风险反而更加复杂

CECBC

网络攻防学习笔记 Day44

穿过生命散发芬芳

网络攻防 6月日更

我在Dubbo源码里学到了如何保证虚拟节点均匀分布!

Kareza

dubbo dubbo源码

setInterval 和 hooks 撞在一起,翻车了~

Viktor

踩坑经历 React Hooks

Redis - 哨兵

旺仔大菜包

redis sentinel

JAVA笔记(一)--软件安装-MyEclipse

加百利

Java 6月日更

请求背后的守护者-拦截器

卢卡多多

SpringBoot 2 拦截器 请求拦截 6月日更

聊聊缓存模式

西门

SpringCloud Gateway 动态路由

黄仲辉

mongodb 响应式编程 源码阅读 动态路由 SpringCloud Gateway

🏆【声网Agora】「Linux系统下实时音视频流速提升实现」

洛神灬殇

RTC 6月日更

【FlinkSQL】Flink SQL Query 语法(四)- Rattern Recognition

Alex🐒

flink 翻译 FlinkSQL flink1.13

架構實戰營 - 模塊 5 作業

Frank Yang

架构实战营

常用消息队列对比

看山

MQ 6月日更

【Flutter 专题】104 图解自定义 ACEDropdownButton 下拉框

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

CSS技巧 | 前端开发需要知道的 10 个 CSS 技巧

devpoint

CSS css3 CSS小技巧 6月日更

Kubernetes手记(11)- 配置信息容器化

雪雷

k8s 6月日更

区块链具有美学特征

CECBC

Trello个人生产力简易指南

俞凡

生产力 认知 大厂实践

2020年度编程语言排行榜 C语言称霸,Java遭遇滑铁卢?

架构精进之路

编程语言 6月日更

浅浅谈Redux

蛋先生DX

React Redux 6月日更

消息队列架构设计文档

chenmin

代码操作中经常使用到设计模式之单例模式

良知犹存

设计模式

架构设计初识

编号94530

架构 系统设计 架构师

几行代码带你彻底搞懂Java内部类

若尘

java编程 6月日更

🌏【架构师指南】带你全面认识实现"三高"架构设计方案

洛神灬殇

架构师 高并发系统设计 架构师技能 6月日更

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