Schița de curs
De la competențe lingvistice la design de soluții
- Caracteristici avansate în C# și implicațiile lor asupra design-ului.
- Recuperarea intenției de design din codul existent.
Analiza cerințelor și modelarea de domeniu
- Use case-uri, user stories și criterii de acceptanță.
- Modelul de domeniu și limbajul ubicuu.
Principii de design software
- Principiile SOLID aplicate în soluțiile .NET.
- Cuplaj, coeziune și direcția dependențelor.
Pattern-uri de design pentru aplicații .NET
- Selectarea pattern-urilor generative, structurale și comportamentale.
- Pattern-uri și anti-pattern-uri în codul existent.
Stiluri arhitecturale și luarea deciziilor tehnice
- Compararea arhitecturii stratificate, hexagonale și clean architecture.
- Decizii arhitecturale documentate și analiza trade-off-urilor.
Planificarea structurii soluției
- Organizarea soluției și a proiectelor pentru codebase-uri mari.
- Monolit modular vs. limite bazate pe servicii.
C# modern pentru cod ușor de întreținut
- Pattern matching, records și tipuri de referințe nullable.
- Generice, LINQ și compoziție funcțională.
Tratarea excepțiilor, logging și observabilitate
- Strategia de excepții și contracte de eroare.
- Logging structurat, corelație și health checks.
Reflecție, atribute și metaprogramare
- Design bazat pe atribute și use case-uri pentru reflecție.
- Source generators și generarea de cod la compilare.
Fundamente ASP.NET Core
- Modelul de hosting, dependency injection și configurare.
- Conduita cererilor, middleware și filtre.
Design de REST API-uri
- 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 managementul secretelor.
Threat modeling și design securizat
- Modelare STRIDE și limitele de încredere.
- Review de design securizat înainte de implementare.
Acces la date cu Entity Framework Core
- Modelarea entităților și a relațiilor.
- Ciclul de viață al DbContext și strategia de migrații.
Performanța interogărilor și arhitectura de date
- Strategii de încărcare și capcanele eager loading-ului.
- Tranzacții, tokeni de concurență și evitarea EF (bypassing).
Concurență și programare asincronă
- Task-uri, TPL și capcanele async/await.
- Sincronizare, anulare și siguranța thread-urilor.
Optimizarea performanței
- Profiling și benchmarking cu BenchmarkDotNet.
- Memorie, alocări și colectarea de gunoi (garbage collection).
- Strategii de caching și load testing.
Strategie de testare pe straturi
- Limitele dintre testele unitare, de integrare și end-to-end.
- Arhitectură testabilă și dubluri de test.
Deploy și gatarea operațională
- Containere, configurare și pipeline-uri CI/CD.
- Diagnosticare în producție și siguranța release-urilor.
Capstone: Review de design și implementare
- Review arhitectural al unei aplicații de caz.
- Implementarea și refactoring-ul unei felii de funcționalitate.
Cerințe
- Experiență în programare în C#
- Conștiințe practice de programare orientată pe obiecte
- Conștiințe de bază în SQL și baze de date relaționale
PUBLIC
- Dezvoltatori .NET
- Ingineri de software și lead tehnici
- Dezvoltatori care trec la 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