ArcObjects与ArcGIS Engine

1、ArcObjects

在ArcGIS系列产品中,ArcGIS Desktop、ArcGIS Engine和ArcGIS Server都是基于核心组件库ArcObjects搭建的。

ArcObjects与ArcGIS Engine

所谓ArcObjects,现在一般都是指ArcGIS Desktop版本的组件开发集,即需要安装ArcGIS桌面版软件后才能安装这些组件开发集,它是所有版本中组件最全的版本。

ArcObjects组件库有3000多个对象可供开发人员调用,为开发人员集成了大量的GIS功能,可以快速的帮助开发人员进行GIS项目的开发。由于ArcGIS Desktop、ArcGIS Engine和ArcGIS Server三个产品都是基于ArcObjects搭建的应用,那么对于开发人员来说ArcObjects的开发经验在这三个产品中是通用的。开发人员可以通过ArcObjects来扩展ArcGIS Desktop,定制ArcGIS Engine应用,使用ArcGIS Server实现企业级的GIS应用。ArcGIS可以在多种编程环境中进行开发,其中包括:C++、支持COM的编程语言、.NET、Java等。


2、ArcObjects二次开发

(1)ArcGIS Desktop SDK(Software Development Kit,即软件开发工具包)(即1中的ArcObjects)
ArcGIS Desktop SDK包含在ArcView、ArcEditor和ArcInfo中,支持COM和.NET开发。用户可以应用ArcGIS Desktop SDK来扩展ArcGIS Desktop的功能,例如添加一些新的工具,定制用户界面,增加新的扩展模块等。
(2)ArcGIS Server SDK
ArcGIS Server实现了一套标准的Web GIS服务(例如:制图,访问数据,地理编码等),支持企业级应用。ArcGIS Server SDK使得开发人员可以建立集中式的GIS服务器来实现GIS功能,发布基于Web的GIS应用,执行分布式GIS运算等。
(3)ArcGIS Engine
2004年,美国ESRI发布ArcGIS Engine,ArcGIS Engine开发包提供了一系列可以在ArcGIS Desktop框架之外使用的GIS组件,ArcGIS Engine的出现对于需要使用ArcObjects的开发人员来说是个福音,因为ArcGIS Engine发布之前,基于ArcObjects的开发只能在庞大的ArcGIS Desktop框架下进行。
ArcGIS Engine 是对ArcObjects的再封装,有两种产品:
ArcGIS Engine SKD—包括开发者建立解决方案所需的组件和工具集。
ArcGIS Engine Runtime—运行定制的ArcGIS Engine应用程序所需的基础设施。
由于使用ArcObjects开发的程序必须安装桌面版软件,这使得它的开发成本大大增加。处于产品策略上的考虑,ESRI将ArcObjects中的某些组件集单独封装出来,起名为ArcGIS Engine,使用ArcGIS Engine开发的软件需要在一个Runtime下运行,而不需要安装ArcGIS软件。
因此,ArcGIS Engine只是ArcObjects的一个子集,使用ArcGIS Engine开发的软件,在ArcObjects环境中使用没有问题,但是ArcObjects开发的程序,如果使用的组件库不被包含在ArcGIS Engine中,就无法使用,比如IIdentifyDialog对象,就是只有在ArcObjects中才能使用。除此以外,ArcObjects版本的控件只有MapControl和PageLayoutControl两个,而ArcGIS Engine的控件就丰富的多。


3、ArcObjects与ArcGIS Engine的联系与区别

(1)联系:
ArcGIS Engine包括核心ArcObjects的功能,是对ArcObjects中的大部分接口、类等进行封装所构成的嵌入式组件;ArcGIS Engine中的组件接口、方法、属性与ArcObjects是相同的。
(2)区别
开发环境:ArcObjects必须依赖ArcGIS Desktop桌面平台,即购买安装了ArcGIS Desktop的同时,安装ArcObjects,才能利用ArcObjects进行开发;ArcGIS Engine是独立的嵌入式组件,不依赖ArcGIS Desktop桌面平台,直接安装ArcGIS Engine SKD和Runtime后,即可利用其在不同开发语言环境下开发和应用;
功能强弱:ArcObjects的功能更强大,ArcGIS Engine的功能相对弱些,ArcGIS Engine不具备ArcObjects的少部分功能。


4、ArcGIS10和ArcGIS9中ArcObjects和ArcEngine之间关系有所改变

转载:http://blog.csdn.net/foreverling/article/details/33740367