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
andobj
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 fromsession.GetProgressObservable
will correctly callOnComplete
when created withmode: 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 withRealm.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 to0001-1-1
instead of1970-1-1
after the object is passed torealm.Add
. (#1293) - Attempting to get an item at index that is out of range should now correctly throw
ArgumentOutOfRangeException
for allIRealmCollection
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)
- ๐ Fixes the