Asynchronous Programming in C#
Lesgeld
Intro Asynchronous Programming
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.
Synchronous versus Asynchronous
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
Intro Asynchronous Programming
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.
Synchronous versus Asynchronous
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.
Async Programming in .NET
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.
Async Await
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.
Synchronization
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.
Exception Handling
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.
Doelgroep Cursus Asynchronous Programming in C#
Deze cursus is bedoeld voor personen die een overzicht willen krijgen van de kenmerken en functies van het .NET framework.
Voorkennis Cursus Asynchronous Programming in C#
Kennis van software development en een enige kennis van programmeren is vereist om aan deze cursus te kunnen deelnemen.
Uitvoering Training Asynchronous Programming in C#
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.
Certificering Cursus Asynchronous Programming in C#
De deelnemers krijgen na het goed doorlopen van de cursus een certificaat Asynchronous Programming in C#.
Modules
Module 1 : Async Intro
- 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
Module 2 : Async in .NET
- 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
Module 3 : Async Await
- Async Keyword
- Async Method
- Await Keyword
- Suspending Execution
- Yielding Control
- Awaitable Tasks
- ConfigureAwait
- GetAwaiter
- Task Completion
- Task Composition
- Task Object
Module 4 : Synchronization
- Race Conditions
- Deadlock
- Need for Synchronization
- Thread Safe Code
- Lock Objects
- Mutexes
- Semaphores
- Timing and Synchronization
Module 5 : Exceptions
- Exception Handling
- Asynchronous Exceptions
- Throwing Exceptions
- Task.Exception Property
- Faulted Tasks
- Catching Exceptions
- Disposable Objects
- AggregateException
Module 6 : Advanced Topics
- Async Services
- Async Request
- Ajax Calls
- Async Frontend
- Async Backend
- Await Tasks Efficiently
- WhenAll
- WhenAny