Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win


Converting VB6 app to VB.Net app

Posted on 2013-05-29
Medium Priority
Last Modified: 2013-06-03
Hi Experts,
I need help convincing my boss to convert our Enterprise VB6 application into a VB.NET application.  What are some pointers I should bring up to convince him?  

Question by:mainrotor
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 75

Assisted Solution

by:käµfm³d 👽
käµfm³d   👽 earned 400 total points
ID: 39205252
Since VB6 is effectively legacy, the cost of hiring people knowledgeable of the language and environment should steadily start rising.
At least in my experience, VB6 documentation and message boards are becoming harder to find. Getting help for a tricky issue will gradually become more difficult--at least once all the current VB6 experts at EE retire!!
There aren't going to be any (official) VB6 compilers for other architectures. You can easily write a mobile app (for Windows devices) with Visual Studio 20**.
You can write web applications using VB.NET (as code-behind). True:  You can use VB-eque syntax in class ASP, but that is also considered legacy.
.NET supports actual OO programming, whereas VB6 only has the notion of "classes", which in this particlar instance are not very OO.
The .NET Framework itself is massive, and has countless ready-built classes to help you accomplish common programming tasks. In VB6, you'll most likely have to rely on 3rd-party libraries for certain tasks (sorry, I don't have any specific examples), and good luck with trying to get support (without 2nd-mortgaging the house) for such libraries.
If your shop decided to switch to C# as its official language, having an modest understanding of the Framework after working in VB.NET would make the transition easier. You can also easily integrate code written in either language with applications built in either language.
You should be able to use some if not many of your VB6 components (possibly GUI components as well, but I'm not certain) within your .NET applications via P/Invoke. I wouldn't use this as a primary selling point though.
LVL 42

Assisted Solution

by:Meir Rivkin
Meir Rivkin earned 400 total points
ID: 39205344
U can start with "wake up its 2013"
LVL 70

Assisted Solution

by:Éric Moreau
Éric Moreau earned 400 total points
ID: 39207236

Assisted Solution

BrianVSoft earned 400 total points
ID: 39207553
Many small features of VB6 are starting to behave badly in Win7/8..
This always happened to VB with every new OS since Win95 - And, every time, microsoft would take a year or three to make the new OS compatible with VB.
That 'compatibility' effort is no longer being made and VB6 will gradually become unusable!

Sadly, we have over a million lines of VB6 that need to be re-written to DotNet (about 2 man years labor according to Mr. Ballmer) Our company is funded by charities and this re-write is totally beyond their financial ability. Our 'business system' project (share-ware) that took 15 years to develop is being terminated.
LVL 40

Accepted Solution

Jacques Bourgeois (James Burger) earned 400 total points
ID: 39208313
VB6 is not supported anymore, meaning that Microsoft does not update it to work with newer versions of Windows. Problems have already surfaced as stated by someone else, but you can expect that your application will eventually stop working one of these days your company will upgrade to a new version of Windows.

You have to be aware however that a conversion is usually a very bad thing. The way to work in .NET is completely different. Some features of VB6 are not supported anymore. The converter cannot convert everything. It does what it can and gives you code that is very hard to maintain. Nobody would write code in .NET that would look like the code generated by the converter.

Almost every conversion I have heard of since 2002 ended up on the scrap pile after a few weeks or a few months of trying to make things work. Most applications must be rewritten using .NET techniques in order to be stable.

If your VB6 where designed with .exe that contains mainly the forms and most of the work done in dlls, then you could start by rewriting the interface in .NET, while connecting to your old dlls in the background. This works quite well unless you used too many Variant in the dlls. Then recreate the dlls in .NET as need arise.

If your applications were designed in big .exe programs that did everything, then you will probably have to either rewrite the applications or learn to work with virtual machines that should be able to keep running Windows XP for a few more years after you will have migrated to newer versions of Windows.

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you have ever used Microsoft Word then you know that it has a good spell checker and it may have occurred to you that the ability to check spelling might be a nice piece of functionality to add to certain applications of yours. Well the code that…
Enums (shorthand for ‘enumerations’) are not often used by programmers but they can be quite valuable when they are.  What are they? An Enum is just a type of variable like a string or an Integer, but in this case one that you create that contains…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
Suggested Courses

604 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question