Kursplan
Fra språkferdigheter til løsningsdesign
- Avanserte C#-funksjoner og deres designimplikasjoner.
- Gjenopprettelses designintensjon fra eksisterende kode.
Kravanalyse og domenemodellering
- Tilfeller, brukersaker og akseptkriterier.
- Domenemodeller og allment språk.
Programvaredesignprinsipper
- SOLID-prinsipper tilpasset .NET-løsninger.
- Kopling, samlheng og avhengighetsretning.
Designmønstre for .NET-apper
- Valg av genererende, strukturelle og oppførmingsmønstre.
- Mønstre og antipatterns i eksisterende kode.
Arkitekturstiler og teknisk beslutningsfattelse
- Sammenligning av lagdelt, seksagonal og ren arkitektur.
- Aarkitekturbeslutningsregistre og avveiningsanalyse.
Planlegging av løsningsstruktur
- Løsnings- og prosjektorganisasjon for store kodebasen.
- Modular monolitt versus tjenesteorienterte grenser.
Moden C# for vedlikeholdbar kode
- Mønstermatching, records og nullbare referansetyper.
- Generics, LINQ og funksjonell sammensetning.
Unntakshåndtering, logging og observabilitet
- Unntaksstrategi og feilkontrakter.
- Strukturert logging, korrelasjon og helsekontroll.
Refleksjon, attributter og metaprogrammering
- Attributtstyrt design og brukstilknytninger for refleksjon.
- Kildedatagenerators og kodeskogen på kompilingstid.
Grunnleggende for ASP.NET Core
- Vertsmodel, avhengighetsinjeksjon og konfigurasjon.
- forespørselspiper, mellomvare og filtre.
Designing REST API-er
- Resursmodellering og HTTP-semantikk.
- Versjonering, validering og feilsvar.
- API-kontrakter med OpenAPI.
Sikring av .NET-apper
- Autentisering og autorisasjon med OpenID Connect.
- Polisjonstyrt autorisasjon og hemmelighetsforvaltning.
Trusselmodellering og sikring
- STRIDE-modellering og tillitgrenser.
- Sikring av designgjenkjennelse før implementering.
Dataadgang med Entity Framework Core
- Modellering av enheter og relasjoner.
- DbContext-levetid og migrasjonsstrategi.
Ytelsesanalyse og dataarkitektur
- Lastestrategier og unngåing av årlastefeil.
- Transaksjoner, konkuranstoken og omgåelse av EF.
Konkurranse og asynkron programmering
- Oppgaver, TPL og asynkron/ventefeil.
- Synkronisering, avbrytelse og trådsikkerhet.
Ytelsesoptimalisering
- Profiling og benchmarking med BenchmarkDotNet.
- Hukommelse, tilordninger og søppelinnhenting.
- Skjeringsstrategier og lasttesting.
Teststrategi tvers over lag
- Grenser for enhet, integrasjon og ende-til-ende testing.
- Testbar arkitektur og testdobbler.
Deployement og operasjonell klarhet
- Beholdere, konfigurasjon og CI/CD-piper.
- Produksjonsdiagnostikk og utgivelsessikkerhet.
Kapstone: Designgjennomgang og implementering
- Arkitektur-gjennomgang av en tilfelleapplikasjon.
- Implementering og refaktorering av en funksjonsslice.
Krav
- Erfaring med programmering i C#
- Arbeidskunnskap i objektorientert programmering
- Grunnleggende kjennskap til SQL og relasjonsdatabaser
Målgruppe
- .NET-utviklere
- Programvareingeniører og tekniske ledere
- Utviklere som går over til rollen som applikasjonsdesignere
Referanser (4)
Det var en 1-on-1-sesjon, så treningen ble spesielt tilpasset mine konkrete behov. Shane hevnte frem elementer av WPF/C# som kunne være nyttige for mine utviklingsprosjekter.
Warren Nolan - Northrop Grumman
Kurs - Programming in WPF
Maskinoversatt
Instruktørens kunnskap, engasjement og kontakt
Adam Kuklewski - GE Medical Systems Polska
Kurs - Technical Architecture and Patterns
Maskinoversatt
Forklaringene og interaktiviteten fra instruktøren var virkelig gode; selv om jeg kanskje ikke hadde nok erfaring, lærte jeg likevel mye av det!
Pieter Bruynseels - Spot Buy Center BV
Kurs - Design Patterns
Maskinoversatt
NICE OG VENNLIK. Meget kunnskapsrik. Vil anbefale Shane til andre.
Joshua - California State University Bakersfield
Kurs - Programming in C# with Visual Studio 2022
Maskinoversatt