Seminare
Seminare

Moderne Asynchrone Programmierung mit C#

Seminar - GFU Cyrus AG

In diesem Seminar bekommen Sie einen Überblick über die neuen Techniken von .NET zur asynchronen Programmierung und serviceorientierten Programmierung. Sie wissen anschließend, wie Sie mehrere Threads steuern und auf entfernte Programmabläufe zugreifen.
Termin Ort Preis*
14.01.2027- 15.01.2027 online 1.713,60 €
14.01.2027- 15.01.2027 Köln 1.713,60 €
14.10.2027- 15.10.2027 online 1.713,60 €
14.10.2027- 15.10.2027 Köln 1.713,60 €

Alle Termine anzeigen

*Alle Preise verstehen sich inkl. MwSt.

Detaillierte Informationen zum Seminar

Inhalte:
  • Einführung & Motivation
    • Warum async/await? Evolution von Threads -> Tasks -> async/await
    • Vorteile: Skalierbarkeit, Responsiveness, bessere Ressourcenverwendung
    • Unterschiede zwischen paralleler und asynchroner Programmierung

  • Moderne Techniken in .NET 10
    • async/await, ValueTask, Task, IAsyncEnumerable
    • Task.Run, ConfigureAwait(false) - Best Practices
    • Task vs. ValueTask im Benchmark: Laufzeit und Allokationen gemessen
    • Neuerungen in .NET 10, z. B.:
    • Runtime Async: Suspend/Resume durch die Runtime statt Compiler-State-Machine - mit Ausblick auf .NET 11, wo es zum Standard wird
    • System.Linq.AsyncEnumerable: LINQ-Operatoren für IAsyncEnumerable jetzt Teil der Runtime
    • ThreadPool: behobene Sync-over-Async-Deadlocks, schnellere Task.WhenAll und Channels
    • ValueTask und Task Pooling: wann sich der Aufwand wirklich lohnt

  • Parallele Programmierung
    • Grundlagen: Prozess, Thread, ThreadPool - was ein Thread wirklich kostet
    • Unterschiede zu Async: Parallel.For, PLINQ, Parallel.Invoke
    • Wann was? - Entscheidungsmatrix

  • Timer & Scheduled Execution
    • System.Threading.Timer, PeriodicTimer, Task.Delay
    • Neue Optionen von .NET 6 bis .NET 10

  • Delegates
    • Verwendung von Delegates und Func/Action für Callbacks
    • Vergleich: Delegates vs. Lambdas vs. Async Lambdas

  • Synchronisation und Thread Safety
    • Grundlagen & Probleme
    • Race Conditions, Deadlocks, Synchronisationsbedarf erkennen
    • Aktuelle Synchronisationsmechanismen
    • lock, Monitor, Mutex, SemaphoreSlim, ReaderWriterLockSlim
    • Interlocked, Volatile, ThreadLocal
    • System.Threading.Lock als Nachfolger von lock(object), Lock.EnterScope() - was sich beim Umstieg ändert

  • Kooperatives Abbrechen mit CancellationToken
    • CancellationTokenSource, Token-Weitergabe durch den Aufrufstapel, ThrowIfCancellationRequested
    • Token.Register für Aufräum- und Abbruchlogik
    • Timeouts und verknüpfte Token
    • Mehrere Tasks an definierten Punkten zusammenführen mit Barrier
    • Concurrent Collections
    • ConcurrentDictionary, ConcurrentQueue etc. - wann sie helfen

  • Event-Driven & Reactive Patterns
    • Event-basierte async-Modelle: IObservable / Reactive Extensions (Rx.NET)
    • Channels (System.Threading.Channels) - für Producer-Consumer-Szenarien

  • Moderne serviceorientierte Kommunikation (REST, HTTP, gRPC)
    • Architekturüberblick
    • Microservices, Smart Clients, API-Gateways, Backend-for-Frontend
    • Aktuelle Kommunikationstechniken
    • REST mit IHttpClientFactory, Resilienz über Microsoft.Extensions.Http.Resilience (Polly v8), CancellationToken, Timeouts
    • JSON mit System.Text.Json, inkl. der neuen Strict-Optionen in .NET 10
    • HTTP/2 & HTTP/3 in .NET 10
    • Message Queues: RabbitMQ, Kafka, Azure Service Bus
    • SignalR für bidirektionale Echtzeit-Kommunikation
    • Webhooks für passive Eventübertragung
    • Moderne Patterns
    • Request/Reply und Fire-and-Forget
    • Circuit Breaker und Retry
    • Saga Pattern: Kompensation statt Rollback
    • Event Sourcing und CQRS
    • DTOs, Object Mapping (Mapperly, Mapster), Input-/Output-Validierung
    • gRPC (Optional - als REST-Alternative)
    • Warum gRPC? Vorteile/Nachteile gegenüber REST
    • Streaming & Async Communication mit Protobuf

  • Best Practices & Fehlerquellen
    • Async all the way - wo auf keinen Fall .Result oder .Wait()
    • UI-Synchronisation in Blazor, WPF, WinForms
    • Exception Handling im Async-Kontext
    • Logging & Tracing (OpenTelemetry, Structured Logging)

  • Praktische Übungen mit Ausgangs- und Lösungsstand
    • Event-Delegates in einer Spieleanwendung (Snake)
    • Eine blockierende Routine nach async/await refaktorieren
    • Order-Microservice für eine Shop-Anwendung
    • Asynchroner REST-Endpunkt für eine ToDo-API

Dauer/zeitlicher Ablauf:
2 Tage
Zielgruppe:
Das Seminar richtet sich an Programmierer und .NET-Entwickler, die Anwendungen mit C# und .NET entwickeln und ihre Kenntnisse in der asynchronen und parallelen Programmierung vertiefen möchten.

Teilnahmevoraussetzungen


Sie verfügen über solide Kenntnisse in C# und dem .NET-Ökosystem.

Sie haben Erfahrung mit der Programmentwicklung unter .NET.
Seminarkennung:
93304
Nach unten
Nach oben
Wir setzen Analyse-Cookies ein, um Ihre Zufriedenheit bei der Nutzung unserer Webseite zu verbessern. Diese Cookies werden nicht automatisiert gesetzt. Wenn Sie mit dem Einsatz dieser Cookies einverstanden sind, klicken Sie bitte auf Akzeptieren. Weitere Informationen finden Sie hier.
Akzeptieren Nicht akzeptieren









Um Spam abzuwehren, geben Sie bitte die Buchstaben auf dem Bild in das Textfeld ein:

captcha



Bei der Verarbeitung Ihrer personenbezogenen Daten im Zusammenhang mit der Kontaktfunktion beachten wir die gesetzlichen Bestimmungen. Unsere ausführlichen Datenschutzinformationen finden Sie hier. Bei der Kontakt-Funktion erhobene Daten werden nur an den jeweiligen Anbieter weitergeleitet und sind nötig, damit der Anbieter auf Ihr Anliegen reagieren kann.







Um Spam abzuwehren, geben Sie bitte die Buchstaben auf dem Bild in das Textfeld ein:

captcha