插件式GIS应用框架的设计与实现

出版时间:2008年10月  出版社:电子工业出版社  作者:蒋波涛  页数:257  
Tag标签:无  

前言

  应用程序的开发足项针对性很强的工作,程序的模块设计、层次划分、语言选择和系统部署部依赖晟终用户的具体需求、软硬件环境甚至个人的喜好。因此,在应用程序开发过程中,项目人员必须花费大量的时间进行项目前期调研,编制不同阶段的需求分析和建设方案,然后才能进入编码阶段,根据具体需求开发各种功能组件。  如果每一个开发过程都是如此这般,每一次都要从头开始,舍弃以前的项目经验和成果,软件开发显然就是一件乏味且充满重复性的劳动。人类进化的显著特点之一是擅长学习已经存在的知识和经验,并将它们作为开发更广阔未知领域的工具。软件的开发也应该如此:吸取以往的开发经验和教训,尽量重复使用已经存在的组件和材料,以降低开发成本,缩短新技术的学习曲线并提高开发效率。  本书的主题是设计一个基于插作式架构的GIS应用框架,GIS开发是一种典型的“因势而变”工程,由于不同类型的用户在地理数据的存储、使用和部署方式上都有很大差别,根据实际需求定制开发是不可避免的。而插件式GIS框架,则是满足定制要求的最好方式之一——扩展方便、部署简单和高度可重用。

内容概要

  本书是为想学习基于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 Engine1.3.3 ArcGIS Engine产品类型1.3.4 ArcGIS Engine 9.2新特性展现1.4 第三方UI组件——JANUS SYSTEMS1.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 松散耦合的关键——委托与事件3.3.2 ITool的Click事件3.3.3 ICommand的Click事件3.3.4 ITool的地图交互事件3.4 小结第4章 框架插件设计4.1 ArcGIS Engine的扩展框架4.1.1 基础类4.1.2 内置Command和Tool4.1.3 HookHelper原理及应用4.2 如虎添翼的Geoprocessing4.2.1 什么是Geoprocessing4.2.2 运行Geoprocessing工具4.2.3 Geoprocessing的批处理4.3 插件的设计和实现4.3.1 ICommand插件实例4.3.2 ITool类型插件实例4.3.3 使用内置ITool对象实例4.3.4 IDockableWindowDef类型插件实例4.4 小结第5章 宿主程序的高级设计5.1 两种视图的同步5.1.1 共享同一份地图5.1.2 同步类的使用5.2 使用TOCControl控制图层5.2.1 选择TOC控件的元素5.2.2 TOC控件的鼠标交互5.2.3 快捷菜单的设计实现5.3 要素数据的查询显示5.3.1从FeatureClass到DataTable5.3.2 DataTable的显示5.3.3要素的属性查询和空间定位5.4 符号控件应用5.4.1 SymbologyControl控件5.4.2控件使用实例5.5 小结第6章 GIS算法的实现第7章 框架辅助组件库设计第8章 程序的部署与打包

章节摘录

  第1章 走进插件式GIS应用框架  1.1 应用框架精讲  1.1.1 应用框架简介  “框架(Framework)是个系统全部或部分的可复用设计,通常由一组抽象类和类之间的协作组成”。  软件产品的开发是一项复杂的系统工程,随着它需要解决的问题复杂度的不断提高,软件产品的研发早已从过去“作坊式”开发演化到了当今符合一系列工业标准和规范的开发模式。软件产品面对的具体应用需求日益多元化、软件项目开发规模日益大型化,这两个因素促使软件开发团队的管理变得越来越复杂,软件开发项目的可控性变得越来越不稳定。  为了寻找“银弹”,IT工业界采用了多种方法,它们包括制定各种软件开发标准和规范、发明具有更高生产力的编程语言、开发更好的编译器和运行时(Runtime)、提供功能更加强大的可分发组件库和探索更好的软件开发模式。但对于应用程序员而言,各种标准、规范和不断涌现的编程语言并不在自己可以控制的范围之内,大部分情况下,我们只能从软件工程的角度出发,在设计层面采用一些独特的软件架构和设计模式以达到我们期待的下列目的:  尽量提高软件的可重用性,避免不必要的重复编码工作。  增强组件的封装性。  提高软件的模块化程度。  不同功能模块之间能够无缝集成。  软件具有灵活的可扩展性。  软件产品的扩展和开发实现标准化。  软件产品具有面向不同应用层面的适应性和易移植性。

编辑推荐

  《插件式GIS应用框架的设计与实现:基于C#和ArcGIS Engine9.2》并非本单纯的C#语法书,它只祧选了C#中的某些高级主题进行深入讨论;并非一本ArcGls Engine 9.2组件包手册,它介绍的不是积木而是堆砌积木的方法;并非一本介绍使用拖曳控件方式开发程序的图书,它更关注如何设计和实现一个插件式应用框架;并非只讲解已知的GIS组件,它也介绍了两个实用的GIS算法并将其基于ArcGIS Engine实现;《插件式GIS应用框架的设计与实现:基于C#和ArcGIS Engine9.2》的软件成果并非一个供学习ArcGIS Engine 而做的简单的Demo它完全可以投入实际应用。

图书封面

图书标签Tags

评论、评分、阅读与下载


    插件式GIS应用框架的设计与实现 PDF格式下载


用户评论 (总计3条)

 
 

  •     涵盖了关于插件引擎的设计以及主容器的设计和部分插件的设计,能让读者在较短时间内掌握设计方法与设计细节。
      
      当然,首先去看看一些较简单的关于插件开发的开源例子,还是很有必要的。这样的例子在一些开源网站上,比比皆是,如codeproject.
  •     如果事先对插件开发有所了解,读起来很容易,也很好。但是如果事先不了解插件,那么书中的例子还是大了些。建议看这本书之前,先在网上找一找最简单的插件开发的例子,学习一下。
  •     作者:Mars 原文链接:http://www.3snews.net/html/95/295-21610.html
      
      06、07年的时候,自己在用ArcGIS Engine做点东西,看到很多人搞基于Eclipse的RCP框架和.net下开源的IDE系统#Develop,觉得如果搞一个面向GIS的插件式框架,应该是一个比较有技术含量和“钱途”的事情。GIS应用的二次开发,说白了很大一部分就是管理信息系统开发,或者经常说的MIS开发。这类开发,面向的是各行各业,需要解决的问题也千千万万,但千千万万个问题中,也有很多共性的问题,因此,维护一个共性的框架和基础就很必要。
      
      所以,ArcGIS的桌面版基于插件式这样一种架构,从应用环境定制、VBA开发、COM(.net)定制开发几个层次给最终用户提供了二次开发的能力和接口。但业务需求是多种多样的,ArcGIS桌面版的定制并不能满足所有的GIS应用需求,组件式的ArcGIS Engine正是为了满足这种需求而出现的。
      
      对于开发人员,基于ArcGIS Engine组件不得不一次次做的事情就是开发一些共用的GIS功能和框架。成熟一些的公司,会积累一些自己的框架、类库或者代码,不成熟的,则一遍遍重写或者拷贝着重复的代码。
      
      因此,敢于从头构建一个插件式GIS应用框架,作者蒋波涛是非常有勇气的。GIS开发和ArcGIS开发的书,这几年已经很多了,这些书如本书推荐序中王昊所说,无非是组件使用或者软件使用,更不入流者,无非是软件帮助文档的抄袭和翻译,骗骗读者的钱而已。这也反映了GIS业界和IT业界从理念到技术层面的差距。可喜的是,这种差距正在一天天缩小,蒋波涛的这本书,正是这种差距在缩小的一个明证。
      
      《插件式GIS应用框架的设计与实现——基于C#和ArcGIS Engine 9.2》从ArcGIS Desktop定制开发的实现机制为出发点,讲解了ArcGIS Desktop的实现机制,在此基础上,实现了本书的插件式架构的基础,讲解了如何定义Application框架,如何基于接口实现插件定义和管理,主程序和插件如何交互,主程序如何基于反射实现插件的加载,在此过程中,穿插了面向对象和.net的中必要的知识和技术,全书真正做到了深入浅出。比起SharpDevelop的作者所著的《Dissecting a C# Application: Inside SharpDevelop》(中文版书名为《C#软件项目开发全程剖析》),《插件式GIS应用框架的设计与实现》对于插件技术的讲解和实现要浅显易懂得多,这种深入浅出,也是作者对于.net技术和ArcGIS开发深厚功底的反映。因此,本书不仅对于GIS开发者具有参考价值,对于想了解如何实现插件架构的.net和WinForm开发者,也极具参考价值。
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7