SDK Guides
C#

Release Notes: C#

C# Version 4.5.4

Fixed

Intermittent crash when syncing over Bluetooth LE GATT with "DataTooLarge" error (#9789)

Properly cleans up native resources while disposing of a Ditto instance. Trying to access a disposed Ditto instance will now throw an `ObjectDisposedException`. (#11065)

Fixed: Calling `Dispose()` on a DittoQueryResult instance would now directly dispose its Items collection. (#11628)

C# Version 4.5.3

Fixed

  • Bug where certificate request would not check identity data hash with JWT's (#11537)
  • Bug where the certificate request would fail with big permissions (#11537)

C# Version 4.5.2

Fixed

Windows P2P LAN only used IPv4 while advertising the service on IPv6 too (#11308)

C# Version 4.5.1

Added

  • Support for light JWTs (separating identity data) (#11063)

Fixed

  • A potential panic if an f64::Nan is compared to a u64 or i64 during collation.

C# Version 4.5.0



Added

  • Support for .NET MAUI for iOS and Android. (#5794)
  • Support for Xamarin Android.. (#5082)
  • Support for Xamarin iOS Simulators. (#6081)
  • Ditto.Version static property providing access to the semantic version of the SDK. (#10223)
  • class DittoQueryResultItem representing a single match of a DQL query. (#10319, 10394)
  • class DittoQueryResult representing the result of executing a DQL query. (#10319, #10394)
  • method ExecuteAsync() on DittoStore that executes a DQL query and returns a DittoQueryResult containing DittoQueryResultItems for each match. (#10319, #10394)
  • class DittoSyncSubscription that configures Ditto to receive updates from remote peers about documents matching the subscription's query. It's a DQL counterpart and successor to the old Subscription class. (#10395, #10394)
  • method RegisterSubscription() on DittoSync that installs and returns a SyncSubscription. (#10395, #10394)
  • property Subscriptions on DittoSync providing access to all currently active sync subscriptions. (#10395, #10394)
  • property Sync on Ditto of type DittoSync to serve as an entry point for sync functionality. (#10395, #10394)
  • class DittoStoreObserver on DittoStore that configures Ditto to invoke an observation handler whenever results for its query change. (#10396, #10394)
  • method RegisterObserver() on DittoStore that installs and returns a DittoStoreObserver. (#10396, #10394)
  • property Observers on DittoStore providing access to all currently active store observers. (#10396, #10394)
  • The SmallPeerInfo property to Ditto allowing you to configure the collection and sync of Small Peer Info. (#10517

Deprecated

  • DittoLanConfig.MulticastEnabled property. (#10126)

Changed

  • Ditto .NET SDK for iOS and macOS is built and tested with Xcode 14.3.1. (#10177)

Improved

  • Performance by implementing bipartite distance-aware mesh topology. (#10632)
  • Memory usage and performance of Documents. (#10736)
  • Reduced metadata accumulation after eviction by clearing remote summaries. (#7065)
  • Serialization performance. (#9112)

Fixed

  • Bluetooth and LAN transports fail to stop on Windows and Linux. (#8809)
  • Made logging more robust to failed writes in a specific set of circumstances. (#10077)
  • Addressed a warning from SQLite that sometimes occurs on startup about a schema change. (#10501)
  • Presence graph may not show all active connections. (#10507)
  • When observing peers, isConnectedToDittoCloud property may be incorrect. (#10534)
  • initial logging events now use the same format as all other logs. (#10611)
  • mesh could choose random connections. (#10711)
  • A bug with Ditto's internal crash handler. (#10022)