Menu Docs
Página inicial do Docs
/ /
Atlas Device SDKs
/ /

Ingestão de dados unidirecionais - .NET SDK

Nesta página

  • Sincronizar dados unidirecionalmente a partir de um aplicativo do cliente

Novidades na versão 10.17.0.

Você pode usar aingestão de dados para transmitir dados do aplicativo cliente para um aplicativo Flexible Sync-enabled Atlas App Services App.

Talvez você queira sincronizar dados unidirecionalmente em aplicativos IoT, como um sensor meteorológico que envia dados para a nuvem. O arquivo de dados também é útil para gravar outros tipos de dados imutáveis em que você não exige a resolução de conflitos, como criar faturas a partir de uma aplicação de varejo ou registrar evento de aplicação.

A ingestão de dados é otimizada para fornecer melhorias de desempenho para volumes de trabalho pesados somente de inserção no lado do cliente.

Importante

Você não pode query, modificar ou excluir objeto assimétricos de um aplicativo cliente. Como o AsymmetricObject não pode ser modificado pelo cliente, o compilador não permitirá que você adicione uma assinatura a um AsymmetricObject.

O .NET SDK permite que você trabalhe com objetos assimétricos e objetos Realm padrão dentro do mesmo domínio.

Alterado na versão 11,6,0.

Antes de configurar o arquivo de dados, você precisa entender as seguintes regras:

  • Os objetos C# que você sincronizará com o Atlas devem implementar a interface IAsymmetricObject ou derivar da classe AsymmetricObject .

  • A partir do .NET SDK versão 11.6.0 e posterior, um objeto que implementa IAsymmetricObject pode conter tipos IEmbeddedObject e links para tipos IRealmObject . Nas versões 11 do .NET SDK, .5.0 e versões anteriores, um objeto que implementa IAsymmetricObject só pode conter tipos IEmbeddedObject - ele não oferece suporte a links para tipos IRealmObject ou outros tipos IAsymmetricObject .

  • IRealmObject e tipos IEmbeddedObject não podem conter tipos IAsymmetricObject como propriedades.

  • A sincronização unidirecional requer Flexible Sync.

O processo de sincronização de dados assimetricamente é o mesmo da sincronização bidirecional padrão, desde que as regras acima sejam seguidas. O código a seguir mostra a criação de um objeto Asymmetric e a sincronização com o backend. Também mostra query que geram erros.

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;
}

O Atlas Device Sync gerencia o ciclo de vida desses dados por completo. Ele é mantido no dispositivo até que a sincronização da ingestão de dados seja concluída e, em seguida, é removido do dispositivo.

Voltar

Verificar o progresso do upload e download

Próximo

Sincronização baseada em partição