ArcGIS不同开发方式的比较


关于GIS应用软件的开发,通常有三种方式:C/S架构、网络GIS和移动GIS。ArcGIS平台提供了对三种开发方式的支持,对于采用从C/S架构的大多数开发者来讲,首先想到的是ArcGIS Engine进行开发。实际上,并不是所有的系统都必须采用这种方式,上述的三种开发方式(VBA、DLL和Add-in)在很多的时候也可以考虑。

作为VB的子集,VBA方式采用Visual Basic语言规范,简单易学,开发者只需要关注自己需要而ArcGIS没有直接提供的功能。对于广大的ArcGIS使用人员来说,几句简单的编程就可以使自己的工作更加自动化,减少重复劳动、提高效率,特别是在空间数据处理方面这种方式非常有效,所以这种方式对于经常使用ArcGIS平台而开发基础较为薄弱的使用者来讲是比较可取的。同时VBA方式可以让开发人员添加模块、类模块、用户窗体等,也适合于中小型规模的GIS软件开发。

DLL开发方式扩展了鼠标交互等界面操作功能,可以构建规模稍大的应用系统。这种开发方式在分发软件的时候只需要提供DLL文件,经过注册即可在ArcGIS桌面软件中使用,比VBA的部署方式灵活很多,适合于用户较少,业务性较强的专业和部门使用。有一定编程基础的开发人员可以通过这种方式定制自己的管理业务,扩展ArcGIS应用。

Add-in方式是Esri最近大力推广的一种轻量级开发方式,它提供了更多的扩展类型,更容易创建和分发。ArcGIS又提供了许多可以利用的模板,使得这一开发方式越来越受青睐,这也是替代VBA方式和DLL方式的一项更好的选择。

以上三种开发方式的共同点事开发程序必须在ArcGIS桌面软件上运行。在实际应用中,受上述方式软件独立性、部署成本等因素的限制,目前最常用的开发方式还是基于ArcGIS Engine的开发方式。它的优点是可以构建独立运行和部署的应用程序,既可以充分利用GIS开发控件和组件所提供的空间数据管理和分析等专业GIS功能,又可以充分利用可视化开发效率,而且使开发出来的应用程序具有更好的外观效果、更强大的数据库管理等非GIS功能,可靠性好、易于移植、便于维护。这种方式能够很好地体现不同行业用户的不同GIS需求,具有很强的灵活性和扩展性,但是开发难度较大,适合于大中型项目的二次开发。


摘自牟乃夏等编著的《ArcGIS Engine 地理信息系统开发教程——基于C#.NET》

ArcGIS Engine开发前基础知识(4)的更多相关文章

  1. ArcGIS Engine开发前基础知识(3)

    对象模型图 一.对象模型图中的类与接口 ArcGIS Engine 提供大量的对象,这些对象之间存在各种各样的关系,如继承.组合.关联等.对象模型图(Object model diagram,ODM) ...

  2. ArcGIS Engine开发前基础知识(2)

    ArcGIS基本控件简介 ArcGIS Engine控件是一组可视化的开发组件,每个ArcGIS Engine控件都是一个COM组件.这些组件包括MapControl,PageLayoutContro ...

  3. ArcGIS Engine开发前基础知识(1)

    ArcGIS二次开发是当前gis领域的一项重要必不可少的技能.下面介绍它的基本功能 一.ArcGIS Engine功能 在使用之前首先安装和部署arcgis sdk,(在这里不在赘述相关知识)可以实现 ...

  4. ArcGIS Engine开发基础总结(一)

    标准Engine功能 地图浏览    地图制作 数据查询 数据分析 及 所有的开发控件 —MapControl, PageLayout, Toolbar, TOC, ArcReader 对所有矢量和栅 ...

  5. ArcGIS Engine开发鹰眼图的功能(基础篇)

    鹰眼是用于调节全视域范围内主地图显示范围情况的副地图.它体现了地图整体与详细局部的关系. 用户可以通过鼠标单击或者画框等动作实现鹰眼与主地图的交互情况. 鹰眼功能的原理是通过主地图窗口的地图控件和鹰眼 ...

  6. ArcGIS Engine开发鹰眼图的功能(代码优化篇)

    在上一篇,ArcGIS Engine开发鹰眼图的功能(基础篇) 上一篇的实现效果图如下, 如果仔细观察,会发现一个问题,即在“鹰眼”的区域,只要在红色线框内的注记会被覆盖. 如果红色框包括整张图的话, ...

  7. ArcGIS Engine开发之地图基本操作(4)

    ArcGIS Engine开发中数据库的加载 1.加载个人地理数据库数据 个人地理数据库(Personal Geodatabase)使用Miscrosoft Access文件(*.mdb)进行空间数据 ...

  8. ArcGIS Engine开发的ArcGIS 版本管理的功能

    原文:ArcGIS Engine开发的ArcGIS 版本管理的功能 转自:http://blog.csdn.net/linghe301/article/details/7965901 这是以前的Arc ...

  9. C#,ArcGIS Engine开发入门教程

    C#,ArcGIS Engine开发入门教程 转自:http://blog.csdn.net/yanleigis/article/details/2233674  目录(?)[+] 五实现 一 加载A ...

随机推荐

  1. Zookeeper常用命令

    http://www.cnblogs.com/chengxin1982/p/3997706.html

  2. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  3. Mono on CentOS 6.3 安装笔记

    在网上找到篇关于yum的文章,写的很详细特此推荐下,在阅读本文之前建议先看看它: <CentOS yum源的配置与使用> 如果用的是移动光驱,建议不要开启本地的yum 的本地reposit ...

  4. Linux学习日记(二)

    在linux上运行.Net程序 并安装Linux网站 一.环境 ubuntu14.10(桌面版 官网下载的最新版) jexus5.6.3 正式版 MonoDevloper (安装完后里面有个Ubunt ...

  5. 【腾讯优测干货分享】如何降低App的待机内存(三)——探索内存增长的原因

    本文来自于腾讯优测公众号(wxutest),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/8BiKIt3frq9Yv9KV5FXlGw 1.3新问题的进一步挖 ...

  6. Building the Testing Pipeline

    This essay is a part of my knowledge sharing session slides which are shared for development and qua ...

  7. Go语言实战 - revel框架教程之CSRF(跨站请求伪造)保护

    CSRF是什么?请看这篇博文“浅谈CSRF攻击方式”,说的非常清楚. 现在做网站敢不防CSRF的我猜只有两种情况,一是没什么人访问,二是局域网应用.山坡网之前属于第一种情况,哈哈,所以至今没什么问题. ...

  8. Linux网络编程系列-常见疑惑

    1.并发TCP最大连接数 一个TCP连接有一个四元组唯一标识{local_ip, local_port, remote_ip, remote_port} client端建立连接请求时,通常让系统分配一 ...

  9. Android-Eclipse-INSTALL_FAILED_UPDATE_INCOMPATIBLE错误

    电脑重装了系统,环境问题一大堆,唉,搞死人,这不,今天就出现了这样的一个奇怪的问题. INSTALL_FAILED_UPDATE_INCOMPATIBLE 最后搜了一遍,发现是因为已经安装了这个包,包 ...

  10. ASP.NET MVC系列:Model

    1. Model任务 Model负责通过数据库.AD(Active Directory).Web Service及其他方式获取数据,以及将用户输入的数据保存到数据库.AD.Web Service等中. ...