Hello MAUI

Prof. Dr. Robin Nunkesser

Agentisches Beispiel: Hello MAUI

Verwendete Instructions

  • .github/copilot-instructions.md
  • .github/instructions/artifacts.instructions.md
  • .github/instructions/artifacts-consumers-education.instructions.md
  • .github/instructions/slides.instructions.md

Exakter Prompt

Erstelle ein agent-generated example für den ersten einstieg in MAUI, z.B. Standardtemplate plus Lebenszyklusmethoden (MAUI, fortgeschrittene Studierende).
Feature-Scope: minimal (z.B. Todo-Liste). 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.

Architekturentscheidung (gemäß Tabelle)

Aspekt Entscheidung Begründung
Feature-Scope Minimal (Todo-Liste) Fokus bleibt auf Einstieg + Struktur
MVVM Ja Datenbindung + Commands sind zentrale Lernziele
Unit Tests Ja (MSTest) ViewModel-Logik ist ohne UI testbar
Core-Projekt + Interfaces Nein Keine Persistenz/Netzwerk/Integration im Scope
Architekturschichten Nein Für diese Komplexität noch nicht erforderlich

Ergebnis (agent-generated)

  • Standardtemplate beibehalten, aber auf MVVM umgestellt
  • CommunityToolkit.Mvvm im Projekt HelloWorld.ViewModels
  • Lifecycle-Hooks (OnAppearing, OnDisappearing) bleiben in Code-Behind
  • Business-Logik vollständig im ViewModel
  • MSTest-Projekt HelloWorld.Tests mit 4 Tests
  • MacCatalyst-Workaround gesetzt: ValidateXcodeVersion=false

Vergleich: manuell vs. agent-generated

Kriterium Manuelles Beispiel Agent-generated Beispiel
Kernfunktion Counter-Button Todo-Liste
Lifecycle-Methoden vorhanden, leer vorhanden, sichtbar genutzt
MVVM nein ja (MainPageViewModel)
Unit Tests nein ja (MSTest, 4 Tests)
DI-Verdrahtung nein ja (MauiProgram)
Architekturschichten nein nein (bewusst, gemäß Tabelle)

Fazit: Das agent-generated Beispiel ist für fortgeschrittene Studierende didaktisch vollständiger und bleibt trotz MVVM + Tests im minimalen Scope.

Live-Coding

Repository

Verifikation

  • Tests: dotnet test HelloWorld.Tests/HelloWorld.Tests.csproj → 4/4 erfolgreich
  • MacCatalyst-Build: dotnet build HelloWorld/HelloWorld.csproj -f net10.0-maccatalyst -p:ValidateXcodeVersion=false → erfolgreich