Modernization: WinForms/WPF to .NET 10, the web and Azure
Move a grown desktop program to .NET 10 in small, safe steps, bring it to the web and to Azure, and run old and new side by side until the old one is switched off.
Who it is for
For developers who maintain or inherit Windows Forms or WPF programs, and for teams that have to keep developing such a program without rewriting it all at once.
Prerequisites
K2 level (C#, ASP.NET Core, Entity Framework Core, Blazor, sign-in) and the Azure basics, Bicep and CI/CD from K3 (modules 3.1, 3.2, 3.7). Windows with Visual Studio; you need an Azure account only for the optional Azure steps.
Afterward, you can
- Take stock of an existing program, find its seams and justify an order of modernization
- Move a Windows Forms program from .NET Framework to .NET 10 with a safety net of tests
- Separate business logic and data access from the forms and share the database between old and new
- Replace the forms step by step with a web API and Blazor pages, also inside the Windows program
- Carry Windows sign-in, permissions and secrets over to Microsoft Entra ID, roles and Key Vault
- Run old and new side by side with a pilot group and feature switches, observe them and switch the old program off cleanly
Contents
- M1
8 h
Taking stock
why and when not, the example order book, inventory, slicing and order by the strangler fig pattern
- M2
12 h
First onto .NET 10
safety net, project format and target framework, missing APIs and packages, configuration and startup, checking and shipping
- M3
10 h
Separating business logic and data
logic out of the forms, from DataSet to EF Core, one database for old and new, Azure SQL
- M4
14 h
Web API and Blazor, page by page
web API from the library, the Windows program as a client, first Blazor page, Blazor inside the Windows program, printing and files
- M5
8 h
Sign-in, permissions, secrets
from Windows sign-in to Microsoft Entra ID, permissions and data views, Key Vault and managed identity
- M6
10 h
To Azure and running side by side
shipping to Azure, dual running, pilot group and feature switches, observing both worlds, switching off and tearing down
- M7
10 h
Final project
plan, carry out, operate and report on a further block of functions
About 72 hours in all (indicative).
Lessons
You see the text and video of every lesson here on the site after buying the course; the titles and goals are already shown. A self-study course: you work through the lessons in order and check your exercises yourself against the solutions.
You can read the first module (M1) for free, with text and video, without signing in: so you see how the course works before you buy.
The lessons are only in German for now.
The lessons stand under their modules, in the order of the course. Click a module to open or close its lessons.
M1 Taking stock
Indicative: 8 hours · 4 lessonsfree to read
Lesson 1 · about 60 minutes
Warum modernisieren, und wann besser nicht
Lesson 2 · about 90 minutes
Das Beispiel: das Auftragsbuch von Brandt Haustechnik
Lesson 3 · about 75 minutes
Inventur: was steckt im Programm
Lesson 4 · about 75 minutes
Schnitt und Reihenfolge: das Strangler-Fig-Muster
M2 First onto .NET 10
Indicative: 12 hours · 5 lessons
Lesson 5 · about 75 minutes
Das Sicherheitsnetz zuerst
Lesson 6 · about 90 minutes
Projektformat und Zielframework
Lesson 7 · about 90 minutes
Fehlende APIs und Pakete
Lesson 8 · about 75 minutes
Konfiguration und Start
Lesson 9 · about 75 minutes
Es läuft auf .NET 10: prüfen und ausliefern
M3 Separating business logic and data
Indicative: 10 hours · 4 lessons
Lesson 10 · about 90 minutes
Fachlogik aus den Formularen lösen
Lesson 11 · about 90 minutes
Von DataSet und ADO.NET zu Entity Framework Core
Lesson 12 · about 90 minutes
Eine Datenbank für alt und neu: die Schutzschicht
Lesson 13 · about 75 minutes
Die Datenbank nach Azure SQL
M4 Web API and Blazor, page by page
Indicative: 14 hours · 5 lessons
Lesson 14 · about 90 minutes
Die Web-API aus der Logikbibliothek
Lesson 15 · about 90 minutes
Das Windows-Programm als Client der API
Lesson 16 · about 90 minutes
Die erste Seite in Blazor: die Auftragsliste
Lesson 17 · about 75 minutes
Blazor-Seiten im Windows-Programm: die Brücke
Lesson 18 · about 90 minutes
Drucken, Dateien und Berichte im Web
M5 Sign-in, permissions, secrets
Indicative: 8 hours · 3 lessons
Lesson 19 · about 90 minutes
Von der Windows-Anmeldung zu Microsoft Entra ID
Lesson 20 · about 75 minutes
Rechte übertragen: Rollen, Richtlinien, Datensicht
Lesson 21 · about 90 minutes
Geheimnisse und Verbindungen: Key Vault und Managed Identity
M6 To Azure and running side by side
Indicative: 10 hours · 5 lessons
Lesson 22 · about 90 minutes
Die neue Anwendung nach Azure bringen
Lesson 23 · about 75 minutes
Doppelbetrieb: wer schreibt wohin
Lesson 24 · about 75 minutes
Pilotgruppe und Feature-Schalter
Lesson 25 · about 75 minutes
Beide Welten beobachten
Lesson 26 · about 90 minutes
Abschalten und Rückbau
M7 Final project
Indicative: 10 hours · 3 lessons
Lesson 27 · about 120 minutes
Das Abschlussprojekt planen
Lesson 28 · about 360 minutes
Das Abschlussprojekt umsetzen
Lesson 29 · about 120 minutes
Betreiben, bewerten, abschließen
Final project: the Kladde
What the Kladde can do after this course
The order book of a made-up building-services company: a Windows Forms program you build yourself in the course and then modernize step by step. It does not replace the Kladde and does not build on it.
At the end the order book runs on .NET 10 with tested business logic, data in Azure SQL, a web API and Blazor pages, sign-in through Microsoft Entra ID and a plan for switching the old program off. Staff read the final project.
Certifications
Microsoft offers no exam of its own for modernizing existing programs.
Keep learning with Microsoft Learn
Microsoft's learning paths and documentation that go with this course.