Legacy Code Modernization

VB6 and Legacy .NET Modernization

Tepia modernizes VB6 and legacy .NET Framework applications, moving WinForms, Web Forms, WCF services and COM components to current .NET, ASP.NET Core and React. Characterization tests are written before code changes, and modules are replaced one at a time so the old application stays in use until each replacement is proven.

The essentials at a glance

Old Visual Basic and .NET Framework apps often run critical work reliably, so modernization has to keep that behavior intact while removing the risk around it.

dream-app

Tests First

Tepia records how the current app behaves with characterization tests, so every rewritten module is checked against real outputs.

Read: Legacy System Modernization and Mobile Migration
connect-audience

Controls Replaced

Third party ActiveX and OCX controls from vendors long gone are swapped for supported components or rebuilt as web screens.

Read: How to Modernize a Legacy System Without Stopping the Business
smart-product

Module By Module

A routing layer sends each screen to old or new code, so Tepia replaces one module at a time while users keep working as usual.

Read: Rebuild or Refactor Your App?
optimize-ecommerce

Current .NET

Tepia targets .NET 10, the current long term support release, with ASP.NET Core APIs that run on Windows, Linux or containers.

The numbers matter.

Developer survey figures Tepia plans around in VB6 and .NET work.

62%

Tech Debt Frustration

Stack Overflow's 2024 survey found technical debt is the top workplace frustration for 62 percent of professional developers.

25%

Modern .NET In Use

Stack Overflow's 2024 survey found about 25 percent of developers use modern .NET, the platform VB6 and Framework apps move to.

27%

Developers Using C#

Stack Overflow's 2024 survey found about 27 percent of developers use C#, so a rewritten app has a large hiring pool behind it.

Why VB6 and .NET Framework apps are still running

Many companies still run order entry, production scheduling or claims processing on a Visual Basic 6 desktop app written in the late 1990s, or on a .NET Framework app from the 2000s. They keep running because they work. The rules inside them reflect years of real cases, and the people who use them every day are fast with them. Tepia starts modernization by respecting that, not by declaring the old system broken.

The risks build up around the edges. The VB6 development environment has been unsupported since 2008, so every change depends on an old virtual machine and a developer who remembers the language. Apps rely on 32 bit ActiveX controls and Crystal Reports versions from vendors that no longer exist, and each Windows update is a small gamble. On the .NET side, Web Forms never moved to modern .NET and WCF server support lives on only through the community CoreWCF project, so those apps stay tied to Windows Server, IIS and a framework that gets security fixes but no new features.

The people risk is often the biggest. When the one developer who understands the code base plans to retire, the business suddenly has a deadline it did not choose.

Modernization paths by starting point

Tepia chooses a target per module, not per application, because one legacy system often contains several of these patterns at once:

Starting point Typical target How Tepia gets there
VB6 desktop app on Access or SQL Server ASP.NET Core API with a React web front end Module by module rewrite over a shared database, guarded by characterization tests
VB6 app that must stay on the desktop WinForms or WPF on .NET 10 Rewrite in C# with replacement controls and a modern installer
VB6 COM DLLs called by other systems .NET class libraries or REST services Wrap first, then move callers over one at a time
.NET Framework WinForms or WPF The same UI framework on .NET 10 Upgrade Assistant for project files, then manual fixes for unsupported APIs
ASP.NET Web Forms ASP.NET Core with React, Razor Pages or Blazor Incremental migration with a reverse proxy routing pages between old and new
WCF and ASMX services REST APIs, gRPC or CoreWCF Contract tests so existing clients keep working
Crystal Reports HTML and PDF reports or SQL Server Reporting Services Rebuild the reports in use and retire the rest

The choice between a web front end and a modern desktop app depends on who uses the system. Plant floor stations with barcode scanners may stay on the desktop, while sales and management screens move to the browser.

Replacing an old app one module at a time

Big bang rewrites of legacy systems have a poor track record, because the old app keeps changing during the rewrite and the new one inherits none of the hidden rules. Tepia uses an incremental approach often called the strangler pattern. A routing layer, such as a YARP reverse proxy for web apps, sends each page or screen to either the old or the new code. One module is rebuilt, tested against the old behavior and switched over, then the next one starts.

Characterization tests make this safe. Before rewriting a module, Tepia captures its actual outputs for a large set of real inputs, including the odd cases, and runs the new code against the same set. Differences are either bugs in the new code or long standing bugs in the old code that you decide whether to keep. Microsoft’s .NET Upgrade Assistant speeds up mechanical project conversion, but business logic is rewritten and reviewed by people.

Opening the modernized app to other systems

Older applications usually exchange data through nightly flat files, shared database tables or an FTP folder. As modules move to ASP.NET Core, Tepia exposes them through documented REST APIs, so your CRM, ERP, ecommerce site or mobile app can read and write data directly. Events such as an order approved or a job closed can publish to a queue like Azure Service Bus or Amazon SQS, letting other systems react without polling.

Authentication moves too. Windows integrated login inside the office becomes single sign on through Microsoft Entra ID or Okta, which also lets remote staff and partners use the new web screens. Our API development and integration and event driven integration pages describe that work in more depth.

How Tepia approaches VB6 and legacy .NET modernization

Tepia maps its six phase process onto release waves, so each group of modules goes through the full cycle under one US based project manager.

  1. Discovery: a code inventory covering forms, modules, COM references, third party controls, database calls and reports, plus interviews with power users and any original developers. Deliverables are an Investigation Summary with a dependency map, an Interview Summary and User Stories for each module.
  2. Design: a design questionnaire, moodboards, a style guide and wireframes that keep the keyboard shortcuts and dense layouts power users rely on while fixing screens that confuse new hires.
  3. Development and Testing: characterization tests first, then module releases on an Alpha and Beta schedule, with functional, user acceptance and performance test plans for each module.
  4. Training: short sessions as each module switches, so users learn in small steps rather than all at once.
  5. Launch: module by module cutovers, data migration where schemas change, and final retirement of the old executable and its installer.
  6. Support: issue resolution, bug tracking and a plan for moving to each new .NET long term support release.

Typically Discovery runs 1 to 3 months, development and QA 2 to 6 months per release wave, and each launch about a month, with larger systems split into several waves. See our process.

Rewrite, convert or leave it alone

Automated conversion tools can translate VB6 into C# or VB.NET, and they help with large code bases full of simple forms. The output often mirrors VB6 patterns that are hard to maintain, so Tepia uses conversion selectively and rewrites the modules where business logic lives.

Leaving an app alone is sometimes right. If it runs on an isolated network, changes rarely and has a developer who will be around for years, Tepia may recommend documenting it, adding tests and putting an API in front of it instead. A rewrite becomes the better call when security reviews flag the platform, the app blocks remote or mobile work, or the knowledge is about to walk out the door. Read rebuild or refactor your app and how to choose a legacy modernization partner, browse our work, then talk to Tepia.

Frequently asked questions

Who can modernize an old VB6 application?
Tepia modernizes VB6 applications into ASP.NET Core and React web apps or, where a desktop app is still needed, WinForms or WPF on current .NET. Work runs module by module with characterization tests, led by a US based project manager.
Can we move from .NET Framework to modern .NET without rewriting everything?
Often, yes. Tepia upgrades WinForms, WPF and class libraries largely in place, and moves Web Forms and WCF incrementally behind a reverse proxy so users never face a single risky switch.
What happens to our Crystal Reports and third party ActiveX controls?
Tepia inventories every control and report in Discovery, replaces controls with supported components, and rebuilds the reports people actually use as HTML and PDF outputs or SQL Server Reporting Services. Unused reports are retired after you confirm.
Will users have to stop using the old app during modernization?
No. Tepia replaces one module at a time while the rest of the old application keeps running, and each module switches only after its tests match the old behavior.
Does a VB6 app still run on current versions of Windows?
Microsoft continues to support the VB6 runtime on current Windows versions but not the development environment, and third party controls may fail on their own. Tepia checks each dependency in Discovery so you know exactly which parts are at risk.

What Our Customers Say.

A paragraph or two with information on your product/service or describes a problem your product/service is designed to solve.

Jascotina

CEO

“They customized the website’s backend to my business' specific needs and I am absolutely thrilled with the result.”

Water Saver Solutions

Senior Project Manager

"Tepia Co was always willing to go the extra mile for us."

Onward Engineering

VP & Operations Manager

"There are no hidden things, there are no surprises. We know what's going on."

Modernize the code your business runs on