.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 Dependency Injection (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 (eine Nachricht senden) | Fokus bleibt auf DI-Mechanik |
| MVVM | Ja | Datenbindung + Command als sichtbares Muster |
| Unit Tests | Ja (MSTest) | ViewModel-Verhalten ist ohne UI testbar |
| Core-Projekt + Interfaces | Nein | Keine Persistenz/Netzwerkdomäne im Scope |
| Architekturschichten | Nein | Für diese Komplexität nicht erforderlich |
DependencyInjection.ViewModels mit MainViewModel und IMessageWriterCommunityToolkit.Mvvm ([ObservableProperty], [RelayCommand])ConsoleMessageWriter, DebugMessageWriter, NoMessageWriter) per DI im MauiProgramDependencyInjection.Tests (MSTest) mit 3 Tests für Command, CanExecute und LifecycleValidateXcodeVersion=false, SupportedOSPlatformVersion=15.0| Kriterium | Manuelles Beispiel | Agent-generated Beispiel |
|---|---|---|
| ViewModel | leeres MainViewModel |
testbares MainViewModel mit Command/Zustand |
| DI-Sichtbarkeit | Registrierung vorhanden, kaum UI-Feedback | aktiver Writer + Ergebnis direkt im UI sichtbar |
| MVVM | nur rudimentär | vollständig mit CommunityToolkit.Mvvm |
| Unit Tests | keine | 3 MSTest-Fälle |
| Lifecycle | nicht sichtbar | OnAppearing/OnDisappearing im ViewModel-Zustand |
| Architekturschichten | nein | nein (bewusst, gemäß Tabelle) |
Fazit: Das agent-generated Beispiel zeigt Dependency Injection didaktisch klarer, weil Injection, Command-Flow und testbares Verhalten direkt nachvollziehbar sind.
dotnet test DependencyInjection.Tests/DependencyInjection.Tests.csproj -f net10.0 → 3/3 erfolgreichdotnet build DependencyInjection/DependencyInjection.csproj -f net10.0-maccatalyst → erfolgreich