VB.NET WinForms to SPA + .NET API Migration Playbook
Migrate a legacy VB.NET WinForms desktop application to a modern web SPA (React or Angular) + .NET API. The hardest scenario — it's an architectural reshape, not just tech translation.
Tell us what you're building
We use these answers to surface the prompts, skills, and MCP configs that fit your stack — and to substitute stack values like {{database}} into the prompts you copy. Content (PRDs, code, etc.) stays in your repo. Everything you enter here is stored in your browser — nothing is sent to a server.
Steps you'll go through
- 01
Audit the WinForms App
2-3 weeksInventory every form, local-resource dependency, and single-user assumption. WinForms apps hide a lot in code-behind and stored procs.
- 02
Reshape Architecture for Multi-User Web
2-3 weeksRedesign the app for the web before migrating any code. The most important phase — get this wrong and you ship a desktop app rendered in a browser.
- 03
Map the Data Model
2-3 weeksPlan how data moves from on-prem SQL Server to cloud-hosted DB, including any schema reshape and stored-procedure migration.
- 04
Design the API
2-3 weeksDefine the API contract before writing any backend code. Web realities (network latency, pagination, versioning) drive the design — not the WinForms patterns.
- 05
Design Authentication
2 weeksPlan the move from Windows Authentication (typical for WinForms) to web auth (OAuth / JWT via an IdP).
- 06
Migrate Vertical Slice 1
6-8 weeksPick a small, contained workflow (e.g., "view customer details"). Build the entire vertical: SPA page → .NET API → DB query. Use it to validate every architectural decision.
- 07
Continue Migrating Slices
2-4 quartersMigrate the remaining capabilities, refining patterns as you go. Edge cases (file uploads, printing, real-time data) emerge mid-way through this phase.
- 08
Pilot with a Subset of Users
4-6 weeksMove 5-10% of users to the new app exclusively. Watch their behavior. Fix what breaks. This is where the workflows nobody mentioned (because they were "obvious") surface.
- 09
Cutover with Rollback Plan
4-8 weeksMove the remaining 90% of users to the new app — usually a phased rollout over weeks, not a single cutover day.
- 10
Decommission the Desktop Installer
2-3 weeksRemove the WinForms installer / ClickOnce deployment. Decommission the build pipeline. Archive code. Run the retro.