Plan Szkolenia
Wprowadzenie do nowoczesnej platformy .NET
- Przegląd środowiska uruchomieniowego .NET 8, SDK i jednolitej platformy
- Porównanie ewolucji .NET Framework, .NET Core i .NET 8+
- Struktura projektu, platformy docelowe i podstawy wieloplatformowości
- Konfiguracja środowiska programistycznego i narzędzi
Nowoczesny C# i praktyki 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 przez kompilator
- Najlepsze praktyki async/await i wydajne przesyłanie strumieniowe
- Matematyka generyczna, statyczne abstrakcje w interfejsach i wydajne API
- Przygotowanie kodu do obsługi funkcji 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 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 konstruktora, cykle życia usług i zależności niewolnicze
- Wzorce dekoratora i fabryki z wbudowanym kontenerem
- Integracja z bibliotekami DI takimi jak Scrutor
- Modułowa rejestracja usług i organizacja oparta na funkcjach
- Aspekty globalne 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
- Sprawdzanie stanu zdrowia, telemetria i haki obserwowalności
- ID korelacji i przygotowanie do rozproszonego śledzenia
Architektura oprogramowania dla rozwiązań .NET w przedsiębiorstwach
- Zasady architektury warstwowej, heksagonalnej i czystej architektury
- Elementy projektowania opartego na domenie w .NET
- Wzorce CQRS i mediatora 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, modularnym 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 danych wejściowych, kodowanie wyjścia i łagodzenie zagrożeń z OWASP Top 10
- Ograniczanie liczby żądań, polityki CORS i obsługa tokenów anty-forgery
- 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
- Testowanie jednostkowe z xUnit, mockowanie z Moq lub NSubstitute
- Testowanie integracyjne i kontraktowe w potokach CI
- Techniki refaktoryzacji dla długowiecznych modułów legacy
- Dokumentacja, kontrakty API i praktyki dzielenia się wiedzą
Strategia modernizacji: Ocena starszego 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 zgodności
- Identyfikacja przestarzałych API, zależności specyficznych dla platformy i luk w oprogramowaniu innych firm
- 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 starszych podsystemów
- Migracja API-first: udostępnianie domen .NET Framework poprzez fasady REST
- Mostkowanie oparte na wiadomościach z RabbitMQ, Azure Service Bus lub Kafka
- Strategie współistnienia z wspólną bazą danych i wersjonowaniem schematów
- Uruchamianie .NET Framework i .NET 8 obok siebie w tej samej infrastrukturze
- Konteneryzacja nowoczesnych komponentów przy pozostawieniu starszych na IIS
Praktyczne laboratorium migracji i podsumowanie
- Zastosowanie Upgrade Assistant do reprezentatywnego starszego projektu
- 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 API
- Weryfikacja współistnienia poprzez kompleksowe testy integracyjne
- Podsumowanie, pytania i odpowiedzi oraz wskazówki dotyczące planowania modernizacji po szkoleniu
Wymagania
- Doświadczenie w programowaniu w C# i znajomość zasad projektowania obiektowego
- Znajomość podstawowych koncepcji tworzenia stron internetowych (HTTP, HTML, CSS, JavaScript)
- Podstawowa znajomość relacyjnych baz danych i SQL
- Wcześniejsze 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 starszych aplikacji .NET Framework
- Inżynierowie oprogramowania przechodzący do ról związanych z rozwojem przedsiębiorstw w .NET
- Liderzy techniczni odpowiedzialni za planowanie migracji platformy i współistnienia
- Personel DevOps i infrastruktury wspierający cykl ż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ę