Release Notes
Build 1.0.2787.0 10/28/2010
Rx.NET
-
- Added XNA 4.0 Xbox 360 support.
- Added Windows Phone 7 support.
- Fixed xna crash in CurrentThreadScheduler.
- Removed conflict of EnumerableEx.Zip and Enumerable.Zip on Silverlight 4.
- Fixed ForkJoin bug on empty source.
- Added drain operator.
- Added Rx extension methods to BCL via System.Reactive.ClientProfile and System.Reactive.ExtendedProfile assemblies.
- Fixed bug to ensure subjects clear observers once OnCompleted fires.
- Added support for the new C# await keyword (Observable.GetAwaiter).
- Added ToTask and ToTaskLast operators
- Added IAsyncEnumerable interface and all standard query operators for this interface.
- Fixed bug in Observable.Concat, Observable.Catch and Observable.Merge to dispose of source enumerable correctly.
- Added NuPack support (packages will be online soon)
rx.js
-
- Changed default schedulers to immediate where possible to match rx.net semantics.
Download Rx 1.0.2787.0 for .NET 3.5 SP1
Download Rx 1.0.2787.0 for .NET 4
Download Rx 1.0.2787.0 for Silverlight 3
Download Rx 1.0.2787.0 for Silverlight 4
Download Rx 1.0.2787.0 for JavaScript
Download Rx 1.0.2787.0 for all common flavors
Download Rx 1.0.2787.0 for XNA 4 XBOX 360
Download Rx 1.0.2787.0 for XNA 3.1 Zune
Download Rx 1.0.2787.0 for Windows Phone 7
Build 1.0.2698.0 9/10/2010, HotFix release
Rx.NET
-
- move testing code to separate assembly (System.Reactive.Testing) to make Rx run on .NET 4 Client profile again
- fix race condition in certain operators for OnError/OnCompleted messages
Download Rx 1.0.2698.0 for .NET 3.5 SP1
Download Rx 1.0.2698.0 for .NET 4
Download Rx 1.0.2698.0 for Silverlight 3
Download Rx 1.0.2698.0 for Silverlight 4
Download Rx 1.0.2698.0 for all common flavors
Download Rx 1.0.2698.0 for XNA 3.1 XBOX
Download Rx 1.0.2698.0 for XNA 3.1 Zune
Build 1.0.2677.0 8/27/2010
Rx.NET
-
- Fixed bugs in ForkJoin and Catch when using Immediate scheduler.
- Added download containing all common Rx flavors (.NET 3.5, .NET 4, SL3, SL4, JS).
- Added XNA 3.1 XBOX and Zune flavors.
- Added additional Publish overloads.
- Removed public helper from DistinctUntil.
- Changed FromAsyncPattern operators to use Immediate Scheduler on async subject.
- Added helper code for testing Rx using TestScheduler (System.Reactive.Testing namespace).
RxJS
-
- Added virtual & test scheduler.
- Made currentThread scheduler use priority queue to optimize performance.
- Added dojo deferred support.
- Added bindings for Microsoft Translator & Google Language.
- Made 2 small perf fixes suggested by Douglas Crockford.
Download Rx 1.0.2677.0 for .NET 3.5 SP1
Download Rx 1.0.2677.0 for .NET 4
Download Rx 1.0.2677.0 for Silverlight 3
Download Rx 1.0.2677.0 for Silverlight 4
Download Rx 1.0.2677.0 for all common flavors
Download Rx 1.0.2677.0 for XNA 3.1 XBOX
Download Rx 1.0.2677.0 for XNA 3.1 Zune
Build 1.0.2617.0 07/15/2010
Rx.NET
-
- Fixed GC issue with ThreadPool Timer.
- Made lock in CompositeDisposable smaller.
- Fixed deadlock in ForkJoin when using Immediate scheduler.
- Changed order of arguments for Generate* operators to match C# for pattern based on feedback from C# Team.
- Changed FromAsyncPattern to catch exceptions thrown in BeginInvoke.
- Made ConnectableObservable.Connect block subsequent calls until first call is complete.
- Added virtual scheduler and test scheduler
- Made MaxBy & MinBy operators return all values that match.
- Renamed EnumerableEx.LongCount to EnumerablEx.LongCountEnumerable to avoid naming conflict with Enumerable.LongCount.
Rx JS
-
- Added Virtual Earth and Google Maps bindings.
- Fixed crash in For operator with use of Immediate scheduler.
- Changed order of arguments for Generate* operators to match JavaScript for pattern based on feedback from C# Team.
Download Rx 1.0.2617.0 for .NET 3.5 SP1
Download Rx 1.0.2617.0 for .NET 4
Download Rx 1.0.2617.0 for Silverlight 3
Download Rx 1.0.2617.0 for Silverlight 4
Build 1.0.2563.0 06/09/2010
Rx.NET
-
- Separated SL3 and SL4 installers
- Added EventLoopScheduler (executes on dedicated thread)
- Ported many operators from System.Reactive to System.Interactive
- Removed Amb & Merge from System.Interactive in favor of ToObservable.Amb using System.Reactive
- Added FromEvent overload for non-generic EventHandler
- Fixed performance in N-ary overload of ForkJoin
Rx JS
-
- Improved MooTools support
Download Rx 1.0.2563.0 for .NET 3.5 SP1
Download Rx 1.0.2563.0 for .NET 4
Download Rx 1.0.2563.0 for Silverlight 3
Download Rx 1.0.2563.0 for Silverlight 4
Build 1.0.2521.0 05/14/2010
Rx .NET
-
- Added Iterate & ListObservable for enumerable iteration pattern
- Added schedulers to subjects to control synchronization
- Added co and contravariance for IConnectableObservable<T>, IGroupedObservable<T> & ISubject<T1,T2>
- Added Rx equivalent of IQueryable: IQbservable including interfaces & operators.
- Fixed Run operators exception behavior
- Enabled sidebyside install of different versions of Rx (the previous version, 1.0.2441.0 and future versions)
- Install location changed for above change to %PROGRAMFILES%\Microsoft Cloud Programmability\Reactive Extensions\<rx version>\<.net version>
Rx JS
-
- Added additional bindings for dojo, ExtJs, MooTools, Prototype, JQuery, Yui3
- Added new bindings for Raphael
- Fixed nullness issue in mutableDisposable
- Fixed order issues in subscription, Switch & Amb
- Fixed "concurrency" issue in subjects
- Fixed Do exception behavior
- Added Do observable overload
- · fixed Defer unsubscription bug
- · added While, If, DoWhile, Case, For and Let operators.
Download Rx 1.0.2521.0 for .NET 3.5 SP1
Download Rx 1.0.2521.0 for .NET 4
Download Rx 1.0.2521.0 for Silverlight 4
Build 1.0.2441.0 04/14/2010
Rx .NET
-
- Added BufferWithTimeOrCount.
- Changed ForkJoin to take the last value from each source.
- Peformed FxCop naming cleanup work.
- Removed FutureDisposable in favor of MutableDisposable.
- Added Sequential operators like While, If, Case etc…
- Added SkipLast & TakeLast.
- Made fixes to CurrentThreadScheduler & NewThreadScheduler.
- Added Scan0.
- Made Sample fire last sample area on Oncompleted & have abort semantics on Error.
- Made Buffers have abort semantics on Error.
- Moved to .NET 4 RTM
Rx JS
-
- Changed distribution from MSI installer to ZIP file
- Added BufferWithTimeOrCount.
- Added ForkJoin.
- Added SkipLast & TakeLast.
- Removed FutureDisposable in favor of MutableDisposable.
- Breakout support for html api into separate file (rx.html.js).
- Added jQuery support (rx.jquery.js).
- Added dojo support (rx.dojo.js).
- Added MooTools support (rx.mootools.js).
- Added Prototype support (rx.prototypel.js).
- Added ExtJS support (rx.extjs.js).
- Added Yui3 support (rx.yui3.js).
- Added aggregates such as Sum, Count, IsEmpty etc… (rx.aggregates.js).
- Added joins support (rx.joins.js).
- Changed default schedulers for various API.
- Made List implementation public.
- Made several to TakeUntil, Scan1,Take, SkipWhile, Repeat, Retry, Catch, StartWith, Subjects, ToAsync, Start.
- Make schedulers have own notion of time (Now()).
- Added Scan0.
- Made Sample fire last sample area on Oncompleted & have abort semantics on Error.
- Made Buffers have abort semantics on Error.
- Fixed Aggregate, Count, Sum & Average behavior on empty observables.
- Added Samples for all different library integration points
- Added readable (debug) version of library integration points.
Download Rx 1.0.2441.0 for .NET 3.5 SP1
Download Rx 1.0.2441.0 for .NET 4
Download Rx 1.0.2441.0 for Silverlight 3 & 4
Build 1.0.2369.0 03/17/2010
- Reactive Extensions for JavaScript, initial release.
Build 1.0.2350.0 03/15/2010
- Added System.Observable to redist.txt.
- Changed Timeout to work on multiple notifications.
- Renamed HoldUntilChanged to DistinctUntilChanged.
- Made Semaphore for Silverlight internal.
- Adding Zip overload for IO<T> and IE<T> zipping.
- Changed last Throttle message to come out at Completion time and fix concurrency bug in Throttle.
- Changed OnErrorResumeNext to always complete.
- Changed Delay error semantics to be abort.
- Added ObserveOn/SubscribeOn on IScheduler.
- Fixed finally behavior.
- Minimized locks in subjects.
- Added MinBy, MaxBy operators as well as Min, Max with comparers.
- Added DistinctBy for Enumerable.
Build 1.0.2317.0 03/05/2010
- Moved to RC for .NET 4 build.
- Moved IObservable & IObserver to seperate assembly: System.Observable.dll.
- Removed IsCritical and its usage on exceptions thrown inside Rx operators.
- Fixed bugs in Enumerable->Observable conversions.
- Fixed threading bugs in EnumerableEx Merge and Amb operator.
- Changed signature of Buffer to expose an IList<T> as opposed to an IEnumerable<T>.
- Fixed Buffer behavior, with regards to flushing last frame and non-overlapping windows (count < skip).
- Renamed Buffer to BufferWithTime and BufferWithCount.
- Introduced BufferWithCount for IEnumerable.
- Renamed Hide to AsObservable, add AsObserver, AsEnumerator.
- Moved Schedulers & Disposables to System.CoreEx.
- Added schedulers to subjects.
- Enforced abort semantics for all exceptions in Rx.
- Added OfType and Cast to Observable, plus additional Do methods + parity in EnumerableEx.
- Reworked GroupBy to be lazy & performant.
- Removed deadlocks throughout Rx.
- Fixed reentrancy bug in Scheduler.
- Added RefCountDisposable.
- Removed LockDisposable.
- Added AsyncLock.
- Changed TimeSpan.MaxValue to not be a sentinel value for Infinite.
- Changed IScheduler argument positioning to be last where possible.
- Moved schedulers to System.Concurrency.
- Renamed Scheduler.Now to Scheduler.CurrentThread.
- Renamed Scheduler.Later to Scheduler.ThreadPool.
- Removed Scheduler.Default.
- Added Scheduler.Immediate and ImmediateScheduler.
- Added Scheduler.TaskPool and TaskPoolScheduler where Tasks are available.
- Added Scheduler.NewThread and NewThreadScheduler.
- Added SynchronizationContextScheduler.
- Added IConnectableObservable.
- Added ConnectableObservable.
- Removed EventSubject.
- Changed Publish/Replay/Prune to return IConnectableObservables.
- Added RefCount operator.
- Made all subjects not disposable.
- Added schedulers to asynchronous operations.
- Made Rx assemblies CLSCompliant.
- Added aggregate operators.
- Removed properties from Rx.
- Removed timedrift from time based operators.
- Changed default schedulers for operators.
- Cleaned up Generate and GenerateWithTime overloads.
- Renamed GroupDisposable to CompositeDisposable.
- Moved reference required overloads of extension methods to defining namespace.
- Many other small bug fixes.
- Removed BooleanSignal.
- Fixed timing bug in ControlScheduler.
Build 1.0.2149.0 12/22/2009
- Include version number in Setup Title & UAC elevation prompt
- Fix assembly file version to state 1.0.2149.0 instead of 0.9.00
- Fix typo in license
- Fix deadlock issue with Scheduler.Now by installing trampoline at Subscribe
- Bring EnumerableEx.Using inline with Observable.Using
- Remove extra firing from Generate timer
Build 1.0.2144.0 12/18/2009
- License changes based on forum feedback
- Add FromAsyncPattern to Silverlight
- Remove Observable.Context and replace with IScheduler mechanism.
- Perf fixes for Last*,First* and Single*. Adding Any, All
- Additional StartWith overloads
- Fix bug in EnumerableEx.Memoize
- Fix bug in EnumerableEx.Retry
- Fix bug in EnumerableEx.Merge
- Add ObserveOn & SubscribeOn for Control and Dispatcher schedulers
- Removed all time based operators which takes an Int instead of a TimeSpan or DateTime
- Generalized the Using operator by adding a type parameter TResource constrained to implement IDisposable
- Renamed BufferWithTime to Buffer since there is no ambiguity between the two now
- Renamed Until to TakeUntil
- Renamed WaitUntil to SkipUntil
- Added various disposables in System.Disposables
- Fixed a bug in Observable.Join
- Added Observable.IsEmpty
- Changed DateTime to DateTimeOffset
- Setup will automatically uninstall previous releases
Build 1.0.2067.0 11/20/2009
- Improved performance of FromEvent.
- TimeInterval & TimeStamped now have a ToString() to help debugability.
- A few general performance improvements regarding Notifications, including Generate and various time based operators
- Fixed semantics of Delay
- Improve performance of Throttle
Known issue: need to uninstall previous build before installing new build (will be fixed in next release).
Build 1.0.2052.0 11/17/2009, First Release
There are 3 versions of Rx: Rx for .NET 3.5 Sp1, Rx for Silverlight 3 and Rx for .NET 4 Beta 2.
All 3 versions can be downloaded from the Devlabs Rx project page.
The installer ships the following dlls:
System.CoreEx, api used by both System.Reactive and System.Interactive:
- Additional Action<,> and Func<,> types (for .NET 3.5 SP1 only, matches types in .NET 4)
- TimeInterval<T> & TimeStamped<T> adds time information to a value.
- IEvent<TEventArgs> wraps existing .NET event values.
- Notification<T> to materialize next/error/completed notifications.
- SynchronizationContexts provides access to common SynchronizationContexts.
- Unit, represents void for use in generics.
- BooleanSignal, a boolean state locking mechanism wrapping Semaphore.
- Semaphore adds the semaphore functionality to Silverlight 3.
System.Reactive, api related to IObservable & IObserver.
- IObservable<T> & IObserver<T>, the base interfaces for Reactive (lives in mscorlib.dll for .NET 4).
- Numerous Observable & Observer sequence operators:
-
- Standard LINQ operaturs such as: Select, Where, GroupBy, SelectMany
- combining operations such as Zip Repeat, Merge, Amb, Concat and StartWith.
- caching operations such as: Share, Memoize, MemoizeAll and Publish.
- creation operators such as: Return, Throw, Repeat and Generate.
- threading operators such as: Asynchronous, Synchronize, SubscribeOn, ObserveOn.
- exception handling operators such as: Catch, Finally, Retry and OnErrorResumeNext.
- evaluation operators such as: Run & Do.
- stream manipulation operators such as: Scan and Aggregate
- time based operators: Timestamp, Interval, Delay,
- remoting operator: Remotable
- Various Subjects, publish & subscribe (pub/sub) for Reactive with different caching policies.
- System.Joins.*, implements join-calculus on top of Rx.
System.Interactive, backport of Observable sequence operators that apply to IEnumerable as well.
- combining operations such as Zip (for .NET 3.5 SP1 and Silverlight 3), Repeat, Merge, Amb, Concat and StartWith.
- caching operations such as: Share, Memoize, MemoizeAll and Publish.
- creation operators such as: Return, Throw, Repeat and Generate.
- threading operators such as: Asynchronous & Synchronize.
- exception handling operators such as: Catch, Finally, Retry and OnErrorResumeNext.
- evaluation operators such as: Run & Do.
- stream manipulation operators such as: Scan.
- remoting operator: Remotable.
System.Threading, backport of Parallel Extensions for .NET 4 to .NET 3.5 SP1
- Task<T> for executing asynchronous operations.
- Concurrent Collections such as ConcurrentStack, ConcurentQueue ad ConcurrentDictionary.
- PLINQ for writing parallel queries.
- addition Threading operations such as Barrier,SpinLock and SpinWait.
·