插件式GIS應(yīng)用框架的設(shè)計(jì)與實(shí)現(xiàn)

出版時(shí)間:2008年10月  出版社:電子工業(yè)出版社  作者:蔣波濤  頁(yè)數(shù):257  
Tag標(biāo)簽:無(wú)  

前言

  應(yīng)用程序的開發(fā)足項(xiàng)針對(duì)性很強(qiáng)的工作,程序的模塊設(shè)計(jì)、層次劃分、語(yǔ)言選擇和系統(tǒng)部署部依賴晟終用戶的具體需求、軟硬件環(huán)境甚至個(gè)人的喜好。因此,在應(yīng)用程序開發(fā)過(guò)程中,項(xiàng)目人員必須花費(fèi)大量的時(shí)間進(jìn)行項(xiàng)目前期調(diào)研,編制不同階段的需求分析和建設(shè)方案,然后才能進(jìn)入編碼階段,根據(jù)具體需求開發(fā)各種功能組件?! ∪绻恳粋€(gè)開發(fā)過(guò)程都是如此這般,每一次都要從頭開始,舍棄以前的項(xiàng)目經(jīng)驗(yàn)和成果,軟件開發(fā)顯然就是一件乏味且充滿重復(fù)性的勞動(dòng)。人類進(jìn)化的顯著特點(diǎn)之一是擅長(zhǎng)學(xué)習(xí)已經(jīng)存在的知識(shí)和經(jīng)驗(yàn),并將它們作為開發(fā)更廣闊未知領(lǐng)域的工具。軟件的開發(fā)也應(yīng)該如此:吸取以往的開發(fā)經(jīng)驗(yàn)和教訓(xùn),盡量重復(fù)使用已經(jīng)存在的組件和材料,以降低開發(fā)成本,縮短新技術(shù)的學(xué)習(xí)曲線并提高開發(fā)效率?! ”緯闹黝}是設(shè)計(jì)一個(gè)基于插作式架構(gòu)的GIS應(yīng)用框架,GIS開發(fā)是一種典型的“因勢(shì)而變”工程,由于不同類型的用戶在地理數(shù)據(jù)的存儲(chǔ)、使用和部署方式上都有很大差別,根據(jù)實(shí)際需求定制開發(fā)是不可避免的。而插件式GIS框架,則是滿足定制要求的最好方式之一——擴(kuò)展方便、部署簡(jiǎn)單和高度可重用。

內(nèi)容概要

  本書是為想學(xué)習(xí)基于NET Framework的插件式框架技術(shù)和ArcGIS Engine 9.2組件集的這兩種類型讀者而撰寫的,其最大的特點(diǎn)是從“為什么”開始,以“怎么做”結(jié)束,深入淺出地介紹了相關(guān)知識(shí)的原理和使用范圍,并最終將其應(yīng)用于一個(gè)插件式GIS應(yīng)用框架的開發(fā)過(guò)程之中?! ∪腴T新手在成長(zhǎng)為一名合格程序員的過(guò)程中總會(huì)遇到個(gè)瓶頸階段,也許你熟練地掌握了一門語(yǔ)言的語(yǔ)法,并成功地寫了幾個(gè)小程序,讓自己頗有成就感。那么接下來(lái)呢?你是否有足夠的勁頭去深人了解語(yǔ)言的一些高級(jí)特征,甚至開始思考某些術(shù)語(yǔ)的準(zhǔn)確含義、差別和使用場(chǎng)合?也許你正試圖這么做,但最后或多或少地都會(huì)有些沮喪——你無(wú)法簡(jiǎn)單地將這些知識(shí)點(diǎn)融合起來(lái),以形成自己頭腦中的技術(shù)地圖——你有一堆珍珠,卻不能串成價(jià)值更高的項(xiàng)鏈。  這正是一本帶你度過(guò)這一階段的書,它從軟件架構(gòu)的角度來(lái)討論插件式GIS應(yīng)用框架開發(fā)過(guò)程,從而讓你了解和熟悉多項(xiàng).NET高級(jí)主題的內(nèi)容和適用范圍。無(wú)論是純粹的.NET愛好者,還是對(duì)ArcGIS Engine感興趣的GIS程序員,都能從本書中按得自己想要的東西。  本書的目標(biāo)讀者需要擁有一定的C#和NET Framework基礎(chǔ)知識(shí),并熟悉ArcGIS的開發(fā)技術(shù)。

作者簡(jiǎn)介

  蔣波濤,華南理工大學(xué)建筑學(xué)院建筑技術(shù)科學(xué)專業(yè)碩士畢業(yè)。所用所著,皆半路而成。目前在寧波市規(guī)劃與地理信息中心從事項(xiàng)目管理與開發(fā)工作。關(guān)注GIS、設(shè)計(jì)模式和RIA技術(shù),2006年曾出版《ArcObjects開發(fā)基礎(chǔ)與技巧——基于VisualBasic.NET》一書。專長(zhǎng):ArcGIS平臺(tái)開發(fā)技術(shù)(ArcGIS Desktop、ArcGIS Engine、ArcGIS Server和ArcIMS等)、Microsoft.NET平臺(tái)開發(fā)技術(shù)(ASP.NET Web程序和Windows程序)、Ajax富客戶端技術(shù)(YUI、ExtJS)  著作:《GIS for Web應(yīng)用開發(fā)之道》(譯)、《插件式GIS應(yīng)用框架的設(shè)計(jì)與實(shí)現(xiàn)——基于C#和ArcGIS Engine 9.2》(著)、《ArcObjects開發(fā)基礎(chǔ)與技巧——基于VisualBasic.NET》(著)。

書籍目錄

前言聯(lián)系博文視點(diǎn)第1章 走進(jìn)插件式GIS應(yīng)用框架1.1 應(yīng)用框架精講1.1.1 應(yīng)用框架簡(jiǎn)介1.1.2 應(yīng)用框架的特點(diǎn)1.1.3 GIS應(yīng)用框架1.2 插件式應(yīng)用框架1.3 ARCGIS ENGINE簡(jiǎn)介1.3.1 ArcGIS產(chǎn)品框架1.3.2 GIS開發(fā)組件——ArcGIS Engine1.3.3 ArcGIS Engine產(chǎn)品類型1.3.4 ArcGIS Engine 9.2新特性展現(xiàn)1.4 第三方UI組件——JANUS SYSTEMS1.5 小結(jié)第2章 框架插件引擎設(shè)計(jì)2.1 他山之石——ARCMAP插件機(jī)制2.2 框架通信契約——接口2.2.1 接口的秘密2.2.2 實(shí)現(xiàn)接口與顯式實(shí)現(xiàn)接口2.2.3 C#的實(shí)現(xiàn)繼承2.2.4 繼承和重用2.3 框架宿主程序設(shè)計(jì)與實(shí)現(xiàn)2.3.1 屬性——合理沖破私有變量訪問(wèn)限制2.3.2 動(dòng)手——從宿主程序開始2.4 框架通信契約設(shè)計(jì)2.4.1 IPlugin接口2.4.2 ICommand接口2.4.3 ITool接口2.4.4 IItemDef接口和實(shí)現(xiàn)2.4.5 IMenuDef接口2.4.6 IToolBarDef接口2.4.7 DockableWindowDef接口2.4.8 通信契約設(shè)計(jì)小結(jié)2.5 插件容器設(shè)計(jì)與實(shí)現(xiàn)2.5.1 集合2.5.2 泛型機(jī)制2.5.3 聚合法產(chǎn)生容器2.5.4 產(chǎn)生插件容器2.5.5 訪問(wèn)容器元素2.6 動(dòng)態(tài)加載框架插件2.6.1 反射機(jī)制2.6.2 考慮異常2.6.3 插件的動(dòng)態(tài)加載和對(duì)象生成2.7 框架日志處理2.7.1 一個(gè)Log4net例子2.7.2  Log4net配置文件2.7.3 框架的日志設(shè)計(jì)2.8 插件的分類2.8.1 類型轉(zhuǎn)換與判別2.8.2 插件分類的設(shè)計(jì)與實(shí)現(xiàn)2.9 小結(jié)第3章 框架宿主程序設(shè)計(jì)3.1 靜態(tài)UI設(shè)計(jì)3.1.1 菜單和狀態(tài)欄設(shè)計(jì)3.1.2 浮動(dòng)面板設(shè)計(jì)3.2 插件UI對(duì)象3.2.1 公共變量的設(shè)計(jì)3.2.2 插件獲取3.2.3 解析ICommand和ITool對(duì)象3.2.4 解析IMenuDef和IToolBarDef對(duì)象3.2.5 解析IDockabieWindowDef對(duì)象3.3 插件對(duì)象的事件處理3.3.1 松散耦合的關(guān)鍵——委托與事件3.3.2 ITool的Click事件3.3.3 ICommand的Click事件3.3.4 ITool的地圖交互事件3.4 小結(jié)第4章 框架插件設(shè)計(jì)4.1 ArcGIS Engine的擴(kuò)展框架4.1.1 基礎(chǔ)類4.1.2 內(nèi)置Command和Tool4.1.3 HookHelper原理及應(yīng)用4.2 如虎添翼的Geoprocessing4.2.1 什么是Geoprocessing4.2.2 運(yùn)行Geoprocessing工具4.2.3 Geoprocessing的批處理4.3 插件的設(shè)計(jì)和實(shí)現(xiàn)4.3.1 ICommand插件實(shí)例4.3.2 ITool類型插件實(shí)例4.3.3 使用內(nèi)置ITool對(duì)象實(shí)例4.3.4 IDockableWindowDef類型插件實(shí)例4.4 小結(jié)第5章 宿主程序的高級(jí)設(shè)計(jì)5.1 兩種視圖的同步5.1.1 共享同一份地圖5.1.2 同步類的使用5.2 使用TOCControl控制圖層5.2.1 選擇TOC控件的元素5.2.2 TOC控件的鼠標(biāo)交互5.2.3 快捷菜單的設(shè)計(jì)實(shí)現(xiàn)5.3 要素?cái)?shù)據(jù)的查詢顯示5.3.1從FeatureClass到DataTable5.3.2 DataTable的顯示5.3.3要素的屬性查詢和空間定位5.4 符號(hào)控件應(yīng)用5.4.1 SymbologyControl控件5.4.2控件使用實(shí)例5.5 小結(jié)第6章 GIS算法的實(shí)現(xiàn)第7章 框架輔助組件庫(kù)設(shè)計(jì)第8章 程序的部署與打包

章節(jié)摘錄

  第1章 走進(jìn)插件式GIS應(yīng)用框架  1.1 應(yīng)用框架精講  1.1.1 應(yīng)用框架簡(jiǎn)介  “框架(Framework)是個(gè)系統(tǒng)全部或部分的可復(fù)用設(shè)計(jì),通常由一組抽象類和類之間的協(xié)作組成”。  軟件產(chǎn)品的開發(fā)是一項(xiàng)復(fù)雜的系統(tǒng)工程,隨著它需要解決的問(wèn)題復(fù)雜度的不斷提高,軟件產(chǎn)品的研發(fā)早已從過(guò)去“作坊式”開發(fā)演化到了當(dāng)今符合一系列工業(yè)標(biāo)準(zhǔn)和規(guī)范的開發(fā)模式。軟件產(chǎn)品面對(duì)的具體應(yīng)用需求日益多元化、軟件項(xiàng)目開發(fā)規(guī)模日益大型化,這兩個(gè)因素促使軟件開發(fā)團(tuán)隊(duì)的管理變得越來(lái)越復(fù)雜,軟件開發(fā)項(xiàng)目的可控性變得越來(lái)越不穩(wěn)定?! 榱藢ふ摇般y彈”,IT工業(yè)界采用了多種方法,它們包括制定各種軟件開發(fā)標(biāo)準(zhǔn)和規(guī)范、發(fā)明具有更高生產(chǎn)力的編程語(yǔ)言、開發(fā)更好的編譯器和運(yùn)行時(shí)(Runtime)、提供功能更加強(qiáng)大的可分發(fā)組件庫(kù)和探索更好的軟件開發(fā)模式。但對(duì)于應(yīng)用程序員而言,各種標(biāo)準(zhǔn)、規(guī)范和不斷涌現(xiàn)的編程語(yǔ)言并不在自己可以控制的范圍之內(nèi),大部分情況下,我們只能從軟件工程的角度出發(fā),在設(shè)計(jì)層面采用一些獨(dú)特的軟件架構(gòu)和設(shè)計(jì)模式以達(dá)到我們期待的下列目的:  盡量提高軟件的可重用性,避免不必要的重復(fù)編碼工作?! ≡鰪?qiáng)組件的封裝性?! √岣哕浖哪K化程度?! 〔煌δ苣K之間能夠無(wú)縫集成?! ≤浖哂徐`活的可擴(kuò)展性?! ≤浖a(chǎn)品的擴(kuò)展和開發(fā)實(shí)現(xiàn)標(biāo)準(zhǔn)化?! ≤浖a(chǎn)品具有面向不同應(yīng)用層面的適應(yīng)性和易移植性。

編輯推薦

  《插件式GIS應(yīng)用框架的設(shè)計(jì)與實(shí)現(xiàn):基于C#和ArcGIS Engine9.2》并非本單純的C#語(yǔ)法書,它只祧選了C#中的某些高級(jí)主題進(jìn)行深入討論;并非一本ArcGls Engine 9.2組件包手冊(cè),它介紹的不是積木而是堆砌積木的方法;并非一本介紹使用拖曳控件方式開發(fā)程序的圖書,它更關(guān)注如何設(shè)計(jì)和實(shí)現(xiàn)一個(gè)插件式應(yīng)用框架;并非只講解已知的GIS組件,它也介紹了兩個(gè)實(shí)用的GIS算法并將其基于ArcGIS Engine實(shí)現(xiàn);《插件式GIS應(yīng)用框架的設(shè)計(jì)與實(shí)現(xiàn):基于C#和ArcGIS Engine9.2》的軟件成果并非一個(gè)供學(xué)習(xí)ArcGIS Engine 而做的簡(jiǎn)單的Demo它完全可以投入實(shí)際應(yīng)用。

圖書封面

圖書標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    插件式GIS應(yīng)用框架的設(shè)計(jì)與實(shí)現(xiàn) PDF格式下載


用戶評(píng)論 (總計(jì)3條)

 
 

  •     涵蓋了關(guān)于插件引擎的設(shè)計(jì)以及主容器的設(shè)計(jì)和部分插件的設(shè)計(jì),能讓讀者在較短時(shí)間內(nèi)掌握設(shè)計(jì)方法與設(shè)計(jì)細(xì)節(jié)。
      
      當(dāng)然,首先去看看一些較簡(jiǎn)單的關(guān)于插件開發(fā)的開源例子,還是很有必要的。這樣的例子在一些開源網(wǎng)站上,比比皆是,如codeproject.
  •     如果事先對(duì)插件開發(fā)有所了解,讀起來(lái)很容易,也很好。但是如果事先不了解插件,那么書中的例子還是大了些。建議看這本書之前,先在網(wǎng)上找一找最簡(jiǎn)單的插件開發(fā)的例子,學(xué)習(xí)一下。
  •     作者:Mars 原文鏈接:http://www.3snews.net/html/95/295-21610.html
      
      06、07年的時(shí)候,自己在用ArcGIS Engine做點(diǎn)東西,看到很多人搞基于Eclipse的RCP框架和.net下開源的IDE系統(tǒng)#Develop,覺得如果搞一個(gè)面向GIS的插件式框架,應(yīng)該是一個(gè)比較有技術(shù)含量和“錢途”的事情。GIS應(yīng)用的二次開發(fā),說(shuō)白了很大一部分就是管理信息系統(tǒng)開發(fā),或者經(jīng)常說(shuō)的MIS開發(fā)。這類開發(fā),面向的是各行各業(yè),需要解決的問(wèn)題也千千萬(wàn)萬(wàn),但千千萬(wàn)萬(wàn)個(gè)問(wèn)題中,也有很多共性的問(wèn)題,因此,維護(hù)一個(gè)共性的框架和基礎(chǔ)就很必要。
      
      所以,ArcGIS的桌面版基于插件式這樣一種架構(gòu),從應(yīng)用環(huán)境定制、VBA開發(fā)、COM(.net)定制開發(fā)幾個(gè)層次給最終用戶提供了二次開發(fā)的能力和接口。但業(yè)務(wù)需求是多種多樣的,ArcGIS桌面版的定制并不能滿足所有的GIS應(yīng)用需求,組件式的ArcGIS Engine正是為了滿足這種需求而出現(xiàn)的。
      
      對(duì)于開發(fā)人員,基于ArcGIS Engine組件不得不一次次做的事情就是開發(fā)一些共用的GIS功能和框架。成熟一些的公司,會(huì)積累一些自己的框架、類庫(kù)或者代碼,不成熟的,則一遍遍重寫或者拷貝著重復(fù)的代碼。
      
      因此,敢于從頭構(gòu)建一個(gè)插件式GIS應(yīng)用框架,作者蔣波濤是非常有勇氣的。GIS開發(fā)和ArcGIS開發(fā)的書,這幾年已經(jīng)很多了,這些書如本書推薦序中王昊所說(shuō),無(wú)非是組件使用或者軟件使用,更不入流者,無(wú)非是軟件幫助文檔的抄襲和翻譯,騙騙讀者的錢而已。這也反映了GIS業(yè)界和IT業(yè)界從理念到技術(shù)層面的差距。可喜的是,這種差距正在一天天縮小,蔣波濤的這本書,正是這種差距在縮小的一個(gè)明證。
      
      《插件式GIS應(yīng)用框架的設(shè)計(jì)與實(shí)現(xiàn)——基于C#和ArcGIS Engine 9.2》從ArcGIS Desktop定制開發(fā)的實(shí)現(xiàn)機(jī)制為出發(fā)點(diǎn),講解了ArcGIS Desktop的實(shí)現(xiàn)機(jī)制,在此基礎(chǔ)上,實(shí)現(xiàn)了本書的插件式架構(gòu)的基礎(chǔ),講解了如何定義Application框架,如何基于接口實(shí)現(xiàn)插件定義和管理,主程序和插件如何交互,主程序如何基于反射實(shí)現(xiàn)插件的加載,在此過(guò)程中,穿插了面向?qū)ο蠛?net的中必要的知識(shí)和技術(shù),全書真正做到了深入淺出。比起SharpDevelop的作者所著的《Dissecting a C# Application: Inside SharpDevelop》(中文版書名為《C#軟件項(xiàng)目開發(fā)全程剖析》),《插件式GIS應(yīng)用框架的設(shè)計(jì)與實(shí)現(xiàn)》對(duì)于插件技術(shù)的講解和實(shí)現(xiàn)要淺顯易懂得多,這種深入淺出,也是作者對(duì)于.net技術(shù)和ArcGIS開發(fā)深厚功底的反映。因此,本書不僅對(duì)于GIS開發(fā)者具有參考價(jià)值,對(duì)于想了解如何實(shí)現(xiàn)插件架構(gòu)的.net和WinForm開發(fā)者,也極具參考價(jià)值。
 

250萬(wàn)本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7