第2部分: 采用Ganymede进行富客户机平台开发
Eclipse IDE 的 Ganymede 发行版包括 24 个独立项目,涵盖各种各样的技术。这些 项目大部分都十分成熟,而此发行版将提供对这些项目的增量改进。但是 Ganymede 还包 括把新技术引入到 Eclipse 平台中的许多新项目。在这个 “使用 Eclipse Ganymede 进 行桌面、Web 和移动设备开发” 三部分系列教程中,我们将介绍以下新 Ganymede 特性 :RCP、RAP 和 eRCP,这些特性将允许用一个通用代码库分别为桌面平台、Web 平台和移 动平台开发软件;使用 Subversion 进行版本控制;以及使用 p2 进行更新和安装。
开始之前
本教程适用于想要了解如何获得使用成熟的 Rich Client Platform(RCP)编写的代 码,并将其修改为使用新的 Rich Ajax Platform(RAP)在 Web 上实现富客户机体验的 所有 Eclipse 开发人员。您应当了解 Eclipse 平台并且熟悉一些 Rich Internet Application(RIA)理念。另外,您应当了解如何配置 servlet 容器并在其中部署应用 程序。
关于本系列
第 1 部分 将介绍 RCP 的新特性、新 Subversion Eclipse 集成以及 p2 打包和分发 系统。第 2 部分将引入 Rich Ajax Platform(RAP)来编写 Web 应用程序。第 3 部分 将讨论如何使用内置的 Rich Client Platform(eRCP)为移动设备开发应用程序。
关于本教程
Eclipse IDE 的 Ganymede 发行版将捆绑 Eclipse 旗下的 20 多个新项目和现有项目 。在这个共分三部分的系列教程的第 1 部分中,您了解了一些可以简化开发的新添特性 ,包括 Subversion 支持和名为 p2 的新插件分发模型。通过开发一个简单的备忘记事本 插件应用程序,然后将它存储在 Subversion 中并通过 p2 进行部署,您还看到了成熟的 Rich Client Platform(RCP)中的一些增量改进。
Ganymede 中添加的另一项令人兴奋的内容是 Rich Application Platform(RAP)。 RAP 用于构建富客户机应用程序 — 类似于为桌面应用程序开发的有状态 GUI 应用 程序 — 并将其部署以供在 Web 中使用。RAP 把 Eclipse 编程模型引入到 Web 中 ,允许在构建基于 RAP 的应用程序时重用大部分现有的 RCP 代码。这是使用 Ajax 完成 的,但是 Eclipse 可以让您轻松地利用使用 RCP 开发桌面应用程序的知识。为了演示, 您将把在 第 1 部分 中开发的备忘记事本修改为使用 RAP。
主题包括:
如何下载并把 RAP 环境安装到 Eclipse 中
如何把现有 RCP 代码迁移到 RAP 中
如何为 Web 构造代码
如何打包并把代码部署到 Web 服务器中
系统要求
Eclipse GanymedeEclipse Ganymede 位于 Eclipse Foundation。 Java 2 Standard Edition从 Sun Microsystems 可以获得 Java 2 Standard Edition V5 或更高版本。Eclipse RAP在 Eclipse.org 的 Eclipse Foundation RAP 部 分 可以获得 Eclipse RAP 插件。Apache Tomcat为了把已完成的 RAP 应用程序部署到独 立的 servlet 容器中,本教程将使用 Apache Tomcat。请下载最新稳定版本。
开始使用 RAP
在开始用 RAP 进行开发前,必须先从 Eclipse Web 站点下载并 设置目标平台才能使用它。
用 RAP 进行开发
RAP 允许使用 Eclipse 开发 模型构建启用 Ajax 的 Web 应用程序。如果您已经熟悉如何用 Eclipse RCP 开发桌面应 用程序,则已经具备了 RAP 开发技术。实际上,为 RCP 应用程序编写的大部分代码可以 在 RAP 应用程序中重用。这意味着您可以充分利用 Java 技术和 Eclipse API 的功能来 开发基于 Web 的应用程序。然后,您的用户将体验到一个无需刷新页面的完整的 GUI 应 用程序,就像一个典型的 Web 应用程序一样,但是用户不必在他们的台式机中下载并安 装您的应用程序。RAP 通过提供一个特殊的标准部件工具包(Standard Widget Toolkit ,SWT)、JFace 和 Workbench 等的实现(实际上是 RCP 的子集)做到了这一点。
由于 RCP 和 RAP 的基本架构类似(参见图 1),因此在源代码中进行极少的更 改就可以实现插件重用。同在桌面环境中执行 RCP 应用程序的方法一样,通过标准浏览 器可以访问 RAP 应用程序。这是由 RAP Widget Toolkit(RWT)实现的,这是 RCP 中使 用的 SWT 的替代品。
浏览器端部件呈现是用 qooxdoo Ajax 库完成的。qooxdoo 一个功能完善的 Ajax 框架,它利用了面向对象的 JavaScript,使用户可以构建跨浏览 器应用程序。RAP 抽象出了关于 JavaScript 的详细信息,允许您使用 Java API 构建 Rich Internet Application(RIA)。自定义部件开发人员需要具备 JavaScript、 qooxdoo 和 RAP 知识。客户端开发允许嵌入诸如其他 JavaScript 框架、Flash 和 applet 之类的客户端技术。
图 1. 比较 RAP 和 RCP 的架构