This repository demonstrates modernizing a legacy .NET Web Forms application to modern Azure cloud architecture through three phases.
Goal: Get the legacy .NET 2.0 app running as-is.
- Folder:
phase1-legacy-baseline/ - App Versions:
appV1-original/— Original code (can't build, reference only)appV1.5-buildable/— Minimal changes to make it buildable
- Learn: Legacy architecture, code quality issues, .NET 2.0 → .NET Framework migration
Goal: Host on Azure App Service + Azure SQL with minimal code changes.
- Folder:
phase2-azure-migration/ - Key Concepts: Lift-and-shift, PaaS hosting, connection string management
- Learn: Azure deployment, infrastructure as code, migration strategies
Goal: Add modern API + React UI alongside legacy app.
- Folder:
phase3-modernization/ - Modern Implementations:
api-dotnet/— ASP.NET Core 6+ (clean architecture)api-python/— Python Flask alternativeui-react/— React SPA frontend (in progress)
- Learn: Clean architecture, API design, React integration, strangler fig pattern
Folder: infrastructure/
Bicep and Terraform templates for Azure deployment. All infrastructure documentation consolidated here.
Folder: database/
SQL Server database project, schema, and seed data.
Folder: specs/
Feature specifications using GitHub Spec Kit framework (spec → plan → tasks → implementation).
➡️ Specs Index
For Learners:
- Read Learning Path
- Start with Phase 1
For Infrastructure Engineers:
- Review Infrastructure Guide
- Check Deployment Docs
For Developers:
- Explore Phase 3 Modernization
- Review Clean Architecture API
| Layer | Phase 1 | Phase 2 | Phase 3 |
|---|---|---|---|
| UI | Web Forms | Web Forms (hosted) | React SPA |
| Backend | .NET 2.0 | .NET Framework 4.x | .NET 6+ / Python |
| Database | SQL Server | Azure SQL | Azure SQL |
| Hosting | IIS on-prem | Azure App Service | Container Apps / AKS |
| Architecture | Monolith | Monolith (PaaS) | Clean Architecture + API |
Learning Repository — Built to teach .NET modernization strategies.