Solved

Converting VB6 app to VB.Net app

Posted on 2013-05-29
5
412 Views
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?  

Thanks,
mrotor
0
Comment
Question by:mainrotor
5 Comments
 
LVL 75

Assisted Solution

by:käµfm³d 👽
käµfm³d   👽 earned 100 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.
0
 
LVL 42

Assisted Solution

by:sedgwick
sedgwick earned 100 total points
ID: 39205344
U can start with "wake up its 2013"
0
 
LVL 69

Assisted Solution

by:Éric Moreau
Éric Moreau earned 100 total points
ID: 39207236
0
 
LVL 5

Assisted Solution

by:BrianVSoft
BrianVSoft earned 100 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.
0
 
LVL 40

Accepted Solution

by:
Jacques Bourgeois (James Burger) earned 100 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.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Convert to Hour/minute textbox and compare 3 52
Close word object 13 38
Can Amazon AppStream 2.0 be used for VB.NET and VB6 applications? 2 76
vbModal 12 31
Most everyone who has done any programming in VB6 knows that you can do something in code like Debug.Print MyVar and that when the program runs from the IDE, the value of MyVar will be displayed in the Immediate Window. Less well known is Debug.Asse…
Background What I'm presenting in this article is the result of 2 conditions in my work area: We have a SQL Server production environment but no development or test environment; andWe have an MS Access front end using tables in SQL Server but we a…
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…

914 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

13 Experts available now in Live!

Get 1:1 Help Now