Last updated: April 2026

PCG migrates Visual Basic 6 applications to modern .NET. We have been doing this work since VB6 was current software, which means we understand what these systems actually do before touching a line of code. Most migrations take 8 to 20 weeks depending on application size and documentation available. Your business logic comes through intact. So does your data.

Why are VB6 applications failing in 2026?

Visual Basic 6 reached end of support from Microsoft in 2008. The runtime has persisted through Windows compatibility layers, but that window is closing fast. In 2026, the failure points are stacking up: 64-bit Windows dropping 32-bit COM component support, third-party controls that no longer have working installers, and hardware refreshes that simply will not run the old runtime environment at all.

The businesses still running VB6 applications are not running them because they prefer VB6. They are running them because the application works, the migration felt expensive, and nobody wanted to touch something that was not broken. In 2026, more of those applications are breaking. A Windows update that rolled out silently at 2am is a common trigger. So is a new machine purchase where IT discovers the application will not install.

What is actually breaking VB6 apps in 2026
  • 64-bit Windows environments removing legacy 32-bit COM support
  • ActiveX controls with no current vendor support or installer
  • Crystal Reports and other reporting components tied to VB6 versions
  • DAO and RDO data access layers deprecated in current SQL Server
  • Hardware refreshes where the VB6 runtime simply will not install
  • Windows 11 compatibility breaks that appear without warning after updates
  • SSL/TLS library dependencies that no longer function in modern network environments

The cost of waiting is no longer theoretical. Every month a VB6 application stays in production on modern hardware is a month closer to a failure that forces the migration under crisis conditions rather than planned ones. PCG has handled both scenarios. The planned migration costs significantly less.1


What does PCG actually do during a VB6 to .NET migration?

The migration is not a code conversion. Automated tools exist that will translate VB6 syntax to VB.NET syntax line by line, and the result is almost always unmaintainable code that carries every architectural problem of the original into the new platform. PCG does not use that approach.

The work starts with understanding what the application does. VB6 systems that have been running for 15 or 20 years often contain business logic that exists nowhere else in the organization. Rules that were encoded in 2004 by a developer who is no longer there, handling edge cases that nobody currently remembers exist. PCG documents that logic before writing a single line of new code.

1
Application audit and logic documentation

PCG reads the existing VB6 codebase and produces a plain-English document of what the application does, how data flows through it, and what business rules are embedded in the code. This becomes the specification for the new system.

2
Architecture decision

Based on what the application does and how it is used, PCG recommends the target platform. Most VB6 applications migrate to C# .NET Core with a web front end. Desktop applications with specific hardware dependencies may stay as Windows desktop apps but rebuilt in modern WPF or WinForms. The decision is driven by the business need, not by what is easiest to build.

3
Data migration and database modernization

VB6 applications typically connect to Access databases, older SQL Server versions, or flat file systems. PCG migrates the data to a current SQL Server schema, cleaning and normalizing records in the process. The new application connects to clean data from day one.

4
Rebuild and parallel testing

The new application is built against the documented specification. Before cutover, both systems run in parallel on real data so discrepancies surface before the old system is retired. PCG does not do big-bang cutovers on business-critical applications.

5
Training and documentation handoff

Staff training on the new system, written documentation of how it works, and a support retainer option so PCG remains available after go-live. The goal is a team that can operate the new system without calling PCG for every question.


Can PCG migrate a VB6 application if the original developer is gone?

Yes. This is the most common situation PCG encounters on VB6 projects. The developer who built the system retired, changed careers, or passed away. The documentation ranges from thin to nonexistent. The people currently using the application can describe what it does from the outside, but nobody alive has read the code in years.

PCG starts from the source code itself. If source code is available, the audit process reconstructs what the application does from the inside out. If source code is not available and only a compiled executable exists, PCG works with the database schema and user interviews to reconstruct the business logic before any rebuild begins. That process takes longer and costs more, but it produces the same result: a documented understanding of what the system does before any migration work starts.

The technology stack PCG works in for these migrations is the same one the original VB6 systems connected to. SQL Server in every version from 6.5 forward. Access databases from every era. COM components, ActiveX controls, and the Crystal Reports versions that shipped alongside VB6 are not unfamiliar territory for PCG.

VB6 VBA C# .NET Core SQL Server MS Access ASP.NET Core WPF Razor Pages COM / ActiveX Crystal Reports

How long does a VB6 to .NET migration actually take?

The honest range is 8 to 20 weeks for most applications PCG handles. A single-purpose VB6 application with a clean Access backend and good source code documentation can be migrated in 8 to 10 weeks. A large multi-module system built over 15 years by multiple developers, with no documentation and a database that has grown organically since 1998, takes closer to 20 weeks or more.

The variables that drive timeline more than anything else are documentation state and data quality. An application with a documented specification and clean relational data migrates in half the time of one where PCG has to reconstruct both from scratch. The audit phase at the beginning of every PCG migration is what makes timeline estimates reliable, not guesses.

Speeds migration up

Source code available. Original developer reachable for questions. Clean relational database. Single application module. Staff who can demonstrate every workflow.

Extends the timeline

No source code, compiled executable only. No documentation. Multiple modules built by different developers. Data spanning decades with inconsistent formats. Undocumented edge cases in production.


What does a VB6 migration cost?

PCG does not quote VB6 migrations without an audit. The range for a complete migration, including the audit, rebuild, and data migration through training, runs from $15,000 for a straightforward single-module application to $40,000 or more for complex multi-module systems with significant undocumented logic. That range reflects 31 years of doing this work, not an estimate built from a sales conversation.

The audit engagement itself costs $2,500 and produces a written scope document with a firm project quote. Clients who want a number before the audit are getting a guess. PCG does not give guesses on work that will run a business for the next 15 years.

Typical VB6 migration investment
  • Application audit and scope document: $2,500
  • Single-module application, documented: $15,000 to $22,000
  • Multi-module system, partial documentation: $22,000 to $35,000
  • Complex system, no documentation, source code recovery required: $35,000 to $40,000+
  • Monthly support retainer after go-live: $700 to $1,500 per month

The comparison that matters is not migration cost versus zero. It is migration cost versus what the next emergency failure costs when the VB6 application breaks on a machine that will not run the runtime at all, two days before a deadline that cannot move.2


What happens to our data during the migration?

Data integrity is treated as non-negotiable on every PCG migration. The process runs on a copy of production data, never on live data, until the parallel testing phase confirms the new system produces correct results. Every record count is verified before and after. Every calculation that the old system performed is tested against the new system's output on real historical data.

VB6 applications frequently connect to Access databases or early SQL Server versions with denormalized schemas, inconsistent data types, and records that accumulated formatting quirks over decades of manual entry. PCG cleans and normalizes data during migration rather than carrying the same problems into the new platform. The new system starts with data that matches what the new schema expects, not a copy of whatever the old system accumulated.

Clients receive a data migration report that documents record counts by table, any records that required manual review or correction, and the transformation rules applied. That report stays with the project documentation permanently.

About the Author

Allison Woolbert, CEO and Senior Systems Architect, Phoenix Consultants Group

"VB6 migration is not technically difficult for someone who knows the platform. The hard part is the business logic that got baked in over 20 years by people who are no longer there to explain it. That is where migrations fail, not in the code translation. PCG has been doing this long enough to know where to look for the logic that nobody documented and everybody depends on."

Allison's experience in software development goes back to the early 1980s, predating PCG's founding in 1995. She has spent decades solving the hardest data problems in business, working with Fortune 500 corporations, growing mid-size firms, and small businesses across industries ranging from manufacturing and fleet management to healthcare staffing and regulatory compliance.

Her work includes enterprise intelligence systems for ExxonMobil, Nabisco, and AXA Financial, environments where a 24-hour reporting lag carries direct revenue consequences. FireFlight Data System is the product of everything she learned: a purpose-built engine designed to eliminate the structural failures she encountered and fixed throughout her career.

Your VB6 application will not run forever.

PCG has been migrating these systems since before most of them were considered legacy. Start with a $2,500 audit and get a firm scope and quote.

Contact PCG Now

Frequently asked questions

Our VB6 application still works fine. Why migrate now?

Because the migration costs significantly less when it is planned than when it is forced. A VB6 application running on current hardware is one Windows update or one hardware refresh away from a failure that requires emergency response. The cost of a planned migration is predictable. The cost of an unplanned failure is not, and it always arrives at the worst possible time.

We do not have the original source code. Can PCG still migrate the application?

Yes, though it takes longer and costs more than a migration with full source code. PCG works from the database schema, the compiled executable behavior, and user interviews to reconstruct the business logic before rebuilding. The result is the same: a documented modern application that does what the old one did. The path to get there is longer when the source code is gone.

Will the new application look and work the same as the current VB6 system?

The business logic and data will be identical. The interface will be modernized, which is one of the benefits of the migration. PCG works with staff during the design phase to preserve workflows that people are accustomed to while eliminating the interface limitations that come with VB6 forms. The goal is a system that feels familiar in how it works, not one that looks exactly like software built in 1999.

Can we keep using the system while the migration is happening?

Yes. PCG migrates in parallel. The existing VB6 application stays in production throughout the migration. The new system is built, tested, and validated against real data before any cutover happens. Staff do not see the new system until it is ready, and the old system does not retire until everyone is confident the new one is working correctly.

How does PCG handle custom reports and print layouts that exist in the VB6 application?

Every report and print layout in the existing system gets documented during the audit phase. PCG rebuilds them in the new platform, typically using SSRS, Crystal Reports for .NET, or a web-based reporting layer depending on what the application requires. Reports that are used regularly get priority attention during parallel testing to confirm outputs match.

What if requirements have changed since the VB6 application was built?

The audit document becomes the starting point for a conversation about what the new system should do, not just what the old one did. Most clients have a list of things the VB6 system never did well that they have been working around for years. PCG builds those improvements into the new application as part of the migration scope, not as separate change requests after the fact.

Does PCG provide source code ownership for the new application?

Yes. Clients own the source code for the application PCG builds. The code is delivered as part of the project handoff along with the documentation. PCG strongly recommends a support retainer after go-live, but that is a separate decision from ownership. The application and its code belong to the client from day one of go-live.

What platform does PCG migrate VB6 applications to?

Most VB6 applications migrate to C# .NET Core 8 with an ASP.NET Core web front end built in Razor Pages. Applications with specific desktop requirements, such as direct hardware integration or offline operation, may migrate to a Windows desktop application built in modern WPF. The recommendation comes from the audit, not from a default preference. PCG has been building in .NET since its first release and in C# since 2002.

1 Microsoft Visual Basic 6.0 support lifecycle documentation. Microsoft ended mainstream support in 2005 and extended support in 2008. Runtime compatibility with Windows 11 is not guaranteed and has degraded with each major OS release since Windows 10 version 21H2.

2 PCG project data, 1995 to 2026. Emergency migration engagements triggered by system failure average 40% higher cost than planned migrations of equivalent scope.

Phoenix Consultants Group | phxconsultants.com | Founded 1995. Page last updated April 2026.