Lärarhandledning · L4
Copilot Skills — Ask, Edit, Agent
Fokus: agent-läget i praktiken. Studenterna bygger ett aggregat med agenten och lär sig vad de måste granska.
Lektionsmål
- Beskriva Ask-, Edit- och Agent-lägenas skillnader och rätt användningsfall
- Använda kontextreferenser (@workspace, #file, #sym) i chat-prompts
- Köra agent-läget för att generera ett komplett DDD-aggregat med tester
- Identifiera vad agenten genererade som måste granskas och korrigeras
- Förklara VS Code vs Visual Studio 2026 feature-skillnader
Agenda
0:00–0:30
Tre lägen — teori och jämförelsetabell
Gå igenom Ask/Edit/Agent med konkreta exempel på när man väljer vilket. Poängtera: agent-läget är kraftfullt men kräver mer granskning.
0:30–1:10
Demo — Bygg DDD-aggregat med agent
Live: kör agent-prompen nedan. Visa att agenten skapar flera filer och frågar om godkännande. Granska output live med klassen — identifiera vad som är fel.
1:10–1:30
VS Code vs Visual Studio 2026 — skillnader
Gå igenom funktionsjämförelsetabellen. Poängtera: agentläge finns i VS 2026 men MCP och @terminal kräver fortfarande VS Code. MCP-konceptet — kort intro för de avancerade studenterna.
1:45–2:55
Workshop
Se workshopbeskrivning nedan.
Demo-script — Agent bygger DDD-aggregat
Agent-prompt (kör i Agent-läget)
Skapa en C# DDD-implementation av en ShoppingCart i projektet.
Krav:
- ShoppingCart ärver från AggregateRoot<CartId>
- Metoder: AddItem(ProductId, Money, int quantity) och RemoveItem(ProductId)
- Alla metoder returnerar Result<ShoppingCart>
- CartItem som Value Object
- Domänhändelse: ItemAddedToCartEvent
- Enhetstester med xUnit för båda metoderna
Befintlig bastyp: #file:src/Domain/Common/AggregateRoot.cs
Result-typen: #file:src/Domain/Common/Result.cs
Vad att granska efter agent-körning
- Använder agenten
Result<T> korrekt, eller kastar den exceptions?
- Är
CartItem ett korrekt Value Object (sealed record, privat konstruktor, Create-metod)?
- Registreras
ItemAddedToCartEvent med AddDomainEvent()?
- Är testerna meningsfulla — testar de faktiskt domänlogiken?
- Finns det hardkodade strängar eller magic numbers i koden?
Workshop — instruktioner
Workshop L4 — Agent-läget i praktiken
- Kör agent-prompen ovan (eller välj ett eget domänkoncept)
- Granska varje genererad fil mot kursmönstret — markera avvikelser
- Korrigera minst en avvikelse och dokumentera vad du ändrade och varför
- Jämför med en manuell implementation av samma koncept (15 min) — vilken tar längst tid? Vilken är bäst?
- Dokumentera: Vad ger agent-läget, vad måste du fortfarande göra manuellt?
FAQ
| Fråga | Svar |
| "När ska jag använda Edit-läget vs Agent-läget?" |
Edit-läget för att modifiera befintliga filer med en klar förståelse för vad som ska ändras. Agent-läget när du vill skapa något nytt som sträcker sig över flera filer och du vill att AI:n planerar strukturen. Edit är mer förutsägbart; agent är mer kraftfullt men kräver mer granskning. |
| "Kan agenten skriva felaktig kod?" |
Ja — och det gör den ibland. Agenten är bra på struktur och mönster men kan missa subtila projektspecifika krav som inte framgår av instruktionsfilerna. Granska alltid output, särskilt logik och felhantering. |
| "Vad är MCP?" |
Model Context Protocol — ett sätt att ge Copilot-agenten tillgång till externa datakällor och verktyg (databaser, API:er). Det är ett avancerat koncept utanför kursens scope men värt att känna till. |
Nästa lektion — förberedelse
Läs del 06 (Arkitekturgrund). Be studenterna tänka på: vad i ditt projekt MÅSTE du förstå och skriva manuellt för att AI:n ska kunna hjälpa dig med resten?