Schița de curs
De la competențe în limbaj la design de soluții
- Funcționalități avansate în C# și implicațiile lor asupra design-ului.
- Recuperarea intenției de design din cod existent.
Analiza cerințelor și modelarea de domeniu
- Cazuri de utilizare (use cases), user stories și criterii de acceptanță.
- Modele de domeniu și limbaj universal (ubiquitous language).
Principii de design software
- Aplicarea principiilor SOLID în soluțiile .NET.
- Cuplaj, coeziune și direcția dependențelor.
Tipare de design pentru aplicații .NET
- Selectarea tiparelor creaționale, structurale și comportamentale.
- Tipare (patterns) și anti-patterns în cod existent.
Stiluri arhitecturale și luarea deciziilor tehnice
- Comparație între arhitectura în straturi, arhitectura hexagonală și clean architecture.
- Registre de decizii arhitecturale (ADR) și analiza compromisurilor (trade-offs).
Planificarea structurii soluției
- Organizarea soluției și a proiectelor pentru codebases mari.
- Monolit modular versus granițe orientate pe servicii.
C# modern pentru cod ușor de întreținut
- Pattern matching, records și nullable reference types.
- Generice, LINQ și compoziție funcțională.
Tratarea excepțiilor, logarea și observabilitatea
- Strategia de gestionare a excepțiilor și contractele de eroare.
- Logare structurată, corelație și health checks.
Reflecție, atribute și metaprogramare
- Design condus de atribute și cazuri de utilizare a reflecției.
- Source generators și generarea de cod la compilare.
Fundamente ASP.NET Core
- Modelul de hosting, injecția de dependențe și configurarea.
- Conducta de cereri (request pipeline), middleware și filtre.
Design-ul API-urilor REST
- Modelarea resurselor și semantica HTTP.
- Versionare, validare și răspunsuri la erori.
- Contracte de API cu OpenAPI.
Securizarea aplicațiilor .NET
- Autentificare și autorizare cu OpenID Connect.
- Autorizare bazată pe politici și gestionarea secretelor.
Threat modeling și design securizat
- Modelare STRIDE și granițele de încredere.
- Review al design-ului securizat înainte de implementare.
Acces la date cu Entity Framework Core
- Modelarea entităților și a relațiilor.
- Duration de viață a DbContext și strategia de migrări.
Performanța interogărilor și arhitectura de date
- Strategii de încărcare și capcanele eager loading.
- Transacții, tokeni de concurență și ocolirea EF când este necesar.
Concurență și programare asincronă
- Task-uri, TPL și capcanele async/await.
- Sincronizare, anulare și siguranța firelor (thread safety).
Optimizarea performanței
- Profiling și benchmarking cu BenchmarkDotNet.
- Memorie, alocări și garbage collection.
- Strategii de caching și testare de sarcină (load testing).
Strategia de testare pe toate straturile
- Granițele testelor unitare, de integrare și end-to-end.
- Arhitectură testabilă și dubluri de test (test doubles).
Deployment și gatație operațională
- Containere, configurare și pipeline-uri CI/CD.
- Diagnosticare în producție și siguranța lansării (release safety).
Proiect final: Review de design și implementare
- Review arhitectural al unei aplicații de caz.
- Implementarea și refactorarea unei felii de funcționalitate (feature slice).
Cerințe
- Experiență în programare cu C#
- Cunoștințe de lucru cu programarea orientată pe obiecte
- Cunoștințe de bază în SQL și baze de date relaționale
Public țintă
- Dezvoltatori .NET
- Ingineri software și technical leads
- Dezvoltatori care trec în roluri de design de aplicații
Mărturii (3)
A fost un antrenament individual, așa că instruirea a fost specializată pentru nevoile mele specifice. Shane a evidențiat elemente ale WPF/C# care ar putea fi potențial benefice pentru proiectele de dezvoltare pe care le am.
Warren Nolan - Northrop Grumman
Curs - Programming in WPF
Tradus de catre o masina
Explicațiile și interactivitatea instrucționarului au fost excelente; chiar dacă probabil nu aveam suficientă experiență, am învățat foarte mult din acest curs!
Pieter Bruynseels - Spot Buy Center BV
Curs - Design Patterns
Tradus de catre o masina
Agradable și prietenos. Foarte bine informat. Aș recomanda Shane altora.
Joshua - California State University Bakersfield
Curs - Programming in C# with Visual Studio 2022
Tradus de catre o masina