【IT168 书评】自己在用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开发者,也极具参考价值。