Rx.NET v7.0 Released
In this video, Ian Griffiths announces Rx.NET 7.0, highlighting a potential 95MB reduction in application deployment size by moving UI framework support out of the main System.Reactive package into separate NuGet packages (System.Reactive.Windows.Forms, System.Reactive.Wpf, System.Reactive.Uwp, and System.Reactive.WindowsRuntime).
He explains the three breaking changes:
- dropping .NET 6 and 7 support (now targeting .NET 8+ and tested on 8–10),
- fixing a nullable annotation bug in OfType (no runtime change),
- the UI-package split that prevents Windows TFMs from implicitly pulling in WPF/WinForms, which previously bloated self-contained deployments (example growing from 102MB to 197MB with Rx 6.1).
Rx 7.0 keeps binary compatibility by retaining UI code at runtime but hiding it from reference assemblies, with analyzers guiding developers to add the right package; he also recounts the historical "great unification" decision and invites feedback via GitHub for community suggestions of v8.0 features.
Full documentation is available at Introduction to Rx.NET.
- 00:00 Rx.NET 7.0 Overview
- 00:30 Breaking Change One TFMs
- 01:51 TFM Confusion Explained
- 03:18 Breaking Change Two Nullability
- 04:37 Big Change UI Packages Split
- 07:21 Demo The 95MB Problem
- 12:51 Rx 7 Deployment Results
- 15:14 Source vs Binary Breaking
- 18:10 ReactiveUI Still Works
- 22:34 Why This Happened
- 26:22 Wrap Up Next Steps
Published on:
Learn moreRelated posts
Providing comparative context with DAX Calculated Tables under Row Level Security
Row Level Security in Power BI solves one problem (who sees what) but introduces another - comparisons across the full dataset become impossib...
How to Implement Generation in RAG
Understand the generation step of RAG: how LLMs use augmented context to produce grounded responses, how to enforce structured outputs with Py...
How to Implement Augmentation in RAG
Understand the augmentation step of RAG: how retrieved documents are structured into prompts, how metadata and citations improve response qual...
How to Implement Retrieval in RAG
Understand the retrieval step of RAG: Learn how database queries, keyword search, vector search, and hybrid approaches find the right informat...
TypeDeclaration: An Abstraction for Understanding JSON Schema
The Corvus.Json.CodeGeneration library analyses JSON Schema and builds a TypeDeclaration tree that maps schema patterns to code patterns. The ...
Optimising DAX: Practical Examples
The final post in the Optimising DAX series: the CALCULATE trap, variables and IF.EAGER, slicer costs, and a practical approach to isolating s...
Optimising DAX: Data Materialisation
Data materialisation is when the storage engine gives up on efficient processing and rebuilds the entire table. This post explains what trigge...
Building API Reference Documentation From Code, Part 2: Under the Hood
A deep dive into the cross-assembly linking, PDB-based source links, TFM scanning, enrichment merging, and search indexing that power our API ...
Building API Reference Documentation From Code, Part 1: The Pipeline
We generate about 8,800 API reference pages from 16 libraries across two engine versions, with source links, TFM availability badges, and hand...
Writing Effective Copilot Instructions for Complex Codebases
A flat copilot-instructions.md works for small projects. When your codebase hits 500k lines, 19 projects, and multiple code generators, you ne...