Definiera appen och skriv den första prompten

En användbar första fråga identifierar teknik, appbeteende, begränsningar och de bevis som visar att arbetet är klart. Detta minskar risken för att assistenten väljer ett välbekant men felaktigt Windows ramverk.

Börja med acceptanskriterier

Innan du ber om kod definierar du vad du förväntar dig att observera:

  1. Projektet bygger för x64 utan fel eller varningar.
  2. Appen använder WinUI 3 och Microsoft.UI.Xaml, inte UWP och Windows.UI.Xaml.
  3. En användare kan lägga till, slutföra och ta bort en uppgift.
  4. Aktiviteter finns kvar när appen har startats om.
  5. Varje indata och kommando har ett tillgängligt namn.
  6. Kommandon förblir tillgängliga när fönstret är smalt.
  7. Assistenten förklarar alla API:er som kräver paketidentitet eller fönsterinitiering.

Dessa kriterier omvandlar en bred begäran till kontroller som du och assistenten kan utföra.

Ge assistenten varaktiga begränsningar

Öppna mappen där du behåller utvecklingsprojekt, starta din AI-kodningsassistent och använd den här uppmaningen:

Create a C# WinUI 3 desktop app named TaskTally.

Technology constraints:
- Use WinUI 3 and the current stable Windows App SDK.
- Use Microsoft.UI.Xaml namespaces. Don't use UWP, Windows.UI.Xaml,
  WPF, Windows Forms, .NET MAUI, or third-party UI controls.
- Create a packaged app and build for x64.
- Start from the dotnet new winui-mvvm template.
- Use CommunityToolkit.Mvvm for observable properties and commands.

App requirements:
- Show a single-page task list.
- Let the user add, complete, and delete tasks.
- Save tasks as JSON in the app's local storage.
- Use ListView for the collection and InfoBar for save status.
- Include an empty state, keyboard access, accessible names, and a
  layout that works at narrow window widths.

Working agreement:
- First show your implementation plan and the files you will change.
- Make one small, buildable change at a time.
- Build after each change and fix errors before continuing.
- Explain which Learn documentation supports any Windows API choice.
- Don't suppress warnings or replace packaged deployment with an
  unpackaged workaround.

Det sista avsnittet är viktigt. Den ber assistenten att exponera sina antaganden och producera kontrollpunkter som är lättare att inspektera.

Inspektera den föreslagna planen

Kontrollera att planen innehåller följande innan du godkänner redigeringar:

  • En modell för en uppgift.
  • En vymodell med en observerbar samling och kommandon.
  • En lagringstjänst.
  • XAML för sidan.
  • En liten mängd kod bakom för visningsspecifika händelser, om det behövs.
  • Skapa och starta steg för en paketerad WinUI-app.

Be assistenten att ändra sin plan om den föreslår en databas, beroendeinmatning, flera sidor eller anpassade kontroller. Dessa alternativ kan vara giltiga i en större app, men de lägger till begrepp som den här nybörjarappen inte behöver.

Skapa projektet

Assistenten ska köra kommandon som motsvarar:

dotnet new winui-mvvm -n TaskTally
cd TaskTally
dotnet build -p:Platform=x64

Om du använder Visual Studio kan du i stället skapa ett paketerat C#WinUI-projekt och lägga till MVVM Toolkit. Behåll projektnamnet TaskTally så att namnrymderna i den här självstudien matchar.

Note

En paketerad WinUI-app måste distribueras med dess paketidentitet. Använd Visual Studio, dotnet run med WinUI-mallar som stöds eller winapp CLI. Starta inte den genererade .exe direkt.

Inspektera det genererade projektet

Fråga:

Explain the purpose of App.xaml, MainWindow.xaml, MainPage.xaml,
Package.appxmanifest, and TaskTally.csproj. For each file, identify
the WinUI 3 or Windows App SDK setting that proves this isn't a UWP,
WPF, or MAUI project.

Kontrollera förklaringen själv:

  • Projektfilen innehåller <UseWinUI>true</UseWinUI>.
  • Projektet refererar till Microsoft.WindowsAppSDK.
  • XAML-kod använder Microsoft.UI.Xaml typer i C#.
  • Package.appxmanifest tillhandahåller paketidentitet.
  • Målplattformen omfattar Windows, till exempel net10.0-windows10.0.26100.0.

Skapa den oförändrade mallen innan du lägger till funktioner. Om grundversionen inte går att bygga, åtgärda problemet med miljön eller projektskapandet innan du ber assistenten att generera mer kod.