@@ -11,11 +11,18 @@ Platform and Framework Compatibility - .NET SDK
11
11
:depth: 2
12
12
:class: singlecol
13
13
14
- Compatibility
15
- -------------
14
+ .. meta::
15
+ :description: Compatibility information when developing with Atlas Device SDK for .NET.
16
+
17
+ .. facet::
18
+ :name: genre
19
+ :values: reference
20
+
21
+ Target Platforms
22
+ ----------------
16
23
17
24
The following table shows which .NET
18
- version(s) you can use with Realm on your target platforms:
25
+ versions you can use with the SDK on your target platforms:
19
26
20
27
.. list-table::
21
28
:header-rows: 1
@@ -32,80 +39,108 @@ version(s) you can use with Realm on your target platforms:
32
39
* - Windows 8.1 or later
33
40
- | .NET Core 2.0 or later (.NET 5.0 Framework or later)
34
41
| .NET Framework 4.6.1 or later
35
- | MAUI requires Windows 11 and Windows 10 version 1809 or higher, using
42
+ | MAUI requires Windows 11 and Windows 10 version 1809 or higher, using
36
43
Windows UI Library (WinUI) 3.
37
44
38
45
* - Universal Windows Platform (UWP)
39
46
- .NET Standard 2.0 or later (Fall Creators Update)
40
47
41
48
* - macOS
42
49
- | .NET Core 2.0 or later (.NET 5.0 Framework or later)
43
- | Xamarin.Mac for macOS 10.11 or later.
50
+ | Xamarin.Mac for macOS 10.11 or later.
44
51
| MAUI requires macOS 10.15 or later, using Mac Catalyst.
45
52
46
53
* - iOS
47
- - | Xamarin.iOS for iOS 9 or later.
54
+ - | Xamarin.iOS for iOS 9 or later.
48
55
| MAUI requires iOS 11 or later.
49
56
50
57
* - Android
51
- - | Xamarin.Android for Android 4.1 (API level 16) or later.
58
+ - | Xamarin.Android for Android 4.1 (API level 16) or later.
52
59
| MAUI requires Android 5.0 (API level 21) or later.
53
-
60
+
54
61
* - tvOS
55
- - | Xamarin and Unity for tvOS 9.0 or later.
62
+ - | Xamarin and Unity for tvOS 9.0 or later.
56
63
| For more information on developing for tvOS, see :ref:`<ios-tvos>`.
57
64
65
+ .. note:: Compatibility with SDK Object Models
66
+
67
+ The source generator models in .NET SDK v10.18.0 and later
68
+ require the following:
69
+
70
+ - .NET Core 2.0 or later (.NET Framework 5.0 or later)
71
+ - C# 9.0 or later
72
+
73
+ If you are targeting an older version of .NET Framework, your object models
74
+ must derive from the
75
+ :dotnet-sdk:`RealmObject <reference/Realms.RealmObject.html>`,
76
+ :dotnet-sdk:`EmbeddedObject <reference/Realms.EmbeddedObject.html>`, or
77
+ :dotnet-sdk:`AsymmetricObject <reference/Realms.AsymmetricObject.html>`
78
+ base classes required by the old source generator.
79
+
80
+ The following demonstrates how you can adjust your current object
81
+ models for compatibility with older .NET Frameworks:
82
+
83
+ .. code-block:: csharp
84
+
85
+ public partial class Person : IRealmObject // Current model
86
+
87
+ public class Person : RealmObject // Adjusted to inherit from RealmObject
88
+
89
+ For more information, refer to :ref:`dotnet-define-a-realm-object-schema`.
90
+
58
91
Development Environments
59
92
------------------------
60
93
61
- You can use the following development environments to build Realm apps with
94
+ You can use the following development environments to build apps with
62
95
the .NET SDK:
63
96
64
97
- Visual Studio 2015 Update 2 or higher for Windows
65
98
- Visual Studio for Mac 7.0 or higher
66
- - Unity `2020.3.12f1 (LTS) <https://unity3d.com/get-unity/download/archive>`__
99
+ - Unity `2020.3.12f1 (LTS) <https://unity3d.com/get-unity/download/archive>`__
67
100
68
101
.. note::
69
102
70
- The :doc:`Realm .NET SDK </sdk/dotnet>` may be compatible with
71
- other versions of Unity, but ``2020.3.12f1 (LTS)`` is the version that the
72
- Realm team uses for testing and development. We recommend using
73
- this version to ensure your project works with Realm and that
103
+ The :doc:`.NET SDK </sdk/dotnet>` may be compatible with
104
+ other versions of Unity, but ``2020.3.12f1 (LTS)`` is the version the
105
+ SDK team uses for testing and development. We recommend using
106
+ this version to ensure your project works with the .NET SDK and that
74
107
the install steps match the :doc:`Integrate Realm with Unity
75
108
</sdk/dotnet/unity>` documentation steps because Unity's UI
76
- often changes between versions.
109
+ often changes between versions.
77
110
78
111
79
112
Android Deployment
80
113
------------------
81
- Due to some instruction set limitations, Realm does not support
82
- deploying Android apps to the ``armeabi`` ABI. Because default templates often
83
- have different ABI settings for Debug and Release modes, your app may throw
84
- a ``System.TypeInitializationException`` exception in Release mode but not when
114
+
115
+ Due to some instruction set limitations, the SDK does not support
116
+ deploying Android apps to the ``armeabi`` ABI. Because default templates often
117
+ have different ABI settings for Debug and Release modes, your app may throw
118
+ a ``System.TypeInitializationException`` exception in Release mode but not when
85
119
it was running in Debug mode.
86
120
87
- To avoid this, verify the ABI settings for both Debug and Release modes. To check
88
- and change the settings, follow the steps in the
89
- `Visual Studio CPU Architectures <https://docs.microsoft.com/en-us/xamarin/android/app-fundamentals/cpu-architectures>`_
121
+ To avoid this, verify the ABI settings for both Debug and Release modes. To check
122
+ and change the settings, follow the steps in the
123
+ `Visual Studio CPU Architectures <https://docs.microsoft.com/en-us/xamarin/android/app-fundamentals/cpu-architectures>`_
90
124
page.
91
125
92
- Unless you have a good reason to avoid linking other ABIs, we recommend
126
+ Unless you have a good reason to avoid linking other ABIs, we recommend
93
127
checking all of the settings other than ``armeabi``.
94
128
95
- Limitations
129
+ Limitations
96
130
------------
97
- Realm has limits imposed to balance flexibility with performance. The SDK
98
- throws an exception during app initialization if the following limits are
131
+
132
+ The SDK has limits imposed to balance flexibility with performance. The SDK
133
+ throws an exception during app initialization if the following limits are
99
134
exceeded:
100
135
101
- - Class names can't exceed 57 bytes in length.
102
- - Property names can't exceed 63 bytes in length.
136
+ - Class names can't exceed 57 bytes in length.
137
+ - Property names can't exceed 63 bytes in length.
103
138
104
- In addition, for iOS apps, the total size of all open Realm files cannot be
105
- larger than the amount of memory your application is allowed to map in iOS. This
106
- varies per device, and depends on how fragmented the memory space on the device is.
107
- If you need to store more data than is allowed, you can split your data into
108
- multiple Realm files, open a realm only when needed, and close it when it is
139
+ In addition, for iOS apps, the total size of all open Realm files cannot be
140
+ larger than the amount of memory your application is allowed to map in iOS. This
141
+ varies per device, and depends on how fragmented the memory space on the device is.
142
+ If you need to store more data than is allowed, you can split your data into
143
+ multiple Realm files, open a realm only when needed, and close it when it is
109
144
no longer needed.
110
145
111
146
For more information, see `Open Radar 17119975 <http://www.openradar.me/17119975>`_.
0 commit comments