Návrh Školení
Úvod do moderní platformy .NET
- Běhové prostředí .NET 8, sada nástrojů SDK a přehled jednotné platformy
- Srovnání vývoje v prostředích .NET Framework, .NET Core a novějším .NET 8+
- Struktura projektů, cílové frameworky a základy více-cílového vývoje
- Nastavení vývojového prostředí a potřebných nástrojů
Moderní jazyk C# a budoucí trendy v programování
- Records, inicializační nastavení a principy nezměnitelnosti objektů
- Rozšíření schémat porovnávání vzorů a výrazy switch
- Nepovinné typy odkazů a kontroly prováděné kompilátorem pro zvýšení bezpečnosti
- Osvědčené postupy při použití asynchronního programování pomocí async/await a úsporném využití paměti
- Generická matematika, abstraktní statické metody a výkonnostně optimalizované API
- Příprava kódu na budoucí funkce jazyka C# 12/13 v prostředí .NET 8
Základy ASP.NET Core a spuštění aplikace
- Konfigurace hostitele, řetězce middleware a proces zpracování požadavků
- Minimální API versus rozhraní založená na kontroleru: kritéria pro výběr řešení
- Nastavení konfigurace, parametry specifické pro dané prostředí a správa tajných informací
- Práce se statickými soubory, směrování požadavků a vytváření konvencí endpointů
- Konfigurace kontajneru pro vstřikování závislostí a definice životních cyklů služeb
Návrh a realizace REST API
- Modelování dostatku, třídění typů zdrojů a vhodné návrhování URI adres
- Použití metod HTTP, kódů stavu a přizpůsobení formátu odpovědí konzumentům
- Validace vstupních dat, vazba modelů na požadavky a integrace nástroje FluentValidation
- Strategie verzování veřejných i interních API rozhraní
- Dokumentace pomocí OpenAPI a generátoru Swagger UI
- Testování funkčnosti API s využitím nástrojů TestServer a WebApplicationFactory
Podnikové řešení vstřikování závislostí a principu inverze kontroly
- Využití konstruktorového vstřikování, definice životních cyklů služeb a zvládání „závislostí uvězněných“ v kódu
- Aplikace dekorátorů a továrních vzorů pomocí vestavěného kontejneru na správu služeb
- Integrace knihovny Scrutor a dalších externích nástrojů pro správu závislostí
- Modulární registrace služeb a organizace kódu podle jednotlivých funkcionalit
- Řešení průřezových problémů pomocí middleware nebo filtrů v rámci architektury systému
Protokolování, konfigurace a centrální správa chybových stavů
- Strukturované protokolování pomocí knihoven Microsoft.Extensions.Logging a Serilog
- Úrovně hlášení, rozsahy záznamů, obohacení informacemi a definice cílových kanálů pro logy
- Zpracování výjimek a nastavení globálních mechanismů reakce na chybové stavy
- Vytváření odpovědí o chybách splňujících standardy RFC 7807, včetně struktury ProblemDetails
- Nastavení kontrol zdravotního stavu aplikace, telemetrie a nástrojů pro monitorování provozu
- Použití identifikátorů korelace a základů distribuovaného sledování v rámci systémů většího rozsahu
Softwarová architektura pro podnikové systémy v .NET
- Principy vrstvené, hexagonální a čistě oddělené architektury v kontextu .NET
- Základy navrhování na bázi domény s využitím postupů domain-driven designu
- Použití vzorů CQRS a mediátorů pomocí nástroje MediatR
- Aplikace patternů repozitáře a jednotkové práce s využitím frameworku EF Core
- Přístup vertikálního rozdělení kódu na samostatné funkční celky<
- Hodnocení výhod a rizik přechodu z monolitického řešení na modulární monolit nebo mikroservisy
Zabezpečování webových aplikací i jejich API rozhraní
- Různé schémata autentizace: JWT, OAuth2, OpenID Connect a řešení založená na cookies
- Autorizační politiky, kontrola přístupu na bázi identifikačních požadavků i ochrana konkrétních zdrojů dat
- Povinné používání protokolu HTTPS, nastavení technologie HSTS a bezpečných HTTP hlaviček pro přenos informací
- Sanitizace vstupních dat, kódování výstupů a metody snižující rizika útoků dle seznamu OWASP Top 10
- Omezení frekvence požadavků, nastavení pravidel CORS a způsoby prevence falešných žádostí včetně ochrany anti-forgery tokeny
- Správa tajných dat pomocí služby Azure Key Vault a principy rotace hesel na základě aktuálního prostředí
Kvalita kódu, udržitelnost systému a osvědčené postupy vývoje
- Nastavení standardů psaní kódu, definice pomocí EditorConfig a nástrojů typu dotnet format
- Statická analýza s využitím analyzérů Roslyn a integrace nástroje SonarQube do vývojového cyklu
- Pisování jednotkových testů pomocí frameworku xUnit, simulace chování komponent prostřednictvím Moq nebo NSubstitute
- Provádění integračních a kontraktních testů v rámci automatizovaných CI cyklů<
- Techniky refaktorování u dlouhodobě udržovaných a rozsáhlých částí kódu
- Dokumentace rozhraní API, specifikace kontraktů a principy sdílení znalostí v týmu
Strategie modernizace: posouzení stávajících systémů .NET Framework
- Analýza portfolia aplikací – klasifikace podle důležitosti, složitosti i přínosu pro firmu<
- Používání nástroje .NET Upgrade Assistant a analyzátorů kompatibility v projektech
- Identifikace zastaralých nebo již nepodporovaných funkcí, platformově specifických závislostí i chybějících knihoven od třetích stran<
- Hodnocení API pouze určených k provozu na systémech Windows a aspekty migrace komunikační technologie WCF<
- Tvorba plánu migrace s ohledem na řazení úkolů podle rizikovosti jednotlivých částí systémů<
Postupná migrace a metody koexistence různých verzí .NET
- Přístup Strangler Fig – postupné nahrazování funkcionalit ze starších systémů novými komponentami<
- Migrace typu „API-first“ – vytváření rozhraní REST pro přístup k jednotlivým oblastem systému .NET Framework<
- Použití zasílacích služeb RabbitMQ, Azure Service Bus nebo Kafka k řešení komunikace mezi oddělenými částmi systému<
- Společné využívání databázových schémat a strategie postupného upravování jejich struktury během migrace<
- Fungování obou platformních verzí – .NET Framework i .NET 8 – souběžně v rámci jedné infrastruktury<
- Kontejnerizace nových modulů založených na .NET 8 při udržení starších aplikací na platformě IIS<
Praktická laboratoř migrace s rekapitulací obsahu kurzu
- Aplikace nástroje Upgrade Assistant na ukázkový projekt ze starší verze frameworku<
- Refaktorování aplikací typu Web Forms či služeb WCF směrem k moderním rozhraním ASP.NET Core API<
- Nastavení mechanismů vstřikování závislostí, protokolování i globální správy chyb v upraveném systému<
- Přidávání procesů autentizace a autorizace do nově vytvořených rozhraní API<
- Testování skutečné funkčnosti s ohledem na koexistenci jednotlivých systémů<
- Závěrečná diskuse, odpovědi na dotazy a konzultace možných postupů pro budoucí modernizaci projektů<
Požadavky
- Praktické zkušenosti s programováním v jazyce C# a principy objektově orientovaného návrhu
- Orientace na konceptech webového vývoje (HTTP, HTML, CSS, základy JavaScriptu)
- Základní znalosti relačních databází a jazyka SQL
- Předchozí seznámení s prostředím .NET Framework nebo technologií ASP.NET je výhodou, není však podmínkou
Cílová skupina
- Vývojáři a architekti .NET, kteří připravují modernizaci starších aplikací založených na .NET Framework
- Inženýři softwaru směřující do oblasti podnikového vývoje v .NET
- Techničtí vedoucí odpovědní za plánování migrací a koexistence různých systémů
- Pracovníci z týmů DevOps a infrastruktury, kteří podporují životní cyklus aplikací v .NET
Reference (2)
Interaktivita a řešení kódu v reálném čase
Eduard-Emanuel Zaharia - Kruk Italia
Kurz - Advanced Blazor
Přeloženo strojem
možnost praktické práce a trpělivost školitele
sheena - Te Manawa Taki Trauma System
Kurz - Visual Studio 2022 IDE
Přeloženo strojem