VB to .NET

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 GAPVelocity AI VB6 AI Migrator 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 VB6 AI Migrator is able to recognize and use these ESRI-provided PIAs without further customizations. Right now GAPVelocity AI has worked with applications that use the following COM APIs, and the VB6 AI Migrator 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 VB6 AI Migrator 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 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.

Talk To An Engineer