- Leren door doen
- Trainers met praktijkervaring
- Klassikale trainingen
- Gedetailleerd cursusmateriaal
- Duidelijke inhoudsbeschrijving
- Maatwerk inhoud mogelijk
- Trainingen die doorgaan
- Kleine groepen
In de cursus Asynchronous Programming in C# staat centraal hoe C# en het .NET Framework kunnen worden gebruikt voor de schrijven van asynchrone code met het async en await mechanisme.
De cursus Asynchronous Programming in C# gaat van start met een bespreking van de verschillen tussen synchrone en asynchrone code. Aan de orde komen de nadelen van blocking behavior en de voordelen van parallelism en concurrency met threads en tasks.
Ingegaan hoe bij synchrone code een thread met een blocking call wacht op het resultaat. Bij asynchrone code wordt niet gewacht, maar voert een andere thread de call uit, terwijl de oorspronkelijke thread via een callback of ander mechanisme wordt gewaarschuwd als het resultaat klaar is.
Vervolgens wordt de implementatie van asynchrone code in het .NET Framework en .NET Core behandeld. Diverse patterns voor het schrijven van asynchrone code komen daarbij aan de orde. De voordelen van het gebruik van .NET Core komen aan de orde en er wordt ingegaan op asynchrone algorithmes.
Dan wordt het async await mechanisme behandeld. Aan de orde komt hoe een method voorafgegaan door het async keyword een asynchrone method wordt. In de body van de method kan dan met await op het resultaat van een asynchrone call worden afgewacht.
Ook het voorkomen van data corruptie door middel van synchronisatie primitieven zoals locks, mutexes en semaphores staat op het programma van de cursus Asynchronous Programming in C#. Daarbij wordt ook aandacht besteed aan race conditions en deadlock.
Verder komt exception handling in een asynchrone omgeving en de orde. Daarbij wordt ingegaan op faulted tasks en disposable objects. Tenslotte wordt het asynchroon aanroepen van services besproken en de interactie tussen afhandeling in de frontend en de backend.
Deze cursus is bedoeld voor personen die een overzicht willen krijgen van de kenmerken en functies van het .NET framework.
Kennis van software development en een enige kennis van programmeren is vereist om aan deze cursus te kunnen deelnemen.
De concepten worden behandeld aan de hand van presentatie slides. De besproken concepten worden gedemonstreerd met demo's in Visual Studio.NET. De cursustijden zijn van 9.30 tot 16.30.
De deelnemers krijgen na het goed doorlopen van de cursus een certificaat Asynchronous Programming in C#.
Module 1 : Async Intro |
Module 2 : Async in .NET |
Module 3 : Async Await |
Synchronous Code Blocking Behavior Asynchronous Code Callbacks Completion Events Threads and Tasks Parallelism and Concurrency IO Bound Tasks CPU Bound Tasks Long Running Tasks Background Workers |
Async in .NET IAsyncResult Asynchronous Patterns Event Based Pattern Task Based Pattern Async .NET Core .NET Core Benefits Asynchronous Algorithms Thread Pools Thread Pool Starvation Memory Consumption |
Async Keyword Async Method Await Keyword Suspending Execution Yielding Control Awaitable Tasks ConfigureAwait GetAwaiter Task Completion Task Composition Task |
Module 4 : Synchronization |
Module 5 : Exceptions |
Module 6 : Advanced Topics |
Race Conditions Deadlock Need for Synchronization Thread Safe Code Lock Objects Mutexes Semaphores Timing and Synchronization |
Exception Handling Asynchronous Exceptions Throwing Exceptions Task.Exception Property Faulted Tasks Catching Exceptions Disposable Objects AggregateException |
Async Services Async Request Ajax Calls Async Frontend Async Backend Await Tasks Efficiently WhenAll WhenAny |