Sadržaj kursa
Uvod u modernu .NET platformu
- Pregled .NET 8 runtime-a, SDK-a i unifikovane platforme
- Poređenje evolucije .NET Framework, .NET Core i .NET 8+
- Struktura projekta, ciljna framework-a i osnove multi-targetinga
- Podešavanje razvojnog okruženja i alata
Moderno C# i orijentisane na budućnost jezičke prakse
- Zapisi (records), init-only setteri i obrasci nemenljivosti
- Poboljšanja u prepoznavanju obrazaca i switch izrazi
- Nullable reference types i sigurnost vođena kompajlerom
- Best practice za async/await i efikasno tokovno strimovanje memorije
- Generička matematika, statički abstract u interfejsima i API-jevi orijentisani na performanse
- Priprema baze koda za C# 12/13 funkcionalnosti na .NET 8
Osnove ASP.NET Core-a i bootstrap aplikacije
- Host builder, middleware pipeline i životni ciklus zahteva
- Minimal API vs API-jevi zasnovani na kontrolerima: kriterijumi za odluku
- Provederi konfiguracije, podešavanja specifična za okruženje i upravljanje tajnama
- Statičke datoteke, routing i konvencije endpoint-ova
- Konfiguracija kontejnera za ubacivanje zavisnosti i životni vek usluga
Dizajn i implementacija REST API-ja
- Model zrelosti REST-a, modelovanje resursa i dizajn URI-ja
- HTTP metodе, statusni kodovi i pregovaranje o sadržaju
- Validacija zahteva, vezivanje modela i integracija FluentValidation
- Strategije verzionisanja za javne i interne API-je
- Dokumentovanje sa OpenAPI i Swagger UI
- Integraciono testiranje API-ja sa TestServer i WebApplicationFactory
Preduzećko ubacivanje zavisnosti i inverzija kontrole
- Konstruktor injection, životni vek usluga i zavisnosti zarobljeničkog tipa
- Decorator i factory obrasci sa ugrađenim kontejnerom
- Integracija Scrutor i biblioteka za ubacivanje zavisnosti treće strane
- Modularna registracija usluga i organizacija zasnovana na funkcionalnostima
- Preseci brige putem middleware-a i filtera
Logovanje, konfiguracija i centralizovana obrada grešaka
- Strukturirano logovanje sa Microsoft.Extensions.Logging i Serilog
- Nivoi logova, opsezi, obogaćenje i konfiguracija sinkova
- Exception middleware i globalni pipeline-ovi za obradu grešaka
- ProblemDetails i odgovori na greške usklađeni sa RFC 7807
- Health checks, telemetrija i hook-ovi za posmatranje
- Korrelation ID-jevi i priprema za distribuirano praćenje
Softverska arhitektura za preduzećka .NET rešenja
- Principi slojevite, heksagonalne i čiste arhitekture
- Gradivni blokovi dizajna zasnovanog na domenu u .NET-u
- CQRS i mediator obrasci sa MediatR
- Repository i unit-of-work obrasci sa EF Core
- Arhitektura vertikalnog isečaka za koheziju funkcionalnosti
- Ocenjivanje kompromisa između monolita, modularnog monolita i mikrousloga
Bezbednost za web aplikacije i API-je
- Sheme autentikacije: JWT, OAuth2, OpenID Connect i tokovi zasnovani na kolačićima
- Politike autorizacije, pristup zasnovan na claims-ovima i guard-ovi zasnovani na resursima
- Forsiranje HTTPS-a, HSTS i bezbedni middleware za zaglavlja
- Sanitizacija ulaza, enkodiranje izlaza i mitigacija OWASP Top 10
- Limitiranje stope, CORS politike i obrada anti-forgery token-a
- Upravljanje tajnama sa Azure Key Vault i rotacija vođena okruženjem
Kvalitet koda, održivost i best practices
- Standardi kodiranja, EditorConfig i dotnet format
- Statička analiza sa Roslyn analyzerima i integracijom SonarQube
- Unit testiranje sa xUnit, mocking sa Moq ili NSubstitute
- Integraciono i ugovorno testiranje u CI pipeline-ovima
- Tehnike refaktorisacije za module dugog veka trajanja
- Dokumentacija, API ugovori i prakse deljenja znanja
Strategija modernizacije: Procena starih .NET Framework kodova
- Analiza portfolija: klasifikacija aplikacija po kritičnosti, kompleksnosti i poslovnoj vrednosti
- Korišćenje .NET Upgrade Assistant-a i analize kompatibilnosti
- Identifikacija zastarelih API-ja, platformski specifičnih zavisnosti i nedostataka treće strane
- Windows specifični API-jevi i razmatranja migracije WCF
- Kreiranje puta migracije sa prioritizacijom zasnovanom na riziku
Tehnike progresivne migracije i koegzistencije
- Strangler Fig obrazac: postepena zamena starih subsystem-ova
- API-first migracija: izlaganje .NET Framework domena putem REST fasada
- Poročavanje zasnovano na porukama sa RabbitMQ, Azure Service Bus ili Kafka
- Koegzistencija zajedničke baze podataka i strategije verzionisanja sheme
- Izvođenje .NET Framework-a i .NET 8 paralelno na istoj infrastrukturi
- Kontejnerizacija modernih komponenti dok se stari sistemi ostavljaju na IIS-u
Praktična laboratorijska vežba migracije i pregled
- Primena Upgrade Assistant-a na predstavniki stari projekat
- Refaktorisacija Web Forms ili WCF servisa u ASP.NET Core API-je
- Implementacija DI, logovanja i centralizovane obrade grešaka u migriranom rešenju
- Dodavanje autentikacije i autorizacije novoj API površini
- Verifikacija koegzistencije kroz end-to-end integraciono testiranje
- Pregled, Q&A i vodič za planiranje modernizacije nakon obuke
Uslovi
- Iskustvo u C# programiranju i principima objektnog orijentisanog dizajna
- Poznavanje koncepata web razvoja (osnove HTTP, HTML, CSS, JavaScript)
- Osobno razumevanje relacionalnih baza podataka i SQL-a
- Ranije iskustvo sa .NET Framework-om ili ASP.NET-om je korisno, ali nije obavezno
Ciljna grupa
- .NET razvojarima i arhitektima koji pripremaju modernizaciju starih .NET Framework aplikacija
- Softverskim inženjerima koji prelaze u preduzećke uloge .NET razvoja
- Tehničkim liderima odgovornim za planiranje migracije platforme i koegzistencije
- DevOps i infrastrukturi personala koji podržavaju životne cikluse .NET aplikacija
Iskustva korisnika (2)
Interaktivnost i rešenja koda u realnom vremenu
Eduard-Emanuel Zaharia - Kruk Italia
Kurs - Advanced Blazor
Mašinski prevedeno
prilika za praktičan rad i strpljivost trenera
sheena - Te Manawa Taki Trauma System
Kurs - Visual Studio 2022 IDE
Mašinski prevedeno