作者:
Flyingis
以前一直做WebGIS方面的工作,对桌面关心甚少。桌面开发让人第一个想到的是VB6的快速开发,以及VC++平台中对效率的追求,VB.NET似乎找不到一个合适的定位。自己以后想逐步转向桌面,毕竟桌面才是GIS的天下,在效率、可扩展性、开发速度以及平台可持续发展中权衡,让我选择了Eclipse RCP。
说向桌面转型而选择Eclipse RCP有些片面,因为桌面开发仅仅是Eclipse RCP开发的一个子集,用Eclipse RCP进行Web开发同样可以。Eclipse RCP是一个基础应用平台,在这个平台上,我们可以方便的扩展自己的应用、快速开发自己的程序、统一应用程序的界面等等,按照官方的话来说,Eclipse RCP开发的特点在于:
1.组件式的架构:所有的业务功能都可以设计为可以重用的插件,插件之间的相互访问与重组,就构成了系统的业务模块。其中最典型的应用,就是通过插件来增强Eclipse Java IDE的功能。
2.将程序关注的重点集中在业务领域:Eclipse RCP本身就基于Eclipse插件体系结构,基于这个统一的架构,程序员可以很方便的开发出自己的客户端应用,将主要精力放在业务逻辑的实现。
3.适应需求的变化:Eclipse就是由插件搭建而成的,通过增减插件,我们可以很容易的实现业务功能的变更。为Eclipse加入中文包就是最好的例子,通过.link文件对中文包文件的引用,可以实现Eclipse的中文本地化,当我们需要将语言恢复为英文时,只需删除对应的.link文家即可。
Eclipse体系的核心是插件,3.0版本以后Eclipse开始采用OSGI作为其插件体系结构实现的基础,OSGI是一套开放的标准,这样可以增强网络范围内的互操作性,每个Eclipse插件就是一个OSGI的模块。OSGI模块中最重要的是Bundle和Service,Bundle是插件管理器,Service是这个模块可以暴露对外的服务对象。每个Bundle拥有自己的ClassLoader以及context,通过context可进行服务的注册、卸载等。启动时Eclipse核心会检查所有的插件并注册,但是直到被调用,该插件才会被实例化,这个过程就是懒加载。
在OSGI之上的是Runtime,它提供了Application模型和扩展机制。
和OSGI框架和JVMs一样,Eclipse Runtime需要知道做什么。运行Eclipse,首先需要构建一个Application,它和Java程序中的main方法类似,Runtime启动后,程序需要找到指定的Application,Application通过扩展来定义,该扩展指定一个类(扩展点)作为主程序的入口。Application必须实现IplatformRunable接口,由此接口提供的run方法接管Eclipse平台的控制权,当Application结束时,Eclipse平台也会退出。
Products运行于Application之上,它主要提供典型应用程序的基本界面的实现,例如闪屏、windows图标等。一个Eclipse安装中可能存在多个Application和Product,但是在同一时刻只能运行一个Application和一个Product。
各种插件添加到Eclipse RCP是通过扩展来实现的,扩展的创建必须遵循扩展点(Extension Point)定义的规范进行明确的声明,我们可以使用Eclipse提供的现成的扩展点,还可以定义新的扩展点,并在此基础上进行扩展。Eclipse平台上常见的扩展点有:actionSets、editor、popUpMenu、views、perspectives、propertyPages等等。
关于Eclipse中的插件类型:
Eclipse是各种插件的集合,但总体而言,插件开发有两种提供方式,一种是插件集构建的应用,拥有自己的程序入口,如Eclipse平台在Windows下通过点击eclipse.exe可以进入。另一种是以扩展的方式提供的插件集,它们通常不是完整的,也没有自己的程序入口,仅用以加入到已存在的平台中进行辅助性的开发,如GEF、EMF、CDT等。
参考资料:
《Eclipse Rich Client Platform:Designing,Coding,and Packaging Java
TM Applications》
《程序员》2006年5月刊
http://www.eclipseworld.org/
分享到:
相关推荐
Eclipse RCP,全称Eclipse Rich Client Platform,是一种基于Java的开源框架,用于构建桌面应用程序。它由Eclipse基金会维护,是Eclipse IDE的核心组成部分,提供了丰富的UI组件、插件系统以及工作台(Workbench)...
7. **学习资源**:这个项目对于想要学习Eclipse RCP开发的初学者来说是一个宝贵的实例,他们可以从源代码中学习如何结合Eclipse RCP和MP3处理技术。 综上所述,"eclipse RCP mp3工程"不仅是一个实用的音频处理应用...
《ECLIPSE+RCP应用系统开发方法与实战》这本书是高岗先生关于使用Eclipse RCP(Rich Client Platform)进行应用系统开发的一本实战指南。Eclipse RCP是Eclipse IDE的一部分,它提供了一个框架,使得开发者可以构建...
"菜鸟Eclipse RCP学习之路"这个主题显然针对的是初学者,旨在引导他们逐步掌握如何使用Eclipse RCP进行软件开发。 首先,Eclipse RCP的核心概念是插件(Plugins)。每个插件代表应用程序的一个模块,它们通过OSGI...
这个压缩包中的“ECLIPSE RCP项目源程序”包含了使用Eclipse RCP开发的一个项目的完整源代码,并且有中文注释,这对于初学者或有经验的开发者来说都是一个宝贵的资源。 Eclipse RCP的核心概念主要包括以下几个方面...
这个“最详细的Eclipse RCP教程”显然旨在深入解析这一强大的开发平台,帮助初学者和经验丰富的开发者更好地理解和应用Eclipse RCP。 在Eclipse RCP中,开发者可以利用插件体系结构来构建模块化、可扩展的应用程序...
这个简单的Eclipse RCP源码示例旨在帮助初学者快速理解RCP应用的基本结构和工作原理。 首先,Eclipse RCP的核心是插件(Plugin)系统,每个插件都是一个独立的模块,包含特定的功能。在提供的"myrcp"压缩包中,可能...
Eclipse RCP(Rich Client Platform)是Eclipse组织提供的一种强大的桌面应用程序开发框架,自Eclipse 3.0版本开始引入。它允许开发者利用Eclipse的底层架构和已有的组件来构建可扩展、功能丰富的应用。RCP的核心...
本文将深入探讨如何利用Eclipse RCP进行编辑器开发,结合提供的描述,我们将分享一个初学者在学习RCP后完成的小程序案例。 首先,我们需要了解Eclipse RCP的核心概念。RCP是Eclipse IDE的底层架构,它提供了构建可...
### Eclipse RCP 入门详解 #### 一、Eclipse RCP 概述 Eclipse RCP(Rich Client Platform)是一种构建高度定制化且功能丰富的桌面应用程序的技术框架。它不仅适用于Java开发人员,而且为创建现代化、易于维护的...
Eclipse RCP的应用不仅限于复杂项目,即便是相对简单的技术,如“快餐技术”,也能在短时间内让初学者掌握并找到工作。这里提到了编程语言的选择,例如PHP、JavaScript、Pascal、Perl和C,它们各自在Web开发、脚本...
这两份资源将帮助初学者快速掌握Eclipse RCP的基本用法,并能逐步进阶到高级主题。通过实例讲解,你可以更直观地理解如何将理论知识应用于实际项目中。学习并掌握Eclipse RCP,不仅可以提升开发效率,还能为构建复杂...
本压缩包包含了一个Eclipse RCP的示例源码,这对于初学者和有经验的开发者来说都是一个宝贵的资源。 `test_preference.rar` 文件很可能是一个关于偏好设置的示例,Eclipse RCP中的偏好系统允许用户自定义应用的配置...
前一段时间学习eclipse rcp开发写的一个学习用的工程。涉及了我当时学到的一些方面。 当时想找一个可以用来学习的简单的源代码真难,有的都是复杂的。 这里提供一个简单的工程。设计初学者接触的各种问题。有时通一...
《Eclipse RCP详解:构建桌面应用程序的利器》 Eclipse RCP,全称为Eclipse Rich ...无论你是初学者还是有经验的开发者,这个资源都将帮助你深入理解Eclipse RCP的强大之处,并为你在桌面应用开发领域开启新的可能。
总的来说,"Eclipse RCP 初级入门教程"是一个很好的起点,为初学者提供了RCP开发的基本概念和步骤。通过这个教程,你可以逐步熟悉Eclipse RCP的开发环境,创建你的第一个RCP应用,并了解其强大的模块化和扩展能力。...