Qactive 2.0.4
New In This Release
- Added .NET 4.0 to the NuGet packages.
- Fixed a major bug that caused large-ish reads in the transport layer to sometimes get truncated, resulting in an inappropriate exception stating that the stream ended without sending all of the data.
- Added support for passing in subjects as duplex observables and lists as duplex enumerables, or any types implementing
IObservable<T>
orIEnumerable<T>
in positions where either of those interfaces are explicitly required, without having to callAsObservable
orAsEnumerable
first. - Support for non-closure duplex callbacks. For example, you can now pass observables as the duration arguments of the
Window
operator; however, this will always result in a duplex callback and duplex must be enabled on the server. (In a future release,Qbservable.Provider
will be supported as well, which will enable generators to be executed server-side.) - Improved error handling.
New In Recent Releases
- Fixed a major regression bug that caused duplex observable subscriptions to hang indefinitely without receiving any notifications.
- Fixed a major regression bug regarding data logging within secure services.
- Started writing unit tests for the TCP provider. (Note that a couple are failing due to race conditions and another due to reference issues. They'll be resolved in the future.)
- Fixed a serialization error in the .NET 4.5.2 assemblies by adding a .NET 4.5.2 specific assembly for Qactive.dll in the NuGet package. The portable version still exists but it's not used by any other packages yet.
- Fixed a bug that caused an error for nested generic type arguments that are anonymous types, sometimes causing queries that contain subqueries to fail during pre-processing on the client (with error messages that don't really indicate the problem.)
- Fixed a bug with array handling in expression trees that caused errors for initializers of arrays with anonymous types, or any array bounds expressions. (Also, the error thrown wasn't clear on the actual problem, since it was a bug.)
- Now logging subscriptions and unsubscribing (as Info), duplex enumerations (as Info) and all notifications and enumerated values (as Verbose), via the "Qactive" TraceSource. This source is set to Info by default. It can be changed via the app.config (it's just a typical .NET TraceSource named "Qactive") or programmatically (via the
Qactive.QactiveTraceSources
class). - Additional logging improvements.
- Improved TCP negotiation to accept the client's local ID, which is written to diagnostic output so it can be used for event correlation.
- Some more unit tests and test improvements.
Download from NuGet
Qactive.Providers.Tcp
Depends on Rx, Qactive.Providers.Streaming, Qactive.Expressions and Qactive
Runtimes: .NET Framework 4.6.1, .NET Framework 4.5.2, .NET Framework 4.0
Qactive.Providers.Streaming
Depends on Rx, Qactive.Expressions and Qactive
Runtimes: .NET Framework 4.6.1, .NET Framework 4.5.2, .NET Framework 4.0
Qactive
Depends on Rx
Runtimes: .NET Framework 4.6.1, .NET Framework 4.5.2, .NET Framework 4.0, ASP.NET Core 1.0, Windows 8, Windows Phone 8.1, Xamarin.Android, Xamarin.iOS
Qactive.Expressions
No dependencies
Runtimes: .NET Framework 4.6.1, .NET Framework 4.5.2, .NET Framework 4.0