Skip to content

Releases: realm/realm-dotnet

0.77.2

11 Aug 10:32
Compare
Choose a tag to compare

0.77.2 (2016-08-11)

Enhancements

  • Setting your Build Verbosity to Detailed or Normal will now display a message for every property woven, which can be useful if you suspect errors with Fody weaving.
  • Better exception messages will help diagnose EmptySchema problems (#739)
  • Schema construction has been streamlined to reduce overhead when opening a Realm
  • Schema version numbers now start at 0 rather than UInt64.MaxValue

Bug fixes

  • RealmResults<T> should implement IQueryable.Provider implicitly (#752)
  • Realms that close implicitly will no longer invalidate other instances (#746)
  • DateTimeOffset precision bug fixed (#756)

Uses core 1.4.2

0.77.1 - Urgent fix to 0.77.0

28 Jul 19:25
Compare
Choose a tag to compare

Primarily released as a fix to 0.77.0 which had a problem building PCL libraries.

A hard crash at compile time caused failure weaving the new IList based lists (#715).

With that fixed, a further change was detected in the signature of RealmResults implementing IOrderedQueryable<T> instead of IQueryable<T> which PCL built libraries to fail to match the platform builds.

Minor Changes

  • Exception messages caused by using incompatible arguments in LINQ now include the offending argument (#719)

Uses core 1.4.0

0.77.0 - IList support, dynamic API

20 Jul 15:11
Compare
Choose a tag to compare

0.77.0

Breaking Changes

  • Sort order change in previous version was reverted.

Major Changes

  • It is now possible to introspect the schema of a Realm. (#645)
  • The Realm class received overloads for Realm.CreateObject and Realm.All that accept string arguments instead of generic parameters, enabling use of the dynamic keyword with objects whose exact type is not known at compile time. (#646)
  • To Many relationships can now be declared with an IList<DestClass> rather than requiring RealmList<DestClass>. This is significantly faster than using RealmList due to caching the list. (Issue #287)
  • Creating standalone objects with lists of related objects is now possible. Passing such an object into Realm.Manage will cause the entire object graph from that object down to become managed.

Minor Changes

  • Fixed a crash on iOS when creating many short-lived realms very rapidly in parallel (Issue #653)
  • Fixed a crash on iOS when creating many short-lived realms very rapidly in parallel (#653)
  • RealmObject.IsValid can be called to check if a managed object has been deleted
  • Accessing properties on invalid objects will throw an exception rather than crash with a segfault (#662)

Bug fixes

  • Exceptions thrown when creating a Realm no longer leave a leaking handle (Issue #503)

Uses core 1.4.0

0.76.1

15 Jun 14:32
Compare
Choose a tag to compare

Minor Changes

  • The Realm static constructor will no longer throw a TypeLoadException when there is an active System.Reflection.Emit.AssemblyBuilder in the current AppDomain.
  • Fixed Attempting to JIT compile exception when using the Notifications API on iOS devices.

Breaking Changes

No API change but sort order changes slightly with accented characters grouped together and some special characters sorting differently. "One third" now sorts ahead of "one-third".

It uses the table at ftp://ftp.unicode.org/Public/UCA/latest/allkeys.txt

It groups all characters that look visually identical, that is, it puts a, à, å together and before ø, o, ö even. This is a flaw because, for example, å should come last in Denmark. But it's the best we can do now, until we get more locale aware.

Uses core 1.1.2

0.76.0 INotifyPropertyChanged

09 Jun 14:29
Compare
Choose a tag to compare

Major Changes

  • RealmObject classes will now implicitly implement INotifyPropertyChanged if you specify the interface on your class. Thanks to Joe Brock for this contribution!

Minor Changes

  • long is supported in queries
  • Linker error looking for System.String System.String::Format(System.IFormatProvider,System.String,System.Object) fixed
  • Second-level descendants of RealmObject and static properties in RealmObject classes now cause the weaver to properly report errors as we don't (yet) support those.
  • Calling .Equals() on standalone objects no longer throws.

0.75.0 Updated file format

03 Jun 14:45
Compare
Choose a tag to compare

Breaking Changes

  • File format of Realm files is changed. Files will be automatically upgraded but opening a Realm file with older versions of Realm is not possible.
  • RealmResults<T> no longer implicitly implements INotifyCollectionChanged. Use the new ToNotifyCollectionChanged method instead.

Major Changes

  • RealmResults<T> can be observed for granular changes via the new SubscribeForNotifications method.
  • Realm gained the WriteAsync method which allows a write transaction to be executed on a background thread.
  • Realm models can now use byte[] properties to store binary data.
  • RealmResults<T> received a new ToNotifyCollectionChanged extension method which produces an ObservableCollection<T>-like wrapper suitable for MVVM data binding.

Minor Fixes

  • Nullable DateTimeOffset properties are supported now.
  • Setting null to a string property will now correctly return null
  • Failure to install Fody will now cause an exception like "Realms.RealmException: Fody not properly installed. RDB2_with_full_Realm.Dog is a RealmObject but has not been woven." instead of a NullReferenceException
  • The PCL RealmConfiguration was missing some members.
  • The Fody weaver is now discoverable at non-default nuget repository paths.

v0.74.1 Single NuGet

22 Apr 02:33
Compare
Choose a tag to compare
Pre-release

Minor Fixes

  • Realms now refresh properly on Android when modified in other threads/processes.
  • Fixes crashes under heavy combinations of threaded reads and writes.
  • The String.Contains(String), String.StartsWith(String), and String.EndsWith(String) methods now support variable expressions. Previously they only worked with literal strings.

Minor Changes

  • The two Realm and RealmWeaver NuGet packages have been combined into a single Realm package.
  • RealmResults<T> now implements INotifyCollectionChanged by raising the CollectionChanged event with NotifyCollectionChangedAction.Reset when its underlying table or query result is changed by a write transaction.

v0.74.0 Mostly improving LINQ Searching and Sorting

01 Apr 19:58
Compare
Choose a tag to compare

Major Changes

  • The Realm assembly weaver now submits anonymous usage data during each build, so we can track statistics for unique builders, as done with the Java, Swift and Objective-C products (issue #182)
  • Realm.RemoveRange<>() and Realm.RemoveAll<>() methods added to allow you to delete objects from a realm.
  • Realm.Write() method added for executing code within an implicitly committed transaction
  • You can now restrict the classes allowed in a given Realm using RealmConfiguration.ObjectClasses.
  • LINQ improvements:
    • Simple bool searches work without having to use == true (issue #362)
    • ! operator works to negate either simple bool properties or complex expressions (issue #77)
    • Count, Single and First can now be used after a Where expression, (#369) eg

      realm.All<Owner>().Where(p => p.Name == "Dani").First(); as well as with a lambda expression

      realm.All<Owner>().Single( p => p.Name == "Tim");
    • Sorting is now provided using the OrderBy, OrderByDescending, ThenBy and ThenByDescending clauses. Sorts can be applied to results of a query from a Where clause or sorting the entire class by applying after All<>.
    • The String.Contains(String), String.StartsWith(String), and String.EndsWith(String) methods can now be used in Where clauses.
    • DateTimeOffset properties can be compared in queries.
  • Support for armeabi builds on old ARM V5 and V6 devices has been removed.

Minor Changes

  • Finish RealmList.CopyTo so you can apply ToList to related lists (issue #299)
  • NuGet now inserts libwrappers.so for Android targets using $(SolutionDir)packages so it copes with the different relative paths in cross-platform (Xamarin Forms) app templates vs pure Android templates.
  • Realm.RealmChanged event notifies you of changes made to the realm
  • Realm.Refresh() makes sure the realm is updated with changes from other threads.

v0.73.0 Adding Encryption

26 Feb 18:24
Compare
Choose a tag to compare
Pre-release

Major Changes

  • RealmConfiguration.EncryptionKey added so files can be encrypted and existing encrypted files from other Realm sources opened (assuming you have the key).

Minor Fixes

  • For PCL users, if you use RealmConfiguration.DefaultConfiguration without having linked a platform-specific dll, you will now get the warning message with a PlatformNotSupportedException. Previously threw a TypeInitExepction.
  • Update to Core v0.96.2 and matching ObjectStore (issue #393)

v0.72.1 Adding 64bit Android

15 Feb 09:56
Compare
Choose a tag to compare
Pre-release

This minor release only adds changes for Android users, adding the ABIs arm64-v8a and x86_64 for 64 bit devices.

See the Xamarin Android CPU page for more details on the meanings of these ABI codes.

No functional changes were made, just recompilation and packaging with the core binaries added.