Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Migrating VB6 applications to .NET?

Migrating VB6 applications to .NET?

Scheduled Pinned Locked Moved The Lounge
csharpjavascriptclouddatabase
52 Posts 36 Posters 45 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Sander RosselS Sander Rossel

    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

    C Offline
    C Offline
    Choroid
    wrote on last edited by
    #42

    Sander I have a copy of VB 6.0 Professional Edition + Library on CD IF needed which I doubt! Also two great books "The Waite Groups VB 6 Interactive Course" and Murach's VB 6 You are welcome to all FREE. Challenges and Work. Work pays the bills. Challenges can be fun but seem to create bills. When you have time lets us know about the progress it will thoroughly enjoyed by many.

    1 Reply Last reply
    0
    • D Dave Kreskowiak

      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

      P Offline
      P Offline
      PIEBALDconsult
      wrote on last edited by
      #43

      Back in 2003, when I was first learning C#, an instructor said that Microsoft was going with VB.net for future improvements and that C# would not last long. Similarly: In 2012, Microsoft said that OLEDB was dead and there would not be future versions. Then in 2018 they admitted that OLEDB was too important die and they released a new version -- as I knew they would. I find it best to ignore any prognostication.

      1 Reply Last reply
      0
      • Sander RosselS Sander Rossel

        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

        M Offline
        M Offline
        mdowd65
        wrote on last edited by
        #44

        I'm doing that right now. I got hired to fix some VB6 stuff and then write a connected app in webforms .net. After that they kept me on to do support and maintenance. As time allows, I re-write the VB6 to vb.net. Anything new is vb.net. In a couple of instances I needed some of the VB6 functionality in vb.net to do some quick and dirty work. I copied the VB6 to a vb.net module and just went through line by line to make it compile in vb.net. It was surprisingly easy. I'd not recommend that for anything that is going to be maintained long term, but it might get you "over the hump" while port/re-write. Someone else posted link her the tools and instructions to get VB6 to work on Windows 10. It actually works pretty well! Also the are a couple of project underway to build IDEs and compilers for VB6. Twin BASIC looks pretty impressive. Here is a link to learn more: https://www.vbforums.com/showthread.php?890181-TwinBasic[^] Good luck. PS: Ask for a raise. They going have a tough time finding some who wants that job!

        1 Reply Last reply
        0
        • Sander RosselS Sander Rossel

          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

          Z Offline
          Z Offline
          Zane Kurtz
          wrote on last edited by
          #45

          Had to do this a few years ago and ended up using VS 2005 to convert the code. It worked pretty well - even handled the many control arrays. The biggest problem was none of the custom controls we purchased would convert (or even install), so a lot of the GUI had to be rebuilt.

          1 Reply Last reply
          0
          • B BryanFazekas

            Is VB.NET the target? The OP isn't clear regarding that, although his statement can be taken that way. The wording indicates .NET Framework, not a newer version. That said, I agree, C# is a better choice for the reasons you stated. At the time, VB.NET was a panacea for the extensive VB community, but as time has passed, so has the need for VB.NET, and MS has done less and less with it. I'd target Framework 4.8.1 instead of a CORE release. Why? Lifecycle. Framework has a lifespan as long as Windows contains it, which is 2029 for Win10, and I'm haven't checked for Win11. Even versions (v6, v8) of CORE have a 3 year lifespan, while odd versions (v7) have an 18 month lifespan. That places an excessive burden on IT to update applications for which there is no business reason to update.

            D Offline
            D Offline
            Dave Kreskowiak
            wrote on last edited by
            #46

            Agreed. I've got a bunch of tools I've written over the last 15 years and I'm torn on either using 4.8.1 or .NET 8.0 for the lifetime. It's entirely possible that .NET is going to outlast .NET Framework and the tools I'm involved with can be used for 20+ years, some of them are over 15 years old now. It would be nice if MS slowed the pace down a bit so the real word can catch up.

            Asking questions is a skill CodeProject Forum Guidelines Google: C# How to debug code Seriously, go read these articles.
            Dave Kreskowiak

            1 Reply Last reply
            0
            • D DanW52

              The belief that MS is eventually going to kill off VB.Net is incorrect - but only because one person in MS said something incredibly misleading like, "We are no longer going to co-evolve VB.Net and C#." The reality is that wherever VB.Net and C# are both language choices, MS will update both languages if a new substantive feature is added (except for .NET Framework 4.8). But if MS introduces something completely new, then C# will be the only language available. My thinking is that MS decided that, long term, they don't want to spend resources supporting two languages in every new 'platform' going forward forever. Minimizing duplicate work is a good business decision, and I think that C# was the 'winner' only due to perceived popularity. That decision would have been made several years ago. The March 2023 TIOBE score rated VB.Net as the 6th most popular language, where C# is ranked 5th. In 2018 VB.Net was ranked 15th and C# was ranked 5th. C# has not moved in rank but VB.Net has moved up by 10 ranks. Hmmm - did MS really make the right choice? I think not. See this site: TIOBE Index - TIOBE[^] Also, they use 'Visual Basic' for 'VB.Net' - you can read TIOBE's description of why they do this. I am a VB.Net developer in WinForms. From what I can see - VB.Net is a better language. Not because one language allows for a better user experience - but because it allows for a better developer experience. The syntax is simpler, there's no need to type a semicolon at the end of every line of code, and there are no braces. Also, VB.Net does respect character capitalization in variables - a possible opportunity for error in C#. Does everyone remember KISS? VB.Net = KISS. All other things being equal you can finish an application faster using VB.Net than using C#. Anyone have customers? Customers will call you back for their next project if you can deliver faster. Have wallet? - Need customers! Both languages compile to the .NET Runtime. They are actually so similar 'under the covers' that you can get an extension in Visual Studio to quickly convert from one language to the other. So why keep using the more difficult and time-consuming language? Also, using .NET Framework 4.8 is a good choice for a long-term business app that needs solid stability and little maintenance. MS has stated, "As long as there is a Windows OS, there will be a .NET Framework 4.8." The

              D Offline
              D Offline
              Dave Kreskowiak
              wrote on last edited by
              #47

              I came from a huge background in BASIC, from weird varieties in 1979 all the way through modern day VB.NET. The switch to C# wasn't difficult at all. The only thing I hate about VB compared to C# is the verbosity. Less typing in C#, even with the semi-colons, to me, equals more readable, and a quicker read of code. The point you made in your post as a VB.NET guy, to me anyway, is the MS flip-flopping on the future of VB.NET over the years has put a slightly darker cloud over it, even if it is supported 'til the end of my lifetime. I don't hear any of that kind of talk coming from anyone as MS at all when it comes to C#. You may find C# more difficult, but not everyone does. I guess it depends on your background. Alongside the VB background, I also dig around in various flavors of assembly, C/C++, COBOL, javascript (yuk!), and others, so curly braces and sparce or esoteric syntax doesn't bother me at all. I get paid by the app, not the character count, and I can bang out an app just as fast.

              Asking questions is a skill CodeProject Forum Guidelines Google: C# How to debug code Seriously, go read these articles.
              Dave Kreskowiak

              1 Reply Last reply
              0
              • Sander RosselS Sander Rossel

                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

                M Offline
                M Offline
                m8e
                wrote on last edited by
                #48

                Did you know about TwinBasic? Maybe try this as an escape hatch from VB6. TwinBasic is free but runs slower than normal until you buy a monthly subscription to get full version and your code will run about 3x faster than the free version of TwinBasic. My broad recommendation is the following - convert the DBase to a modern database like SQLite or SQLServer, hopefully with the VB6 intact and still running the same, so now you have the data layer more solid - convert the front-end VB6 to TwinBasic. With a bit of luck your code will compile with little to no modification. - you might be able to stop here, with a modern TwinBasic application running your VB6 after conversion - otherwise, my next step would be rewrite your VB6/TwinBasic forms as React frontend with .NET server code running the backend (maybe this code is installed on your local machine, maybe a remote server, maybe both). - This is now mostly a rewrite of the frontend with React (initially inside embedded TwinBasic web browser control) As the new UI, and incrementally converting the backend to .NET until the app is able to run completely browser-based, then you can leave the TwinBasic code once you no longer need to support desktop installations. Learn more about TwinBasic here: twinBASIC GitHub twinBASIC Updates

                1 Reply Last reply
                0
                • D DanW52

                  The belief that MS is eventually going to kill off VB.Net is incorrect - but only because one person in MS said something incredibly misleading like, "We are no longer going to co-evolve VB.Net and C#." The reality is that wherever VB.Net and C# are both language choices, MS will update both languages if a new substantive feature is added (except for .NET Framework 4.8). But if MS introduces something completely new, then C# will be the only language available. My thinking is that MS decided that, long term, they don't want to spend resources supporting two languages in every new 'platform' going forward forever. Minimizing duplicate work is a good business decision, and I think that C# was the 'winner' only due to perceived popularity. That decision would have been made several years ago. The March 2023 TIOBE score rated VB.Net as the 6th most popular language, where C# is ranked 5th. In 2018 VB.Net was ranked 15th and C# was ranked 5th. C# has not moved in rank but VB.Net has moved up by 10 ranks. Hmmm - did MS really make the right choice? I think not. See this site: TIOBE Index - TIOBE[^] Also, they use 'Visual Basic' for 'VB.Net' - you can read TIOBE's description of why they do this. I am a VB.Net developer in WinForms. From what I can see - VB.Net is a better language. Not because one language allows for a better user experience - but because it allows for a better developer experience. The syntax is simpler, there's no need to type a semicolon at the end of every line of code, and there are no braces. Also, VB.Net does respect character capitalization in variables - a possible opportunity for error in C#. Does everyone remember KISS? VB.Net = KISS. All other things being equal you can finish an application faster using VB.Net than using C#. Anyone have customers? Customers will call you back for their next project if you can deliver faster. Have wallet? - Need customers! Both languages compile to the .NET Runtime. They are actually so similar 'under the covers' that you can get an extension in Visual Studio to quickly convert from one language to the other. So why keep using the more difficult and time-consuming language? Also, using .NET Framework 4.8 is a good choice for a long-term business app that needs solid stability and little maintenance. MS has stated, "As long as there is a Windows OS, there will be a .NET Framework 4.8." The

                  B Offline
                  B Offline
                  BryanFazekas
                  wrote on last edited by
                  #49

                  DanW52 wrote:

                  The belief that MS is eventually going to kill off VB.Net is incorrect - but only because one person in MS said something incredibly misleading like, "We are no longer going to co-evolve VB.Net and C#."

                  Nope. "Co-evolution" ceased in 2017, and numerous statements by MS indicate that VB.NET is being maintained, but not "evolved" as C# is. I suspect MS learned a harsh lesson from the way it killed VB6. Alienating users of the most popular programming tool was amazingly foolish. So VB.NET is being maintained, but no effort is put into it. It may be that VB.NET has a long lifespan, and it's great for Windows-only applications, but the handwriting is on the wall. Granted, the list of tools I learned that faded into obscurity or were outright terminated is a long one. Anyone who's been in the industry long enough can probably say the same. It's the nature of the beast.

                  1 Reply Last reply
                  0
                  • Sander RosselS Sander Rossel

                    Slow Eddie wrote:

                    Feel free to contact me by email.

                    How?

                    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

                    S Offline
                    S Offline
                    Slow Eddie
                    wrote on last edited by
                    #50

                    Sander, I am incredibly sorry for not replying sooner. My email is edaymami@outlook.com

                    ed

                    1 Reply Last reply
                    0
                    • Sander RosselS Sander Rossel

                      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

                      K Offline
                      K Offline
                      kentgorrell
                      wrote on last edited by
                      #51

                      OK, I'm going to throw the pigeons to the cat here - you need to define your required outcomes first. and the main question is... who are the users? Does this really need to be a web enabled application? If your users are all known, internal users, then why does it need to be web enabled? It probably doesn't. And I'm guessing that as a VB6 app this will be the case. If all the users are internal and you can dish the application out as a desktop application, even via Remote Desktop Services then your most cost effective solution may be an Access application (hears howls from the gallery). But it will do the job at a fraction of the cost of a .net application. If it need to be web enabled, or it really needs to be .Net then don't fluff around with VB.net, just learn C#. It's not that hard. But it will be time consuming and hard on the budget because it's .net, not because it's C#. There is a reason why VB6 has been hard to kill and it little to do with syntax.

                      Kent

                      1 Reply Last reply
                      0
                      • Sander RosselS Sander Rossel

                        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

                        T Offline
                        T Offline
                        Thomas Krojer
                        wrote on last edited by
                        #52

                        Hi Sander, is it possible to send you an email with a possible solution (at least there is a chance)? greetings, Thomas

                        I cannot remember: What did I before google?

                        1 Reply Last reply
                        0
                        Reply
                        • Reply as topic
                        Log in to reply
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes


                        • Login

                        • Don't have an account? Register

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • World
                        • Users
                        • Groups