Welcome to the Migrate and Modernize MicroHack workshop repository! This hands-on learning experience is designed for technical professionals and decision-makers who want to accelerate their cloud transformation journey.
The Migrate and Modernize MicroHack combines practical guidance with real-world scenarios to help you:
- Strengthen your security posture and ensure business continuity across hybrid environments
- Modernize application development using AI-powered tools for faster innovation
Accelerate innovation by transforming how you build and maintain applications. This track covers:
- AI-powered Development: Use GitHub Copilot and GitHub Spec-Kit to write code faster and reduce repetitive tasks
- Modern App Architecture: Explore best practices for containerization, microservices, and CI/CD pipelines
- Hands-on Labs: Experience real-world scenarios where AI assists in coding and debugging
Outcome: Empower your teams to deliver modern, scalable applications with speed and confidence.
Contoso University is an ASP.NET Core Razor Pages web application that demonstrates enterprise patterns for managing a university system, including students, courses, instructors, and departments. This sample application serves as a realistic codebase for practicing modernization techniques.
Note: Install .NET 9.0 SDK. You do not need .NET 6.0 unless you specifically want to run the old version first—this is not required. Simply run the first lab and verify the functionality with the new version.
Alternatively, if you prefer, you can ask LLM agents (like GitHub Copilot or Claude) to help install required tools as you go along—they can guide you through the installation process interactively.
- .NET 9.0 SDK or later
- Podman or Docker Desktop
- Git
- UV package manager
- A code editor (Visual Studio Code recommended with GitHub Copilot extension)
- .NET 9.0 SDK or later
- Docker Desktop (with WSL2 backend recommended)
- Git for Windows
- UV package manager
- A code editor (Visual Studio Code recommended with GitHub Copilot extension)
git clone <repository-url>
cd ContosoUniversityUsing Docker:
docker run \
--platform linux/amd64 \
-e "ACCEPT_EULA=Y" \
-e "MSSQL_SA_PASSWORD=YourStrong@Passw0rd123" \
-p 1433:1433 \
--name sql2022 \
--hostname sql2022 \
-d \
mcr.microsoft.com/mssql/server:2022-latestUsing Podman:
chmod +x run-sqlserver.sh
./run-sqlserver.shOr manually:
podman run \
--platform linux/amd64 \
-e "ACCEPT_EULA=Y" \
-e "MSSQL_SA_PASSWORD=YourStrong@Passw0rd123" \
-p 1433:1433 \
--name sql2022 \
--hostname sql2022 \
-d \
mcr.microsoft.com/mssql/server:2022-latestCreate and run a SQL Server container with PowerShell:
docker run `
-e "ACCEPT_EULA=Y" `
-e "MSSQL_SA_PASSWORD=YourStrong@Passw0rd123" `
-p 1433:1433 `
--name sql2022 `
--hostname sql2022 `
-d `
mcr.microsoft.com/mssql/server:2022-latestOr with CMD:
docker run ^
-e "ACCEPT_EULA=Y" ^
-e "MSSQL_SA_PASSWORD=YourStrong@Passw0rd123" ^
-p 1433:1433 ^
--name sql2022 ^
--hostname sql2022 ^
-d ^
mcr.microsoft.com/mssql/server:2022-latestNote: The default SA password is YourStrong@Passw0rd123 (as configured in appsettings.json)
Navigate to the application directory and run the migrations:
cd ContosoUniversity
dotnet ef database updateIf Entity Framework tools are not installed, install them first:
dotnet tool install --global dotnet-efdotnet runThe application will start and be available at:
- HTTPS:
https://localhost:7054 - HTTP:
http://localhost:5054
(Port numbers may vary - check the console output)
Open your browser and navigate to the application URL. You should see the Contoso University home page with navigation to Students, Courses, Instructors, and Departments.
docker stop sql2022
# or with Podman: podman stop sql2022docker start sql2022
# or with Podman: podman start sql2022docker rm sql2022
# or with Podman: podman rm sql2022docker logs sql2022
# or with Podman: podman logs sql2022This repository includes hands-on labs in the Labs/ folder:
- Introduction to Spec-Kit - Learn GitHub's Spec-Driven Development approach by updating the .NET version
- UI Modernization - Move the UI from Razor Pages to a modern React application
- Git Worktrees - Work on multiple features simultaneously using git worktrees
- Dockerization - Containerize the entire application
- UI Enhancement - Modernize the look and feel
- Course-Instructor Assignment - Add instructor assignment functionality
- Course Scheduling - Add date/time management to courses
- Course Registration - Enable student course registration
- Semester View - Create a personalized semester course view
Each lab includes detailed instructions, learning objectives, and expected outcomes.
If you get connection errors:
- Verify the SQL Server container is running:
docker psorpodman ps - Check the connection string in
ContosoUniversity/appsettings.json - Ensure the SA password matches between the container and connection string
If port 1433 is already in use:
- Stop any existing SQL Server instances
- Or modify the port mapping in the container startup command and update
appsettings.json
To check if your SQL Server container is running:
docker ps
# or with Podman: podman psIf migrations fail:
- Ensure the database container is running
- Try:
dotnet ef database drop(WARNING: This deletes all data) - Then:
dotnet ef database update
- GitHub Spec-Kit Documentation
- ASP.NET Core Documentation
- Entity Framework Core Documentation
- GitHub Copilot Documentation
- 09:00 – 09:30: Opening
- 09:30 – 09:50: GitHub Copilot and spec-driven development
- 09:50 – 10:10: GitHub Modernization agent
- 10:10 – 10:20: Break
- 10:20 – 11:00: 1. Hackathon task
- 11:00 – 12:00: Lunch
- 12:00 – 12:20: GitHub Modernization results
- 12:20 – 14:30: 2. Hackathon task
- 14:30 – 15:00: Coffee break
- 15:00 – 16:00: 3. Hackathon task
- 16:00 – 16:45: Review and learnings
- 16:45 – 17:00: Closing words
If you encounter issues during the workshop, please reach out to the facilitators or open an issue in this repository.
Happy hacking! 🚀