Kursplan
Från språkkunskaper till lösningsskick
- Avancerade C#-funktioner och deras påverkan på design.
- Återställning av designintention från befintlig kod.
Kravanalys och domänmodellering
- Användningsfall, användarberättelser och acceptanskriterier.
- Domänmodeller och vedermödan (ubiquitous language).
Programvaru-designprinciper
- SOLID-principer tillämpade på .NET-lösningar.
- Koppling, kohesion och beroenderiktning.
Designmönster för .NET-applikationer
- Val av skapande, strukturella och beteendemönster.
- Mönster och antimönster i befintlig kod.
Arkitekturstilar och teknisk beslutsfattande
- Jämförelse av lagrad, hexagonal och clean architecture.
- Arkitekturbeslutsdokument och analys av för- och nackdelar.
Planering av lösningens struktur
- Organisation av lösning och projekt för stora kodbasen.
- Modulmonolit jämfört med tjänsteorienterade gränser.
Modernt C# för underhållbar kod
- Mönsterrapportering, records och nollbara referenstyper.
- Generics, LINQ och funktionell komposition.
Felhantering, loggning och observabilitet
- Felstrategier och felkontrakt.
- Strukturerad loggning, korrelation och hälsokontroller.
Reflexion, attribut och metaprogrammering
- Attributstyrd design och användningsfall för reflektion.
- Källkodsgenerering och kompilerings-tids kodgenerering.
Grundläggande ASP.NET Core
- Värdmodell, beroendeinjektion och konfiguration.
- Begärningspipeline, middleware och filter.
Design av REST-API:er
- Resursmodellering och HTTP-semantik.
- Versionering, validering och felsvar.
- API-kontrakt med OpenAPI.
Säkerhet i .NET-applikationer
- Autentisering och auktorisering med OpenID Connect.
- Policybaserad auktorisering och hantering av hemligheter.
Hotmodellering och säker design
- STRIDE-modellering och förtroendegränser.
- Säker designgranskning innan implementation.
Dataåtkomst med Entity Framework Core
- Modellering av entiteter och relationer.
- DbContext-livscykel och migrationsstrategi.
Frågeprestanda och dataarkitektur
- Laddningsstrategier och fallgropar med ägard loading (eager loading).
- Transaktioner, konkurrenstokens och kringgående av EF.
Konkurrens och asynkron programmering
- Uppgifter, TPL och fallgropar med async/await.
- Synkronisering, avbrott och trådsäkerhet.
Prestandaoptimering
- Profilering och benchmarkning med BenchmarkDotNet.
- Minne, allokeringar och skräpsamling (garbage collection).
- Cachestrategier och lasttestning.
Teststrategi över lager
- Gränser för enhetstester, integrationstester och sluttill-slut-tester.
- Testbar arkitektur och testdubbel.
Distribution och operativ klarhet
- Kontainer, konfiguration och CI/CD-pipelines.
- Produktionsdiagnostik och utgivningssäkerhet.
Avslutande projekt: Designgranskning och implementation
- Arkitekturgranskning av en exempelapplikation.
- Implementation och refaktorisering av en funktionell del.
Krav
- Upplevelser i att programmera på C#
- Arbetskunskap i objektorienterad programmering
- Grundläggande kunskap i SQL och relationella databaser
Målgrupp
- .NET-utvecklare
- Programvarutekniker och tekniska leads
- Utvecklare som går över till roller i applikationsdesign
Vittnesmål (4)
Det var 1-till-1-situation, så utbildningen anpassades efter mina specifika behov. Shane framhöll element av WPF/C# som kunde potentiellt vara till nytta för mine utvecklingsprojekt.
Warren Nolan - Northrop Grumman
Kurs - Programming in WPF
Maskintolkat
Instruktörens kunskap, engagemang och relation
Adam Kuklewski - GE Medical Systems Polska
Kurs - Technical Architecture and Patterns
Maskintolkat
Instruktörens förklaringar och interaktivitet gjorde verkligen ämnet tillgängligt; och även om jag troligtvis inte var erfaren nog, lärde jag mig mycket av det!
Pieter Bruynseels - Spot Buy Center BV
Kurs - Design Patterns
Maskintolkat
Snäll och vänlig. Mycket kunskapfull. Kan rekommendera Shane till andra.
Joshua - California State University Bakersfield
Kurs - Programming in C# with Visual Studio 2022
Maskintolkat