A legacy ASP.NET Web API application built on .NET Framework 4.8 for managing an auto parts catalog. This application is intentionally designed with security vulnerabilities and legacy patterns for use in the App Modernization with GitHub Copilot workshop.
This project is based on the Parts Unlimited project by Microsoft; specifically updated for the purpose of this workshop.
This project serves as a hands-on learning tool for:
- Migrating from .NET Framework 4.8 to .NET 10
- Identifying and fixing security vulnerabilities using custom GitHub Copilot agents
- Modernizing legacy code patterns with GitHub Copilot skills
- Understanding the value of custom agents over generic AI assistance
- Visual Studio 2019 or later / Visual Studio Code with .NET extension
- .NET 10 SDK (required to build after migration)
- SQL Server LocalDB or SQL Server Express
- GitHub Copilot subscription with access to custom agents
git clone https://github.com/YOUR-USERNAME/workshop-app-modernization.git
cd workshop-app-modernization/src/PartsCatalogAPIUsing Visual Studio:
- Open
PartsCatalogAPI.csproj - Right-click on the solution and select "Restore NuGet Packages"
Using Command Line:
dotnet restoreNote
Requires the application to be migrated to .NET 10.
dotnet build- Run
dotnet run - The API will start at
http://localhost:5000/
Once running, you can access:
- All Products:
http://localhost:5000/api/Products - All Categories:
http://localhost:5000/api/Categories - Search Products:
http://localhost:5000/api/Products/Search?name=brake
PartsCatalogAPI/
├── App_Start/
│ └── WebApiConfig.cs # Web API routing configuration
├── Controllers/
│ ├── ProductsController.cs # Product management endpoints
│ └── CategoriesController.cs # Category management endpoints
├── Data/
│ ├── PartsCatalogContext.cs # Entity Framework 6 DbContext
│ └── PartsCatalogInitializer.cs # Database seeding
├── Models/
│ ├── Product.cs # Product entity
│ └── Category.cs # Category entity
├── Properties/
│ └── AssemblyInfo.cs
├── Global.asax # Application startup
├── Web.config # Application configuration
└── packages.config # NuGet package references
- .NET Framework 4.8
- ASP.NET Web API 2
- Entity Framework 6
- System.Web namespace
- Web.config configuration
- Synchronous database operations
- DO NOT USE IN PRODUCTION: This application is for educational purposes only
- Educational Purpose Only: Designed specifically for the App Modernization workshop
- No Real Data: Use only test data, never production or sensitive information
- Local Development Only: Run only in isolated local development environments
- Workshop Guide
- .NET Upgrade Assistant
- ASP.NET Core Migration Documentation
- GitHub Copilot Documentation
This project is provided for educational purposes as part of the GitHub Copilot Dev Days workshop.
This is a workshop sample project. If you find issues or have suggestions for improvement, please open an issue in the repository.
Ready to modernize? Head to the workshop guide to get started!