Modernising VB6 and Classic ASP applications without a big-bang rewrite
Visual Basic 6 and Classic ASP apps still run important businesses. Here is how to assess them and move to a modern stack safely, one slice at a time.
VB6 and Classic ASP applications are no longer developed by Microsoft and depend on ageing platforms, so they carry growing risk. Modernise them without a big-bang rewrite: document current behaviour, write tests, run old and new side by side, and migrate one workflow at a time using the strangler-fig pattern.
Visual Basic 6 and Classic ASP applications were written in the 1990s and early 2000s, and plenty are still processing orders, invoices and customer records. Microsoft no longer develops the VB6 language or IDE, and Classic ASP is a legacy technology. They run, but every year the people, tools and platforms around them thin out. Check Microsoft’s lifecycle pages for the current support status of your specific versions.
Why do these systems become risky?
- Few developers know them, and fewer want to maintain them.
- They often depend on old databases, ActiveX components and servers that are hard to patch or replace.
- Business rules live in the code, undocumented, so nobody dares change anything.
- Security tooling and modern integrations rarely support them.
Why is a big-bang rewrite dangerous?
A rewrite has to reproduce years of accumulated behaviour, including bugs people rely on, before it delivers any value. Projects run long, requirements drift, and the old system keeps changing underneath. The result is often a new system that is late, over budget and subtly different.
What is the safer approach?
- 01Assess: inventory forms, pages, components, database objects and integrations, and rank them by business risk.
- 02Capture behaviour: write characterisation tests and document the business rules, using the running system and the data as the source of truth.
- 03Put a seam in place: a proxy or API layer so new and old code can serve different parts of the application.
- 04Migrate by slice: move one workflow at a time to a modern stack, run in parallel, compare results, then switch traffic.
- 05Retire the old parts only when nothing depends on them.
What if the source code is missing?
It happens more often than you would think. With authorisation and a lawful purpose, analysing the compiled application and its data can recover enough behaviour to specify the replacement. See our work on reverse engineering and legacy recovery.
Which target stack should you choose?
Match your team and hosting: .NET for Microsoft-centric shops, or TypeScript with a web framework and PostgreSQL for broad hiring and cloud flexibility. The pattern matters more than the language. Our legacy modernization service covers VB6, Classic ASP, Delphi, COBOL, PHP 5 and .NET Framework.