Realm Xamarin v1.2.0 Release Notes

Release Date: 2017-04-04 // about 7 years ago
  • ๐ŸŽ Realm is now being distributed as a .NET Standard 1.4 library as this is a requirement for supporting UWP. While internally that is a rather big move, applications using it should not be affected. After the upgrade, you'll see a number of new NuGet dependencies being added - those are reference assemblies, already part of mscorlib, so will not affect your application's size or performance. Additionally, we're releasing a new platform specific DataBinding package that contains helper methods that enable two-way databinding scenarios by automatically creating transactions when setting a property.

    โฌ†๏ธ If you encounter any issues after the upgrade, we recommend clearing the bin and obj folders and restarting Xamarin Studio. If this doesn't help, please file an issue explaining your solution setup and the type of problems you encounter.

    Files written with this version cannot be read by earlier versions of Realm. This version is not compatible with versions of the Realm Object Server lower than 1.3.0.

    ๐Ÿ› Bug fixes

    • ๐Ÿ›  Fixes the RemoveAll(string) overload to work correctly. (#1288)
    • Resolved an issue that would lead to crashes when refreshing the token for an invalid session. (#1289)
    • The IObservable returned from session.GetProgressObservable will correctly call OnComplete when created with mode: ProgressMode.ForCurrentlyOutstandingWork. (#1292)
    • ๐Ÿ›  Fixed a memory leak when accessing string properties. (#1318)
    • ๐Ÿ›  Fixes an issue when using EncryptionKey with synchronized realms. (#1322)

    โœจ Enhancements

    • Introduce APIs for safely passing objects between threads. Create a thread-safe reference to a thread-confined object by passing it to the ThreadSafeReference.Create factory method, which you can then safely pass to another thread to resolve in the new realm with Realm.ResolveReference. (#1300)
    • ๐Ÿ”Œ Introduce API for attempting to reconnect all sessions. This could be used in conjunction with the connectivity plugin to monitor for connectivity changes and proactively request reconnecting, rather than rely on the built-in retry mechanism. (#1310)
    • Enable sorting over to-one relationships, e.g. realm.All<Parent>().OrderBy(p => p.Child.Age). (#1313)
    • Introduce a string.Like extension method that can be used in LINQ queries against the underlying database engine. (#1311)
    • โž• Add an User.IsAdmin property that indicates whether a user is a Realm Object Server administrator. (#1320)

    ๐Ÿ’ฅ Breaking Changes

    • 0๏ธโƒฃ DateTimeOffset properties that are not set will now correctly default to 0001-1-1 instead of 1970-1-1 after the object is passed to realm.Add. (#1293)
    • Attempting to get an item at index that is out of range should now correctly throw ArgumentOutOfRangeException for all IRealmCollection implementations. (#1295)
    • ๐Ÿ”’ The layout of the .lock file has changed, which may affect scenarios where different processes attempt to write to the same Realm file at the same time. (#1296)
    • โšก๏ธ PropertyChanged notifications use a new, more reliable, mechanism, that behaves slightly differently from the old one. Notifications will be sent only after a transaction is committed (making it consistent with the way collection notifications are handled). To make sure that your UI is promptly updated, you should avoid keeping long lived transactions around. (#1316)