Additional reasons to migrate off of Visual Basic 6

As most people know by now, support for Visual Basic 6 expired in 2008 (http://support.microsoft.com/lifecycle/search/default.aspx?sort=PN&alpha=visual+basic+6&Filter=FilterNO).  However, I frequently receive questions about the risks of NOT migrating.  I try to respond to each of these requests individually, but I thought that I would post a typical response here.  Perhaps some of you will find this useful.

So, for the question:  "What are the risks of NOT moving my applications off of VB 6?"

Visual Basic 6 support falls into three categories; the IDE, the source code itself, and the runtime. 

Support for the IDE and source code expired a while ago. Support for the runtime, however, will continue for quite some time.  The VB 6 runtime files are considered to be a part of the operating system with which they shipped.  As you can see from our official support statement (http://msdn.microsoft.com/en-us/vbrun/ms788708.aspx ), the VB 6 runtime will be supported for the life of Windows 7 and Windows Server 2008.  (This means that VB 6 applications will be supported on Windows Server 2008 until support for that system expires in 2020.)  This sounds like a very long time, but there are caveats:

  1. Microsoft does not provide support for third-party VB 6 controls.  We have no way of knowing whether these controls will function on newer operating systems.
  2. VB 6 applications are 32-bit only.  When running on a 64-bit system, VB 6 apps run in the emulated WOW environment.  This can cause problems with some applications.
  3. Not all VB 6 controls are supported on Windows Vista and later operating systems.  You can see a list of these controls in the official support statement (http://msdn.microsoft.com/en-us/vbrun/ms788708.aspx ).
  4. IMPORTANT:  When you apply a new service pack, install a hot fix, or move to a newer operating system, new security requirements may interfere with the expected performance of your VB 6 application.   Microsoft may not be able to restore the former functionality of your application without reducing security.  In these cases, Microsoft is not required to issue a "fix".  In other words, Microsoft does not have to roll back or remove security enhancements so that your application will continue to work.  This is important to understand, since VB 6 applications were often written and tested on systems where users had administrative rights. 
  5. There are no plans to include VB6 runtime in future versions of Windows beyond Windows 7 and Windows Server 2008.  Although these operating systems are supported until 2020 and 2018 respectively, new systems will most likely be available well before then.  These new systems may not include VB 6.

As always, the views stated here are my opinion and not Microsoft's.  You should contact your Microsoft respresentative for an official statement for your specific situation.