Skip to content

Features

Dave Sexton edited this page Jul 9, 2016 · 9 revisions

Features

  • Works immediately with pre-built transport providers.
    • TCP with binary serialization is provided by the optional Qactive.Providers.Tcp package on NuGet.
    • Extensible so that any kind of custom transport and/or serialization mechanism can be used.
  • Simple server factory methods for hosting a Qbservable service.
    • Supports hosting any IObservable<T> query as a service (hot or cold).
    • Supports hosting any IQbservable<T> query as a service.
  • Simple client factory methods for acquiring a Qbservable service.
    • You must only specify the end point address and the expected return type. The result is an IQbservable<T> that you can query and Subscribe.
    • All Qbservable Rx operators are supported.
  • Automatically serialized Expression trees.
    • Dynamic expressions and debug info expressions are not supported. All other types of expressions are supported.
  • Automatically serialized anonymous types.
  • Immediate evaluation of local members and closures (optional; default behavior)
    • Compiler-generated methods are executed locally and replaced with their return values before the expression is transmitted to the server. This includes iterator blocks, which are serialized as List<T>.
    • Evaluation assumes that local methods are never executed for their side-effects. Actions (void-returning methods) cause an exception. Do not depend upon the order in which members are invoked.
  • Full duplex communication (optional; default behavior for IObservable<T> closures)
    • Must opt-in on server.
    • May opt-in on client for full duplex communication of all local members; automatic for IObservable<T> closures.
    • Duplex communication automatically supports iterator blocks.
  • Designed with extensibility in mind; e.g., supports custom Qbservable service providers, protocols and sinks.
  • Extensive tracing for logging and diagnostics.
Clone this wiki locally