1

I'm wondering if anyone can help me. My company is in the process of making the decision of migrating an existing application written in VB6 to .NET. I am presenting a list of risks around keeping VB6 to help make their decision in switching to .NET. Risks around VB6 include the following:

  • Decreased functionality
  • Security Risks
  • Performance Lag
  • User Interface issues
  • Limited technical support
  • Incompatibility issues

With regards to security, I have been asked to expand on this. The application is internal and won't be exposed to the customer. With this in mind, it will sit behind the company security infrastructure, so will this decrease the issue of security? Also, are there any more risks apart from the above which I have not considered?

Adrian Mole
  • 49,934
  • 160
  • 51
  • 83
chrisblue13
  • 263
  • 3
  • 18
  • 1
    What did you mean by any of those? Are you presupposing that a NET app will be *less* functional than an old VB6 app? Why? Same for some of the other issues – Ňɏssa Pøngjǣrdenlarp May 11 '17 at 14:44
  • Edited my question – chrisblue13 May 11 '17 at 14:50
  • 3
    Add - Staffing vb6 developers – djv May 11 '17 at 19:22
  • 1
    Also, if you are concerned about staffing, you would have a much easier time finding c# devs than vb.net. There are currently 10x c# tagged questions than vb.net. I know this not what you are asking about but I'd think about going to c# before vb.net if that's a question. – djv May 11 '17 at 19:26
  • 2
    Several people have expressed concerns about staffing. If you need to hire a developer who is an expert in both VB6 and .NET to help with the migration, then please contact me. Or, if you decide not to migrate, I would be the ideal person to maintain and enhance a "legacy" VB6 application. – Cody Gray - on strike May 12 '17 at 08:15
  • 1
    Here is a [Microsoft UK page with their advice](http://msdn.microsoft.com/en-gb/dd408373.aspx) for people with legacy VB6 code. See also the [`vb6-migration`](http://stackoverflow.com/tags/vb6-migration/info) tag info. Personally I am not sure there is a security risk from your VB6 application although there are plenty of other good reasons for considering migration. – MarkJ May 12 '17 at 11:08
  • Possible duplicate of [Best Strategy for moving from VB6 to .NET](http://stackoverflow.com/questions/683918/best-strategy-for-moving-from-vb6-to-net) – StayOnTarget May 12 '17 at 12:01
  • There is however another service available which converts VB6 code to C#. SELISE Phoenix provides the service (fully functional converted code) and post conversion support to companies availing it. https://phoenix.selise.ch/ – Md Ashaduzzaman Aug 23 '20 at 13:34
  • Add to the list of issues VB6 is 32-bit only. – R.J. Dunnill Aug 28 '20 at 18:06

3 Answers3

4

The main risk with keeping a VB6 application is future maintainability. The VB6 runtimes aren't going anywhere, so any VB6 application should continue to run. However the VB6 IDE has been increasingly flaky within was any OS after XP requiring a few hacks to get it to install and run properly. Additionally finding skilled developers will get harder and harder with fewer people willing to work on such an outdated technology.

Many many things can be done with ease in .Net that are a royal pain in VB6. The potential gains are well worth the short term pain IMHO.

(Currently working on converting my companies core VB6 app to .Net)

Slugsie
  • 851
  • 1
  • 7
  • 17
  • There is however another service available which converts VB6 code to C#. SELISE Phoenix provides the service (fully functional converted code) and post conversion support to companies availing it. https://phoenix.selise.ch/ – Md Ashaduzzaman Aug 23 '20 at 15:29
  • Microsoft has removed portions of VB6 functionality in recent times, due to security risks. As for the VB6 IDE, it works as well as it ever did under Windows 10. – R.J. Dunnill Aug 28 '20 at 18:07
2

Spending the effort to port an application to .Net doesn't make a lot of sense. You might be as well off or better to spend that effort on moving it to Java or B4J or something. Then at least you have portability, an important issue when Windows or .Net (or both) go away.

Until that time VB6 offers such unparalleled stability that support costs due to toolchain churn are practically non-existent. Moving to any other development tools sacrifices that unintended but valuable feature. What some call a curse has become quite a blessing. This is the same reason why so much Cobol is still in production.

Even Windows ARM64 will have the ability to run VB6 x86 programs. I don't see VB6 support dying until Windows itself is dead.

Development dollars would be far better spent cleaning up the codebase rather than wasting the effort on porting for porting's sake.

Bob77
  • 13,167
  • 1
  • 29
  • 37
  • 1
    Re "Spending the effort to port an application to .Net doesn't make a lot of sense." - actually it often does, because most of porting can be done automatically; older VS (2008) can migrate VB6 projects into WinForms.NET realm. Portability was/is not even option for us - we rely on many 3rd party win components and Java on desktop is not usable anyway ;) – Arvo May 12 '17 at 11:12
  • 1
    In my experience those conversion tools in older Visual Studio versions didn't do enough to be worth bothering with. Unless the program was pretty trivial they aren't that much help. Even when they work you now have just raised the cost of supporting the application due to .Net churn. – Bob77 May 12 '17 at 20:41
  • Here we converted our project tree (60+ projects) with MS conversion tool; of course it didn't do brilliant work (we had to iron out any kind of little problems, took month); but without that tool we probabaly would spend a year or two to rewrite all code. And we have less troubles with .NET than with VB6, esp on newer windowses. – Arvo May 15 '17 at 06:13
  • @Bob77 The migration tool bundled with VS 2008 works well enough for simpler projects. – R.J. Dunnill Aug 28 '20 at 18:09
0

This question is old but a lot of it still applies.

Risks around VB6 include the following:

  • Decreased functionality: without any doubt VB6 is no longer a supported platform. Integrating it with new platforms is every day harder.
  • Security Risks: For an internal application the argument that you exposed might be true. However there are some exploits that have been found on th VB6 runtime and due to its unsupported state it makes it a vulnerable target.
  • Performance Lag: VB6 was quite performant. You can get some performance benefits from moving to a newer platform but not that much.
  • User Interface issues: some VB6 have manage to have an UI that looks modern. So in general I do not see a lot of risks here.
  • Limited technical support: this is clearly a risk, specially because there aren't now so many qualified VB6 developers.
  • Incompatibility issues: mmm this one depends. It might happend specially due to the lack of support, but it really depends.

Despite the opinions on some of the answers, I definitively believe in the value of conversion tools. Disclaimer I work on a company that sells conversions tools.

Here at my company (https://www.mobilize.net) we have been upgrading VB6 applications to .NET WinForms and to the Web successfully for 20 years.

We think that one of the key elements for a good project comes from planning. We start by creating a BluePrint (see more here https://www.mobilize.net/solution/legacy-solutions/migration-blueprint) which is mostly a detailed inventory of all the assets for the application or for the complete application portfolio.

I also recommend reading blogs like (https://blogs.artinsoft.net/) and there is a free book you can review: https://migrationguide.artinsoft.com/

If your VB6 application is still alive, it means that is is unique and not easy to replace. A rewrite could be an alternative but a migration is

orellabac
  • 2,077
  • 2
  • 26
  • 34