• AE与AO的区别


     

      在ArcGis9.0之前,ArcObject还不是一个独立的产品,一直捆绑在Desktop产品中,只要你购买了desktop产品中的一个,你就可 以使用arcboject开发。从ArcGis9.0开始,ESRI公司推出了ArcGis Engine它使得ArcObject可以作为独立的产品使用。如果你所以开发一个让其他用户使用的产品,只需要购买ArcGis Engine开发就行。ArcGis Engine包括ArcGis Runtime和ArcObject sdk(for   dotnet、vb、C++、java)。这样你就不需要购买昂贵的desktop去开发。

      经常听到AO(ArcObject)开发与AE(ArcGis Engine)开发,本质没什么不同的,都在使用ArcObject。AE使用ArcGis Runtime这个运行时来运行程序,AO则需要desktop产品支持。AE几乎包含所有的ArcGis的组件,能够嵌入其他程序,开发自己的程序。所 以,AO开发的程序必须安装desktop才能运行,而AE开发的只需要安装运行时ArcGis Runtime,这两个价格相差是很大的。

      所以不要认为AE开发不需要ArcObject。

                           

            很明显,这个包里除了desktop产品还有开发人员资源即ArcObject SDK。没有Runtime,注意到没?

                           

            这个是ArcGIS Engine DevelopKit 10安装包,没有desktop系列产品,但是有Runtime,以及各种sdk。
            所以,现在你应该很了解AE和AO的差别了吧?只不过是运行自己的程序的依赖不同而已,一个是昂贵的Desktop产品,一个是比较便宜的带有Engine Runtime的开发包。

      AO全称为ArcObjects,是一组组件对象库,号称是“世界上继微软之后第二庞大的类库!”我们所熟悉的ArcGIS桌面产品,ArcGIS Desktop(ArcMap,ArcCatalog……)都是AO的产品,也就是说都是用AO开发出来的。
      AE全称为ArcEngine,是用于嵌入式开发的组件类库,或叫开发包,可以供使用者在现有的MS系统中嵌入地图服务等功能。AE从类库或是从体系架构上来说,是AO的子集,其功能没有AO那么强大,但凡是在ArcGIS Desktop中能实现的功能,用AE开发基本都能实现。

      
      AO是基于COM技术的,因此,凡是支持COM技术的IDE环境或语言都可以应用AO或是AE进行开发,如用VB VC .Net。
      AO 和AE开发很相像,因为AE是AO的子集的缘故,但由于AE的定位是开发包,因此比AO少了很多UI的东西,就是少了许多图形界面的工具及对话框,不过功能不差,开发人员需根据自己需要利用AE进行“组装”。这是在开发方法和功能方面,在最终程序的部署过程中由于所需要的运行环境不同,因此需要在运行你程序的机器上安装ArcGIS Desktop(提供AO环境)或是ArcEngine RunTime,由于这两者的价格相差甚远,因此大家都会选用AE做开发,说白了AE开发出来的程序可以脱离ArcGIS平台环境。 

      提到AO一般指ArcGIS Desktop版本的组件开发集,但由于需要安装ArcGIS桌面版软件后才能安装这些组件开发集,它是所有版本中组件最全的版本,所以如果想对ArcGIS产品及其开发有个详尽的了解,学习AO是最恰当的。AO版本包括了所有的类库,其中包括ArcMap、ArcMapUI、ArcCatalog、ArcCatalogUI等组件库,这些组件库必须在安装了桌面版软件后才能使用。
      由于使用AO开发的程序必须安装桌面版软件,这使得它的开发成本大大增加。出于产品策略上的考虑,ESRI将AO中的某些组件集单独封装出来,起名为AE,使用AE开发的软件需要在一个RUNTIME下运行,而不需要安装ArcGIS软件
      因此,将AO和AE二者区别与联系总结如下:

    联系
    1、ArcEngine包括核心 ArcObjects的功能,其是对AO中的大部分接口、类、库进行封装所构成嵌入式组件。 2、AE中的组件接口、方法、属性与AO是相同的。

    区别
    1:开发环境:①ArcObjects必须依赖与ArcGIS Desktop桌面平台,即购买安装了ArcGIS Desktop的同时,安装ArcObjects,才能利用AO进行开发。②ArcEngine是独立的嵌入式组件,不依赖ArcGIS Desktop桌面平台,直接安装ArcEngine runtime和Developer Kit后,即可利用其在不同开发语言环境下开发。2:功能: AO的功能更强大,AE的功能相对弱些,AE 不具备AO的少部分功能。 
     
    Other:脚本语言VBA、Python
    1、定义Visual Basic For Application(VBA)是微软VB的子集,一种通用的自动化语言,逐渐成为工业标准,微软诸多系统都内嵌VBA环境。
    Python是阿姆斯特丹国家数学和计算机科学研究所Guido Van Rossum于1991年第一次公开发行的一门脚本语言,它集成了诸多语言的特性,如ABC,Molula等等。是一门动态脚本语言。
    2、做ArcGIS开发上的一些区别和联系
    VBA:ArcGIS Desktop产品内嵌了一套VBA环境,可通过Tools->Macors->Visual Basic Editor菜单进入,进入VBA环境后,会发现和VB的IDE环境基本相同。基于VBA,用户可以对ArcGIS Desktop产品进行定制,如:菜单加载些什么选项等等,最重要的是可以基于VBA运用AO开发自己关心而ArcGIS所没有提供的功能,由于此VBA 属ArcGIS自身内嵌,所以开发是基于AO进行的。
    Python:是ArcGIS 9后被包含在桌面产品的安装包中,9.2之前,大家多用Python语言来写批处理,而9.2之后为ArcToolBox中的每个工具都提供了Batch 功能,不用大家在自己写脚本来做批处理工作了。利用Python可以很好的调用GP(Geoprocesing)工具及Model builder创建的Model,关于Python开发,很好的例子是ArcToolBox中的带有文件表示的工具,可以鼠标右键打开,查看源码,因为这 些工具都是用Python写的
    关于VBA开发和Python的写法,帮助中都会有,不过对于定制开发而言,多会首选ArcGIS内嵌的VBA。
     
     
     
     
     
    参考文章
     
     
     
     
  • 相关阅读:
    hdu 1290 献给杭电五十周年校庆的礼物 (DP)
    hdu 3123 GCC (数学)
    hdu 1207 汉诺塔II (DP)
    hdu 1267 下沙的沙子有几粒? (DP)
    hdu 1249 三角形 (DP)
    hdu 2132 An easy problem (递推)
    hdu 2139 Calculate the formula (递推)
    hdu 1284 钱币兑换问题 (DP)
    hdu 4151 The Special Number (DP)
    hdu 1143 Tri Tiling (DP)
  • 原文地址:https://www.cnblogs.com/arxive/p/5902106.html
Copyright © 2020-2023  润新知