*Wir wissen, dass jedes Team seine eigenen Bedürfnisse und Anforderungen hat. Deshalb können wir den Schulungsplan je 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