Things to Consider Before Upgrading
Visual Basic 2008 represents a major shift from previous versions of Visual Basic. Because it was designed from the ground up to take advantage of the .NET Framework, there are many areas where compatibility with previous versions is broken.
Visual Basic 2008 and Visual Basic 6.0 can be installed on the same computer and run at the same time. Applications written in Visual Basic 2008 and Visual Basic 6.0 can be installed and executed on the same computer. Components written in Visual Basic 2008 can interoperate with COM components written in earlier versions of Visual Basic and other languages.
- In most cases you will want to upgrade your Visual Basic 6.0 applications to Visual Basic 2008 so that you can take advantage of the benefits of the .NET Framework as you continue development. There are, however, situations where you may wish to continue development in Visual Basic 6.0 rather than upgrading. Some of the factors in deciding to upgrade an application include features that aren't supported in Visual Basic 2008, and the amount of rework needed due to incompatibility and architectural considerations.
The following features from Visual Basic 6.0 are no longer supported in Visual Basic 2008. For more information, see Preparing a Visual Basic 6.0 Application for Upgrading.
OLE Container Control There is no equivalent in Visual Basic 2008. Applications that depend on this control should be left in Visual Basic 6.0.
Dynamic Data Exchange (DDE) DDE methods are no longer supported. Applications that depend on DDE should either be revised to use another method of inter-application communication or left in Visual Basic 6.0.
DAO or RDO Data Binding Data binding to a DAO or RDO data source isn't supported in Visual Basic 2008; the Data control and the RemoteData control have no equivalent. DAO and RDO can only be accessed using code. Applications that rely on DAO or RDO data binding should either be updated to use ADO or left in Visual Basic 6.0.
Visual Basic 5.0 Controls Visual Basic 6.0 included the Visual Basic 5.0 versions of the Windows Common controls and the Data-Bound Grid control. These controls are incompatible with Visual Basic 2008. Applications that rely on these controls should either be updated to use the 6.0 versions or left in Visual Basic 6.0.
DHTML Applications There is no equivalent in Visual Basic 2008. However, DHTML applications can interoperate with Visual Basic 2008 technologies.
ActiveX Documents There is no equivalent in Visual Basic 2008. However, DHTML applications can interoperate with Visual Basic 2008 technologies. ActiveX documents should either be rewritten as user controls or left in Visual Basic 6.0.
Property Pages There is no equivalent in Visual Basic 2008. If your application depends heavily on property pages, it should be left in Visual Basic 6.0.
Determining the Amount of Rework Required
Due to the many differences between Visual Basic 6.0 and Visual Basic 2008, most applications will require some rework for items that can't be mapped directly or are otherwise incompatible. The amount of rework required depends on a number of factors, including the type of application, features, and the language constructs used.
The easiest way to determine the amount of rework required is to run the Upgrade Wizard and view the list of issues in the Upgrade Report. When an application is upgraded a new copy is created; the original application is left intact. If, after viewing the report, you decide not to upgrade, you can simply delete the new project and continue development in Visual Basic 6.0.
The following are additional considerations that may factor into your upgrade decision.
Single-tier Database Applications Because data binding to DAO isn't supported, simple applications using controls bound directly to a local database (such as one created with Microsoft Access) may require a significant amount of rework.
Visual Basic Add-ins Because Visual Basic 2008 uses the Visual Studio integrated development environment, the object model for extensibility is significantly different than that of Visual Basic 6.0. Add-ins will require a considerable amount of rework.
Games Applications relying on specific performance characteristics of Visual Basic 6.0, such as arcade games, will require rework because Visual Basic 2008 has different performance characteristics.
Graphics There is no support for the graphics methods of forms or for the shape and line controls. Applications that use these features extensively to draw on forms will require considerable rework.
Drag-and-Drop Functionality The models for drag-and-drop functionality are significantly different; any code performing drag-and-drop actions will need to be rewritten.
Variants When an application is upgraded, the Variant data type is converted to Object. If an application is heavily dependent on variants, this conversion can introduce some subtle differences in the application's behavior. For example, in Visual Basic 6.0 the expression IsObject(Variant) evaluates to false; in Visual Basic 2008 it changes to IsObject(Object), which evaluates to true.
Windows APIs Due to language changes, many calls to Windows APIs will need to be revised or replaced with .NET Framework functions.