Visual Basic 6 support and migration
We keep VB6 applications running, make them safer to depend on, and replace them in stages with .NET desktop or web applications.
Vendor support
- Visual Basic 6 (development environment)
- Support ended
- Security fixes
- Ended 8 April 2008
What you probably want to know first
- Can you support our existing application?
- Yes, provided you hold the source code or can find it in a backup or with a former supplier. Without it the application can be run but not changed. Support is harder where third-party ActiveX controls have been discontinued, where the source no longer matches the installed version, or where no machine exists that can compile it.
- What happens in the first assessment?
- A short call, then read access to the source and, where possible, the database. We rebuild the application from its source, run automated analysis and read by hand the parts that matter. You get a written report and a walk-through call. The fixed-price code audit, one to two weeks, is the usual first step before a rebuild in .NET is sized.
- What access do you need?
- Read access to the source code and, where possible, read-only access to the database and the environment the application runs in. Nothing changes on the live system: we work from a copy, and anything we look at in production is read-only. A confidentiality agreement can be signed before anything is shared.
- What sets the cost and the timescale?
- The size of the code base and the number of separate applications, whether we can see the database as well as the code, and how many third-party controls and components need individual investigation. A move to .NET is sized by the number of forms and the controls they use, and is quoted one stage at a time.
- What have you done with systems like ours?
- We have worked mostly on the Microsoft stack since 2012, and most of the systems we maintain were built by someone else. The Logtek case study describes taking over a custom asset management application, moving it to the cloud and maintaining and extending it since. The rest of our case studies are on the site.
A desktop tool that outlived its support
Visual Basic 6 was released in 1998 and became one of the most widely used tools for building Windows business applications. A developer could draw a form, attach code to its buttons and connect it to a database very quickly, and a great many stock systems, job-costing tools, production schedulers and quoting applications were written that way.
Many are still in use, because they work and because Microsoft has kept the VB6 runtime in Windows. The tools needed to change those applications are another matter: support for the VB6 development environment ended in April 2008.
What tends to go wrong
- The development tools are unsupported. The VB6 environment was designed for the Windows of its day and takes workarounds to install on a current PC. Without a working build machine, the application cannot be changed at all.
- ActiveX controls disappear. Most VB6 applications use third-party OCX controls for grids, calendars and reports. Many of those products have been discontinued, and each control has to be registered on every PC.
- 32-bit only. VB6 produces 32-bit applications. They run on 64-bit Windows but can load only 32-bit database drivers and components, which causes trouble when the rest of the PC, including Office, is 64-bit.
- Installation fails on modern Windows. Old installers expect administrator rights and write to system folders and the registry in ways current Windows restricts.
- The data is often in an Access file. A shared .mdb file on a network drive brings the corruption and size problems described on our Microsoft Access page.
- Few people can work on it. Developers with VB6 experience are becoming scarce, and newer developers have never used it.
Your options
Keep it running in a controlled way. If the application is stable and rarely changes, this can be a sound decision for some years. It needs the source code secured, a build machine preserved as a virtual machine, a reliable installer, and a tested answer to what happens when a Windows update breaks something.
Migrate to .NET. WinForms is the closest match to the way VB6 forms work, and WPF is the alternative where a richer interface is wanted. Both are supported on modern .NET. The business rules carry across. The forms and the ActiveX controls are replaced.
Rebuild as a web application. The right choice when people need the system from home, from other sites or on other devices. It removes installation altogether. It is a larger job, so we do it in stages.
How we approach it
We begin by proving that the application can be rebuilt from its source code, and that the result matches what is installed. The two have often drifted apart, or the source exists on one old PC only. Then we list every control, DLL and driver the application depends on and establish which can still be obtained.
For a staged replacement, the database is the meeting point. Data is first moved to SQL Server if it is not already there, and the VB6 application is pointed at it. New screens, whether desktop or web, are then built against the same database and released a few at a time, while the VB6 application carries on handling everything that has not yet moved. When the last screen has been replaced, the old application is retired.
If the application has been left without anyone to look after it, start with software takeover. The support position is set out on our older web and desktop technologies page.
Talk to us
Describe the system and what you need. You will hear back from someone who can answer technical questions.
Discuss your VB6 application 0800 433 7990What we do with VB6 applications
- Keep it running
- Fixes and small changes made from a working VB6 build environment, preserved on a virtual machine.
- Recover the build
- We rebuild the application from its source, track down every OCX and DLL it references and confirm the result matches what is installed.
- Fix installation
- A current installer that registers the right components and works on the Windows versions you use.
- Move the data
- Access or other file-based data is moved to SQL Server, which the VB6 application and its successor can share.
- Migrate to .NET
- Forms are rebuilt in WinForms or WPF, with the business rules carried across and tested.
- Rebuild as a web application
- Where people need access from other sites or from home, screens move to the browser in stages.
How we take on a VB6 application
Secure the source and the build
We confirm the source code matches the running version and set up a machine that can compile it.
Map what it depends on
Every ActiveX control, DLL, database driver, report and external file is listed, with its supplier and current status.
Stabilise
Urgent faults are fixed, the installer is repaired and the data is backed up properly.
Choose the route
Keep, migrate to .NET or rebuild for the web. The answer can differ from one part of the application to another.
Replace in stages
New parts work against the same database as the VB6 application until the last screen has moved.
Support dates
Status is worked out against today's date each time this site is rebuilt. Dates come from the Microsoft product lifecycle; check there before relying on them.
| Version | Released | Mainstream support ended | Security fixes end | Status today |
|---|---|---|---|---|
| Visual Basic 6 (development environment)The VB6 runtime still ships with Windows, but the tools used to change a VB6 application have had no fixes since 2008. | 1 June 1998 | 31 March 2005 | 8 April 2008 | Support ended |
A good fit when
- The application runs a core process and the person who wrote it has gone.
- It will not install cleanly on new PCs or after a Windows upgrade.
- A third-party control or reporting component it relies on is no longer available.
- People need it from home or from other sites and it only works on the office network.
Probably not for you if
- It is a small utility used by one person that an off-the-shelf tool could replace.
- The application is stable, never changes and has only a short life left; a preserved build machine may be all it needs.
Questions we are asked
Is Visual Basic 6 still supported?
Partly. The VB6 runtime, the files an application needs in order to run, still ships with Windows. The development environment used to change a VB6 application went out of support in April 2008 and has had no fixes since. So the application will probably keep running, but the tools for changing it are unsupported.
Will our VB6 application run on Windows 11?
In most cases yes, because the runtime is still part of Windows. The usual problems are around it: third-party ActiveX controls that need registering, installers that expect administrator rights, and database drivers that have to be 32-bit. We test on the Windows version you plan to use.
Can VB6 code be converted to .NET automatically?
Conversion tools exist and can help with a large code base, but the output usually needs a good deal of work and keeps the structure of the original. For most business applications we rebuild screen by screen in .NET, using the VB6 code as the specification for the rules.
Should we move to a desktop or a web application?
A .NET desktop application in WinForms or WPF is the shorter route and suits software tied to local hardware, files or printers. A web application is more work but removes installation and gives access from anywhere. Some systems end up with both.
What if the source code is missing?
Then the application can be run but not changed. Decompiling a VB6 program does not give back source code that can be maintained. We would look hard for the source first, on old PCs, in backups and with former suppliers. If it is truly gone, we plan a replacement based on how the application behaves.
Tell us about your system
Say what it does, what it is built on and what is worrying you. We will reply with what we would look at first and whether we are the right people to help.