There's been a strong push by the user community to open-source VB6 in order to ensure a better future for both the language and the developers. In early June, Microsoft officially confirmed that it will not be open-sourcing VB6. We have advice for those of you who are ready to move off of Visual Basic and on to more modern languages and platforms:
How to get off VB6
The future for VB6 is more bleak than ever before. Hackers can exploit every security vulnerability. PLUS, if you are still using VB6, you are out of compliance with:
- And lots more.
What does EOVS mean?
End of vendor support. Which means NO....
- Bug fixes
- Security holes plugged.
How big a problem is it?
DC estimates there are more than 14 billion lines of VB6 code. VB6 doesn’t support any modern platforms like web. Finding VB6 developers is hard – finding C# and web devs is easy.
VB6 is forcing enterprises to continue to run Windows XP – which introduces a whole host of issues.
Why should you care?
VB6 was a great idea in its time. That time has passed. VB6 is procedural, not object oriented.
VB6 wraps the Win32 API; it has nothing to do with .NET. All Microsoft OS versions since XP use .NET at their core. Ok, Windows 8 uses something different. But it’s still not Win32.
Why else should you care?
VB6 limits you to decades-old technology. That means no SaaS, no SOA, no modern web. And then there’s the security issues. VB6 hasn’t been updated in years and doesn’t have patches to address all of the recent hacking. Only computers completely isolated from the web are safe. That means you can’t do even the most basic business tasks. Plus, VB6 is so outdated. It’s impossible for you to add functionality that you need. Kiss BYOD goodbye.Custom LOB apps tether you to XP
Over the years, you’ve developed custom software, crucial to running your business…. Yet runs only on Windows XP
What has to move?
There are lots of apps that will only run on Windows XP. Old stuff has to move!
- Anything written in VB 6.0 or earlier
- Apps that use .NET 1.0, 1.1 and 2.0
- Older versions of Powerbuilder
- Older versions of Borland Delphi
- Apps using obsolete controls and components
- Apps with DLL hell problems.
There are three main legacy technologies to think about
There are lots of gotchas but they fall in three buckets:
- VB6 applications (millions of these!)
- Apps that use .NET 1.1
- Apps that only run on 32-bit processors
Each of these types of apps requires different solutions.
VB6 components need to be moved
Based on real-world VB6 to .NET migrations, here’s what you need to fix:
Third party components were the most popular feature of legacy VB apps. You either have to replace with new (preferably 64-bit) components, new code (where no component is available) or access through COM Interop.
VB6 syntax changes
VB is loosely typed and all .NET languages (like C# and VB.NET) are strongly typed. The variant type in VB doesn’t work in C#, and some operations on variants will not make sense in a strongly typed world. Replace those variants with explicit types and casts.
VB6 forms are different
The VB forms package is not WinForms. .NET uses either WinForms or WPF (Windows Presentation Foundation). If you’re used to VB Forms, the WinForms designer will seem familiar, but it’s still different.
.NET has issues but is backward compatible
You have a couple of things to worry about when upgrading from .NET 1.1 to current versions.
Breaking changes: although backwards compatible, all .NET versions “break” some behavior of prior releases. Your code may compile but not work correctly. Full testing is critical, as is understanding what parts of the framework are different. Here are three areas you should investigate:
You'll get .NET errors
All .NET 1.1 code should compile for .NET 4.5.1, but you will get compiler warnings on everything that’s been declared obsolete or deprecated. You should examine each of these to decide if you need to make changes or if the old code is still acceptable.
32bit is hard to work around
Windows XP apps are running on old, limited, 32-bit hardware. You could upgrade it to make it suitable for Windows 8. But the cost would be more than replacing the PC altogether: a new CPU probably requires a new motherboard, more memory, bigger power supply, and a bigger hard drive.
Running XP in Windows 7 compatibility mode doesn’t get you off the compliance hook, nor does it guarantee security. This is also true running inside any other VM like the Windows hypervisor or VMWare Workstation.
Lots of problems; we can help
Do you want to know what it takes to move to a modern platform? Run our assessment tool and find out.