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 passen den Kursaufbau und die Inhalte an Ihre spezifischen Anforderungen und relevanten Anwendungsfälle an.
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: Scheduler 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.
Kein passender Termin dabei? Sprechen Sie uns gerne auf Ihren Wunschtermin an.