# Visual Basic 6: The Looming Crisis

| by Jonathan Allen 125 Followers on Apr 02, 2014. Estimated reading time: 2 minutes |

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.

Style

## Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

## Get the most out of the InfoQ experience.

### Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

VB6 needs to be updated by Sten Ten

As the article says, Visual Basic applications are still widespread. Microsoft have partly addressed this with their "It just works" support (until 2023). But VB6 needs to be updated to fully support these applications.
Vote for a new VB6 on the Microsoft VisualStudio UserVoice site.
visualstudio.uservoice.com/forums/121579-visual...

Moving from VB6 to .NET

Whether you move VB6 code to VB.NET (preferable, IMHO) or C#, one avenue of migration is to write new code in .NET (I'll use that name so you can decide which language) and use COM Interop to use the new DLLs in existing VB6 code.

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

There are providers of automatic migration tools that can do the job. I know of one that will tell you, not any one migration is the same. They do have to customize the migration. But you get a better result. IT managers are the ones that have to bite the bullet, and there is a risk factor that may be holding them back. Although the risk of not moving gets bigger over time.

www.semanticdesigns.com/

Who pays ? by Sten Ten

As the author says "It is incredibly expensive to rewrite decades old applications..."
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.

visualstudio.uservoice.com/forums/121579-visual...

VB6 needs to be updated, no one makes the transition to VB .NET

We must be serious, no one makes the transition to VB .NET! The "transition" to VB .NET is basically a poetry, and a bad one !

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

I completely agree with the article's assertion that applications written in VB6 that rely on old Windows API, such as found in XP, are a major reason for businesses not to upgrade the OS. However, my experience as CTO in a services company (www.galilcs.com) tells me that the fear of migration is mostly unjustified. Upgrading VB6 applications to modern .NET (C# or VB.NET) using automatic tools is very easy and accurate. We have already executed many code modernization projects of this kind, including from VB6 to HTML5. It is unfortunate that many IT departments will just wait for a crisis and only then rush in to have their application reworked. The migration is neither as complicated nor as expensive a task as people fear.

@Shai Vashdi

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...

I can only reiterate what I said. We understand that some people are avid supporters of VB6, and so are some of our developers. However, the fact is that Microsoft stated that it will only support the Runtime. There will be no support for third party controls, no support for 64-bit environment, and an application that relies on the Windows API may encounter difficulties. Our customers came to us, because they encountered difficulties. Our own experience is that migration can solve those difficulties. If somebody wants to resolve their problems by rewriting their VB6 code – let them do so!

Re: or not ! :)

I can only reiterate what I said too ! We are not moving from the smartest programming language in the world (VB6) to a mediocre one.

Today VB6 exceeds C++.

VB6 now Microsoft's most popular programming language by S Ten

The VB6 programming language has risen to fifth in the May 2014 Tiobe index, replacing C# as the leading Microsoft language.

visualstudio.uservoice.com/forums/121579-visual...

Microsoft haven't replied to an open letter calling for the VB6 programming language to be open sourced by S Ten

Satya Nadella, Microsoft's CEO, hasn't replied to an open letter calling for VB6, the Visual Basic programming language, to be open sourced.

www.i-programmer.info/news/136-open-source/7454...

Will programming VB6 on Windows 9 be supported ? by S Ten

Will Windows 9 support Visual Basic 6.0 (VB6) programming ?
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

My advise is not to use another MS product if you thinking of migrating VB code. Microsoft is stuck on an island going no where. The business environment is just too complex for their product offering.

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 by S Ten

Microsoft lost a lot more than they realized when they abandoned the VB6 programming language.
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???

That all sounds pretty negative to me. I have been writing and selling Vb6 ActiveX controls for many years and they work just fine on Win7/Win8 so I disagree with most of your opinions. Microsoft did break ADO in 2011 and then broke many control packages with a Win7 IE10 update in 2012. Once we found a solution for those issues we were just fine. I have no doubt that we will still be working OK when Win9 arrives.

VB6 programming on Windows 10 by S Ten

VB6 programming is OK on the Windows 10 technical preview. Both the runtime and IDE are OK. It is only the technical preview, not the final release.

Re: VB6 programming on Windows 10

(translated from french with google translator)

Hello

VB6 walk sooooooo good! performance correct. VB is not abandoned at all, and indeed deserve an update.

UACPass software is solution

Re: VB6 programming on Windows 10

Will VB6 work on Win2012

VB6 supported until 'at least' 2024 by Sten Ten

VB6 programming for Windows 7: (over 398,000 views)

VB6 programming for Windows 8: (over 50,000 views)

VB6 programming for Windows 10 Technical Preview:

Vb6 needs to be updated

I have a custom made software that cost me close to $60k. I have had this software for heaven knows the years. It set us back 2 years to pay for it since we were a small company of about 6 employees. I'm at 10 employees so it's not a growth issue, but a system issue I'm addressing. 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 by Sten Ten

The VB6 programming IDE installs and runs on Windows 10 (Build 9926), 32 bit or 64 bit.

Re: Vb6 needs to be updated by Sten Ten

@Debra,

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....

Debra,

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.

Al

Please support a open source project to replace vb6:

www.indiegogo.com/projects/a-replacement-to-vis...

FYI: If we do not reach our goal all funds are returned, you have nothing to loose

Re: VB6 needs to be updated, no one makes the transition to VB .NET

All I can think is LOL.

A lot of people including myself made the transition to VB.Net, and all the others should.

There will be no update and it would be ridiculous if so.

I agree there are thousands if not millions of applications developed in VB6, and more being developed. But it is not logical, practical or realistic to think that would be the norm in the future.

Operating Systems are evolving and will not be held up by archaic code. It sounds harsh but it is a fact.

Sorry

Re: Vb6 needs to be updated

I can get VB6 apps to run on Win7 but cannot get VB6 Ent to install on Win7 to make it easier to maintain the code. Trying to retire older XP desktops and not have to use a VM. Anyone recently got the install to work on Win7? I started install running as admin. Thanks

Re: Vb6 needs to be updated by Sten Ten

Hi Donald,

The VB6 programming IDE will install on Windows 7, 8 and 10.

There are a couple of options:
Here are instructions

or here is a utility to install it for you
nuke.vbcorner.net/Articles/VB60/VisualStudio6In...

Re: VB6 needs to be updated, no one makes the transition to VB .NET by Sten Ten

The VB6 runtime is included in Windows 7, 8 and 10.
And the VB6 programming IDE installs on Windows 7, 8 and 10.

And Microsoft support VB6 until 'at least' 2024.

So why would you think Operating Systems would be held up by "archaic code" ?

In fact, it is beginning to look as though VB6 will outlast VB.Net.

Re: VB6 needs to be updated, no one makes the transition to VB .NET by S Ten

VB6 programming installs and runs on Windows 10. And Windows 10 is to be the last version of Windows.

So which operating systems are 'being held up by archaic code' ?

Re: Vb6 needs to be updated by S Ten

The VB6 programming IDE does install on Windows 7, 8 or 10...
Try
nuke.vbcorner.net/Articles/VB60/VisualStudio6In...

or

Re: Moving from VB6 to .NET

Hi Jeff,

I am an owner of an application that was developed in Visual Basic 6 and would like to migrate it to C#.

Thanks

Ray

Re: VB6 needs to be updated, no one makes the transition to VB .NET

Hi Sten,

I have an application that was developed in Visual Basic 6 and I am worried that it might not be supported beyond Windows 8. where can I get more information on this subject.

Thanks

Ray

Re: Moving from VB6 to .NET by S Ten

Microsoft have just said about VB6 programming on Windows 10:-

"Windows is committed to compatibility. The Windows compatibility team has been looking at user telemetry and reacting to feedback from Windows Insiders to ensure that existing apps work well with Windows 10. Windows 10 is designed to run Windows 8.1 and Windows Phone 8.1 software programs. And yes, everyone’s favorite VB6 Runtime will continue to work, too.

blogs.windows.com/buildingapps/2015/06/22/getti...

For instructions to install the VB6 IDE see:

Re: VB6 needs to be updated, no one makes the transition to VB .NET by S Ten

I have an application that was developed in Visual Basic 6 and I am worried that it might not be supported beyond Windows 8. where can I get more information on this subject.

Microsoft have just announced that "Microsoft is committed to support existing Visual Basic 6.0 applications running on Windows Vista, Windows Server 2008 including R2, Windows 7, Windows Server 2012, Windows Server 2012 R2, Windows 8.x, and Windows 10. "
support.microsoft.com/en-us/gp/lifedevtool?
Close

#### by

on

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

34 Discuss

Login to InfoQ to interact with what matters most to you.