Visa utbildning.se som: Mobil

Applied Domain-Driven Design i .NET

Edument
Kort om utbildningen
3 dagar
Nästa tillfälle: Kontakta oss för mer information! - Distans
Företagsanpassad utbildning
   
Distans, Rikstäckande

Kursbeskrivning

Applied Domain-Driven Design i .NET


Kursen lär ut ett direkt, praktiskt sätt att närma sig arkitektur inom affärslivet. Fokus ligger på att producera affärsmjukvara som är mer användbar, testbar, och lättare att förvalta och förstå än konventionella sätt att bygga applikationer.

Med hjälp av Domän-Driven Design (DDD) och Command/Query Responsibility Segregation (CQRS) ser vi hur vi kan applicera moderna lärdomar på vår design, för att kunna bygga mer hållbara, skalbara, och testbara system till lägre totalkostnad.

Istället för att lära ut ett ramverk lär kursen ut en modern arkitektur, ett antal möjliga implementationer, och understryker de vanliga fallgroparna man kan undvika på vägen.

Det här är en praktisk kurs, och vi håller oss nära programkoden hela vägen. Under kursen bygger vi successivt upp en mindre applikation från grunden. Kursen täcker även testning, hur man applicerar nyckelinsikterna från kursen på existerande system, och hur man skalar ut ett system byggt med CQRS.

Målgrupp

Utvecklare och arkitekter som vill lära sig mer om att applicera Domän-Driven Design. 


Förkunskaper

God kännedom om C# och grundläggande kunskaper i NUnit är en fördel, dock ej nödvändiga. 



Kursinnehåll

Utmaningen med "databasdriven" mjukvaruutveckling

  • Olika sorters komplexitet
  • Skalbarhet och konsistens
  • Testning
  • Integration

Introduktion till Domän-Driven Design

  • Domäner och domänmodeller
  • "Ubiquitous Language", ett gemensamt språk
  • Övning i att bygga en domänmodell

Kontexter

  • Varför avgränsningar är viktiga
  • Kontextkartor
  • Att hålla isär koncept i domänen
  • Att mixa ihop koncept i gränssnittet
  • Övningar på gränsletande

Kommandon, frågor och events

  • Normalisering och denormalisering
  • Skrivmodeller och läsmodeller
  • Events som länk mellan skrivsida och lässida
  • Eventuell konsistens och vad det innebär
  • Design av kommandon
  • Design av frågor
  • Övning i design av kommandon och frågor

Meddelandebussar

  • Meddelanden som frikoppling
  • Publish/Subscribe
  • Att "sända" vs att "publicera"
  • Bygga en enkel meddelandebuss
  • Övning i implementation av en meddelandebuss

Skrivsidearkitektur

  • Kommandohanterare
  • "State sourcing" gentemot "event sourcing"
  • Introduktion till aggregat
  • Att bygga upp aggregat från tidigare events
  • Transaktionssäkerhet
  • Övning i kommandohanterare och aggregat

BDD-testning

  • Introduktion till BDD
  • Kommandon, events och BDD
  • Att bygga ett enkelt testramverk
  • Övning i BDD

Eventdatabaser

  • Existerande alternativ
  • Att bygga en eventdatabas ovanpå en relationsdatabas
  • Att implementera ett repository med hjälp av en eventdatabas
  • FÖrdelar med att befria aggregatens representation från persistens
  • Optimeringar med hjälp av snapshots
  • Övning i att bygga en eventdatabas

Avancerad aggregatdesign

  • Att hitta aggregatgränser
  • Att hantera relationer
  • Övning i aggregatdesign

Att bygga lässidor

  • Övergripande angreppssätt
  • Relationella databaser som lässida
  • NoSQL-lässidor
  • Andra alternativ
  • Att rekonstruera och bygga upp nya lässidor
  • Övning i att bygga lässidor

Processhanterare

  • Vad är en processhanterare? Vad är en saga?
  • Olika typer av processhanterare
  • Att hantera processhanterarens tillstånd
  • Att bygga ett enkelt ramverk för processhanterare
  • Övning i processhanterare

Att utveckla ett system

  • Att förfina domänmodeller
  • Att hantera kommandon som evolverar
  • Versionshantering av events
  • Hantering av uppgradering av events
  • Övning i event-uppgradering

CQRS, DDD och existerande kodbaser

  • Att introducera kontexter i ett existerande system
  • Separering av kommandon och frågor
  • Att migrera mot event sourcing

Att skala ut

  • Man kan dra nytta av läs/skriv-separationen för att skala
  • Att skala skrivsidor enligt kontext och enligt aggregat
  • Att skala inom ett aggregat
  • Distribuering av meddelanden och tillförlitlighet
  • Köer och "enterprise service busses"

Andra möjligheter

  • Parallell utveckling och outsourcing
  • Att återskapa tidigare tillstånd för debugging

Upplägg

Den här utbildningen är till för dig som är ett team med 5 eller fler personer och önskar att vi kommer till er och håller kurs eller skräddarsyr innehållet efter era behov.  


Önskar du istället gå ett schemalagt tillfälle med andra deltagare?

Se samma kurs här för att får mer information om pris och datum. 

Kursledare

Tore Nestenius

Tore Nestenius

Hos Edument arbetar jag med att utbilda utvecklare och delar gärna med mig av mina erfarenheter. Jag brukar även coacha utvecklingsteam i arkitekturfrågor och säkerhet.

Jag är nyfiken på nya tekniker och lever efter mottot ”Man kan inget förrän man kan förklara det för andra”.

Intresseanmälan

Fyll i formuläret för att få mer information om Applied Domain-Driven Design i .NET, direkt från arrangören. Det är gratis och inte bindande!

Recensioner

Snittbetyg: 3,9

Baseras på 48 recensioner.

Kursdeltagare
(5)
The trainer was both informative and entertaining.
Kursdeltagare
(4)
Great with many exercises
Kursdeltagare
(4)
Great exercises but I needed a bit more time to reflect and understand more properly every step and part

Edument

Edument


Varmt välkommen till Edument!

Vi hjälper företag och startups med komplexa mjukvaruprojekt och tar fram morgondagens kurser inom mjukvaruutveckling. Vad kan vi hjälpa dig med?Edument AB grundades 2010 i Helsingborg av Acke Salem och Tore Nestenius. De möttes för första gången på en konferens där...


Läs mer om Edument och visa alla utbildningar.

Kontaktuppgifter

Edument

Kullagatan 21
252 20

 Visa telefonnummer

Recensioner
Kursrecensioner
(3,9)
Baseras på 48 recensioner.
Läs recensioner
Arrangörsrecensioner
(4,1)
Baseras på 1312 recensioner.
Alla recensioner för arrangören

Liknande utbildningar