Översikt

Lektionsplan — 5 veckor, 10 lektioner

Kursen är intensiv och praktisk. Varje lektion är 4 timmar och kombinerar teori med workshop. Mellan lektionerna förväntas du arbeta ~6 h/vecka med hemövningar och examinationsarbete.

10
Lektioner
4 h
Per lektion
2
Lektioner / vecka
5
Veckor

Tidslinje

Vecka 1 · Mån + Tor
Lektion 01 — Helhetsbild & arkitektur
Helhetsbild av kursen och teknikvalen.
Vecka 1 · Tor
Lektion 02 — DDD-grunder
Bounded context, entity, value object, ubiquitous language.
Vecka 2 · Mån
Lektion 03 — Aggregate & AggregateRoot
Invarianter, Apply-pattern, AggregateRoot<TId>-basklass.
Vecka 2 · Tor
Lektion 04 — CQRS & commands
MediatR-pipeline, Minimal API, validering, idempotency.
Vecka 3 · Mån
Lektion 05 — Event sourcing från grunden
InMemoryEventStore, IEventStore, repository, upcasting.
Vecka 3 · Tor
Lektion 06 — SqlStreamStore & projektioner
MSSQL som event store + read models, checkpoints.
Vecka 4 · Mån
Lektion 07 — Transaktioner & concurrency
Optimistic concurrency, Polly-retry, TransactionScope.
Vecka 4 · Tor
Lektion 08 — Command-kö & undo
Channel<T> per stream, compensating events.
Vecka 5 · Mån
Lektion 09 — Snapshots & sagas
Snapshot-stöd, projection rebuild, process managers.
Vecka 5 · Tor
Lektion 10 — Blazor-klient
WebAssembly, typed HttpClient, optimistic UI, Ctrl+Z.
Vecka 7 · Fredag 23:59
Examinationsinlämning
TicketHub (grupp) + AggregateRoot<TId>-bibliotek (enskild).
Vecka 8
Muntlig redovisning
20 min per grupp. Slumpvis utvald medlem förklarar slumpvis utvald kod.

Lektionsöversikt

Lektion 01
Helhetsbild & arkitektur
MålFörstå hela teknikstacken och kursens röda tråd.
WorkshopKlona startkod, kör en hello-world genom Blazor → API → MSSQL.
HemuppgiftLäs DDD-kapitel 1 (Vernon).
Lektion 02
DDD-grunder
MålSkilja entity från value object, definiera bounded contexts.
WorkshopModellera "konto" + "transaktion" från ett kravdokument.
HemuppgiftÖvning 1–3 från lektion 02.
Lektion 03
Aggregate & AggregateRoot
MålImplementera ett aggregat med invarianter och Apply-pattern.
WorkshopBygg Account-aggregat från scratch.
HemuppgiftSoloprojekt 1 (lektion 03).
Lektion 04
CQRS & commands
MålImplementera commands, handlers, MediatR-pipeline.
WorkshopBygg DepositMoneyCommand + Minimal API-endpoint.
HemuppgiftÖvningar 1–4 lektion 04.
Lektion 05
Event sourcing
MålFörstå hur events blir sanning. Skriva en in-memory event store.
WorkshopInMemoryEventStore + repository + Given-When-Then-tester.
HemuppgiftSoloprojekt 1 (lektion 05).
Lektion 06
SqlStreamStore & projektioner
MålPersistera mot MSSQL. Bygga read model-projektion.
WorkshopMigrera InMemoryStore → MsSqlStreamStoreV3. Bygga AccountSummaryProjection.
HemuppgiftÖvningar 1–3 lektion 06. Starta gruppuppgift.
Lektion 07
Transaktioner & concurrency
MålHantera concurrency-konflikter, idempotency, TransactionScope.
WorkshopLägg in Polly-retry, idempotency-tabell, racetest.
HemuppgiftSoloprojekt 1 lektion 07.
Lektion 08
Command-kö & undo
MålSingle-writer per aggregat. Compensating events.
WorkshopBygg AggregateCommandQueue + revert-event.
HemuppgiftÖvning 1–3 lektion 08. Fortsätt gruppuppgift.
Lektion 09
Snapshots & sagas
MålSnapshot-stöd, projection rebuild, sagas.
WorkshopImplementera SnapshotStore + MoneyTransferSaga.
HemuppgiftÖvning 3 (transfer-saga) lektion 09.
Lektion 10
Blazor-klient
MålEnd-to-end-UI med typed HTTP, optimistic UI, undo-stack.
WorkshopBygg AccountPage.razor med Ctrl+Z.
HemuppgiftSlutför examinationsuppgifter.

Examinationskoppling

LektionBidrar till gruppuppgiftBidrar till enskild
01 HelhetÖvergripande arkitekturKonceptuell ram
02 DDDDomänmodell + ubiquitous language
03 AggregateConcert, Seat, BookingAggregateRoot<TId>-bas
04 CQRSCommands + pipeline
05 Event sourcingRehydrering & repositoryEventSourcedRepository
06 SqlStreamStoreHela datalagretSqlStreamStore-port (VG)
07 TransaktionerConcurrency, idempotency
08 Command-köSingle-writer + avbokning
09 Snapshots/sagasSnapshots (VG)ISnapshotable (VG)
10 BlazorUI + optimistic + undo

Vägledning för eget arbete

Tidsbudget
Starta gruppuppgiften tidigt Du har all teknisk grund för gruppuppgiften efter lektion 06. Lektionerna 07–10 fördjupar tekniker som hör hemma i VG-kriterierna. Det är klokt att sätta upp grundskelettet (projekt, repo, första aggregat) redan vecka 3.

← Föregående: Examination