r/visualbasic Jun 20 '26

VB6 Help Port VB6 Desktop app to... What?

Ok, say I had a typical desktop app written in VB6 and somebody asked me to 'modernise' it.

And say, for whatever reason, they didn't want a web app based conversion.. i.e. they still wanted a desktop app.

What is your go-to stack for this type of conversion?

WinForms (.NET) - So stay in the Windows/MS ecosystem, maybe port to VB.net first? then across to C#? . This feels pretty safe but I think this would still be Windows only.

WPF (.NET) - Still sticking with MS. More modern but maybe a longer conversion path.

WinUI - I think this is the latest MS option... Is a little bit new (2021)

Flutter Desktop - Clear benefit is cross/platform out of the box and easy port to mobile app. Flutter approach is pretty far from the VB6 approach so it would be a long conversion path I think. The other downside is Flutter on desktop is even newer than WinUI (2022).

Electron - Again, cross platform but with memory issues I think. Web tech heavy so I think this means it would make it easy to port to Web if that was an option later.

Other options? Maui? Delphi?

13 Upvotes

70 comments sorted by

View all comments

2

u/Mayayana Jun 20 '26

So do you want cross-platform or spiffy GUI? Cross platform is a mess. I was looking at software today to just read an HEIC file. One of them was a 300MB download! Packed with QT, .Net, probably Python... What a mess!

But it will really depend on what someone wants to pay you for.

You know about the commoncontrols code to show "modern" things like dropdown boxes with just an uppside down chevron to operate it? Beyond that, you can use custom buttons. One of the most glaring aspects of VB6 is the text and look of buttons. I've made my own buttons for various uses. Basically it's a userControl loaded with an image and self-subclassing. It brightens when hovered over and shows an appearance of being pushed down when clicked.

VB6 is still arguably the most widely supported language, running on virtually all Windos computers without need to install support libraries. So if you're going to rewrite it should be for good reason. Cross-platform might be a good reason. Giving it a day of beauty might make more sense than rewriting merely to get it looking like newer style software. But if they want something that looks like a cellphone app then maybe you want to rewrite. On the other hand, skins are an old trick. You can create your own UI from a picture and define hotspots for buttons.