Converting VB6 app to VB.Net app

Posted on 2013-05-29
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
LVL 74

Assisted Solution

by:käµfm³d 👽
käµfm³d   👽 earned 100 total points
Comment Utility
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

sedgwick earned 100 total points
Comment Utility
U can start with "wake up its 2013"
LVL 69

Assisted Solution

by:Éric Moreau
Éric Moreau earned 100 total points
Comment Utility

Assisted Solution

BrianVSoft earned 100 total points
Comment Utility
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 100 total points
Comment Utility
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

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

The ECB site provides FX rates for major currencies since its inception in 1999 in the form of an XML feed. The files have the following format (reducted for brevity) (CODE) There are three files available HERE (…
The debugging module of the VB 6 IDE can be accessed by way of the Debug menu item. That menu item can normally be found in the IDE's main menu line as shown in this picture.   There is also a companion Debug Toolbar that looks like the followin…
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…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

763 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

Need Help in Real-Time?

Connect with top rated Experts

7 Experts available now in Live!

Get 1:1 Help Now