Een AI-fout ondervangen en de app verifiëren

Gegenereerde code is gereed voor beoordeling, niet automatisch gereed voor verzending. In deze laatste stap oefent u met het detecteren van een plausibele frameworkfout en controleert u Task Tally buiten compilatie.

De assistent bewust testen

Start een nieuw gesprek met uw assistent, zodat deze niet afhankelijk is van de beperkingen van eerdere prompts. Stel:

Add a confirmation dialog before deleting a task from my Windows XAML app.
Show only the using directives and the dialog construction code.

Een assistent zonder beperkingen zou het volgende kunnen teruggeven:

using Windows.UI.Xaml.Controls;

var dialog = new ContentDialog
{
    Title = "Delete task?",
    PrimaryButtonText = "Delete",
    CloseButtonText = "Cancel"
};

Dit is een UWP-naamruimte. ContentDialog bestaat ook in WinUI 3, waardoor de fout gemakkelijk te missen is in een codebeoordeling.

Voor dit project moet de naamruimte het volgende zijn:

using Microsoft.UI.Xaml.Controls;

var dialog = new ContentDialog
{
    Title = "Delete task?",
    PrimaryButtonText = "Delete",
    CloseButtonText = "Cancel",
    XamlRoot = this.XamlRoot
};

De WinUI 3 ContentDialog-referentie-URL bevat microsoft.ui.xaml.controls. De UWP ContentDialog-verwijzing maakt gebruik van windows.ui.xaml.controls.

Daarom is 'het type bestaat in Windows documentatie' niet voldoende. Controleer het framework, de naamruimte, de versie en het app-model.

Een frameworkcontrole gebruiken voor gegenereerde code

Wanneer de assistent een Windows-API toevoegt, inspecteert u deze met deze vragen:

Controle Waar moet ik naar zoeken?
Framework Is dit de documentatie voor WinUI 3 en de Windows App SDK?
Namespace Gebruikt ui-code Microsoft.UI.Xaml, niet Windows.UI.Xaml of System.Windows?
Versie Is de API beschikbaar in de Windows App SDK versie waarnaar wordt verwezen door het project?
Appmodel Vereist de API pakketidentiteit, app-functionaliteit of venster-initialisatie?
Draadbewerking Moet de aanroep worden uitgevoerd op de UI-thread? Wordt asynchroon werk verwacht?
UX Is er een ingebouwd WinUI-besturingselement of -patroon voor het scenario?
Toegankelijkheid Heeft de gegenereerde gebruikersinterface namen, labels, toetsenbordtoegang en zichtbare focus?
Evidence Hebt u het gewijzigde pad gebouwd, uitgevoerd en getest?

Vraag de assistent om de Learn-URL op te geven die ondersteuning biedt voor de keuze en open vervolgens zelf de URL.

Taaktelling controleren

Voer een laatste verificatiepas uit:

  1. Verwijder de lokale gegevens van de app of begin met een nieuwe installatie. Controleer of de lege status wordt weergegeven en dat het invoeren van alleen spaties de taak Toevoegen uitgeschakeld houdt.
  2. Voeg verschillende taken toe, markeer de ene voltooid en verwijder een andere. Controleer of het resterende aantal wordt bijgewerkt en of het juiste item wordt verwijderd.
  3. Start de app opnieuw op. Controleer of taaktitels en voltooiingsstatussen zijn hersteld.
  4. Voeg if (System.Diagnostics.Debugger.IsAttached) throw new IOException("Test save failure."); toe als de eerste regel van TaskStorage.SaveAsync, bouw de app opnieuw op en voer deze uit in het foutopsporingsprogramma. Start een opslag en bevestig dat de InfoBar de mislukking meldt in plaats van een succesvolle opslag. Verwijder vervolgens de tijdelijke voorwaarde en bouw opnieuw.
  5. Navigeer door elk interactief element met Tab en Shift+Tab.
  6. Gebruik een schermlezer of toegankelijkheidsinzichten voor Windows om namen, rollen en focusvolgorde te controleren.
  7. Wijzig het formaat van de app, test licht, donker en contrastthema's en bouw voor x64 zonder compiler-, XAML-, bindings- of analysewaarschuwingen.

Meer informatie: Toegankelijkheidsoverzicht en Toegankelijkheidstests.

Verfijn de prompt, niet alleen de code

Als een controle mislukt, slaat u zowel de correctie als de reden op in de volgende prompt:

The generated code used Windows.UI.Xaml.Controls, which is the UWP
namespace. This project is WinUI 3. Replace it with the corresponding
Microsoft.UI.Xaml API, verify the API in the Windows App SDK reference,
build the x64 project, and explain why the original namespace was wrong.

Dit geeft de assistent nuttige bewijzen en versterkt de projectgrens. Voor een langer levend project plaatst u stabiele beperkingen zoals het framework, het pakketmodel, de doelarchitectuur en de buildopdracht in de instructies van de opslagplaats die uw coderingsassistent leest.

Volgende stappen 

U hebt een kleine WinUI 3-app gemaakt en een werkstroom gebruikt die u opnieuw kunt gebruiken:

Vragen → Genereren → Bouwen → Inspecteren → Verifiëren → Verfijnen

Ga door met: