出版時(shí)間:2012-5 出版社:電子工業(yè)出版社 作者:梁騫 主編,王威 等編著 頁數(shù):300
Tag標(biāo)簽:無
前言
前言 列位看官,拿起本書,緣由心生,表明您對技術(shù)感興趣,對Eclipse的相關(guān)技術(shù)感興趣。那您要仔細(xì)看了,本書絕不會(huì)辜負(fù)看官求知的殷切之心、拳拳之意?! 【壠鹣氘?dāng)初,在完成了對Lotus Notes Client 8 & Expeditor 等產(chǎn)品的研發(fā)之后,技術(shù)團(tuán)隊(duì)的兄弟幾個(gè)做總結(jié)時(shí)頗有興致、相聊甚歡。帶頭大哥忽然非常感慨,言道“自從Eclipse利器獨(dú)步天下以來,Eclipse的技術(shù)書籍可謂汗牛充棟,林林總總,不可說,不盡說??!然你我可曾見一本‘獨(dú)孤九劍’似的絕世典籍嗎?”大家皆搖頭嘆息。事實(shí)如此,絕大多數(shù)有關(guān)Eclipse的書籍都是介紹Eclipse的使用或者Eclipse插件的開發(fā),很少有中文書籍深入Eclipse的內(nèi)部講解它的實(shí)現(xiàn)機(jī)制和方法。 對初學(xué)者來說這種淺嘗輒止的介紹尚可,然隨著我國軟件業(yè)的發(fā)展,我國的軟件開發(fā)已經(jīng)逐漸從應(yīng)用軟件開發(fā)向系統(tǒng)軟件開發(fā)過渡,這就要求開發(fā)人員更多地掌握復(fù)雜系統(tǒng)的構(gòu)造方法。學(xué)習(xí)世界上一些優(yōu)秀的開源系統(tǒng),研究其實(shí)現(xiàn)機(jī)制,是提高我們能力的一個(gè)最為快捷的方法。由于大型開源系統(tǒng)的復(fù)雜性,一般開發(fā)人員試圖研究它們時(shí)往往會(huì)發(fā)現(xiàn)無從下手,心有余而力不足?! ⒚鳠舳者h(yuǎn)帆,顯慈悲達(dá)濟(jì)天下?! ∮谑亲珜懸槐緦clipse技術(shù)從業(yè)人員實(shí)實(shí)在在受用、既能知其然又能知其所以然、頗有深度和魅力的書籍就成了項(xiàng)目組成員的共識?! ‰S喜,功德無量?! ÷詳⒖垂偃舴浅鯇W(xué)者,請略過前兩章的介紹,直接從第3章看起。作者本打算直接從第3章開講,但考慮初學(xué)者的感受,還是介紹了Eclipse 平臺和RCP技術(shù)的概況等,書中多引用IBM Lotus Notes 客戶端等產(chǎn)品的例子。初學(xué)聞之,嘆之強(qiáng)大,激發(fā)興趣,亦是美事?! 〉?章講述了RCP平臺的架構(gòu),此為靜態(tài)的分析,結(jié)構(gòu)性的介紹?! 〉?章講述了RCP平臺是如何啟動(dòng)的,此為動(dòng)態(tài)的分析切入,看官不可不察焉! 第5章講述了RCP的核心運(yùn)行時(shí)或曰微內(nèi)核,一言以蔽之就是Eclipse equinox 是怎么運(yùn)作的,此為上層應(yīng)用的基礎(chǔ)。 第6章講述了RCP 界面框架(UI Framework)是如何運(yùn)行的,對Eclipse源代碼進(jìn)行深入淺出的分析介紹,讀者看罷,會(huì)不會(huì)嘆為觀止呢?架構(gòu)之宏偉,代碼之完美可遇而不可求也! 第7章介紹RCP 元數(shù)據(jù)。人們都說“數(shù)據(jù)是核心的核心”,且看Eclipse中的數(shù)據(jù)是如何被組織的?! 〉?章介紹了如何通過定制RCP應(yīng)用的窗口創(chuàng)建特色RCP的應(yīng)用,什么特色?拭目以待?! 〉?章講述了RCP程序是如何定制應(yīng)用程序外觀的,想為你的程序增加美感的看官不可錯(cuò)過?! 〉?0章講述了如何美化工具欄和狀態(tài)欄?! 〉?1章講述了如何打造自己RCP應(yīng)用平臺的啟動(dòng)欄?! 〉?2章介紹如何為RCP應(yīng)用程序創(chuàng)建邊欄,從而通過邊欄方便地訪問應(yīng)用小工具?! 〉?3章是動(dòng)態(tài)插件的介紹,什么是Eclipse動(dòng)態(tài)插件呢? 第14章介紹了RCP 產(chǎn)品是如何國際化的。 第15章講述了RCP 應(yīng)用程序更新的機(jī)制?! 「戒汚介紹OSGi原理和實(shí)戰(zhàn)。 總之,本書試圖從系統(tǒng)構(gòu)架的角度分析Eclipse RCP平臺主要的內(nèi)部機(jī)制和實(shí)現(xiàn)方法,按Eclipse RCP應(yīng)用系統(tǒng)運(yùn)行時(shí)的代碼執(zhí)行順序講解涉及的源代碼,從而方便開發(fā)人員學(xué)習(xí)Eclipse,掌握其內(nèi)部構(gòu)造。同時(shí),給出了一些實(shí)例程序,講解Eclipse RCP程序的定制方法。 只要您對Eclipse技術(shù)感興趣,不管看官是剛涉入Eclipse RCP技術(shù)領(lǐng)域的初學(xué)者還是已經(jīng)帶領(lǐng)團(tuán)體開發(fā)大型產(chǎn)品的技術(shù)牛人,相信讀罷此書,都會(huì)受益良多。在學(xué)習(xí)技術(shù)的同時(shí),也提升了架構(gòu)設(shè)計(jì)能力。此外,在本書的寫作過程中,同仁盡量參考源代碼的英文注釋說明,在讀懂的基礎(chǔ)上力求和包、類、方法的作者心心相印,道出設(shè)計(jì)的始末緣由。如果有遺漏、錯(cuò)誤、不足之處,請看官不吝指正批評,感激不盡,謝謝。
內(nèi)容概要
本書從系統(tǒng)構(gòu)架的角度分析Eclipse RCP平臺主要的內(nèi)部機(jī)制和實(shí)現(xiàn)方法,按Eclipse
RCP應(yīng)用系統(tǒng)運(yùn)行時(shí)的代碼執(zhí)行順序講解涉及的源代碼,并給出了一些實(shí)例程序,講解Eclipse
RCP程序的定制方法,便于開發(fā)人員學(xué)習(xí)Eclipse,掌握其內(nèi)部構(gòu)造。
作者簡介
梁騫,畢業(yè)于華中理工大學(xué)計(jì)算機(jī)軟件專業(yè),現(xiàn)在是IBM資深軟件開發(fā)工程師。從2005年開始從事基fEclipse的客戶端軟件開發(fā),帶領(lǐng)開發(fā)團(tuán)隊(duì)參加了Lotus Notes8.0以后的所有版本的開發(fā)工作,對基于Eclipse的客戶端軟件開發(fā)有著深入的研究和豐富的經(jīng)驗(yàn),曾發(fā)表多篇有關(guān)Eclipse開發(fā)的文章。 王威,曾任職IBM中國軟件開發(fā)中心軟件工程師,并參與LotusExpeditor 6平臺以及Lotus Notes8/8.5中郵件、地址簿、日歷等組件的開發(fā)。目前從事互聯(lián)網(wǎng)相關(guān)的技術(shù)管理工作。 李偉,號弘真居士,IBM高級軟件工程師。 高立娟,畢業(yè)于南開大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系,IBM中國開發(fā)中心高級軟件工程師。2008年加入IBM中國開發(fā)中心,主要從事Lotus Notes軟件的開發(fā)、性能優(yōu)化等工作,對基于Eclipse的RCP應(yīng)用開發(fā)和性能優(yōu)化有豐富的經(jīng)驗(yàn)。 李輝,IBM中國軟件開發(fā)中心軟件工程師,曾參與Lotus Notes 8.0郵件,地址薄以及Lotus Symphony文檔編輯器的開發(fā),目前從事J2EE相關(guān)的開發(fā)工作。
書籍目錄
第1章 Eclipse RCP概述
1.1 Eclipse歷史背景
1.2 Eclipse富客戶端(Rich Client Platform)背景簡介
1.3 Eclipse體系結(jié)構(gòu)
1.4 未來展望
1.5 本章小結(jié)
第2章 Eclipse RCP平臺應(yīng)用及發(fā)展現(xiàn)狀
2.1 開源的RCP應(yīng)用
2.2 商業(yè)的RCP應(yīng)用
2.3 本章小結(jié)
第3章 RCP平臺架構(gòu)概覽
3.1 內(nèi)核架構(gòu)
3.2 應(yīng)用界面(UI)架構(gòu)
3.3 本章小結(jié)
第4章 RCP啟動(dòng)器
4.1 RCP啟動(dòng)器(Launcher)介紹
4.2 設(shè)計(jì)精巧的RCP外殼程序
4.2.1 介紹
4.2.2 源代碼組成及編譯方法
4.2.3 源代碼分析
4.3 簡潔明快的RCP啟動(dòng)器插件
4.4 本章小結(jié)
第5章 深入RCP內(nèi)核
5.1 RCP內(nèi)核介紹
5.1.1 背景簡介
5.1.2 項(xiàng)目簡介
5.2 內(nèi)核啟動(dòng)全接觸
5.3 插件加載詳解
5.4 內(nèi)核中插件事件機(jī)制分析
5.5 內(nèi)核面向服務(wù)的框架分析
5.6 本章小結(jié)
參考文獻(xiàn)
第6章 RCP界面框架剖析
6.1 RCP應(yīng)用的基本框架
6.2 RCP應(yīng)用程序的入口(IApplication)及其啟動(dòng)過程
6.3 界面(UI)創(chuàng)建過程及實(shí)現(xiàn)
6.3.1 創(chuàng)建并啟動(dòng)工作臺(Workbench)
6.3.2 創(chuàng)建并打開工作臺窗口(WorkbenchWindow)
6.3.3 創(chuàng)建并激活頁面(Page)
6.4 本章小結(jié)
參考文獻(xiàn)
第7章 RCP元數(shù)據(jù)
7.1 RCP元數(shù)據(jù)介紹
7.2 數(shù)據(jù)區(qū)中的數(shù)據(jù)詳析
7.2.1 安裝數(shù)據(jù)區(qū)
7.2.2 配置數(shù)據(jù)區(qū)
7.2.3 實(shí)例數(shù)據(jù)區(qū)
7.3 數(shù)據(jù)區(qū)配置方法及應(yīng)用
7.3.1 數(shù)據(jù)區(qū)配置方法
7.3.2 數(shù)據(jù)區(qū)配置應(yīng)用:多用戶安裝
7.4 本章小結(jié)
第8章 開發(fā)特色RCP應(yīng)用窗口
8.1 窗口形狀隨心變
8.1.1 改變Shell的風(fēng)格
8.1.2 創(chuàng)建透明的不規(guī)則的形狀
8.1.3 創(chuàng)建窗口
8.2 窗口標(biāo)題欄我做主
8.2.1 標(biāo)題欄樣式
8.2.2 標(biāo)題欄按鈕
8.3 本章小結(jié)
第9章 Presentation——定制應(yīng)用外觀的利器
9.1 Presentation介紹
9.2 通過Presentation創(chuàng)建獨(dú)特的應(yīng)用外觀
9.3 本章小結(jié)
第10章 美化工具欄和狀態(tài)欄
10.1 菜單、狀態(tài)欄和工具欄加載過程分析
10.1.1 為菜單欄和工具欄創(chuàng)建action
10.1.2 RCP應(yīng)用構(gòu)造工具欄和狀態(tài)欄的過程分析
10.2 狀態(tài)欄和工具欄定制實(shí)戰(zhàn)
10.2.1 定制狀態(tài)欄
10.2.2 定制CoolBar和ToolBar
10.3 本章小結(jié)
第11章 啟動(dòng)欄——打造自己的RCP應(yīng)用平臺
11.1 什么是啟動(dòng)欄
11.2 啟動(dòng)欄擴(kuò)展點(diǎn)定義
11.3 啟動(dòng)欄實(shí)現(xiàn)實(shí)例
11.4 添加新的啟動(dòng)項(xiàng)到啟動(dòng)欄
11.5 本章小結(jié)
第12章 邊欄——應(yīng)用小工具集合地
12.1 什么是邊欄
12.2 邊欄擴(kuò)展點(diǎn)定義
12.3 邊欄實(shí)現(xiàn)實(shí)例
12.4 加入新的應(yīng)用到邊欄
12.5 本章小結(jié)
第13章 動(dòng)態(tài)插件
13.1 動(dòng)態(tài)世界的運(yùn)轉(zhuǎn)方式
13.1.1 動(dòng)態(tài)的Bundle
13.1.2 監(jiān)聽Bundle生命周期變化
13.1.3 監(jiān)聽框架生命周期變化
13.2 動(dòng)態(tài)世界的交互方式
13.2.1 Whiteboard Pattern簡介
13.2.2 服務(wù)
13.3 動(dòng)態(tài)世界的行為準(zhǔn)則
13.3.1 感知運(yùn)行環(huán)境的變化
13.3.2 創(chuàng)建具有動(dòng)態(tài)特性的插件
13.4 本章小結(jié)
參考文獻(xiàn)
第14章 RCP產(chǎn)品國際化
14.1 國際化概述
14.2 插件國際化的實(shí)現(xiàn)方法
14.3 本章小結(jié)
第15章 RCP應(yīng)用更新機(jī)制
15.1 創(chuàng)建更新站點(diǎn)
15.1.1 site.xml高級配置介紹
15.2 插件更新及安裝實(shí)現(xiàn)機(jī)制
15.2.1 Eclipse安裝目錄中與安裝和更新有關(guān)的插件
15.2.2 安裝插件的過程分析
15.3 通過配置文件管理更新方式
15.4 本章小結(jié)
附錄A OSGi原理和實(shí)戰(zhàn)
章節(jié)摘錄
版權(quán)頁: 插圖: 1.1 Eclipse歷史背景 Eclipse是一個(gè)開源的項(xiàng)目(讀者可以從其官方網(wǎng)站www.eclipse.org下載Eclipse SDK)。 2001年11月,IBM公司捐出價(jià)值4000萬美元的源代碼組建了eclipse.org聯(lián)盟,并由該聯(lián)盟負(fù)責(zé)這種工具的后續(xù)開發(fā)。最初參加該聯(lián)盟的有IT巨頭IBM、Borland、MERANT、QNX軟件系統(tǒng)公司、Rational軟件、RedHat、SuSE、TogetherSofi及Weggain。到2003年底,該聯(lián)盟已經(jīng)擁有多達(dá)80個(gè)成員。2004年2月2日,聯(lián)盟董事會(huì)宣布轉(zhuǎn)變eclipse.org為非營利的組織。 在過去,集成開發(fā)環(huán)境(IDE)經(jīng)常將其應(yīng)用范圍限定在“開發(fā)、構(gòu)建和調(diào)試”的周期之中。為了幫助IDE克服這種局限性,業(yè)界廠商合作創(chuàng)建了Eclipse平臺。Eclipse允許在同- IDE中集成來自不同供應(yīng)商的工具,并實(shí)現(xiàn)了工具之間的互操作性,從而顯著改變了項(xiàng)目工作流程,使開發(fā)者可以專注于實(shí)際的嵌入式目標(biāo)。 Eclipse框架的這種靈活性來源于其擴(kuò)展機(jī)制(擴(kuò)展與擴(kuò)展點(diǎn))。它們是在XML中定義的已知接口,并充當(dāng)插件的耦合點(diǎn)。擴(kuò)展點(diǎn)的范圍包括從用在常規(guī)表述過濾器中的簡單字符串,到一個(gè)Java類的描述。任何Eclipse插件定義的擴(kuò)展點(diǎn)都能夠被其他插件使用,反之,任何Eclipse插件也可以遵從其他插件定義的擴(kuò)展點(diǎn)。除了解由擴(kuò)展點(diǎn)定義的接口外,插件不知道它們通過擴(kuò)展點(diǎn)提供的服務(wù)將如何被使用。 在Eclipse插件生態(tài)系統(tǒng)中,除了核心運(yùn)行時(shí)(Micro Kernal,Eclipse微內(nèi)核)之外的組件,都可以看成是插件。Eclipse宣稱“所有的一切都是插件(Everything is plugin)!” 1.2 Eclipse富客戶端(Rich Client Platform)背景簡介 在Eclipse的早期,有些用戶試圖除了將Eclipse用于研發(fā)工具基礎(chǔ)平臺外,還用做更普遍的商業(yè)應(yīng)用基礎(chǔ)。他們認(rèn)為一個(gè)IDE就是一個(gè)特別的富客戶端應(yīng)用。這就是開源研發(fā)的魅力所在,當(dāng)這些用戶試著用Eclipse作為通用富客戶端時(shí),他們就把這些想法建議反饋給Eclipse研發(fā)小組。就這樣Eclipse經(jīng)過了2.0到2.1的發(fā)展,不斷收到來自社區(qū)的建議和反饋,終于到了一個(gè)通用化的階段。在3.0版發(fā)行時(shí)(基于OSGi規(guī)范)Eclipse研發(fā)小組,覺得時(shí)機(jī)成熟,于是正式聲明將Eclipse怍為通用的富客戶端和IDE。 其實(shí)最早的反饋來自IBM Lotus研發(fā)小組,他們在Eclipse 3.0之前就意識到能夠使用Eclipse來提供Workplace客戶端的富客戶端版本。從Eclipse 3.0到3.1, 3.2再到3.4,富客戶端平臺應(yīng)用快速增長,同時(shí)也收到越來越多反饋完善提高。IBM Lotus Expeditor就是一個(gè)基于Eclipse技術(shù)、充分展現(xiàn)RCP技術(shù)的包括客戶端和服務(wù)器端的平臺框架。Eclipse RCP具有以下一些優(yōu)點(diǎn): 組件化( Modulability),Eclipse RCP應(yīng)用都由插件(Plugin)組成,插件可以方便 地在不同應(yīng)用間重用。 可擴(kuò)展性(Extensibility),Eclipse RCP內(nèi)核由幾個(gè)很小的插件組成,上面所有的功能都通過開發(fā)插件實(shí)現(xiàn),開發(fā)人員可以通過開發(fā)新的插件擴(kuò)展全新的功能,也可以增強(qiáng)已有的功能,這種特性使得Eclipse RCP平臺適合各種規(guī)模的應(yīng)用程序的開發(fā),同時(shí)方便地實(shí)現(xiàn)應(yīng)用程序的擴(kuò)展。 跨平臺、可移植,Eclipse開始的設(shè)計(jì)目標(biāo)就是運(yùn)行在不同的平臺上,它將不同平臺的特性進(jìn)行了很好的封裝,這樣我們開發(fā)的Eclipse RCP應(yīng)用可以運(yùn)行在不同平臺上,甚至可以在嵌入式設(shè)備、掌上電腦上運(yùn)行。 豐富的第三方組件支持,隨著Eclipse RCP的成熟和流行,越來越多的開發(fā)人員加入到Eclipse插件的開發(fā)中來,我們可以很容易地從互聯(lián)網(wǎng)上找到一些免費(fèi)的插件資源滿足自己的需求,這樣可以極大地節(jié)省我們的開發(fā)成本。 便于與瀏覽器集成,Eclispe RCP內(nèi)置有瀏覽器組件和應(yīng)用服務(wù)器引擎,可以方便地集成B/S系統(tǒng)。 智能安裝和更新支持,Eclipse基于插件的組件化設(shè)計(jì)使得我們部署應(yīng)用時(shí)可以相當(dāng)靈活,用戶可以先安裝很小的內(nèi)核,然后根據(jù)需要安裝需要的插件;Eclipse RCP內(nèi)置了插件更新的模塊,用戶的RCP應(yīng)用程序可以方便地實(shí)現(xiàn)自動(dòng)更新升級。 在EclipseCon 2005大會(huì)上,美國國家航空航天管理局(NASA)的工作人員演示了一個(gè)很酷的RCP應(yīng)用程序(如圖1-1所示)。當(dāng)時(shí)NASA在加利福尼亞州有個(gè)實(shí)驗(yàn)室叫Jet Propulsion Laboratory( JPL),負(fù)責(zé)火星探測計(jì)劃,他們的管理用戶界面就是一個(gè)EclipseRCP應(yīng)用,通過這個(gè)應(yīng)用,加利福尼亞州的工作人員就能夠控制在火星上運(yùn)行的火星車。在演示過程中,有人問為什么使用Eclipse,他們的回答是使用Eclipse這門技術(shù),他們不用擔(dān)心,而且節(jié)省了不少納稅人的錢,因?yàn)橹恍枰匈Y源研發(fā)控制火星車的應(yīng)用就可以了。
編輯推薦
《Eclipse RCP技術(shù)內(nèi)幕》介紹了不管您是剛涉入Eclipse RCP技術(shù)領(lǐng)域的初學(xué)者,還是已經(jīng)帶領(lǐng)團(tuán)體開發(fā)大型產(chǎn)品的技術(shù)牛人,相信您都能從《Eclipse RCP技術(shù)內(nèi)幕》中獲益,在學(xué)習(xí)技術(shù)的同時(shí),提升了架構(gòu)設(shè)計(jì)能力。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
Eclipse RCP技術(shù)內(nèi)幕 PDF格式下載