.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 Localization (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 (Sprache wechseln, Strings anzeigen) | Fokus auf Struktur statt Feature-Breite |
| MVVM | Ja | Observable Properties, Datenbindung, Commands |
| Unit Tests | Ja (MSTest) | Sprachwechsel-Logik und Lifecycle direkt testbar |
| Core-Projekt + Interfaces | Nein | Kein Domänen- oder Persistenzbedarf |
| Architekturschichten | Nein | Lokalisierungsservice ist einfaches Utility |
LocalizationRecipe.ViewModels mit ILocalizationService und DefaultLocalizationService (en/de/es, In-Memory)MainPageViewModel mit [ObservableProperty] für Sprache, Strings, Counter, Lifecycle[RelayCommand] SwitchLanguageAsync(languageCode) für Sprachwechsel-ButtonsLocalizationRecipe.Tests mit 3 MSTest-FällenValidateXcodeVersion=false, SupportedOSPlatformVersion=15.0| Kriterium | Manuelles Beispiel | Agent-generated Beispiel |
|---|---|---|
| Sprachverwaltung | Statische XAML-Ressourcen | Injizierter ILocalizationService |
| Sprachwechsel | Kein Command | [RelayCommand] SwitchLanguageAsync |
| UI-Bindung | keine / direkte 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 macht Lokalisierung, MVVM und Testbarkeit gemeinsam sichtbar — didaktisch klarer als eine rein ressourcen-basierte Lösung.
dotnet test LocalizationRecipe.Tests/LocalizationRecipe.Tests.csproj → 3/3 erfolgreichdotnet build LocalizationRecipe/LocalizationRecipe.csproj -f net10.0-maccatalyst → erfolgreich