編輯推薦
《外掛程式式GIS套用框架的設計與實現:基於C#和ArcGIS Engine 9.2》是一本從軟體架構的角度來討論套用框架開發的書籍,它以設計一個基於捕件式機制的NET套用框架為目標,並以開發一款具有實用性的GIS程式為主軸,詳細地討論了整個實現過程涉及的各項知識細節——NET框架、ArcGIS Engine 9.2組件集、第三方界面控制項Janus System,GIS的兩個常用算法及其實現,NET程式的打包和部署等。無論是純粹的
.NET愛好者,還是對ArcGIS Engine感興趣的GIS程式設計師,都能從奉書中獲得自己想要的東西。
從軟體架構的角度討論GIS套用框架開發過程,為讀者剖析GIS二次開發原理,從“為什麼”開始,以“怎么做”結束,並涉及多項.NET高級主題的內容和適用範圍。《外掛程式式GIS套用框架的設計與實現:基於C#和ArcGIS Engine 9.2》是一本從軟體架構的角度來討論套用框架開發的書籍,它以設計一個基於捕件式機制的NET套用框架為目標,並以開發一款具有實用性的GIS程式為主軸,詳細地討論了整個實現過程涉及的各項知識細節——NET框架、ArcGIS Engine 9.2組件集、第三方界面控制項Janus System,GIS的兩個常用算法及其實現,NET程式的打包和部署等。無論是純粹的.NET愛好者,還是對ArcGIS Engine感興趣的GIS程式設計師,都能從奉書中獲得自己想要的東西。
從軟體架構的角度討論GIS套用框架開發過程,為讀者剖析GIS二次開發原理,從“為什麼”開始,以“怎么做”結束,並涉及多項.NET高級主題的內容和適用範圍。
內容介紹
本書是為想學習基於NET Framework的外掛程式式框架技術和ArcGIS Engine 9.2組件集的這兩種類型讀者而撰寫的,其最大的特點是從“為什麼”開始,以“怎么做”結束,深入淺出地介紹了相關知識的原理和使用範圍,並最終將其套用於一個外掛程式式GIS套用框架的開發過程之中。
入門新手在成長為一名合格程式設計師的過程中總會遇到個瓶頸階段,也許你熟練地掌握了一門語言的語法,並成功地寫了幾個小程式,讓自己頗有成就感。那么接下來呢?你是否有足夠的勁頭去深入了解語言的一些高級特徵,甚至開始思考某些術語的準確含義、差別和使用場合?也許你正試圖這么做,但最後或多或少地都會有些沮喪——你無法簡單地將這些知識點融合起來,以形成自己頭腦中的技術地圖——你有一堆珍珠,卻不能串成價值更高的項鍊。
這正是一本帶你度過這一階段的書,它從軟體架構的角度來討論外掛程式式GIS套用框架開發過程,從而讓你了解和熟悉多項.NET高級主題的內容和適用範圍。無論是純粹的.NET愛好者,還是對ArcGIS Engine感興趣的GIS程式設計師,都能從本書中按得自己想要的東西。
本書的目標讀者需要擁有一定的C#和NET Framework基礎知識,並熟悉ArcGIS的開發技術。
作者簡介
蔣波濤,
華南理工大學建築學院建築技術科學專業碩士畢業。所用所著,皆半路而成。目前在寧波市規劃與地理信息中心從事項目管理與開發工作。關注GIS、設計模式和RIA技術,2006年曾出版《ArcObjects開發基礎與技巧——基於VisualBasic. NET》一書。專長:ArcGIS平台開發技術(ArcGIS Desktop、ArcGIS Engine、ArcGIS Server和ArcIMS等)、Microsoft. NET平台開發技術(ASP. NET Web程式和Windows程式)、Ajax富客戶端技術(YUI、ExtJS)
著作:《GIS for Web套用開發之道》(譯)、《外掛程式式GIS套用框架的設計與實現——基於C#和ArcGIS Engine 9.2》(著)、《ArcObjects開發基礎與技巧——基於VisualBasic. NET》(著)。
目錄
前言
聯繫博文視點
第1章 走進外掛程式式GIS套用框架
1.1 套用框架精講
1.1.1 套用框架簡介
1.1.2 套用框架的特點
1.1.3 GIS套用框架
1.2 外掛程式式套用框架
1.3 ARCGIS ENGINE簡介
1.3.1 ArcGIS產品框架
1.3.2 GIS開發組件——ArcGIS Engine
1.3.3 ArcGIS Engine產品類型
1.3.4 ArcGIS Engine 9.2新特性展現
1.4 第三方UI組件——JANUS SYSTEMS
1.5 小結
第2章 框架外掛程式引擎設計
2.1 他山之石——ARCMAP外掛程式機制
2.2 框架通信契約——接口
2.2.1 接口的秘密
2.2.2 實現接口與顯式實現接口
2.2.3 C#的實現繼承
2.2.4 繼承和重用
2.3 框架宿主程式設計與實現
2.3.1 屬性——合理衝破私有變數訪問限制
2.3.2 動手——從宿主程式開始
2.4 框架通信契約設計
2.4.1 IPlugin接口
2.4.2 ICommand接口
2.4.3 ITool接口
2.4.4 IItemDef接口和實現
2.4.5 IMenuDef接口
2.4.6 IToolBarDef接口
2.4.7 DockableWindowDef接口
2.4.8 通信契約設計小結
2.5 外掛程式容器設計與實現
2.5.1 集合
2.5.2 泛型機制
2.5.3 聚合法產生容器
2.5.4 產生外掛程式容器
2.5.5 訪問容器元素
2.6 動態載入框架外掛程式
2.6.1 反射機制
2.6.2 考慮異常
2.6.3 外掛程式的動態載入和對象生成
2.7 框架日誌處理
2.7.1 一個Log4net例子
2.7.2 Log4net配置檔案
2.7.3 框架的日誌設計
2.8 外掛程式的分類
2.8.1 類型轉換與判別
2.8.2 外掛程式分類的設計與實現
2.9 小結
第3章 框架宿主程式設計
3.1 靜態UI設計
3.1.1 選單和狀態欄設計
3.1.2 浮動面板設計
3.2 外掛程式UI對象
3.2.1 公共變數的設計
3.2.2 外掛程式獲取
3.2.3 解析ICommand和ITool對象
3.2.4 解析IMenuDef和IToolBarDef對象
3.2.5 解析IDockabieWindowDef對象
3.3 外掛程式對象的事件處理
3.3.1 鬆散耦合的關鍵——委託與事件
……
第4章 框架外掛程式設計
第5章 宿主程式的高級設計
第6章 GIS算法的實現
第7章 框架輔助組件庫設計
第8章 程式的部署與打包