ArcGIS Server是一个发布企业级GIS应用程序的综合平台,如果想对ArcGIS Server基础有更多的了解,可以先看看《ArcGIS Server 体系结构》、ESRI(中国)BBS论坛和ESRI网站。这里及接下来的一系列文章将主要介绍ArcGIS Server开发相关的内容(如不加说明,后文中Server专指ArcGIS Server),由浅入深,充分利用Server的资源来构建我们的企业级应用,同时也可以了解Server的优势及不足,在实际应用中扬长避短。

进行Server开发之前,我们首先需要了解Server开发的整体架构。下图(截取自官方文档)可以看到,Server提供了一系列的应用开发途径,从 1到4难度逐步增加,当然功能和可定制性也越来越强,我们可以充分利用Server提供的这些资源来构建我们的应用。

Web应用开发

Server为Web应用开发提供了一系列的开发方式,在visual studio 2005中可以直接使用Web Mapping Application template建立应用,它包含了Web ADF框架,是学习Server开发的入口。对照上面的示意图,可以这样来理解,如果想使用各种Web控件加上少量代码来构建Web应用,可以直接使用第一种途径,这样的应用比较死板,让人感觉有点想搭积木,程序员可能没有任何成就感,好处是开发迅速,适合入门学习或做个简单的Server演示。如果想在 Common API基础上,使用各种通用的functionality,通过各种data source类型来定制Web ADF,可以使用第二种开发途径。如果想使用Common API,并且需要通过Common API调用specific API来定制Web ADF,可以通过第三种途径来开发。

Web Service开发

Web Service是什么不用再介绍,ArcGIS提供了两种类型的Web Service创建方法:GIS Web Service和Application Web Service。

GIS Web Service提供了一种将ArcGIS Server Object(Local data source)发布为ArcGIS Server Web Service(Internet data source)的ESRI标准,GIS Web Service不用于开发,通常它们是用来发布信息和提供资源,ArcMap就可以直接使用GIS Web Service的资源而不用进行任何开发,另外Web ADF控件和Common API也可以使用GIS Web Service资源。因为GIS Web Service基于标准web service,它可以作为传统web service来使用,ArcGIS Server提供了SOAP API进行相关的开发,以后的学习中会使用到。

Application Web Service是基于标准web service建立的应用,使用一种ESRI的data source进行开发。因为web service没有用户接口,上图中途径一不适合这样的应用,途径四是最适合的,因为web service可充分利用ESRI提供的各种data source specific API的所有functionality。

桌面客户端应用开发

ESRI在桌面客户端应用中提供了两种实现GIS功能和服务的方法:ArcGIS Engine和data source specific developer APIs,上图中只有第四种途径可用于桌面客户端应用。

ArcEngine不论是和本地GIS资源交互,还是使用远程数据资源,都拥有丰富的控件和众多API,但它在使用和分发之前必须进行授权注册,而任何data source specific developer APIs都可以在桌面客户端应用中编程使用。

移动应用开发

移动应用和Web应用、web services比较类似,但它们是为某一个特定的客户端环境而设计,如PocketPC。Mobile ADF是为移动应用定制的开发框架,通常使用途径四来进行开发,这样可以充分利用ArcGIS Server Web services和SOAP API提供的功能。

在以后的实际开发过程中,我们会逐步了解上述各种开发方式,并不断深入。

本文转自Flyingis博客园博客,原文链接:http://www.cnblogs.com/flyingis/archive/2007/08/09/849375.html,如需转载请自行联系原作者

ArcGIS Server 开发系列(一)--编程框架总览相关推荐

  1. ArcGis Server开发Web GIS新手体验(二)

    ArcGis Server开发Web GIS新手体验(二) 接(一) 我们知道,.net adf提供的map组件.toc组件等都是标准的asp.net组件.这些组件在运行时,会生成相应的html代码, ...

  2. 【安卓开发系列 -- APP 开源框架】IO 框架 OKIO

    [安卓开发系列 -- APP 开源框架]IO 框架 OKIO [1]OKIO的整体框架 [1.1]OKIO的整体框架图示 [1.2]OKIO的优势 CPU和内存消耗低,OKIO采用了segment机制 ...

  3. 【Qt编程】基于Qt的词典开发系列一--词典框架设计及成品展示

    去年暑假的时候,作为学习Qt的实战,我写了一个名为<我爱查词典>的词典软件.后来由于导师项目及上课等原因,时间不足,所以该软件的部分功能欠缺,性能有待改善.这学期重新拿出来看时,又有很多东 ...

  4. ArcGIS Server开发教程系列(3)切片

    切片工作,我们可以一级一级的切,也可以,所有的一块切,Recreate All Tiles这项是说,在没有进行任何的切片工作时,可以选用这项:Recreate Empty Tiles这项是说,如果之前 ...

  5. 三菱FX 系列PLC 编程通信协议总览

    三菱FX 系列PLC 编程口通信协议总览 该协议实际上适用于PLC 编程端口以及 FX-232AW 模块的通信 通讯格式 命令 命令码 目标设备 DEVICE READ CMD "0&quo ...

  6. Arcgis Server开发使用query报错

    问题描述:arcgis server js开发,query task不能正确结束,在arcgis service directory相应图层进行query 1=1查询报错,报错内容为 Error:   ...

  7. ArcGIS Server开发的一些小经验

    版本:ArcGIS Server ADF 9.2 for .NET          SQLServer 2005          ArcSDE 9.2          Windows XP SP ...

  8. ArcGIS Engine开发系列:将地图导出为图片的两种方法

    转自:http://blog.sina.com.cn/s/blog_4c5f70df0100a0ti.html 在ArcGIS的开发中,我们经常需要将当前地图打印(或是转出)到图片文件中.将Map或L ...

  9. pythoncad二次开发视频_AutoCAD ObjectARX 二次开发(2020版)--4,使用ARX向导创建CAD二次开发项目(编程框架)--...

    手动创建ObjectARX应用程序非常麻烦,在此步骤中,将介绍ObjectARX向导. 在这里,我们将使用ObjectARX向导创建我们的ObjectARX应用程序. 本节的程序的需求是,接收CAD用 ...

最新文章

  1. Ubuntu 安装OpenCV3.0.0
  2. Android 4.2 通知通过PendingIntent启动Activity失败的问题
  3. Ansible 详解2-Playbook使用
  4. 阿里大数据中台12年建设经验的精华总结!一次性说清!
  5. 95-190-440-源码-window-Trigger-Trigger简介
  6. 贪心----多元Huffman编码问题
  7. python3 常见命令
  8. 有关 Unity UIElements 和 UIToolkit
  9. DWM1000 收发RXLED TXLED控制代码修改
  10. Struts2中Struts.xml的作用
  11. 常用的107条Javascript
  12. 英语口语智能测试软件,口语易英语口语智能评测系统(英语口语训练软件)V6.91 最新版...
  13. 人力资源管理专业知识与实务(初级)【10】
  14. 从小学到大学到出社会以后我的感受(出社会时间不长)
  15. 虚拟机快照,移除和删除使用方法
  16. 前端开发中常用的几种设计模式
  17. go语言,实现彩云翻译API
  18. 在外企必会的英文单词
  19. iOS网络NSURLSession使用详解
  20. 基于Socket的五子棋游戏

热门文章

  1. 升级nodejs至最新
  2. [转]Python爬虫html解析工具beautifulSoup在pycharm中安装及失败的解决办法
  3. Apriori进行关联分析
  4. Thrift初用小结
  5. zend studio9.0.4正式版破解方法
  6. hive整合ldap权限管理
  7. Windows环境下安装redis以及出现的一些未解决的问题
  8. Python学习笔记之变量
  9. C++之第一个程序Hello World,使用IO库输出Hello World
  10. VUE自学日志05-计算属性和侦听器