Eclipse插件功能研究
【IT168技术文档】
桌面应用程序开发
Java 在桌面上的复兴在极大程度上归结于 Eclipse。在还没有成为独占的 Java 桌面平台时,Eclipse 似乎已经促进了 Java 平台本身的改进,并致力于对 Java 作为桌面应用程序可视平台的重新评估。
虽然可以(事实上是许多人的首选)直接在 Java 中创建接口,但使用合适的可视 UI 开发工具可以获得大的生产率收益。Eclipse 空间在一段时间里(至少不是作为 Open-Source 项目时)不存在这种工具的事实被许多人认为是在更大比例上采用 Eclipse 作为富客户机应用程序平台的一个障碍。
Visual Editor 项目的创建目的在于为 GUI 构建器提供框架,但还包括了功能完整的 SWT 和 Swing UI 构建器。Visual Editor 允许程序员使用流行的拖放技术快速有效地创建基于 SWT 和 Swing 的用户接口。尽管这种方法将手工编程从 UI 开发中解放出来,但程序员不必牺牲对结果代码的控制。没有依赖一些外部 UI 描述符文件,Visual Editor 实际上使用 Java 代码作为其 UI 定义格式。也就是说,它解析现有的 Java 用户接口创建代码,并基于开发人员的可视编辑动作对其进行修改或生成新的代码。
许多商业产品的目标是简化 UI 开发。Instantiations 的 WindowBuilder 是这一领域的先驱。除了 Visual Editor 提供的基本功能之外,它还支持高级功能,比如 Eclipse Forms API。Matisse4Eclipse 是 MyEclipse IDE 的一部分,是它实际上将 Sun Microsystems 的 Project Matisse Swing UI 构建器引入到 Eclipse 平台中。
其他平台和编程语言
忠于它作为功能较多工具集成平台的使命,Eclipse 支持使用非 Java 语言的编程语言进行软件开发。Eclipse Foundation 自己管理 C/C++ Development Tools 项目 (CDT),旨在为 C/C++ 开发人员提供一个在功能和能力上不低于 Java 开发人员所使用环境的环境。目前,CDT 提供了一个 C/C++ 源代码编辑器,具有语法高亮显示、内容辅助、代码完成、基于 GDB 的编辑器、C/C++ 应用程序启动器、搜索引擎、Makefile 构建器和其他许多功能。
由 Eclipse.org 管理的其他编程语言项目包括遗留语言,比如 COBOL 和 Fortran(项目 Photran),但还有现代语言和编程技术,比如 AspectJ(它将面向方面编程引入 Java 技术中)、Web Services Business Process Execution Language (WS-BPEL)、Laszlo IDE(Laszlo 是用于开发和交付富 Internet 应用程序的开放源码平台)和 Lepido(Apache Cocoon Web 应用程序框架的工具)。创建用于开发 Ajax 应用程序 (Rich Ajax Platform) 的非常好的血统工具的广泛倡议也正在被提出,新批准的 Eclipse PHP IDE 项目的最新宣告意味着对流行 PHP 脚本语言的鼎力支持也在规划中。
对其他语言的支持可从第三方提供商获得。Omondo UML 提供了一个 Unified Modeling Language (UML) 建模工具集,与 JDT 良好集成。但是,因为 UML 独立于编程语言,它可用于不一定包括 Java 技术的项目中。PyDev 项目是 Python 编程语言的开放源码开发工具集。xored 软件在其 TruStudio Professional(它的 TruStudio Foundation 注册在 EPL 之下)中提供了对 Python 编程的商业支持。另一个开放源码项目 Ruby Development Tools (RDT) 提供了使用 Ruby 编程的完整工具集。最后,您可以在 ANTLR Studio 的帮助下设计您自己的编程语言或特定于域的语言,ANTLR Studio 允许您基于 ANTLR 框架创建上下文自由的语法定义。ANTLR Studio 是由 Placid Systems 开发的商业产品。
核心工具和技术
Eclipse 社区的一个重要部分是用作其他产品或开发工具的基础或补充的软件。虽然您不可能下载并使用这些插件作为最终用户工具,但它们使其他人可以基于通用标准创建高质量的软件,或者增加现有产品的功能。
在该类别中,Eclipse Foundation 宿主着几个项目。Eclipse Modeling Framework (EMF) 是支持自动代码生成的软件建模框架。它用于其他许多获益于模型驱动软件开发的项目中。尽管 EMF 只使用了 UML 工具的一个子集,但 UML2 项目将其扩展以提供对完全 UML2 标准的支持。
Graphical Editor Framework (GEF) 是用于为任意对象模型创建富图形编辑器的框架。该框架还用于其他许多提供可视编辑功能的项目中,比如 UML 图、图和工作流编辑器。Graphical Modeling Framework (GMF) 扩展了 GEF 和 EMF 以将可视编辑能力添加到任意 EMF 模型中。
Data Tools Platform (DTP) 项目旨在创建使用各种相关数据源的通用工具集。它提供用于管理数据库连接以及创建和执行 SQL 脚本的工具。
Eclipse Test 和 Performance Tools Platform (TPTP) 包括四个子项目:通用 TPTP Platform、用于应用程序监控和日志记录的 Monitoring Tools、Tracing and Profiling Tools 和最后一个 Testing 工具。这些工具允许在各种执行环境中监控、剖析和测试 Java 应用程序。
Business Intelligence and Reporting Tools (BIRT) 将业务报告能力添加到现有应用程序中。BIRT 支持许多媒体,其中包括 HTML 和 PDF。
Device Software Development Platform (DSDP) 旨在提供为嵌入式设备开发软件的工具集。相关项目 eRCP 试图将 Rich Client Platform (RCP) 扩展到嵌入式设备。
SOA Tools Platform (STP) 的使命是构建框架和可模仿的可扩展工具,以支持软件的设计、配置、组装、部署、监控,以及围绕面向服务架构 (SOA) 而设计的软件的管理。它由一些子项目构成,比如 Core Frameworks、SOA System、Service Creation、BPEL2Java 和 BMPN。
许多子项目宿主在 Eclipse Technology 项目的保护伞之下,后者作为有趣想法的孵化器,可能有益于其他的新项目或现有项目。其中已经在别处提到的一些项目包括 Eclipse Communication Framework (ECF),它提供用于构建实时通信和协作应用程序的通用 API 和组件集;Higgins Trust Framework,一个用于各种组上下文中的身份、概要文件和关系数据的可视集成的可扩展框架;以及 Voice Tools Project,它扩展 WTP 以支持语音识别应用程序的创建。
作为 RCP 的 Eclipse
随着 Eclipse 动力的增加,许多公司和开发人员已经发现 Eclipse 不仅是集成工具的伟大平台,还可以用于其他类型的功能丰富的客户端应用程序,比如商业和协作。因此,从版本 3.0 开始,Eclipse 已经跨越了工具,现在正式被支持作为 Rich Client Platform (RCP)。
RCP 应用程序共享面向工具的相应方的所有灵活性和可扩展性,因为这些对应方也是由插件组成。但是,通用 RCP 插件集要小得多,而且一个插件不能将另一个插件放入 RCP 应用程序中,除非该应用程序明确支持它。
IBM 的 Workplace Client Technology 是基于全部 Eclipse RCP 的平台的商业示例。就架构而言,它是客户端的协作工具,Eclipse IDE 是开发工具。IBM Workplace 是一个产品族,其中包括使用集中管理的富客户机技术的信息管理和团队协作。它提供即时消息、Web 会议、共享日历计划,等等。
基于 Eclipse RCP 的开放源码应用程序的两个流行示例是 Azureus 和 RSSOwl。Azureus 是一个功能强大的 BitTorrent 客户机,允许您下载使用 BitTorrent 技术分布的大型文件。它支持自己不断增长的插件集。RSSOwl 是功能丰富的联合新闻阅读器和聚合器。它允许您使用许多流行的联合格式(比如 RSS、RDF 和 Atom)搜索、订阅和阅读新闻和博客。
Eclipse RCP 在学术领域和研究应用程序中也变得流行起来。例如,NASA 的 Jet Propulsion Laboratory (JPL) 选择 Eclipse RCP 作为其 Maestro 项目的基础,该项目是用于管理 NASA 的 Mars Exploration Rovers 的高级操作的工具集。该软件用于计划飞行器的表面活动,比如到哪里以及要拍摄多少照片。
还有许多其他商业和开放源码应用程序基于 Eclipse RCP。它们跨越无数领域,其中包括生物医学研究(Bioclipse、Sequence Scanner Software)数学和物理建模(BrainBox、GumTree、Kalypso)、通信和协作 (WiredReach)、商业和金融(Eclipse Trader、BSI CRM、eClarus、Logic MindGuide),等等。
结束语
由于其基于插件的架构,Eclipse 成为集成开发工具以及许多其他种类应用程序的功能较多平台。作为一个 IDE,Eclipse 不仅可以用于编写 Java 代码,还可以使用其他编程语言开发。作为 Rich Client Platform,它甚至可以用于执行范围广泛的非编程任务。将 Eclipse 技术用于各种目的的商业和开放源码应用程序在不断增多。
0
相关文章