Plan Szkolenia
Wprowadzenie do nowoczesnej platformy .NET
- Przegląd środowiska wykonawczego .NET 8, SDK i ujednoliconej platformy
- Porównanie ewolucji .NET Framework, .NET Core i .NET 8+
- Podstawy struktury projektu, frameworków docelowych i wieloplatformowości
- Konfiguracja środowiska deweloperskiego i narzędzi
Nowoczesny C# i praktyki językowe zorientowane na przyszłość
- Rekordy, inicjatory tylko do ustawienia i wzorce niezmienności
- Ulepszenia dopasowania wzorców i wyrażenia switch
- Typy referencyjne dopuszczające wartość null i bezpieczeństwo sterowane kompilatorem
- Najlepsze praktyki async/await i strumieniowanie oszczędzające pamięć
- Matematyka generyczna, abstrakty statyczne w interfejsach i API zorientowane na wydajność
- Przygotowanie baz kodu na funkcje C# 12/13 w .NET 8
Podstawy ASP.NET Core i inicjalizacja aplikacji
- Host builder, potok middleware i cykl życia żądania
- Minimalne API vs API oparte na kontrolerach: kryteria decyzyjne
- Dostawcy konfiguracji, ustawienia specyficzne dla środowiska i zarządzanie sekretami
- Pliki statyczne, routing i konwencje punktów końcowych
- Konfiguracja kontenera wstrzykiwania zależności i cykle życia usług
Projektowanie i implementacja interfejsów API REST
- Model dojrzałości REST, modelowanie zasobów i projektowanie URI
- Metody HTTP, kody statusu i negocjacja treści
- Walidacja żądań, wiązanie modeli i integracja z FluentValidation
- Strategie wersjonowania dla publicznych i wewnętrznych interfejsów API
- Dokumentacja z OpenAPI i Swagger UI
- Testowanie integracyjne interfejsów API z TestServer i WebApplicationFactory
Wstrzykiwanie zależności na poziomie przedsiębiorstwa i odwrócenie sterowania
- Wstrzykiwanie przez konstruktor, cykle życia usług i zależności uwięzione
- Wzorce dekoratora i fabryki z wbudowanym kontenerem
- Integracja z bibliotekami DI takimi jak Scrutor i inne biblioteki zewnętrzne
- Modułowa rejestracja usług i organizacja oparta na funkcjach
- Zagadnienia cross-cutting poprzez middleware i filtry
Logowanie, konfiguracja i scentralizowana obsługa błędów
- Strukturalne logowanie z Microsoft.Extensions.Logging i Serilog
- Poziomy logowania, zakresy, wzbogacanie i konfiguracja sinków
- Middleware wyjątków i globalne potoki obsługi błędów
- ProblemDetails i odpowiedzi błędów zgodne z RFC 7807
- Kontrole zdrowia, telemetria i haki obserwowalności
- Identyfikatory korelacji i przygotowanie do śledzenia rozproszonego
Architektura oprogramowania dla rozwiązań .NET w przedsiębiorstwach
- Zasady architektury warstwowej, heksagonalnej i czystej architektury
- Bloki budulcowe projektowania opartego na domenie w .NET
- Wzorce CQRS i mediator z MediatR
- Wzorce repozytorium i jednostki pracy z EF Core
- Architektura pionowych plasterków dla spójności funkcji
- Ocena kompromisów między monolitem, modułowym monolitem i mikroserwisami
Bezpieczeństwo aplikacji internetowych i interfejsów API
- Schematy uwierzytelniania: JWT, OAuth2, OpenID Connect i przepływy oparte na ciasteczkach
- Polityki autoryzacji, dostęp oparty na roszczeniach i zabezpieczenia zasobów
- Wymuszanie HTTPS, HSTS i middleware bezpiecznych nagłówków
- Sanityzacja wejścia, kodowanie wyjścia i ograniczanie zagrożeń z OWASP Top 10
- Ograniczanie szybkości, polityki CORS i obsługa tokenów anty-podrobieniowych
- Zarządzanie sekretami z Azure Key Vault i rotacja oparta na środowisku
Jakość kodu, utrzymywalność i najlepsze praktyki
- Standardy kodowania, EditorConfig i dotnet format
- Analiza statyczna z Roslyn analyzers i integracja z SonarQube
- Testy jednostkowe z xUnit, mockowanie z Moq lub NSubstitute
- Testy integracyjne i kontraktowe w potokach CI
- Techniki refaktoryzacji dla długowiecznych modułów legacy
- Dokumentacja, kontrakty interfejsów API i praktyki dzielenia się wiedzą
Strategia modernizacji: Ocena legacy’owego kodu .NET Framework
- Analiza portfela: klasyfikacja aplikacji według krytyczności, złożoności i wartości biznesowej
- Użycie .NET Upgrade Assistant i analizatora kompatybilności
- Identyfikacja przestarzałych interfejsów API, zależności specyficznych dla platformy i luk w bibliotekach zewnętrznych
- Interfejsy API specyficzne dla Windows i uwzględnienie migracji WCF
- Tworzenie planu migracji z priorytetami opartymi na ryzyku
Techniki stopniowej migracji i współistnienia
- Wzorzec Strangler Fig: stopniowe zastępowanie legacy’owych podsystemów
- Migracja API-first: udostępnianie domen .NET Framework poprzez fasady REST
- Mostkowanie oparte na komunikatach z RabbitMQ, Azure Service Bus lub Kafka
- Strategie współistnienia z wspólną bazą danych i wersjonowanie schematów
- Uruchamianie .NET Framework i .NET 8 obok siebie w tej samej infrastrukturze
- Konteneryzacja nowoczesnych komponentów przy pozostawieniu legacy na IIS
Praktyczne laboratorium migracji i podsumowanie
- Zastosowanie Upgrade Assistant do reprezentatywnego projektu legacy
- Refaktoryzacja usługi Web Forms lub WCF do interfejsów API ASP.NET Core
- Implementacja wstrzykiwania zależności, logowania i scentralizowanej obsługi błędów w zmigrowanym rozwiązaniu
- Dodawanie uwierzytelniania i autoryzacji do nowej powierzchni interfejsu API
- Weryfikacja współistnienia poprzez testowanie integracyjne end-to-end
- Podsumowanie, sesja Q&A i wskazówki dotyczące planowania modernizacji po szkoleniu
Wymagania
- Doświadczenie w programowaniu w C# i zasadach projektowania obiektowego
- Znajomość podstawowych koncepcji tworzenia stron internetowych (HTTP, HTML, CSS, JavaScript)
- Podstawowa znajomość baz danych relacyjnych i SQL
- Wczesne doświadczenie z .NET Framework lub ASP.NET jest pomocne, ale nie wymagane
Grupa docelowa
- Programiści i architekci .NET przygotowujący się do modernizacji legacy’owych aplikacji .NET Framework
- Inżynierowie oprogramowania przechodzący do ról związanych z rozwojem .NET w przedsiębiorstwach
- Liderzy techniczni odpowiedzialni za planowanie migracji platformy i współistnienia
- Personel DevOps i infrastruktury wspierający cykle życia aplikacji .NET
Opinie uczestników (2)
Interaktywność i rozwiązania kodu w locie
Eduard-Emanuel Zaharia - Kruk Italia
Szkolenie - Advanced Blazor
Przetłumaczone przez sztuczną inteligencję
szansa na praktyczną pracę i cierpliwość trenera
sheena - Te Manawa Taki Trauma System
Szkolenie - Visual Studio 2022 IDE
Przetłumaczone przez sztuczną inteligencję