.github/copilot-instructions.md.github/instructions/artifacts.instructions.md.github/instructions/artifacts-consumers-education.instructions.md.github/instructions/slides.instructions.mdErstelle ein agent-generated example für License (MAUI, fortgeschrittene Studierende).
Feature-Scope: minimal. Wende MVVM mit CommunityToolkit.Mvvm und Unit Tests mit MSTest an.
Entscheide anhand der Architektur-Entscheidungstabelle aus den Instructions, welche weiteren Muster (Core-Projekt, Architekturschichten) das Konzept rechtfertigt — verwende sie, wenn dieselbe Komplexität in einem produktiven Einsatz diese Strukturen erfordern würde.
Lies zuerst die Instructions, ermittle den Foliensatz, dokumentiere Instructions + Prompt dort, vergleiche mit manuellem Beispiel, verifiziere MacCatalyst Build mit workaround zum mismatch des workloads mit der xcode version.| Aspekt | Entscheidung | Begründung |
|---|---|---|
| Feature-Scope | Minimal (Lizenztext laden und anzeigen) | Fokus auf Struktur statt Feature-Breite |
| MVVM | Ja | Lade-Command und UI-Zustand sind zentrale Lernpunkte |
| Unit Tests | Ja (MSTest) | ViewModel-Logik vollständig UI-unabhängig testbar |
| Core-Projekt + Interfaces | Nein | Keine Domänen-/Persistenzkomplexität nötig |
| Architekturschichten | Nein | Für statischen Lizenz-Content unnötig |
LicenseRecipe.ViewModels mit MainPageViewModel und ILicenseContentServiceAppPackageLicenseContentService lädt licenses.html aus App-PackageCommunityToolkit.Mvvm für Observable Properties und RelayCommandLicenseRecipe.Tests mit 3 MSTest-FällenValidateXcodeVersion=false, SupportedOSPlatformVersion=15.0| Kriterium | Manuelles Beispiel | Agent-generated Beispiel |
|---|---|---|
| Ladeprozess | in Code-Behind (OnAppearing) |
im ViewModel (LoadLicenseCommand) |
| UI-Bindung | direkte WebView-Manipulation | Bindings auf ViewModel-Zustände |
| MVVM-Struktur | rudimentär | klar getrennt (Service + ViewModel + View) |
| Unit Tests | keine | 3 MSTest-Fälle |
| Lifecycle-Rückmeldung | keine | sichtbar via LifecycleState |
| Architekturschichten | nein | nein (bewusst, gemäß Tabelle) |
Fazit: Das agent-generated Beispiel ist didaktisch belastbarer, weil DI, Lifecycle und testbare Lade-Logik im gleichen minimalen Scope sichtbar sind.
dotnet test LicenseRecipe.Tests/LicenseRecipe.Tests.csproj → 3/3 erfolgreichdotnet build LicenseRecipe/LicenseRecipe.csproj -f net10.0-maccatalyst → erfolgreich