Kursens slutsamtal: vad tar du med dig? Vad känns oklart? Vidare läsning.
4:00
Slut
Talartips
Generera idempotency-key per knapptryck (Guid.NewGuid()). Förklara varför: dubbelklick eller retry från Polly får inte ge två deposits.
Eventual consistency är en UX-fråga: visa optimistic värde direkt, polla read model, visa "syncar..." om det dröjer.
Ctrl+Z är inte "ta bort" — det är ett nytt compensating command. Förklara varifrån klientens undo-stack hämtar sin lista (sista N commands jag själv skickat).
Workshop
Skapa AccountApi-typed client + register via AddHttpClient<AccountApi>().
Skapa AccountPage.razor som visar saldo + deposit/withdraw-formulär.
Implementera optimistic UI: uppdatera lokalt direkt, rulla tillbaka vid HTTP-fel.
Bygg UndoStack som håller senaste 10 commands.
Lägg in keyboard-handler: Ctrl+Z → pop senaste → POST revert.
Demo: deposit 100 → Ctrl+Z → saldo går tillbaka. Visa både i UI och i AccountSummary-tabellen.
Snabba
Lägg in SignalR-push så att flera flikar synkar.
Bygg en mini-history-vy som listar events.
Stöd
Tillhandahåll Razor-skelett.
Ge UndoStack-mönster som code-snippet.
FAQ
Varför WASM och inte Server?
Kursvalet är pedagogiskt: WASM tvingar fram en tydlig API-gräns. I produktion kan båda fungera.
Är optimistic UI farligt vid betalningar?
Ja för commit. Det är OK att visa ett optimistiskt värde — men aldrig låta användaren agera på det som om det vore committat. Visa tydlig "behandlas..."-state.
Vad om Ctrl+Z trycks 100 gånger snabbt?
Disable knappen medan revert pågår, eller köa lokalt och POST:a med idempotency-keys så servern dedupar.
Fallgrop Studenter glömmer att hantera 409 ConcurrencyConflict i klienten. Visa hur Polly i klienten kan retry:a — men oftast räcker det att visa "någon annan ändrade, ladda om".
Hemuppgift Slutför soloprojekt + finalisera gruppuppgift inför inlämning.
Examination Nästa moment är examination — se examinations-dokumentet för bedömningsrubrik och inlämningskrav. Boka in opponering 1:1 med varje student.