Szkolenie programowanie asynchroniczne i równoległe w C#
Poziom
ZaawansowanyCzas
16h / 2 dniTermin
IndywidualnieCena
IndywidualnieSzkolenie z programowania asynchronicznego i równoległego w C#
Szkolenie jest przeznaczone dla programistów .NET, którzy chcą świadomie projektować, implementować i analizować kod asynchroniczny oraz równoległy w C#. Obejmuje mechanizmy async/await, TPL, ThreadPool, synchronizację, obsługę wyjątków, anulowanie zadań, integrację kodu synchronicznego z asynchronicznym oraz praktyczne aspekty pracy w aplikacjach ASP.NET i Entity Framework. Celem szkolenia jest przygotowanie uczestników do tworzenia wydajniejszych, bardziej responsywnych i bezpieczniejszych w utrzymaniu aplikacji, z uwzględnieniem ograniczeń, ryzyk, debugowania i profilowania kodu współbieżnego.
Dla kogo jest to szkolenie?
Dla osób posiadającą średnio-zaawansowaną lub zaawansowaną wiedzę w programowaniu z wykorzystaniem .NET i C#
Dla programistów .NET, którzy chcą rozwinąć swoją wiedzę o bardzo ważny aspekt, jakim jest programowanie w modelu asynchronicznym
Dla programistów, którzy potrzebują wiedzy na temat budowy wydajnych aplikacji
Czego nauczysz się na tym szkoleniu?
- Poznasz kluczowe mechanizmy programowania asynchronicznego w C# i ich wpływ na wydajność oraz responsywność aplikacji
- Zrozumiesz sposób działania aplikacji wykorzystujących async/await, Task, ThreadPool i TPL
- Dowiesz się, jakie są zalety asynchroniczności, ale też jakie ryzyka niesie ze sobą ten model programowania
- Poznasz narzędzia i techniki debugowania oraz profilowania kodu asynchronicznego
- Zyskasz wiedzę przydatną w pracy programisty .NET na poziomie Senior .NET Developer
Program szkolenia
Dzień 1
Moduł 1: Programowanie asynchroniczne cz. 1
- Zasady działania kodu asynchronicznego
- Mechanizm działania kodu z wykorzystaniem operacji async/await
- Maszyna stanów w kodzie asynchronicznym
- Wzorzec Awaiter
Moduł 2: Programowanie równoległe
- Zagadnienia Thread, ThreadPool oraz Task
- Biblioteka TPL (Task Parallel Library)
- Zadania wykonywane równolegle
- Obsługa zadań: odczyt rezultatu, kontynuacje, anulowanie działania
- Obsługa wyjątków w zadaniach równoległych
- Klasa Parallel
- Struktury danych do współdzielenia zasobów oraz synchronizacji zadań wykonywanych równolegle
Moduł 3: Programowanie asynchroniczne cz. 2
- Różnice pomiędzy async/await i bezpośrednią pracą z biblioteką TPL
- Zadania typu I/O-bound oraz CPU-bound w kontekście asynchronicznego wykonania
- Integracja kodu wykonywanego synchronicznie z kodem asynchronicznym
- Integracja kodu asynchronicznego korzystającego z różnych wzorców programowania asynchronicznego
Dzień 2
Moduł 4: Asynchroniczność w ASP.NET
- SynchronizationContext i ConfigureAwait
- Różnice pomiędzy .NET Framework i współczesnym .NET
- Ryzyka deadlocków w ASP.NET (.NET Framework)
- Asynchroniczność w Entity Framework
- Modele zadań działających w tle: wady, zalety, synchronizacja i współdzielenie zasobów
Moduł 5: Dobre praktyki w programowaniu asynchronicznym
- Dobór modelu asynchronicznego do scenariuszy I/O-bound i CPU-bound
- Propagacja anulowania zadań i limitów czasu
- Obsługa wyjątków oraz agregacja błędów w kodzie asynchronicznym
- Unikanie blokowania wątków i nadmiarowej równoległości
- Czytelność, testowalność i utrzymywalność kodu asynchronicznego
Moduł 6: Analiza zadań asynchronicznych
- Debugowanie kodu asynchronicznego
- Profilowanie kodu asynchronicznego