---
title: Release Notes: C#
slug: v4-5/csharp/release-notes
docTags: 
createdAt: 2023-11-15T00:54:41.303Z
---

# 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

:::hint{type="success"}
If you are upgrading from v4.x to v4.5 without adopting any new functionality there will be no changes required and all other v4.x devices will sync with v4.5 devices.

v4.5 follows semver and is backwards compatible with all previous v4 versions. All changes in v4.5 are additive and don’t require any additional work when upgrading.
:::

:::hint{type="warning"}
If you plan on adopting DQL as part of the migration to v4.5 review [Legacy-to-DQL Adoption Guide](docId\:e2ZbKPkQwYMyXW5pN4rjM)

***Note:*** All existing APIs and queries (eg. `find` , `findById` , `observe` , ect.) will remain supported for the foreseeable future. We will notify customers with advanced warning when we plan to end of life these APIs.
:::

**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 `DittoQueryResultItem`s 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)

:::hint{type="info"}
To access release notes for earlier Ditto versions, go to [v4.4](https://docs.ditto.live/v4-4) of the documentation by clicking the version picker located in the upper left corner and selecting **4.4** from the menu.
:::

