Ein praxisnaher Kurs für reaktive, ereignisgesteuerte Anwendungen in .NET mit Reactive Extensions. Die Agenda vermittelt Kernkonzepte, Operatoren, Scheduling, Tests und ein durchgängiges Beispiel. Besonderer Schwerpunkt liegt auf Async und Performance ohne die experimentelle AsyncRx.NET Library.
Sie verstehen, wo Rx.NET in modernen .NET Architekturen sinnvoll ist, wie es sich von Events, Streams und Async Enumerables unterscheidet und wie robuste Observable Pipelines entstehen. Sie steuern Gleichzeitigkeit mit Schedulern, setzen zeitbasierte und Kombinationsoperatoren ein und testen reaktiven Code zuverlässig. Am Ende können Sie eine kleine reaktive Anwendung entwerfen, implementieren und tunen und typische Fallstricke vermeiden.
• Ereignis und Datenflüsse mit Observables, Beobachtern und Schedulern modellieren
• LINQ artige Operatoren für Filtern, Transformation, Kombination und Zeit anwenden
• Async und Tasks sicher integrieren, Pipelines testen und debuggen sowie Fehler behandeln
• Erkennen, wann Rx.NET sinnvoll ist, Quirks vermeiden und Performance messen
• Fundierte C# Kenntnisse und Umgang mit async und await
• Grundverständnis zu .NET Events, Tasks und Collections
• Visual Studio oder Rider installiert
*Wir wissen, dass jedes Team eigene Bedürfnisse und Spezifikationen hat. Deshalb können wir die Schulungsübersicht nach Bedarf anpassen.
Modul 1: Kurzüberblick reaktives Programmieren in .NET
• Motivation und Einsatzgebiete warum reaktiv, Vorteile von Rx.NET
• Was Rx.NET bereitstellt Überblick über Reactive Extensions
• Schlüsselkonzepte Observables, Beobachter, Subscriptions und Scheduler
• Unterschiede verstehen zu .NET Events, zu IEnumerable oder IAsyncEnumerable, zu Stream, zu Message Queues oder Brokern, zu Functional Reactive Programming
Modul 2: Arbeiten mit Observables
• Observables erstellen und abonnieren kalt vs heiß und Subject Varianten
• Asynchrone Datenströme verwalten Lebensdauer, Disposal und Backpressure Muster
• Ereignisbehandlung mit Observables von Events und Timern bis UI und IO
• Einordnung in der Architektur wo Rx.NET in Schichten passt und wann eher nicht
Modul 3: Zeitplaner in Rx.NET
• Scheduler Typen Immediate, CurrentThread, NewThread, TaskPool, EventLoop und Synchronization Contexts
• Gleichzeitigkeit steuern mit observeOn und subscribeOn
• UI und Hintergrundarbeit koordinieren WPF Synchronization Context Beispiele
• Zeitvirtualisierung für Tests und deterministisches Verhalten
Modul 4: LINQ Operatoren in Rx.NET
• Filtern und Transformieren select, where, distinctUntilChanged, scan
• Aggregieren und Zusammenstellen buffer, window, groupBy, aggregate
• Zeitbasierte Operationen throttle, debounce, sample, interval, timeout
• Materialize und Dematerialize für fortgeschrittene Flusskontrolle
Modul 5: Fortgeschrittene Techniken
• Sequenzen kombinieren merge, concat, zip, combineLatest, withLatestFrom
• Abläufe koordinieren switch, Muster ähnlich switchMap, Abwägung concatMap vs flatMap
• Fehlerbehandlung retry, retryWhen, catch, onErrorResumeNext und Circuit Breaker Muster
• Ressourcenmanagement using und finally für Aufräumen
Modul 6: Zusammenspiel mit async und await ohne AsyncRx.NET
• Async Operationen als Observables modellieren Task und Task<T> mit FromAsync und StartAsync Mustern
• Async Arbeit nicht direkt in Subscribe ausführen Tasks sauber in den Stream heben
• Async Grenzen und Scheduling Deadlocks und Context Leaks vermeiden
• Overhead messen und abstimmen Trade offs gegenüber reinem async und await
Modul 7: Testen und Debuggen von Rx.NET
• Operatoren testen mit TestScheduler und virtueller Zeit
• Deterministische Assertions auf Emissionen und Zeitachsen
• Pipelines diagnostizieren Logging, Do, timestamp und materialize
• Speicherprobleme debuggen Abo Leaks und Dispose Hygiene
Modul 8: Integrationsmuster
• UI mit WPF und MVVM Commands, Property Streams und ViewModel Updates
• Backend und Services externe Ereignisse, Sockets und Message Handler abbilden
• Interop mit Async Enumerables Brücken zwischen IAsyncEnumerable und IObservable
• Packaging und Wiederverwendung Extension Methods, Fabriken und Kompositionshelfer
Modul 9: Umgang mit Quirks von Rx.NET
• Verteilungsfallstricke Plugins und Assembly Loading
• Pitfalls mit Blazor Synchronization Context und Rendering Pipeline
• Inkompatibilität von AsyncRx.NET mit .NET 10.0 aktueller Stand und sichere Alternativen
• Versionierung und Provider Pakete Abhängigkeiten gesund halten
Modul 10: Performance und Zuverlässigkeit
• Durchsatz vs Latenz Operatorkosten und Allokationen verstehen
• Operatorwahl für Geschwindigkeit unnötige Subject Nutzung vermeiden
• Backpressure artige Muster Buffering, Windowing und Drop Strategien
• Messen mit Stopwatch, Countern und Sampling Profilern
Modul 11: Praktisches Projekt mit WPF und MVVM
• End to End Design Inputs, Transformationen, Koordination, Outputs
• Reale Szenarien implementieren Benutzerereignisse, IO und Cancellation
• Bewährte Verfahren Komposition statt Vererbung und pure Funktionen an den Rändern
• Performance Auswertung Hotspots, Scheduling Entscheidungen und gezielte Korrekturen
Modul 12: Abschluss und nächste Schritte
• Checkliste für Produktionsreife Threading, Disposal, Fehlerpolitik
• Test und Diagnose Tooling Vorlagen und Konventionen
• Migration und Koexistenz mit bestehendem Event Code
• Persönlicher Fahrplan und Referenzen
Praxisnahes Lernen mit erfahrenen Trainern an Ihrem Standort für Organisationen.
Neue Fähigkeiten erlernen, angeleitet von erfahrenen Trainern von überall.