4

Je dispose d'une solution basée sur le cloud avec une API Web qui relie les données de et vers la base de données SQL principale aux applications client. Tout est très standard. Mon api web est construit en utilisant .NET Core. Cela fonctionne bien et j'utilise l'API Web existante avec divers clients Web qui ont été construits. L'architecture ressemble à ceci:Conception de synchronisation de données dans .net

Current solution La solution actuelle doit être étendu pour supporter les applications clientes mobiles natives en utilisant l'API Web (rien hors de l'ordinaire ici - normalement ils appelleriez le api web même que tout autre client) MAIS Je dois répondre à l'exigence selon laquelle ces nouvelles applications client peuvent être utilisées dans un scénario hors ligne. Cela signifie que je ne peux pas m'attendre à ce qu'une connexion de données existe sur l'appareil pour appeler mon API Web chaque fois que j'en ai besoin. J'ai besoin de regarder les données de synchronisation afin qu'il puisse être hors ligne et renvoyé au serveur en cas de besoin.

Penser à ce sujet, les données seront synchronisées dans l'une des deux façons suivantes:

  • synchronisation unidirectionnelle - les données du serveur au client, mais aucune modification ne sera faite à ces données par exemple tables de recherche système.
  • La synchronisation bidirectionnelle - les données existantes seront synchronisées avec le client, modifiées et renvoyées au le serveur OU de nouvelles données sont créées sur le client et envoyées par ex. nouveau ordre.

La nouvelle architecture sera la suivante:

enter image description here

donc - se rendre à ma question - personne ne sait d'un bon modèle de conception à suivre en ce qui concerne la synchronisation des données (à sens unique et à deux façon) OU peut-être un paquet NuGet qui a intégré le code de synchronisation? J'essaie d'éviter de réinventer la roue en ce qui concerne la synchronisation, si possible.

NOTE: Juste à titre d'information, les applications mobiles natives seront construites en utilisant Xamarin dans Visual Studio 2015.

Répondre

0

Je n'ai pas utilisé encore (juste de commencer à examiner comme j'ai une situation semblable à la vôtre) mais il semble que Xamarin dispose déjà de cette fonctionnalité (si vous utilisez Azure de toute façon ...): Offline Data Sync in Azure Mobile Apps