Docs Menu
Docs Home
/ /
Sincronizar datos

Ingesta de datos unidireccional - .NET SDK

Nuevo en la versión 10.17.0.

Puedes utilizar Ingesta de datos para transmitir datos desde la aplicación cliente a una aplicación Atlas App Services habilitada para Flexible Sync.

Es posible que desee sincronizar datos unidireccionalmente en aplicaciones de IoT, como un sensor meteorológico que envía datos a la nube. La ingesta de datos también es útil para escribir otros tipos de datos inmutables donde no se requiere resolución de conflictos, como la creación de facturas desde una aplicación de comercio electrónico o el registro de eventos de la aplicación.

La ingesta de datos está optimizada para proporcionar mejoras de rendimiento para cargas de trabajo pesadas de solo inserción del lado del cliente.

Importante

No se pueden query, modificar ni borrar objetos asimétricos desde una aplicación cliente. Como el objeto asimétrico no puede ser modificado por el cliente, el compilador no permitirá agregar una suscripción a un objeto asimétrico.

El SDK .NET le permite trabajar con objetos asimétricos y objetos Realm estándar dentro del mismo reino.

Modificado en la versión 11.6.0.

Antes de configurar la ingesta de datos, debe comprender las siguientes reglas:

  • Los objetos C# que sincronizará con Atlas deben implementar la interfaz IAsymmetricObject o derivar de la clase AsymmetricObject.

  • A partir de la versión 11.6.0 del SDK de .NET y posteriores, un objeto que implementa IAsymmetricObject Puede contener tipos IEmbeddedObject y enlaces a IRealmObject tipos. En las versiones y anteriores del SDK de .NET,11.5.0 un objeto que implementa IAsymmetricObject solo puede contener tipos IEmbeddedObject; no admite enlaces a IRealmObject tipos ni a otros IAsymmetricObject tipos.

  • IRealmObject y los tipos IEmbeddedObject no pueden contener tipos IAsymmetricObject como propiedades.

  • La sincronización unidireccional requiere sincronización flexible.

El proceso para sincronizar datos asimétricamente es el mismo que el de la sincronización bidireccional estándar, siempre que se cumplan las reglas anteriores. El siguiente código muestra la creación de un objeto asimétrico y su sincronización con el backend. También muestra las consultas que generan errores.

private partial class Measurement : IAsymmetricObject
{
[PrimaryKey, MapTo("_id")]
public Guid Id { get; private set; } = Guid.NewGuid();
public double Value { get; set; }
public DateTimeOffset Timestamp { get; private set; } = DateTimeOffset.UtcNow;
}
public void SendMeasurementToRealm()
{
var measurement = new Measurement
{
Value = 9.876
};
realm.Write(() =>
{
realm.Add(measurement);
});
// The following line will cause a compile time error
// _ = realm.All<Measurement>();
// The following line will compile but throw a
// Realms.Exceptions.RealmInvalidObjectException at runtime
// _ = measurement.Value;
}

Atlas Device Sync gestiona completamente el ciclo de vida de estos datos. Se mantiene en el dispositivo hasta que la sincronización de Data Ingest se completa y luego se elimina del dispositivo.

Volver

Comprobar el progreso de carga y descarga

En esta página