Releases: dotnet/reactive
Rx.NET v4.0.0
rxnet-v4.0.0 remove prerelease
Rx.NET v4.0.0-preview.4.build.391
rxnet-v4.0.0-preview.4.build.391 rename var
Rx.NET v4.0.0-preview.3.build.380
Add explicit windowsbase reference (#509) * add explicit windowsbase reference * set to preview 3 * Update version.json
Reactive Extensions v4 Preview 1
The first v4 preview of Rx addresses a number of issues and contains several enhancements.
The biggest enhancement is consolidating the existing packages into one main package, System.Reactive
. This will prevent most of the pain around binding redirects that were caused by #205. If you are using Rx 4.0 and need to use libraries built against Rx 3.x, then you need to also install the compatibility package System.Reactive.Compatibility
. That package contains facades with type forwarders to the new assembly so types are unified correctly. You only need this compatibility package if you are consuming a library built against 3.x. You do not need it otherwise.
There have also been other performance enhancements in the codebase and various fixes as noted below:
- #393 - use SourceLink.Create.CommandLine contributed by Cameron Taggart (ctaggart)
- #391 - Using C# 7 pattern matching features contributed by Bart J.F. De Smet (bartdesmet)
- #388 - First steps to reduce operator object layouts contributed by Bart J.F. De Smet (bartdesmet)
- #387 - Rename Omega methods contributed by Bart J.F. De Smet (bartdesmet)
- #386 - Remove unused usings in operators contributed by Bart J.F. De Smet (bartdesmet)
- #385 - Seal operators contributed by Bart J.F. De Smet (bartdesmet)
- #384 - Remove NO_PERF conditional compilation contributed by Bart J.F. De Smet (bartdesmet)
- #383 - Fixing names in authors.txt contributed by Bart J.F. De Smet (bartdesmet)
- #381 - Misc concurrency improvements contributed by Bart J.F. De Smet (bartdesmet)
- #380 - Some improvements to internal types contributed by Bart J.F. De Smet (bartdesmet)
- #379 - Misc. improvements to Disposable types contributed by Bart J.F. De Smet (bartdesmet)
- #378 - Fixing XML doc comments contributed by Bart J.F. De Smet (bartdesmet)
- #377 - Misc. improvements to subjects contributed by Bart J.F. De Smet (bartdesmet)
- #376 - Some improvements to core classes contributed by Bart J.F. De Smet (bartdesmet)
- #375 - Cleanup of TaskObservableExtensions contributed by Bart J.F. De Smet (bartdesmet)
- #374 - Eta reduction of some lambdas contributed by Bart J.F. De Smet (bartdesmet)
- #373 - Using some C# 6.0 features contributed by Bart J.F. De Smet (bartdesmet)
- #372 - Removing a few conditional compilation symbols contributed by Bart J.F. De Smet (bartdesmet)
- #371 - Remove conditional support for expression trees contributed by Bart J.F. De Smet (bartdesmet)
- #369 - Removing conditional usage of TLS contributed by Bart J.F. De Smet (bartdesmet)
- #368 - Removing conditional use of ConditionalWeakTable contributed by Bart J.F. De Smet (bartdesmet)
- #367 - Removing conditional compilation for TPL contributed by Bart J.F. De Smet (bartdesmet)
- #365 - Removing remants of Windows Phone 7 support contributed by Bart J.F. De Smet (bartdesmet)
- #364 - Removing conditional compilation for Silverlight contributed by Bart J.F. De Smet (bartdesmet)
- #363 - Removing checks for concurrent APIs contributed by Bart J.F. De Smet (bartdesmet)
- #362 - Removing checks for WeakReference contributed by Bart J.F. De Smet (bartdesmet)
- #361 - Task.Delay exists on all platforms now contributed by Bart J.F. De Smet (bartdesmet)
- #360 - Removing traces of a backport of Semaphore contributed by Bart J.F. De Smet (bartdesmet)
- #359 - All timers now have the self-rooting behavior contributed by Bart J.F. De Smet (bartdesmet)
- #358 - Using nameof when looking up members through reflection contributed by Bart J.F. De Smet (bartdesmet)
- #357 - Removing checks for absence of higher arity delegate types contributed by Bart J.F. De Smet (bartdesmet)
- #356 - Removing check for 64-bit interlocked instructions contributed by Bart J.F. De Smet (bartdesmet)
- #355 - Removing check for absence of Stopwatch contributed by Bart J.F. De Smet (bartdesmet)
- #354 - Removing checks for EventArgs constraints contributed by Bart J.F. De Smet (bartdesmet)
- #353 - Delegate invocation using C# 6.0 syntax contributed by Bart J.F. De Smet (bartdesmet)
- #352 - Removing checks for absence of SynchronizationContext contributed by Bart J.F. De Smet (bartdesmet)
- #351 - Removing checks for absence of HashSet contributed by Bart J.F. De Smet (bartdesmet)
- #350 - Removing TASKEX symbol contributed by Bart J.F. De Smet (bartdesmet)
- #349 - Removing some unused usings contributed by Bart J.F. De Smet (bartdesmet)
- #348 - Removing backported BCL types contributed by Bart J.F. De Smet (bartdesmet)
- #347 - Using nameof in more places contributed by Bart J.F. De Smet (bartdesmet)
- #346 - Cleaning up XML doc comments contributed by Bart J.F. De Smet (bartdesmet)
- #345 - Use of Interlocked on volatile fields no longer raises CS0420 contributed by Bart J.F. De Smet (bartdesmet)
- #344 - Removing NO_VARIANCE checks contributed by Bart J.F. De Smet (bartdesmet)
- #338 - enable source link contributed by Cameron Taggart (ctaggart)
- #337 - [WIP] enable source link contributed by Cameron Taggart (ctaggart)
- #321 - AsyncEnumerable.ToObservable: Use Try...-methods on TaskCompletionSources to avoid unexpected exceptions when the iterator is cancelled. contributed by Daniel C. Weber (danielcweber)
- #305 - Incompatibility between System.Reactive.Core and System.Reactive.Windows.Threading 3.1.1 NuGet packages
- #302 - Let IOrderedAsyncQueryable implement IOrderedAsyncQueryable contributed by Axel Heer (axelheer)...
Rx and Ix 3.1.1
Minor packaging update that ensures the NETStandard.Library
meta-package isn't referenced by projects targeting the Desktop .NET Framework (4.5 and 4.6).
Rx and Ix 3.1
The Reactive and Interactive Extensions v3.1 is a minor update to the libraries, consisting mostly of bug fixes and small enhancements.
The full list of items fixed/improved is available here, but below are some key highlights:
- #205 Implement an assembly version strategy
- #237 Rewrite of Ix Async to reduce memory allocations, make the code easier to read and fix many bugs
- #273 Restored access to the
PlatformEnlightenmentProvider.Current
setter
Many thanks to @aelij for his excellent work in converting Ix Async to use async
and await
in #170.
Note for Desktop .NET Users: As part of #205, we now have a strict assembly versioning scheme in place. This may require binding redirects to work correctly. NuGet will generate these for you, so there's nothing you should have to do. If you're seeing issues, before reporting a bug, please verify you have AutoGenerateBindingRedirects
enabled as described here. You may need to manually add it some older projects.
Reactive and Interactive Extensions for .NET 3.0
Major update from version 2.2.5 adding support for .NET Core and the .NET Platform Standard. In addition to .NET Core support, a few bugs were addressed.
This update is the first after moving to the .NET Foundation. As such, there are a few noteworthy items:
- The strong name key has been changed. The old key was a Microsoft key that could not be fully checked-in. The new key is checked in, allowing anyone to create custom builds easily.
The package names have all changed - The NuGet package names have changed. The
Rx-*
andIx-*
packages have been renamed to match their library names, keeping inline with the rest of .NET Core. As the strong name key had to change, we did update the old packages as the new binaries incompatible due to strong name conflicts. They are fully source-code compatible.- Use
System.Reactive
instead ofRx-Main
- Use
System.Interactive
instead ofIx-Main
- Use
System.Interactive.Async
instead ofIx-Async
- Use
- The supported platforms are .NET Platform Standard 1.0 and higher. This means the following minimum versions:
- .NET Core App 1.0
- .NET 4.5
- Windows 8
- Windows Phone 8 Silverlight
- Windows Phone 8.1
- On Visual Studio 2012 and 2013, NuGet 2.12 is required. On VS 2015, NuGet 3.4 or later is required.
As always, Rx and Ix have enhanced support per-platform, ensuring an optimal experience based on your target runtime.
Reactive Extensions for .NET version 2.2.5
Minor update from version 2.2.4 to update the support for Universal applications. No new functionality was added for this release.
Closed Issues
Reactive Extensions version 2.2.4
This is a minor update from Rx.NET v2.2.3 which includes two fixes. First is the support for Windows Universal libraries, and the second is ReplaySubject
performance enhancements. With the help from the community, we are moving the Reactive Extensions forward and we have plenty more coming soon.
Windows Universal Support
With the release of Windows Phone 8.1, it is now possible to use the Windows Runtime to build apps that can target each form factor in the family of Windows devices. Using the universal Windows app project templates, you can now create one app where your business logic can be surfaced up through a user experience relevant to the device. This unified approach to app development means that your app has the potential to reach not just Windows phones and tablets, but Windows laptops and workstations as well.
Previously, our NuGet packages did not support Universal Windows Apps, but now, thanks to work from @paulcbetts, you can now write Universal Apps using the Reactive Extensions.
ReplaySubject Performance Enhancements
During the development of the Reactive Extensions version 2.0+, we have had a focus on performance as noted in Bart de Smet's post on the Reactive Extensions Team Blog. One of the overlooked areas of the performance work we did as Subjects.
We had the community step up in this regard to helping performance better on the ReplaySubject
. The details are laid out in this very detailed blog post.
Many thanks to @LeeCampbell for his hard work for this feature.
Patterns in Using Generic Virtual Methods Issues
Some patterns in using generic virtual methods may cause increases in compilation time and size on disk when used with Microsoft pre-compilation technologies such as NGEN. This bug fix removes those patterns so that Microsoft pre-compilation technologies such as NGEN work better with the Reactive Extensions library. This change was tested and found to have no noticeable performance impact, other than stabilizing compilation times and the size on disk.
Closed Issues
Changelog
- 4be7549 - Updating import.targets for flattening
- d56e5d1 - Add Wpa81 to BuildAll.proj
- 7041c40 - Universal Unit Tests aren't A Thing yet
- b94b695 - Add Configurations for Wpa81
- 03368da - Add a Windows 8.1 + Windows Phone 8.1 Target
- 7ea7fbb - Some patterns in using generic virtual methods may cause increases in compilation time and memory usage
- 0815ac7 - Included multiple disposals to Replay UnitTests
- 98ad574 - Remove comments
- 5449869 - Adding ReplaySubject perf improvements
- 044afd5 - Use background thread for long-running ThreadPoolScheduler