Convert ESRI ArcGIS Visual Basic 6.0 applications to .NET

Description

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

Because of this, there is a great interest for companies with existing ArcGIS applications to move to one of the supported .NET languages. The Mobilize Visual Basic Upgrade Companion provides a cost-effective alternative to migrate existing VB6.0 ArcGIS code to native .NET components.

Mappings for ESRI ArcGIS in the Visual Basic Upgrade Companion

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 Mobilize 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:

COM Reference

.Net Primary Interop Assembly Reference

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 .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 the ArcGIS Engine .NET Resource Center. 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.

Last updated