inset
Web Site Aims at VB 6 Holdouts
Apr. 18, 2005

A new Web site for developers still using Visual Basic (VB) 6 is the latest salvo in Microsoft's five-year effort to convince its legions of VB customers to move to the .NET Framework development platform. The new site follows an online petition started by several Microsoft Most Valued Professionals (MVPs) that asked the company to extend Mainstream support for VB 6 and produce "VB.COM"—a COM-based version of VB 6 that runs within the current Visual Studio IDE. While happy to provide more documentation on VB.NET, Microsoft is neither making changes to its support policy nor bringing back VB 6.

End of Mainstream Support Triggers Reaction

The immediate cause of the petition was the March 31, 2005, movement of VB 6 from the Mainstream to the Extended phase of Microsoft's product support life cycle. The most significant difference between the two phases is that Microsoft will provide free nonsecurity hotfixes during the Mainstream phase but not the Extended phase. (Free security fixes are available in both phases.) Customers who want to receive custom hotfixes in the Extended phase need a support contract and must purchase an Extended Hotfix Support Agreement and pay for each fix. (See "Support Life Cycle Extended for NT, Exchange 5.5".)

The reaction was not caused solely by the change in support. Unlike Visual C++ .NET, which added new .NET capabilities while retaining all of its previous tools and support for native code and COM development, VB.NET was a technical break from previous products. Some of the changes include the following:

  • A new IDE, shared with Microsoft's other language products
  • Replacement of the old run time (VBRUN) with the .NET Common Language Runtime (CLR)
  • Changes in the VB language, including new features, the removal of anachronistic features, and changes to the way some features work
  • Replacement of the VB APIs with the .NET Framework.

The changes were largely driven by Microsoft's overriding goal of building a platform that supports multiple programming languages, specifically C++ and the newly designed C# as well as VB. Microsoft made backward compatibility with VB 6 a lower priority than multilanguage support and getting the design architecturally "right." At the time of .NET's inception in the late 1990s, Microsoft faced a competitive threat from Java, a newly developed language with no backward compatibility concerns and rapidly growing popularity. To meet this threat, Microsoft believed that it had to modernize VB even at the expense of compatibility.

As a result, VB 6 developers looking to move to the .NET Framework and recent versions of Visual Studio must adapt to a different IDE, a changed programming language, and a brand new set of APIs. In addition, the VB.NET development environment in Visual Studio is missing some important features that many VB 6 developers relied on, such as edit-and-continue, which allows developers to make code changes to a program while it is running and have those changes immediately reflected in the program.

Although many VB 6 developers have successfully moved to .NET, the number of developers still using VB 6 is larger than Microsoft had hoped it would be, and the change in support level for VB 6 triggered a reaction that caught the company by surprise.

Web Site, VB.NET Enhancements, No "VB.COM"

As part of its efforts to encourage VB 6 developers to move to VB.NET, Microsoft has launched a Web site called "VBRun:Visual Basic 6.0 Resource Center." The new site offers tips and guidance for VB developers, including sections such as:

  • Greatest Hits, a collection of what Microsoft terms "black belt articles" on VB 6 previously published on the Microsoft Developer Network (MSDN)
  • VB Fusion, which contains information on how the .NET Framework interoperates with the COM technology used in VB 6
  • Stay the Path, which includes technical guidance on moving to VB.NET and case studies highlighting the benefits.

In addition to the Web site, Visual Studio 2005 will include a number of new VB features and improvements specifically designed to address some of the most common complaints raised by VB 6 developers. The most notable of these are as follows:

  • Edit-and-continue
  • "My" classes, a collection of APIs designed to provide shortcuts to some commonly used .NET APIs which may otherwise be difficult for a VB developer to find
  • New tools to allow developers to create database client applications in a manner more like that of VB 6, which included popular "VCR"-like data controls for moving back and forth through database records.

However, Microsoft has no plans to do what the petition ultimately asks for: produce a version of VB 6 that runs within the Visual Studio .NET IDE. The company would rather spend its development efforts making VB.NET more appealing to VB 6 users than on resurrecting a product that it considers technically obsolete. Even if Microsoft were to produce such a product, it's unlikely that VB 6 customers would, in the long run, be satisfied. Many future Microsoft products and APIs, such as the "Avalon" graphics APIs and the "Indigo" Web services platform, are based on the .NET Framework and accessing those technologies from VB 6 will be much more difficult than from .NET.

What's an IT Developer to Do?

Given the twin realities that VB.NET is a very different product from its predecessors and that Microsoft is not going to revisit its strategic decision to move to .NET, what options are available to IT developers and planners? Developers have three options.

Stay the course. Developers are free to continue using the VB they know and love. Applications written in VB 6 will continue to run on future versions of Windows. For applications that are in maintenance mode, there are few, if any, compelling reasons to migrate to .NET. Organizations planning new development, however, should consider that Microsoft's support for VB 6 will decrease over time, and they may want to consider an extended support agreement. In addition, new OS capabilities, such as Avalon and Indigo, will be difficult to access from VB 6.

Move to VB.NET. Moving to VB.NET is what Microsoft would prefer its customers do and is probably the best course of action for the majority of VB developers, particularly if they have applications that are already scheduled to undergo architectural changes (such as moving from a two-tier client-server architecture to one based on Web services). However, moving to VB.NET is not free, and organizations must be careful not to underestimate the training costs. VB.NET is a different programming language and uses different APIs. In addition, automated conversion tools are historically not very useful—they tend to solve the easy problems while leaving the hard parts to the developer, and the quality of their results varies dramatically based upon the exact set of language features and APIs used by the program being converted. At the very least, organizations considering such tools should set up a pilot project to evaluate the feasibility of the tools before making decisions on the costs of migration.

Make the jump. VB is not the only game in town. But despite Microsoft's offering of J# (a version of the Java language that works with the .NET Framework), moving to Java is almost always part of a larger platform shift to Java-based application servers, such as IBM's WebSphere. For VB developers looking for a new language while staying on the Microsoft platform, C# is the obvious choice. However, because it is based partly on the C programming language, C# will require more training for VB developers than VB.NET. C# is most appropriate for those VB developers who are already pushing the limits of VB 6 and looking for a language with fewer limitations.

Resources

The Visual Basic 6.0 Resource Center is at msdn.microsoft.com/vbrun.