manager - realm local database
Realm vs Sqlite para desarrollo móvil (2)
Realm y Sqlite son muy diferentes en muchos aspectos.
Aquí hay dos artículos que puedes revisar para comprender las principales diferencias:
Sistema de comparación de propiedades del reino vs. SQLite
5 razones por las que debes elegir Realm Over CoreData / SQLite
Según lo sugerido por Slavia en los comentarios, también eche un vistazo a este artículo para una comparación de varios ORM, incluido Realm.
Soy un desarrollador de Xamarin, solía usar Sqlite como base de datos móvil,
Recientemente el reino viene a la imagen.
¿Alguna idea acerca de las diferencias entre ellos en rendimiento y facilidad de uso ... etc.?
¿Cuál es la mejor práctica de usar cualquiera de los dos?
Soy un desarrollador del equipo de Xamarin en Realm, por lo que puedo contarles un poco más sobre cómo funciona el producto de Xamarin.
Realm tiene un núcleo de C ++ que es común en todos los productos. Es por eso que lanzamos para cada plataforma en lugar de solo un idioma, necesitamos incluir el núcleo nativo. Si bien admitimos las compilaciones PCL de su código, no tenemos una biblioteca PCL como tal: en el momento de la compilación, su código PCL se vinculará con la biblioteca IOS o Android correspondiente.
Todos los productos Realm están desarrollados individualmente para proporcionar una interfaz idiomática para un lenguaje de programación determinado, con una capa lo más delgada posible entre su código y los datos.
Eso significa, por ejemplo, que el producto C # proporciona LINQ para consultas y utiliza objetos C # como medio para definir el modelo de datos. En el momento de la compilación, el generador de código Fody se ejecuta para agregar definidores y captadores de propiedades para que los objetos de C # interactúen directamente con los datos centrales de C ++. A diferencia de los productos ORM típicos, no hay copia de datos de la base de datos en búferes y luego nuevamente en sus objetos.
Los datos de reino se asignan en memoria, por lo que van directamente desde el código al almacenamiento. Generamos métodos de acceso que reemplazan a los captadores y establecedores de propiedades automáticas.
Usamos el término copia cero para describir esto. En contraste, la mayoría de los otros sistemas tendrán objetos C # que tienen campos que respaldan sus propiedades. Esos objetos se rellenan a menudo copiando desde un búfer SQLite que se ha leído desde el almacenamiento en disco . Eso es dos niveles de copia.