Asynchronous Programming in C#
Schulung & Kurs

Zwei Tage umfassender Kurs für erfahrene C# und .NET Entwickler über asynchrone Programmierung - von Threads, Tasks und async/await bis hin zu fortgeschrittenen Features wie Task Schedulers und Synchronization Contexts.

In der heutigen dynamischen Softwarelandschaft ist die Beherrschung der asynchronen Programmierung zunehmend essentiell für das Schreiben modernerer, schnellerer und hardware-optimierter Anwendungen. Da Multi-Core-CPUs heute Standard sind, ist parallele Verarbeitung der Schlüssel zur Leistungsoptimierung. Dieser umfassende zweitägige Kurs für erfahrene C# und .NET Entwickler deckt ein breites Spektrum von Themen ab, von Threads, Tasks und async/await bis hin zu fortgeschrittenen Features wie Task Schedulers und Synchronization Contexts. Der Kurs beinhaltet viele praktische Übungen, die es ermöglichen, die Konzepte der asynchronen Programmierung zu meistern und anzuwenden. Am Ende dieses Kurses werden Sie verstehen, wie Sie asynchrone Techniken nutzen können, um die Effizienz, Skalierbarkeit und Reaktionsfähigkeit Ihrer Anwendungen zu optimieren. Der Kurs ist auf dem neuesten Stand mit .NET 9 und C# 13.

Kurse für Teams:

Gerne führen wir zugeschnittene Kurse für euer Team durch - vor Ort, remote oder in unseren Kursräumen.

In-House Kurs Anfragen

 

Kursinhalt:


Der Kurs behandelt die folgenden Themen mit einem starken Fokus auf praktische Anwendung und Hands-on-Übungen:

– Einführung, Prozesse und Threads:
... - Synchrone vs. asynchrone Programmierung
... - Prozesse und Thread-Konzepte
... - ThreadPool
... - Worker- und I/O-Threads
... - Wann der Thread Pool nicht verwendet werden sollte
– Tasks:
... - Erstellen von Tasks
... - Rückgabe von Daten aus Tasks
... - Tasks vs. Threads - wann was verwenden?
... - Warten auf Tasks
– Fehlerbehandlung in der asynchronen Programmierung:
... - Exceptions in Threads
... - Exceptions in Tasks
- Abbrechen von Tasks:
... - Cancellation Token Source und Tokens
... - Continuations
– Async – Await:
... - Async-Methoden
... - Async State Machine
... - Das await-Schlüsselwort
... - Rückgabe von Daten aus async-Methoden
... - Async all the way
... - Async Lambdas
... - Optimierung von async/await
... - .GetAwaiter().GetResult()
... - WaitAsync
– Task Schedulers:
- Async Error Handling:
- Synchronization Contexts
... - SynchronizationContext vs. TaskScheduler
- ConfigureAwait:
... - Context Capturing
– Value Tasks:
... - Tasks vs ValueTasks
... - Performance-Optimierungen


Der Kurs ist aktuell mit .NET 9 und C# 13 und beinhaltet viele praktische Übungen zur sofortigen Anwendung der erlernten Konzepte.


Disclaimer: Der effektive Kursinhalt kann, abhängig vom Trainer, Durchführung, Dauer und Konstellation der Teilnehmer:innen von obigen Angaben abweichen.

Ob wir es Schulung, Kurs, Workshop, Seminar oder Training nennen, wir möchten Teilnehmer/innen an ihrem Punkt abholen und mit dem nötigen praktischen Wissen ausstatten, damit sie die Technologie nach der Schulung direkt anwenden und eigenständig vertiefen können.

Ziel:

Nach Abschluss dieses Kurses werden Sie in der Lage sein, asynchrone Programmierkonzepte korrekt zu implementieren, um Ihre Anwendungen durch asynchrone und parallele Programmierung zu verbessern. Sie werden ein tiefes Verständnis für Threads, Tasks, async/await und fortgeschrittene Features wie Task Schedulers entwickeln. Durch die vielen praktischen Übungen können Sie die Konzepte der asynchronen Programmierung meistern und direkt in Ihren Projekten anwenden. Sie werden verstehen, wie Sie asynchrone Techniken nutzen können, um die Effizienz, Skalierbarkeit und Reaktionsfähigkeit Ihrer Anwendungen zu optimieren.


Form:

Bewährter Mix aus theoretischen Konzepten, Live-Coding und vielen praktischen Übungen. Die Teilnehmenden arbeiten an realen asynchronen Programmieraufgaben und können die erlernten Konzepte sofort anwenden. Der Trainer begleitet den Prozess mit Expertenwissen und individueller Unterstützung.


Zielgruppe:

Erfahrene C# Entwickler, die verstehen möchten, wie sie asynchrone Programmierung korrekt schreiben, um ihre Anwendungen durch asynchrone und parallele Programmierung zu verbessern. Der Kurs richtet sich an Entwickler, die ihre Apps auf das nächste Level bringen möchten, indem sie die Leistung durch Multi-Core-Verarbeitung optimieren.


Voraussetzungen:

Um das Beste aus diesem Training herauszuholen, sollten die Teilnehmer mindestens ein Jahr Erfahrung als C# Entwickler haben. Ein starkes Verständnis von C#, einschliesslich Generics, Lambdas und LINQ, ist entscheidend. Vorherige Erfahrung in paralleler oder asynchroner Programmierung ist nicht erforderlich.


Vorbereitung:

Jeder Teilnehmer erhält nach der Anmeldung einen Fragebogen zur Erfassung des Erfahrungsniveaus und eine Installationsanleitung für die benötigte Entwicklungsumgebung. Passend zu den Antworten senden wir individuelles Feedback zur optimalen Kursvorbereitung.

In-House Kurs anfragen:

In-House Kurs Anfragen

Trage dich in die Warteliste ein für weitere öffentliche Kurs-Termine. Sobald wir genügend Personen auf der Warteliste haben, klären wir einen möglichst für alle passenden Termin ab und schalten einen neuen Termin auf. Falls du direkt mit zwei Kollegen oder Kolleginnen teilnehmen möchtest, können wir sogar direkt einen öffentlichen Kurs für euch planen.

Warteliste

(Falls ihr bereits mehr 3 Teilnehmer:innen oder mehr habt, klären wir mit euch direkt euren Wunschtermin ab und schreiben den Kurs aus.)

Mehr über Asynchrone Programmierung in C#



Asynchrone Programmierung in C# ermöglicht es Entwicklern, reaktionsfähige und skalierbare Anwendungen zu erstellen, die Hardware-Ressourcen optimal nutzen. Mit modernen Multi-Core-Prozessoren ist parallele Verarbeitung der Schlüssel zur Leistungsoptimierung.




Geschichte


Asynchrone Programmierung in C# entwickelte sich über mehrere Versionen. Das Task-based Asynchronous Pattern (TAP) wurde in .NET Framework 4.0 eingeführt, gefolgt von async/await in C# 5.0 (2012), was die asynchrone Programmierung erheblich vereinfachte.


Die Entwicklung wurde maßgeblich von Stephen Toub und dem .NET-Team bei Microsoft vorangetrieben. Mit .NET Core und der Einführung von ValueTask, IAsyncEnumerable und weiteren Performance-Optimierungen wurde die asynchrone Programmierung kontinuierlich verbessert.


Heute ist asynchrone Programmierung ein fundamentaler Bestandteil moderner .NET-Anwendungen. Von Web-APIs über Desktop-Anwendungen bis hin zu Cloud-Services - async/await und das Task-System ermöglichen es Entwicklern, hochperformante und skalierbare Anwendungen zu erstellen. Mit .NET 9 und C# 13 wurden weitere Verbesserungen und neue Features für asynchrone Programmierung eingeführt.