Skip to content

9.0.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 06:22
· 1 commit to 4e740403b7998e4dcdbace2d67ab3b5d542208a6 since this release

Summary

ReactiveUI.Binding 9.0.0 is a major version because the .NET 11 assemblies are built without runtime-async. The public API does not change.

Why runtime-async is off

  • In .NET 10 and older, the C# compiler adds a state machine to each async method. The state machine stores the local variables and tracks where to resume after each await.
  • .NET 11 adds a feature called runtime-async. The runtime does this work instead, so async code can run faster.
  • ReactiveUI.Binding 8.x built the .NET 11 assemblies with runtime-async on. The .NET 8 to 10 and .NET Framework assemblies never used it.
  • The feature needs a runtime that supports it. CoreCLR does, and Mono does not.
  • Blazor WebAssembly runs on Mono unless you opt into CoreCLR. Avalonia's browser apps, WASI, Android API levels 21 to 23, and apps that set UseMonoRuntime=true also run on Mono.
  • ReactiveUI.Binding built with runtime-async can fail in every app that runs on Mono.
  • A NuGet package ships one build for every runtime, so ReactiveUI.Binding leaves the feature off. This matches Refit 16.0.0.
  • Apps that target .NET 10 or older are not affected. Apps on .NET 11 that run on CoreCLR do not get the speed gain inside ReactiveUI.Binding's own async code.
  • You can turn on runtime-async in your own app if it runs only on CoreCLR.

Other changes

  • BindCommandUnsafe and BindInteractionUnsafe now dispose the binding they replace when a link in the control chain changes. Before, each change added another live binding, so a command ran once per binding and stayed attached after disposal (#163).

🗞️ What's Changed

🐛 Fixes

📦 Dependencies

  • 43bee0b chore(deps): update reactiveui to 25.1.1 (#164) renovate[bot]
  • 1687e2e chore(deps): update dependency reactiveui to v25 (#161) renovate[bot]
  • b0e6a29 chore(deps): update dependency tunit to 1.72.4 (#154) renovate[bot]

🔗 Full Changelog: v8.8.1...v9.0.0

🙌 Contributions

💖 Thanks to all the contributors: @glennawatson

🤖 Automated services that contributed: renovate[bot]