Convert ESRI ArcGIS Visual Basic 6.0 applications to .NET
ESRI’s ArcGIS platform is a widely used geographical information system, used
in utility, transportation, and geological applications worldwide. Part of its success
relies on the fact that it has a robust API that can be used to create complete
applications on top of its products. This is leveraged in the different industries
to create successful systems that rely on spatial data.
One of the most commonly used languages to develop custom functionality for ArcGIS
is Visual Basic 6.0. ESRI, however, has announced that ArcGIS 9.3.1 was the last
release that supported this platform, justified by the fact that Microsoft stopped
supporting VB6.0 in March, 2008:
ArcGIS 9.3.1 was the last release supporting Microsoft Visual Basic 6 (VB6). Microsoft
no longer supplies or supports VB6, and we can no longer support this development
platform. Users who have custom functionality built using VB6 will need to rewrite
their applications using a supported development language (e.g. VB.NET, C#) for
their applications to be supported in 10.0.
- DEPRECATION PLAN FOR ARCGIS 9.3.1 AND ARCGIS 10 http://downloads2.esri.com/support/TechArticles/ArcGIS_931_and__10_Deprecation_Plan.pdf
Because of this, there is a great interest for companies with existing ArcGIS applications
to move to one of the supported .NET languages. The ArtinSoft Visual Basic Upgrade
Companion provides a cost effective alternative to migrate existing VB6.0 ArcGIS
code to native .NET components.
ESRI provides Primary Interop Assemblies for ArcGIS Com objects, which contains
all the necessary definitions for calling the COM API through a COM Interoperability
layer from .NET code. The VBUC is able to recognize and use these ESRI-provided
PIAs without further customizations. Right now ArtinSoft has worked with applications
that use the following COM APIs, and the VBUC has been able to successfully map
them to the corresponding PIA, as shown in the following table:
|
esriGeoDatabase.dll
|
ESRI.ArcGIS.GeoDatabase.dll
|
|
esriCarto.dll
|
ESRI.ArcGIS.Carto.dll
|
|
esriSystem.dll
|
ESRI.ArcGIS.System.dll
|
|
esriFramework.dll
|
ESRI.ArcGIS.Framework.dll
|
|
esriGeometry.dll
|
ESRI.ArcGIS.Geometry.dll
|
|
esriDisplay.dll
|
ESRI.ArcGIS.Display.dll
|
|
esriArcMapUI.dll
|
ESRI.ArcGIS.ArcMapUI.dll
|
|
esriEditor.dll
|
ESRI.ArcGIS.Editor.dll
|
|
esriSystemUI.dll
|
ESRI.ArcGIS.SystemUI.dll
|
|
esriNetworkAnalysis.dll
|
ESRI.ArcGIS.NetworkAnalysis.dll
|
|
esriEditorExt.dll
|
ESRI.ArcGIS.EditorExt.dll
|
|
esriArcMap.dll
|
ESRI.ArcGIS.ArcMap.dll
|
|
esriDataSourcesGDB.dll
|
ESRI.ArcGIS.DataSourcesGDB.dll
|
|
esriOutput.dll
|
ESRI.ArcGIS.Output.dll
|
|
esriCartoUI.dll
|
ESRI.ArcGIS.CartoUI.dll
|
|
esriDataSourcesFile.dll
|
ESRI.ArcGIS.DataSourcesFile.dll
|
|
esriDataSourcesRaster.dll
|
ESRI.ArcGIS.DataSourcesRaster.dll
|
|
esriCatalogUI.dll
|
ESRI.ArcGIS.CatalogUI.dll
|
|
esriDataSourcesRasterUI.dll
|
ESRI.ArcGIS.DataSourcesRasterUI.dll
|
|
esriGeoprocessing.dll
|
ESRI.ArcGIS.Geoprocessing.dll
|
|
esriGeoReferenceUI.dll
|
ESRI.ArcGIS.GeoReferenceUI.dll
|
|
esriLocationUI.dll
|
ESRI.ArcGIS.LocationUI.dll
|
|
esriCatalog.dll
|
ESRI.ArcGIS.Catalog.dll
|
|
esriControls.dll
|
ESRI.ArcGIS.Controls.dll
|
|
esriDataSourcesOleDB.dll
|
ESRI.ArcGIS.DataSourcesOleDB.dll
|
|
esriGeoDatabaseDistributedUI.dll
|
ESRI.ArcGIS.GeoDatabaseDistributedUI.dll
|
|
esriDisplayUI.dll
|
ESRI.ArcGIS.DisplayUI.dll
|
|
esriGeoDatabaseDistributed.dll
|
ESRI.ArcGIS.GeoDatabaseDistributed.dll
|
|
esriGeoDatabaseUI.dll
|
ESRI.ArcGIS.GeoDatabaseUI.dll
|
|
esriGISClient.dll
|
ESRI.ArcGIS.GISClient.dll
|
|
esriGlobeCore.dll
|
ESRI.ArcGIS.GlobeCore.dll
|
|
esriLocation.dll
|
ESRI.ArcGIS.Location.dll
|
|
esriMapControl.dll
|
ESRI.ArcGIS.MapControl.dll
|
|
esriToolbarControl.dll
|
ESRI.ArcGIS.ToolbarControl.dll
|
Additional APIs should also map correctly.
The VBUC is able to automate the calls to these APIs to to .NET almost completely.
There are, however, certain tweaks that need to be performed to completely convert
and ArcGIS DLL. ESRI provides information on how to solve these issues in both the
ArcGIS
Engine .NET Resource Center and in the
ESRI Developer Network . For additional information about these issues,
please review the document Common issues when migrating from Visual Basic 6.0
to Visual Basic .NET at
http://resources.esri.com/help/9.3/ArcGISEngine/dotnet/870876e4-64ca-4831-a632-4c08cbafe993.htm.