views:

168

answers:

4

I know a lot of question regarding VB6 migration have been asked, but I don't believe my exact situation has been answered in them.

Basically, our company is wanting to migrate our mission-critical VB6 Line-of-business app that is quite large, uses custom libraries to communication to other in-house programs and some dll's we don't have access to the source. No semblance of any sort of "best practices been used" with this legacy app. In fact, almost all variables are global variants and most code such as printing, etc have been just copy/pasted to where it was need. Well, copy, pasted and changed just a tad...

The decision between VB.NET and C#.NET is up to us if we should attempt migration and they would like us to cater for the possibility of shifting the application to a web-based format. Management will not spend money on external migration companies.

The other option is from our infrastructure team, which has been looking at Using Virtualization to Preserve a Visual Basic 6.0 Client-Server Application

Our boss wants us to give high-level estimates and advice, but has told us the executives would like it done by April 2010.

Yes, we laughed at that.

My questions are:

Has anyone had any experience to share with the virtualization path as this is a far preferable option from the development teams point of view? Has it worked for you? Are there pitfulls you would warn of?

Despite previous System Analysts having given estimates of 1-2 years, management constantly pushes for 2-4 month timeframes. Any advise on convincing them this is insane?

Has anyone migrated are large VB6 app to a web-app successfully? One of the previous VB6 migration questions had an answer of converting sections to .NET enabled COM libraries to hollow out the VB6 app. Could this approach be used? Has anyone here tried it successfully?

+3  A: 

I was in the same situation some months ago; eventually, I put together a presentation outlining:

  • What would eventually happen if we kept the VB6 version around and tried to maintain it
  • The hell that would be caused (and the time that would be wasted) if we did a partial migration to .NET
  • How much faster it would be for us to port the entire application (and everything it utilized) to .NET and scrap the legacy codebase

Also, just to help you out, here's how I explained to the executives why their 4-month timeframe wasn't going to fly:

We've been using this product in-house for over six years; since the beginning, it's been modified, added to, or otherwise worked on on a regular basis. What makes you think we can rewrite this entire solution in one fifteenth of the amount of time it took for us to get where we are now?

It worked!

Adam Maras
+4  A: 

one piece of advice to convince them its insane is to break down the task into small units, as much as possible then give an estimate and present this to management. The reason why management often can't give realistic estimates is because they don't understand the scope of the task at hand. So if you slice and dice the tasks and let them see what actual work is needed it will be easier to convince them - or reconsider to select a subset of the tasks and have a series of releases.

with regard to 'porting' it to .net, one way to do it is to rewrite the vb6 program to modules (COM) and incorporate the functionality in a new .net app, then little by little rewrite module after module into your favorite .net language. Although by the sound of it this may be as messy as any other approach.

Anders K.
+2  A: 

We still have as product/mainteinance some software written in VB6, but 3/4 years ago we chosen to turn to C#. That's because VB6 has LOT of limitations, at least until you start using the native Win32 APIs (but that's not so differento to use C++).
.Net offers a very well packaged framework with work on, using very good tools and pushing you to a strong-ordered direction (type safe, strong typing, code analisys, scalable, etc).
We chosen C# over VB.Net because the syntax is similar to C++, Java, Javascript (C-like), but it's only our viewpoint.
As for me, turning an app from VB6 to web, is like to switch from bicycle to vegetable-soup...Yep! Can't compare them...totally different framework, totally different development, etc.
We had some indirect experience of web-based "heavily-activex" solutions, but there were a nightmare...absolutely unsuggested, also from the economic viewpoint: maybe you cound have something "standing" within a reasonable time, but you should take it as the Pisa-tower (possible collapse everyday).

venezia
+1  A: 

Microsoft Corp just published a world-wide case study based on a successful VB6 migration project:

http://www.microsoft.com/casestudies/Case%5FStudy%5FDetail.aspx?casestudyid=4000006181

o.wiegele
Thanks for the link.
Dan McGrath