是否对我们的系统需要迁移,这就要看产品的新的特性都有哪些,所以我们先总览一下ArcGIS 10.1 的ArcGIS Objects的新特性,这里我们针对的是ArcGIS Objects for .NET。
版本 |
枚举 |
结构体 |
接口 |
组件类 |
总计 |
ArcGIS 10.0 |
1053 |
93 |
5555 |
4081 |
10782 |
ArcGIS 10.1 |
1120 |
94 |
5860 |
4372 |
11446 |
由于ArcGIS Server在10.1版本中,是纯64位应用程序,因此10版本中支持X86平台的ArcObjects主互操作程序集(PIAs)还原成其以前的微软中间语言(MSIL)状态。
ArcGIS 10.1只支持Visual Studio 2010包括Express版本,其他任何Visual Studio不再支持。
我们知道ArcGIS Engine Runtime是部署的时候安装在客户机上的东西,它有分两个类型,一个是ArcGIS Engine Runtime for Windows,另外一个是ArcGIS Engine Runtime for Linux,而在ArcGIS 10.1的时候名称发生了变化,如下表:
ArcGIS Engine Runtime for Windows |
ArcGIS Engine for Windows |
ArcGIS Engine Runtime for Linux |
ArcGIS Engine for Linux |
ArcGIS 10.1支持的.NET Framework最低版本为.NET 3.5 SP1。实际上,这是在windows上安装ArcGIS Desktop或者ArcGIS Engine的前提条件。
可以使用.NET Framework 4.0进行开发,前提是必须同时安装.NET Framework 4.0和.NET Framework 3.5 SP1,因为目前4.0还不包含3.5。
在ArcGIS 10.0的时候,ArcGIS Objects便能在.NET 4.0下运行,只是没有提供开发模板(当时的模板是在.NET3.5下),但是在10.1版本中Esri在.NET 4.0下也提供了模板,注意一点的是,服务器扩展的开发模板只在.NET3.5下提供。
在10 版本中,ArcObjects的主互操作程序集(PIAs)被专门设计用来支持X86平台。在10.1版本中ArcGIS Server 是一个原生的64位应用程序,而ArcGIS Desktop和 ArcGIS Engine仍然是32位(x86)应用程序,因此,PIAs被还原成其以前的微软中间语言(MSIL)状态。这样,同样的程序集就能够同时支持安装有ArcGIS Desktop and ArcGIS Engine的32位环境,也能支持安装有ArcGIS Server的64位环境。
这个其实是在ArcGIS 10的时候就有,因为在论坛经常看到一些开发者问,所以将这个也纳入到这里。
在ArcGIS 10 的时候,产品架构发生了一些变化,在开发的时候,首先要做的就是绑定许可,绑定的位置放在使用ArcGIS Object对象之前,只需要添加:ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Engine)即可。
在使用.NET4.0开发的时候,注意将程序集的嵌入互操作类型改成false,如下图:
10.1版本不支持使用远程ArcObjects (通过 DCOM)的方式连接ArcGIS Server。如果你在代码中使用了Server库中的GISServerConnection或者GISClient库中的AGSServerConnection,在ArcGIS Server 10.1环境下,这些代码必须移除.
在10 以及之前的版本ArcGIS Objects只能使用SOAP的服务,但是在10.1的时候增加了对REST服务的支持,该接口为:IMapServerRESTLayer。
ArcGIS 10.1 增加IWMTSLayer接口对WMTS服务进行支持。
ArcGIS 10.1 在发布服务的时候不区分MXD和MSD文档,本质上都是通过MSD文档发布的,在早起版本中我们扩展服务的时候大多数发布的文档都是MXD,对于MXD,可以使用IMapServerObjects接口访问IMap,进而得到ILayer,而MSD文档是不能通过IMapServerObjects接口访问的,但是Esri提供了IMapServerDataAccess接口,通过该接口可以访问要素类等。