Chapter 1: Introduction
Before performing a VB6 migration to .NET, there are many factors to consider. For instance, converting from Visual Basic 6 to .NET is not suitable for some applications, either because they will not profit from the new platform's technologies or because the cost or complexity of the VB to .NET upgrade strategy is prohibitive. However, in other cases the migration benefits far outweigh the costs, which is why a Visual Basic 6 to .NET conversion should be considered on a per-application basis.
What is Visual Studio .NET?
Microsoft Visual Studio .NET is the development environment that you will use to develop and maintain Visual Basic .NET applications. You will also use it to run the upgrade wizard that will convert your Visual Basic 6.0 projects to Visual Basic .NET projects.
Why consider a VB6 to .NET upgrade project?
Some common reasons or drivers to upgrade an application to Visual Basic .NET are the following:
- To Web-enable the application, or enhance an existing Web-enabled application with ASP.NET features.
- To take advantage of the improvements in developer productivity and the enhanced development features that Visual Basic .NET, the .NET Framework, and Visual Studio .NET provide.
- To consolidate your company's software assets.
- To reduce the cost of ongoing business activity.
- To improve the maintenance of an application.
- To ensure ongoing, official support.
An application with a short expected lifetime because of changing business needs or processes is unlikely to be worth upgrading. However, an application whose functionality remains core to the business and will remain so for a period that is sufficiently longer than the length of the upgrade project is a good candidate for upgrading.
What is the Visual Basic Upgrade Wizard?
The Visual Basic Upgrade Wizard is the tool, built by Mobilize.Net for Microsoft, that you will use to perform the automatic steps to convert Visual Basic 6.0 source code and project files into Visual Basic .NET. The Upgrade Wizard is built into Visual Studio 2003 and runs automatically when you try to open a Visual Basic 6.0 project. There are no special steps required to install or run it.
What’s the minimum information needed to make a decision about whether to upgrade the application to Visual Basic.NET?
When making a decision whether to upgrade or not it is necessary to gather the following information:
- Project goals and priorities.
- Developer skills.
- Quality assurance environment.
- Application architecture and complexity.
What are some assessments that will help me gather the information that I need to make a decision about upgrading my application?
To gather the necessary information it is necessary to make the following assessments with respect to the application:
- Business value of the application
- Code quality
- Development environment
What type of applications are the best candidates for migration?
Applications that are responsible for processing important business data are highly valuable to your business. If there are no other applications, such as third-party off-the-shelf products, available to process this data, ensuring the lifespan of your application by upgrading it to Visual Basic .NET may be a logical step.
Applications with inputs and outputs based on legacy file formats that are not easily translatable may be problematic to upgrade. On the other hand, moving an application to Visual Basic .NET and upgrading data to a more general format, such as XML, may leverage your application for future enhancements or changes in technology.
When is the best time to upgrade the application code base?
The best time to upgrade is when the application code base is stable but is due for enhancements.
Are there applications that are not supported by the Microsoft Upgrade Wizard?
Yes. The following applications are only partially supported or not supported at all by the upgrade wizard:
- A complex distributed application with several different layers of objects that communicate through COM.
- A Visual Basic 5.0 or earlier application that has not made the transition to Visual Basic 6.0.
- An Internet project that uses Microsoft ActiveX® technologies, Web classes, or DHTML. None of these development technologies is supported in Visual Basic .NET.
- A database project that is based on the Data Environment designer, which is also not supported in Visual Basic .NET.
- A database project that uses data binding to bind data sources to controls.
- An ActiveX control or ActiveX DLL project.
- A database client application with user controls.
What skills do I need to accurately assess my development environment?
To accurately assess your development environment, you need to consider the skills of your development team. The productivity of developers in an upgrade project depends on their knowledge of the existing source code and the target technologies.
In general, it is recommended that the developers undergo full training in Visual Basic .NET before they attempt an upgrade project.
You must also consider other factors, such as the existence of test cases and how well your development team understands the application that will be upgraded.
What are some options to choose from when it is necessary to update an application?
When it is necessary to update an application, you have four broad options to choose from: upgrade, reuse, rewrite, or replace.
There may be partial solutions. If you find that the indicators for choosing to upgrade apply to part of your application while the indicators for choosing to reuse apply to other parts, you may want to consider a partial upgrade.
Can controls and components written in one language easily be used in another language?
Yes. Controls and components written in one language can easily be used in another language because the CLR unifies all data types. Anyone who has struggled to get a Visual Basic 6.0 user control to work in a Visual C++ project can recognize the benefits of this interoperability.
Not only can you easily use a component written in another .NET language, you can also inherit from a class written in any other .NET language.
Does Visual Studio .NET provide integration with SQL Server?
Yes. Visual Studio .NET provides a very high level of integration with SQL Server. You can connect to SQL Server using Server Explorer. After you are connected, you can browse the database and even create new objects.
In particular, you can create and edit stored procedures written in the native SQL Server procedure language TSQL.
How does Visual Basic .NET provide improved security?
Application security is an important feature of Visual Basic .NET. The .NET Framework provides a set of sophisticated security features without overcomplicating requirements for developers.
Security management in the CLR prevents others from modifying the assemblies that contain an application or its dependent components. It also ensures that components cannot access memory that they are not authorized to access.
Does Visual Basic .NET provide improved deployment and performance options?
Yes. Visual Basic .NET has many new features that have been designed to simplify rich client application deployment and that can be used to increase the performance of an application.
When will Microsoft officially pull the plug on technical support for Visual Basic 6.0?
As of March 2005, Microsoft ended the mainstream phase of support for Visual Basic 6.0, and entered into a period of extended phase support. The current extended phase support is available until March 2008, at which point Visual Basic 6.0 will no longer be supported.
Free support for Visual Basic 6.0 is no longer available. During the extended phase, customers can still receive professional product support for Visual Basic 6.0 through telephone and online incident support channels on a per-incident fee basis or through Premier Support.
Similarly, critical updates and hotfixes are only available for a fee during the extended phase.
What are some benefits I can receive by using the Visual Basic 6.0 to Visual Basic .NET Upgrade Wizard?
Using the upgrade wizard will provide you with the following benefits:
- Produce source code that is both easily extendable and maintainable.
- Acquire functional equivalence, with all of the built-in features of the original program intact.
- Gain a robust and intelligent automatic restructuring of the code.
- Keep original code comments.
- Maintain cross-references for all the application components.