Visual Basic 6: The Looming Crisis
One of the major factors that is preventing older enterprises from leaving Windows XP is the prevalence of mission critical applications written in Visual Basic 6. Updating a VB 6 application to run on Windows 7 can be a daunting challenge, especially if it relies on obscure COM or control libraries. Compounding the problem is UAC or User Account Control, a necessary but much hated security measure that many large organizations require be turned on.
In the past, users of Windows 7 could install a feature called XP Mode. This would enable an XP virtual machine specifically for running older software. But when the support for Windows XP ends on April 8, so does the support for XP Mode. Microsoft writes,
After April 8, 2014, technical support for Windows XP and Windows XP Mode will no longer be available, including updates that help protect your PC. This means that if you continue to use Windows XP or use Windows XP Mode on a Windows 7 PC after support ends, your PC might become more vulnerable to security risks and viruses. Therefore, to keep your Windows 7 PC secure after April 8, 2014, we recommend that you only use Windows XP Mode if your PC is disconnected from the Internet. Learn more about Windows XP end of support.
If that’s not enough, many Visual Basic 6 applications are still under active development. Dice reports 176 open positions for VB 6 developers and Monster has 312. While that shows there is need out there, those numbers are not high enough to encourage new developers to learn the aging language.
And even if they wanted to, there are a couple serious barriers to entry. For one, Visual Basic 6 is only available via a MSDN subscription. So it is unlikely that a typical junior or even mid-level developer will even have access to it. On top of that the Visual Basic 6 IDE is designed to run on Windows 95/98. Officially the IDE is supported in Windows 7, but in practice we have found that it often doesn’t work correctly for non-trivial applications. Again, the culprit seems to be third-party COM and control libraries.
So what are companies to do? It is incredibly expensive to rewrite decades old applications even under ideal circumstances. And even if you can find enough talented developers to pull it off, your staff will still need to be retrained on the new software.
VB6 needs to be updated
Vote for a new VB6 on the Microsoft VisualStudio UserVoice site.
Moving from VB6 to .NET
I have written both COM DLLs and COM "OCXs" in pure C# (VB.NET works fine, maybe even better) and used them with no problems in VB6 code.
If you take that approach, you can, over time, refactor the VB6 code to .NET code, taking advantage of splitting up business layer, UI layer (as in Windows apps, Windows Phones apps, ASP.NET apps, or even iOS and Android apps using Xamarin in VS 2013).
For me, it is not theoretical. I've done it for years, and it works great.
Automatic migration is an option
Who pays ?
And it can be very difficult to get a budget to replace an application that works just fine.
With Microsoft "It just works" support until 2023 (and due to be extended) and the fact that a 1998 VB6 application will run unchanged on Windows 7 and 8.x there seems little reason to migrate. In fact VB6 applications should continue to run as long as Windows continues to use the Windows API.
But having said that, it would be nice to have an updated VB6 incorporating the 64 bit features added to VBA7.
VB6 needs to be updated, no one makes the transition to VB .NET
Over time the community of VB6 programmers have developed new third party components, keeping this programming language to modern standards (WP). Some of the points that we must consider for a NEW Visual Basic 6.0 are:
1) The new version of VB6 must be cross platform
2) Old VB6 projects must work on the new version (this is crucial)
3) The new version must have the same speed as VB6 has (this is crucial)
4) The compiled executables made by the new version should not be dependent on any external files
5) No syntax change, only additions (this is crucial)
VB6 brought in 2014 so far, ~ 1000 VB6 open source projects on PSC! (more than the last year - in 2013 there were ~2500 open source projects on PSC)
Automatic migration can be easy
Shai Vashdi, your comment is a masked advertising for your company
VB6 is the smartest programming language. Your comment is a masked advertising for your company's software products! LIKE: "Why should I transpose my code from VB6 to .NET?". That PDF explaining "why", it is extremely childish and wrong with each sentence! VB6 works on Win8 and will work on Win9 and Win10, because VB6 it is supported by 2023!
The migration is highly justified! You talk about fear of migration?!, what fear ?! I'm not moving from the smartest programming language in the world (VB6) to a mediocre one. Today VB6 exceeds C++.
To migrate or not...
Re: or not ! :)
Today VB6 exceeds C++.
VB6 now Microsoft's most popular programming language
Microsoft haven't replied to an open letter calling for the VB6 programming language to be open sourced
Will programming VB6 on Windows 9 be supported ?
Will the VB6 runtime be included ?
Will the VB6 IDE run ?
Are Microsoft going to tell us, or will they ignore the question until Windows 9 is launched and we find out VB6 is still fine ?
The alternative is not another MS product
Microsoft is a pit that just sucks money and brings more disippointments then it is worth.
My suggestion is if you do not like Java, then try adobe or any other open standard.
Re: The alternative is not another MS product
They lost the trust of their developers.
Not only Visual Basic 6 developers, but anyone considering any Microsoft software.
The one thing you can be sure of with Microsoft is that they will, sooner or later, let you down.
Visual Basic 6: The Looming Crisis???
VB6 programming on Windows 10
Re: VB6 programming on Windows 10
Jean marie Armengaud
VB6 walk sooooooo good! performance correct. VB is not abandoned at all, and indeed deserve an update.
UACPass software is solution
VB6 supported until 'at least' 2024
VB6 programming for Windows 8: (over 50,000 views)
VB6 programming for Windows 10 Technical Preview:
Vb6 needs to be updated
Since our computers keep getting old and upgraded, we are now all into Windows 8 systems that have had the operating systems downgraded to 7 so we can run in XP mode for this custom software that was written in VB6. I have asked our vendor if we could get an idea of cost to upgrade this software (that runs perfectly by the way) to something that will keep up with the computers operating systems. Otherwise I'll be working in Windows 7 for till it's no longer supported! LOL
The comment I received from my vendor was...
1) Points (or software's name) is written in VB6 and that language is retired.
2) All of the integrated components such as reports and grids have also moved onto new versions of controls to work with the replacement languages for VB6. This means that very little of the actual code in Points will directly transfer to your new version of Points. In other words I will need to replace everything with functionality that mimics what you now have.
3) A quick scan of the market shows the replacement controls will cost a minimum of $8000. That is like going to the lumber yard and selecting pallets of lumber. There is not a one for one replacement so I would need to make sure what we created on Points was coded again in such a way that the functionality was maintained.
Now I know it is going to cost me some bucks, but if I'm going to have to invest in brand new software that is written but branded with the same old software name it seems I should maybe do some shopping. I'm a small business but I've years of information stored in the software that I don't want to lose. I just don't know enough technically to figure out if I am going to be taken to the cleaners on this project or not!
I am looking for questions that I can offer when we have our meeting next week that will make me appear like I'm more familiar with what they are suggesting than I obviously am. I just want to be able to get some options thrown out on the table so they don't think that they can snow plow over me with financial fear. I just can't spend that kind of money even with their offer of 'financing' over time.
Thank you............(Semi-retired Bookkeeper thrown into the IT responsibilities)
VB6 programming continues
Re: Vb6 needs to be updated
A rather late reply but here are some thoughts....
VB6 programming works fine on Windows 7, Windows 8 and Windows 10 (preview).
Microsoft say they will support VB6 until 'at least' 2024. That support is defined as ' if your software runs on Windows XP, it should run on Windows 7/8'. Microsoft can supply support for this, but it would be chargeable.
I'm sure lots of developers would be glad to migrate your software to any other language if you pay them multi-thousands. But it really isn't necessary.
You should ask your vendor what, specifically, is preventing your software running on Windows 8. And no, 'because VB6 is retired' isn't an answer.
I wouldn't be too concerned about using Windows 8, Windows 7 is usually regarded as 'better'. But you can if you wish. Both should be upgrade-able (probably free) to Windows 10 later this year.
If your software doesn't run in Windows 8, it is still likely it will do in Windows 10.
The basic position is that your software should run on Windows 7, 8 and 10 with little or no change.
So why doesn't it run on Windows 8 ?
The usual cause is "User Account Control" (UAC). This is a security feature that can cause issues with older software. You can switch off UAC in Control Panel and then try your software. (I'm not necessarily suggesting UAC should be switched off permanently, this is just to see if it is UAC that stops your software running).
If UAC is the cause, this points to your software not being written to published Microsoft standards (but to be fair, much VB6 software wasn't).
If you have the source code for your software this would be easy to fix.
If any changes are needed to the existing VB6 application to make it run better on Windows 7/8/10 they would be minor and shouldn't cost much.
Re: Vb6 needs to be updated? Nahhhh....
Al De Wachter
Would you buy a new car because a fan belt broke? Me neither.
I never read this forum but just stumbled across this while trying to assure that VB6 development IDE and compiled programs will run in Windows 10 (apparently it will).
I had to deal with exactly the same issue - but ours was 5-10x the expense. Same issues though. As 'Sten Ten' stated, the problems do not have to do with VB6 at all, but they are caused by Windows UAC that reared its ugly head with Windows Vista and later.
There are 'recommended' ways to deal with that, for those in a Cadillac budget. Yea, right.
My solution was as follows - yours is LIKELY similar. Not $$$$$ to fix.
Our program was written in VB6, using many external controls (OCX and DLL) and very complex. Rewriting would have put us out of business.
We changed the following **ONLY**:
- instead of installing the program in c:\Program Files,
we installed it in a custom folder: c:\Our Program Files (name not important). No calls to that c:\Program Files folder remain.
- we removed any and all requirements to WRITE to subfolders of c:\Windows
(it probably should have never used those folders anyway...) No calls to that folder c:\Windows remain, either.
...because Windows protects both those folders (c:\program files and c:\windows) against the big bad outside world that may be trying to infect the PC with malware. Any attempt to go there triggers the "UAC" requirement that messes up your program process.
- OCX's, DLL's etc are installed as normal, to the c:\Windows folder and System subfolders. No changes whatsoever.
The programming change consisted of changing the few program lines that address those locations. THAT WAS IT - THAT WAS ALL.
Our program(s) now work as before in Win XP, Vista (hate it), Win 7, Win 8.1. No change in VB6, no expensive rewrite with all the associated uncertainty and being charged by programmers who just LOVE to re-write stuff in the latest program language flavor.
Our only other challenge was when Windows 8 came out, MS messed up a DLL that accesses FTP. A new control (DART) fixed that. Not a fault of VB6, again.
PS I am not a programmer, (well maybe a super-Junior one) and I made these changes myself. I.e. a 'real' programmer should not have an issue doing this, either.
Do not despair - it can be done. Easily.
Hope this helps. Sorry if it's too late.
John Altidor, Yannis Smaragdakis Mar 30, 2015