The real project
Converting VB6 syntax is easy. Proving that the business still works is the real project.
A production VB6 application can contain business behavior in form events, COM components, database procedures, reports, file exchanges, registry settings, local state, batch jobs, and operator workarounds. A conversion is accepted only when required behavior, records, integrations, performance, deployment, support, and recovery have been demonstrated.
Recovery and census
Before conversion, make the current system reproducible.
Build recovery
Recover source, compilers, projects, references, registration steps, third-party controls, installers, configuration, and repeatable builds.
Dependency inventory
Map COM/ActiveX, DLLs, database calls, files, reports, executables, scheduled jobs, Windows assumptions, and external interfaces.
Behavior inventory
Identify UI events, hidden rules, edge cases, known defects, operator workarounds, critical calculations, and side effects.
AI-assisted engineering
Use AI to accelerate comprehension and repetitive conversion—not to declare equivalence.
- Explain undocumented modules and data flow
- Generate structured code documentation
- Identify dependencies and duplicate logic
- Propose characterization-test candidates
- Create C# conversion drafts
- Prepare interface and data-contract comparisons
- Generate code-review material
- Compare behavior and identify unexplained differences
AI writes proposals. Engineers ship software.
Parity evidence
Test the behavior before replacing the implementation.
Golden cases, differential tests, database reconciliations, interface contracts, output snapshots, performance baselines, user acceptance, staged cutover, and rollback establish whether the new module is safe to trust.
↔
→
Staged release
Replace one bounded business capability at a time.
- ContainStabilize the current build, deployment, and support process.
- CharacterizeEstablish tests and evidence for current behavior.
- WrapCreate an API or façade around the selected capability.
- ConvertImplement the new C# module and controlled data path.
- CompareRun parallel, shadow, canary, and reconciliation tests.
- Cut overRelease gradually with monitoring and rollback.
- RetireRemove the legacy responsibility only after accepted production evidence.