Migrating VB6 applications to .NET?
-
What the title says. For most people this (hopefully) happened some twenty years ago, but I'm going to inherit a lot of VB6 applications, some even still work with a dBase database. The programmer is going into retirement and this (reasonably large) company needs someone to take care of their software. Our (and their) first priority is getting off of dBase, the current programmer already started working on that. Next we'll need to move VB6 to .NET (Framework, probably). I know there used to be converter tools around, but I've heard bad things about them. They're usually not worth the effort. Ideally, I'd rather just rewrite everything to web-based and cloud-ready .NET 6 applications, but I don't think we'll have the time nor money. Any tips (other than "RUN!")?
Best, Sander Azure DevOps Succinctly (free eBook) Azure Serverless Succinctly (free eBook) Migrating Apps to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
As someone who had to do this for a couple of clients, I can definitely say stay away from the conversion tools... they do not work! If this software is critical to the company's business, I think you will have no option but to rewrite. Just hope that the current version works as is while you do that. One thing I tried doing was to keep the UI same (or as similar as possible) so that users do not have to be re-trained a lot.
Happiness will never come to those who fail to appreciate what they already have. -Anon
-
What the title says. For most people this (hopefully) happened some twenty years ago, but I'm going to inherit a lot of VB6 applications, some even still work with a dBase database. The programmer is going into retirement and this (reasonably large) company needs someone to take care of their software. Our (and their) first priority is getting off of dBase, the current programmer already started working on that. Next we'll need to move VB6 to .NET (Framework, probably). I know there used to be converter tools around, but I've heard bad things about them. They're usually not worth the effort. Ideally, I'd rather just rewrite everything to web-based and cloud-ready .NET 6 applications, but I don't think we'll have the time nor money. Any tips (other than "RUN!")?
Best, Sander Azure DevOps Succinctly (free eBook) Azure Serverless Succinctly (free eBook) Migrating Apps to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
It's a while since I had to, but the conversion tool with Vis Studio 2003 worked fine for me, I copied the UI in VB.Net was told to make it as close as I could 'convert the old one, that worked' only had rough code behind buttons converted it and it worked (then I ran).
-
What the title says. For most people this (hopefully) happened some twenty years ago, but I'm going to inherit a lot of VB6 applications, some even still work with a dBase database. The programmer is going into retirement and this (reasonably large) company needs someone to take care of their software. Our (and their) first priority is getting off of dBase, the current programmer already started working on that. Next we'll need to move VB6 to .NET (Framework, probably). I know there used to be converter tools around, but I've heard bad things about them. They're usually not worth the effort. Ideally, I'd rather just rewrite everything to web-based and cloud-ready .NET 6 applications, but I don't think we'll have the time nor money. Any tips (other than "RUN!")?
Best, Sander Azure DevOps Succinctly (free eBook) Azure Serverless Succinctly (free eBook) Migrating Apps to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
-
What the title says. For most people this (hopefully) happened some twenty years ago, but I'm going to inherit a lot of VB6 applications, some even still work with a dBase database. The programmer is going into retirement and this (reasonably large) company needs someone to take care of their software. Our (and their) first priority is getting off of dBase, the current programmer already started working on that. Next we'll need to move VB6 to .NET (Framework, probably). I know there used to be converter tools around, but I've heard bad things about them. They're usually not worth the effort. Ideally, I'd rather just rewrite everything to web-based and cloud-ready .NET 6 applications, but I don't think we'll have the time nor money. Any tips (other than "RUN!")?
Best, Sander Azure DevOps Succinctly (free eBook) Azure Serverless Succinctly (free eBook) Migrating Apps to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
Power walk.
-
What the title says. For most people this (hopefully) happened some twenty years ago, but I'm going to inherit a lot of VB6 applications, some even still work with a dBase database. The programmer is going into retirement and this (reasonably large) company needs someone to take care of their software. Our (and their) first priority is getting off of dBase, the current programmer already started working on that. Next we'll need to move VB6 to .NET (Framework, probably). I know there used to be converter tools around, but I've heard bad things about them. They're usually not worth the effort. Ideally, I'd rather just rewrite everything to web-based and cloud-ready .NET 6 applications, but I don't think we'll have the time nor money. Any tips (other than "RUN!")?
Best, Sander Azure DevOps Succinctly (free eBook) Azure Serverless Succinctly (free eBook) Migrating Apps to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
The problem is VB.NET is your target. VB.NET is not getting any new features. There was a time when MS said they were developing VB.NET and C# side-by-side, with the same features between the two. That has since been killed. VB.NET is going to "wither on the vine" without new features. I'm going to say your best bet is to rewrite from scratch in C# instead.
Asking questions is a skill CodeProject Forum Guidelines Google: C# How to debug code Seriously, go read these articles.
Dave Kreskowiak -
What the title says. For most people this (hopefully) happened some twenty years ago, but I'm going to inherit a lot of VB6 applications, some even still work with a dBase database. The programmer is going into retirement and this (reasonably large) company needs someone to take care of their software. Our (and their) first priority is getting off of dBase, the current programmer already started working on that. Next we'll need to move VB6 to .NET (Framework, probably). I know there used to be converter tools around, but I've heard bad things about them. They're usually not worth the effort. Ideally, I'd rather just rewrite everything to web-based and cloud-ready .NET 6 applications, but I don't think we'll have the time nor money. Any tips (other than "RUN!")?
Best, Sander Azure DevOps Succinctly (free eBook) Azure Serverless Succinctly (free eBook) Migrating Apps to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
I migrate VB6 to VB.net and C#. It isn't as difficult as you think. Feel free to contact me by email.
ed
-
What the title says. For most people this (hopefully) happened some twenty years ago, but I'm going to inherit a lot of VB6 applications, some even still work with a dBase database. The programmer is going into retirement and this (reasonably large) company needs someone to take care of their software. Our (and their) first priority is getting off of dBase, the current programmer already started working on that. Next we'll need to move VB6 to .NET (Framework, probably). I know there used to be converter tools around, but I've heard bad things about them. They're usually not worth the effort. Ideally, I'd rather just rewrite everything to web-based and cloud-ready .NET 6 applications, but I don't think we'll have the time nor money. Any tips (other than "RUN!")?
Best, Sander Azure DevOps Succinctly (free eBook) Azure Serverless Succinctly (free eBook) Migrating Apps to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
Here is a step-by-step instruction how to install VB6 on Win10. The instructions actually work. And you can find the two CDs with VB in MSDN. It took me a while to get to this information: Visual Basic Discussion Boards[^][^] In MSDN search for: "Visual Basic 6.0 Enterprise " The Visual Basic forum was more aggressive than helpful on the subject, but here is the link: Visual Basic Discussion Boards[^]
Advertise here – minimum three posts per day are guaranteed.
-
What the title says. For most people this (hopefully) happened some twenty years ago, but I'm going to inherit a lot of VB6 applications, some even still work with a dBase database. The programmer is going into retirement and this (reasonably large) company needs someone to take care of their software. Our (and their) first priority is getting off of dBase, the current programmer already started working on that. Next we'll need to move VB6 to .NET (Framework, probably). I know there used to be converter tools around, but I've heard bad things about them. They're usually not worth the effort. Ideally, I'd rather just rewrite everything to web-based and cloud-ready .NET 6 applications, but I don't think we'll have the time nor money. Any tips (other than "RUN!")?
Best, Sander Azure DevOps Succinctly (free eBook) Azure Serverless Succinctly (free eBook) Migrating Apps to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
Sander Rossel wrote:
I know there used to be converter tools around, but I've heard bad things about them. They're usually not worth the effort.
You don't want a converter. There were tools that let yuo integrate .NET into a VB6 app. Interop Forms Toolkit 2.0 Tutorial[^] A company I worked for tried a rewrite, and I was specifically told not to go the "slow transition route" by the software lead because it might kill the rewrite. That decision killed the company. You rewrite critical parts. In a year, the VB6 crap will merely exist to display .NET modules. Then you start a new .NET host for those modules. Before you do that, you'd want to migrate the database to something that makes more sense. Yup, been there, got the TShirt. Go slow and steady. DB first, then VB a small victory at a time.
Bastard Programmer from Hell :suss: "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
-
What the title says. For most people this (hopefully) happened some twenty years ago, but I'm going to inherit a lot of VB6 applications, some even still work with a dBase database. The programmer is going into retirement and this (reasonably large) company needs someone to take care of their software. Our (and their) first priority is getting off of dBase, the current programmer already started working on that. Next we'll need to move VB6 to .NET (Framework, probably). I know there used to be converter tools around, but I've heard bad things about them. They're usually not worth the effort. Ideally, I'd rather just rewrite everything to web-based and cloud-ready .NET 6 applications, but I don't think we'll have the time nor money. Any tips (other than "RUN!")?
Best, Sander Azure DevOps Succinctly (free eBook) Azure Serverless Succinctly (free eBook) Migrating Apps to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
Having done exactly what you are asking about, here is how I approached the problem. 0: Strip all the code from your forms. 1: Use the converter from VB 2008 to upgrade the forms. (UI only) 2: Paste back in the code, proc by proc, fixing it as you go. It's a long, slow, boring process. There's also a company called mobilize.net that I've looked into that seem to do a really good job at migrating VB6 to .Net. Good luck! :)
"Go forth into the source" - Neal Morse "Hope is contagious"
-
What the title says. For most people this (hopefully) happened some twenty years ago, but I'm going to inherit a lot of VB6 applications, some even still work with a dBase database. The programmer is going into retirement and this (reasonably large) company needs someone to take care of their software. Our (and their) first priority is getting off of dBase, the current programmer already started working on that. Next we'll need to move VB6 to .NET (Framework, probably). I know there used to be converter tools around, but I've heard bad things about them. They're usually not worth the effort. Ideally, I'd rather just rewrite everything to web-based and cloud-ready .NET 6 applications, but I don't think we'll have the time nor money. Any tips (other than "RUN!")?
Best, Sander Azure DevOps Succinctly (free eBook) Azure Serverless Succinctly (free eBook) Migrating Apps to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
Sounds like a good time to also review the overall design, make more modular, do some TDD/unit tests, etc. Sell them on positives....
-
The problem is VB.NET is your target. VB.NET is not getting any new features. There was a time when MS said they were developing VB.NET and C# side-by-side, with the same features between the two. That has since been killed. VB.NET is going to "wither on the vine" without new features. I'm going to say your best bet is to rewrite from scratch in C# instead.
Asking questions is a skill CodeProject Forum Guidelines Google: C# How to debug code Seriously, go read these articles.
Dave KreskowiakIt's safe to assume that people are not mentally challenged, and this is the first option that springs to their mind. But verry often, the time, resources and/or management's grasp of reality (or lack of) are preventing from going this path. Especially, when the purpose of the whole thing is just a small change in the current system.
Advertise here – minimum three posts per day are guaranteed.
-
It's safe to assume that people are not mentally challenged, and this is the first option that springs to their mind. But verry often, the time, resources and/or management's grasp of reality (or lack of) are preventing from going this path. Especially, when the purpose of the whole thing is just a small change in the current system.
Advertise here – minimum three posts per day are guaranteed.
Dude, all I said was moving to VB.NET isn't really a good choice because of its limited lifetime. If a conversion to .NET (anything) was going to happen, a more appropriate target would be C#.
Asking questions is a skill CodeProject Forum Guidelines Google: C# How to debug code Seriously, go read these articles.
Dave Kreskowiak -
Sander Rossel wrote:
I know there used to be converter tools around, but I've heard bad things about them. They're usually not worth the effort.
You don't want a converter. There were tools that let yuo integrate .NET into a VB6 app. Interop Forms Toolkit 2.0 Tutorial[^] A company I worked for tried a rewrite, and I was specifically told not to go the "slow transition route" by the software lead because it might kill the rewrite. That decision killed the company. You rewrite critical parts. In a year, the VB6 crap will merely exist to display .NET modules. Then you start a new .NET host for those modules. Before you do that, you'd want to migrate the database to something that makes more sense. Yup, been there, got the TShirt. Go slow and steady. DB first, then VB a small victory at a time.
Bastard Programmer from Hell :suss: "If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
-
What the title says. For most people this (hopefully) happened some twenty years ago, but I'm going to inherit a lot of VB6 applications, some even still work with a dBase database. The programmer is going into retirement and this (reasonably large) company needs someone to take care of their software. Our (and their) first priority is getting off of dBase, the current programmer already started working on that. Next we'll need to move VB6 to .NET (Framework, probably). I know there used to be converter tools around, but I've heard bad things about them. They're usually not worth the effort. Ideally, I'd rather just rewrite everything to web-based and cloud-ready .NET 6 applications, but I don't think we'll have the time nor money. Any tips (other than "RUN!")?
Best, Sander Azure DevOps Succinctly (free eBook) Azure Serverless Succinctly (free eBook) Migrating Apps to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
My experience is to create the new dotNet VB application from scratch. Use the VB6 source as a guide to what needs to be done. In some cases, I discovered that if I copy/paste the VB6 source into the project and then fix that source it worked wonders. Gotchas: - File IO - classic VB file handling is there, but using the new StreamReader and StreamWriter classes are far more efficient - Event handlers, but at least VB.Net makes these explicit in the code. The order of event firing is different from VB6. - Error handling: You can leave in the VB6 error handling but I strongly recommend you switch to the Try Catch Finally End Try constructs. I have a few short Subs and Functions where I legitimately use On Error Resume Next, but I document why I'm using this construct.
-
What the title says. For most people this (hopefully) happened some twenty years ago, but I'm going to inherit a lot of VB6 applications, some even still work with a dBase database. The programmer is going into retirement and this (reasonably large) company needs someone to take care of their software. Our (and their) first priority is getting off of dBase, the current programmer already started working on that. Next we'll need to move VB6 to .NET (Framework, probably). I know there used to be converter tools around, but I've heard bad things about them. They're usually not worth the effort. Ideally, I'd rather just rewrite everything to web-based and cloud-ready .NET 6 applications, but I don't think we'll have the time nor money. Any tips (other than "RUN!")?
Best, Sander Azure DevOps Succinctly (free eBook) Azure Serverless Succinctly (free eBook) Migrating Apps to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
look at this post, it may give your ideas...
diligent hands rule....
-
What the title says. For most people this (hopefully) happened some twenty years ago, but I'm going to inherit a lot of VB6 applications, some even still work with a dBase database. The programmer is going into retirement and this (reasonably large) company needs someone to take care of their software. Our (and their) first priority is getting off of dBase, the current programmer already started working on that. Next we'll need to move VB6 to .NET (Framework, probably). I know there used to be converter tools around, but I've heard bad things about them. They're usually not worth the effort. Ideally, I'd rather just rewrite everything to web-based and cloud-ready .NET 6 applications, but I don't think we'll have the time nor money. Any tips (other than "RUN!")?
Best, Sander Azure DevOps Succinctly (free eBook) Azure Serverless Succinctly (free eBook) Migrating Apps to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
You are better off leaving the existing application as VB6 and just do the change to the database layer, VB6 still works perfectly and will continue to do so for a long time. Then just develop new features in .net when required. We spent about 5 man years converting one of our applications to VB.Net and now its just as (not)supported by Microsoft as VB6.
-
What the title says. For most people this (hopefully) happened some twenty years ago, but I'm going to inherit a lot of VB6 applications, some even still work with a dBase database. The programmer is going into retirement and this (reasonably large) company needs someone to take care of their software. Our (and their) first priority is getting off of dBase, the current programmer already started working on that. Next we'll need to move VB6 to .NET (Framework, probably). I know there used to be converter tools around, but I've heard bad things about them. They're usually not worth the effort. Ideally, I'd rather just rewrite everything to web-based and cloud-ready .NET 6 applications, but I don't think we'll have the time nor money. Any tips (other than "RUN!")?
Best, Sander Azure DevOps Succinctly (free eBook) Azure Serverless Succinctly (free eBook) Migrating Apps to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
My company in a migration process from VB6 right now. First things first. I don't know anything about you application so anything said down here may not be relevant. My company have many million lines of code in VB6 and VBA compatible scripting language in the 3 main application. All of the are using the same core written in VB6. We started the migration 2.5 years ago. The process is like this. 1. Write a server side C# code and connect old UI to the new (C#, .NET Core 3.1, now upgraded to .NET 6). 1.1. Create core for "migrateable" components. 1.1.1. Connect server-side components to the old UI. 1.2. Migrate those components. 2. Create the new UI (C#, .NET 6, WPF). 2.1. Create core client-side components to show server-side components. 2.2. Migrate client-side UI components. 2.3. Create the tooling. Many processes are parallel. The smallest of the 3 main projects will be fully migrated at the end of this year. The second one is planned to be ready at the end of next year. Biggest biggest project is planned to be ready in 3 years (likely it will be 5 years). The good news is that whatever is migrated is used by the customers already.
-
What the title says. For most people this (hopefully) happened some twenty years ago, but I'm going to inherit a lot of VB6 applications, some even still work with a dBase database. The programmer is going into retirement and this (reasonably large) company needs someone to take care of their software. Our (and their) first priority is getting off of dBase, the current programmer already started working on that. Next we'll need to move VB6 to .NET (Framework, probably). I know there used to be converter tools around, but I've heard bad things about them. They're usually not worth the effort. Ideally, I'd rather just rewrite everything to web-based and cloud-ready .NET 6 applications, but I don't think we'll have the time nor money. Any tips (other than "RUN!")?
Best, Sander Azure DevOps Succinctly (free eBook) Azure Serverless Succinctly (free eBook) Migrating Apps to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
We had to do what you have to do big time. But with todays knowledge, I would like to encourage you questioning not only VB.Net vs C#. Depending on the charactor of the application, having a Web Application might be worth thinking about. You may want to have a look at JMIX which is a Java Framework on top of Spring Boot which gives you almost the easy of good old VB6. It gifts you with all the typical features of a modern application and the sample apps they offer could be a good starting point for modifying them to cover the functionality you need. No, I am not getting paid by those folks :-) ... and I am still a strong supporter of VB (adopted it starting at Version 1.0). But now I heavily rely on JMIX and Windows getting independent from operating systems.
-
What the title says. For most people this (hopefully) happened some twenty years ago, but I'm going to inherit a lot of VB6 applications, some even still work with a dBase database. The programmer is going into retirement and this (reasonably large) company needs someone to take care of their software. Our (and their) first priority is getting off of dBase, the current programmer already started working on that. Next we'll need to move VB6 to .NET (Framework, probably). I know there used to be converter tools around, but I've heard bad things about them. They're usually not worth the effort. Ideally, I'd rather just rewrite everything to web-based and cloud-ready .NET 6 applications, but I don't think we'll have the time nor money. Any tips (other than "RUN!")?
Best, Sander Azure DevOps Succinctly (free eBook) Azure Serverless Succinctly (free eBook) Migrating Apps to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
I have done this before, and how well it goes depends a lot on how good an engineer the person doing the conversion is. Put enough time and planning into the design you want to go to. Use value engineering to determine what has the most value in the conversion process. Don’t just replicate how the business rules are implemented. Migrate them using newer features where there is value in doing so. The more the VB code used OO techniques (available in VB4 - VB6), the easier your job will be. Don’t try to replicate VB procedural programming design in C#. Are your users desktop or browser? Determine the relative SDLC costs between WinForms and Blazor. Development time is less and performance is better with WinForms than any web-based GUI, but deployment costs may be higher. If you choose a web-based GUI, go with Blazor, not the Javascript-based approach. You’ll have less development time, better performance, and fewer headaches. Don’t farm out the work to consultants, H1-B developers, or offshore developers. The end result will need a lot of repair and be more expensive to maintain. Make sure to use someone in-house who is experienced in VB6 and in C#/.NET. A successful port will depend on deeply understanding both. One last thing - VB6 can host C# DLLs, including user controls for the VB6 GUI, all written in pure C#, using COM Interop. I did this a while back and it works beautifully if the developer understands both C# COM Interop and how VB6 recognizes classes, interfaces, and events. That allowed us to migrate the app from VB6 to fully C# piece by piece, without wasted code. Best of luck to you!
-
Dude, all I said was moving to VB.NET isn't really a good choice because of its limited lifetime. If a conversion to .NET (anything) was going to happen, a more appropriate target would be C#.
Asking questions is a skill CodeProject Forum Guidelines Google: C# How to debug code Seriously, go read these articles.
Dave KreskowiakAppropriate, sure. I am one that totally agrees with you as I once had to deal with a pile of VB6 and it is no fun at all. As for getting signoff or access to resources or getting people to actually want to be forward thinking that are the final decision makers? This is a completely different issue and the bigger the company, expect the least ideal option being selected. And no it won't make sense. And yes, you will be frustrated greatly.