"本章主要介绍了ArcObjects(AO)开发工具,它是基于微软组件对象模型(COM)构建的。本章适合开发人员阅读,尤其是计划使用AO进行应用开发或扩展ArcMap和ArcCatalog的人员。虽然不需要深入理解COM,但了解其基本概念对于定制和开发至关重要。章节内容包括代码提示、知识方针,帮助开发者更高效地运用AO。同时,章节末尾提供了一些COM深入学习的参考书目。本章首先概述了COM的背景,强调了组件化软件开发的重要性,因为传统方法如C++类库存在诸多限制。COM作为一种二进制代码单元,已经成为Windows平台上交互式应用程序的事实标准,而JavaBeans则适用于Internet环境,CORBA则在更粗粒度的应用级互操作性中发挥作用。由于COM的成熟性、性能优势以及广泛的开发工具支持,ESRI选择了COM作为ArcGIS的基础。"
本章详细介绍了微软组件对象模型(COM)的概念,它是AO开发的基础。COM是一种软件组件模型,允许不同的软件组件之间进行交互和重用代码,从而降低开发成本和风险。早期的类库尝试,如C++,由于二进制兼容性、源代码共享以及缺乏灵活的更新机制等问题,无法满足需求。因此,COM应运而生,它提供了一种标准的方式来创建和使用二进制可重用代码单元,允许组件在不重新编译的情况下进行更新。
COM的核心特性包括接口(Interface)、组件身份(Component Identity)、线程模型(Threading Model)和延迟绑定(Late Binding),这些使得组件可以在不同进程中安全地交互,而且不依赖特定编程语言。COM还引入了接口标识(Interface ID)、组件CLSID(Class ID)和接口指针(Interface Pointer)等概念,确保了组件间的通信和对象的实例化。
在ArcGIS中,AO开发人员需要理解COM的基本原理,如如何创建和使用COM对象,以及如何利用接口来访问和操作ArcObjects的功能。本章提供的代码提示和知识方针能帮助开发者避免常见的陷阱,提高开发效率。此外,推荐的参考书目可以进一步深化对COM的理解,以提升AO应用的定制化水平。
通过COM,开发者可以利用已有的ArcObjects组件扩展ArcMap和ArcCatalog的功能,或者创建全新的GIS应用程序。COM的广泛应用和与其他技术的兼容性(如ActiveX、.NET等)使得AO开发变得更加灵活和强大。