Rilevare un errore di intelligenza artificiale e verificare l'app

Il codice generato è pronto per la revisione, non è pronto automaticamente per la spedizione. In questo passaggio finale, ti eserciti a individuare un plausibile errore del framework e a verificare Task Tally al di là della compilazione.

Testare deliberatamente l'assistente

Avviare una nuova conversazione con l'assistente in modo che non si basi sui vincoli delle richieste precedenti. Chiedi:

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

Un assistente non vincolato potrebbe restituire:

using Windows.UI.Xaml.Controls;

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

Questo è uno spazio dei nomi UWP. ContentDialog esiste anche in WinUI 3, che rende l'errore facile da perdere in una revisione del codice.

Per questo progetto, il namespace deve essere:

using Microsoft.UI.Xaml.Controls;

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

L'URL di riferimento di ContentDialog di WinUI 3 include microsoft.ui.xaml.controls. Il riferimento UWP ContentDialog usa windows.ui.xaml.controls.

Ecco perché “il tipo esiste nella documentazione di Windows” non basta. Controllare il framework, lo spazio dei nomi, la versione e il modello di app.

Usare un controllo del framework per il codice generato

Quando l'assistente aggiunge un'API Windows, esaminarla con queste domande:

Verifica Cosa cercare
Struttura Si tratta della documentazione per WinUI 3 e SDK per app di Windows?
Namespace Il codice dell'interfaccia utente usa Microsoft.UI.Xaml, non Windows.UI.Xaml o System.Windows?
Versione L'API è disponibile nella versione SDK per app di Windows a cui fa riferimento il progetto?
Modello di app L'API richiede l'identità del pacchetto, una funzionalità dell'app o l'inizializzazione della finestra?
Gestione dei thread La chiamata deve essere eseguita nel thread dell'interfaccia utente? Il lavoro asincrono è atteso?
Esperienza utente Esiste un controllo o un modello WinUI predefinito per lo scenario?
Accessibility L'interfaccia utente generata ha nomi, etichette, accesso tramite tastiera e focus visibile?
Evidenza Hai compilato, eseguito e testato il percorso modificato?

Chiedere all'assistente di specificare l'URL di Learn che supporta la propria scelta e quindi aprire l'URL manualmente.

Verifica conteggio delle attività

Eseguire un passaggio di verifica finale:

  1. Eliminare i dati locali dell'app o iniziare con una nuova installazione. Confermare che venga visualizzato lo stato vuoto e che l'inserimento di soli spazi mantenga Aggiungi attività disabilitato.
  2. Aggiungere diverse attività, contrassegnarne una completa ed eliminare un'altra. Verificare che il numero rimanente venga aggiornato e che l'elemento corretto sia stato rimosso.
  3. Riavviare l'app. Verificare che i titoli delle attività e gli stati di completamento siano ripristinati.
  4. Aggiungere if (System.Diagnostics.Debugger.IsAttached) throw new IOException("Test save failure."); come prima riga di TaskStorage.SaveAsync, ricompilare ed eseguire l'app nel debugger. Attivare un salvataggio e confermare che segnala l'errore InfoBar anziché un salvataggio riuscito. Rimuovere quindi la condizione temporanea e ricompilare.
  5. Passa tra tutti gli elementi interattivi con Tab e Maiusc+Tab.
  6. Usare un'utilità per la lettura dello schermo o Accessibility Insights per Windows per esaminare nomi, ruoli e ordine di messa a fuoco.
  7. Ridimensionare l'app, testare i temi chiaro, scuro e ad alto contrasto e compilare per x64 senza avvisi del compilatore, di XAML, di binding o dell'analizzatore.

Altre informazioni: Panoramica dell'accessibilità e Test di accessibilità.

Perfezionare il prompt, non solo il codice

Se un controllo ha esito negativo, salvare sia la correzione che il motivo nel prompt successivo:

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.

Ciò fornisce all'assistente prove utili e rafforza il limite del progetto. Per un progetto di lunga durata, inserire vincoli stabili, ad esempio il framework, il modello di creazione di pacchetti, l'architettura di destinazione e il comando di compilazione nelle istruzioni del repository lette dall'assistente per la scrittura del codice.

Passaggi successivi

È stata creata una piccola app WinUI 3 ed è stato praticato un flusso di lavoro che è possibile riutilizzare:

Chiedere → generare → compilazione → ispezionare → verifica → affinamento

Continua con: