DEV Community

James Williams
James Williams

Posted on

# Rewriting a Legacy VB6 application

Rewriting a Legacy VB6 App Solo — 4 Years In, Still Going

Hi Devs 👋

I’m a solo developer based in the UK, and I’ve been working on a long-term rewrite of a legacy VB6 application into a modern stack. It’s been over four years of deep refactoring, architecture redesign, and plenty of reverse-engineering—definitely a labor of love (and sometimes frustration!).

The original app was a VB6 desktop tool used in Trading, and I’ve been migrating it to [C#/WPF/.NET/etc.]. Along the way, I’ve wrestled with technical debt, shifting requirements, and the occasional existential dread that comes with solo dev work.

I’m posting here to connect with others who’ve tackled legacy migrations or long solo projects. I’d especially love to hear from devs in tech who’ve navigated similar challenges—whether it’s burnout, imposter syndrome, or just the grind of keeping momentum alive.

If you’ve ever rewritten something that felt like a beast, I’d love to hear your story. And if you have tips for staying motivated or knowing when to pivot, I’m all ears.

Looking forward to learning from you all and hopefully sharing a few war stories of my own!

Cheers,

Oxygen8

Top comments (4)

Collapse
 
stevsharp profile image
Spyros Ponaris • Edited

Hey James.
If I were starting fresh instead of porting a heavy desktop app, I’d go Blazor (or Blazor Hybrid) for flexibility and longevity. I would strongly recommend Blazor instead of WPF.

I found WPF isn’t actually deprecated Microsoft still updates it but their future push is clearly toward Blazor.

Collapse
 
stevsharp profile image
Spyros Ponaris

A few things really helped me get through the rewrite:

  • I broke the project into small deliverables, so I had something “done” at each step.
  • I set up automated tests early, which saved me from chasing the same bugs over and over.
  • I documented as I went, especially when I reverse-engineered VB6 logic I knew I’d forget later.
  • I refactored my own refactors when the first “modern” approach didn’t hold up.

.

Collapse
 
pauljlucas profile image
Paul J. Lucas

This is mistagged. #c is for C; #csharp is for C#.

Collapse
 
james_williams_d78ac658b7 profile image
James Williams

Thanks for the correction, it should be correct now

Thanks Paul