À l'aide de OneDrive ou Dropbox comme une base de données

Tout d'abord, ce n'est pas un doublon de toute de ces questions, discuter de l'utilisation d'un seul compte DropBox que le backend de mode multi-utilisateur, application

J'ai construit une poignée d'applications, la plupart du temps sur Windows Phone et Windows Store, et d'avoir beaucoup plus dans les œuvres.

Je me retrouve souvent à vouloir ajouter des données de synchronisation pour ces applications, entre les appareils, mais pour le même utilisateur. Mes applications sont souvent gratuits ou très bon marché, et je ne peux pas se permettre de dépenser de l'argent pour une base de données de serveur d'hébergement. J'ai payé un compte d'hébergement avec quelques limitée DB de l'espace que je pourrais utiliser, mais dans le cas (improbable) qu'une de mes applications, devient un succès fulgurant, je suis soudainement coincé avec un hébergement grand projet de loi. Dans ce cas, je serais tout à coup commencer à charger les utilisateurs d'un montant récurrent pour les applications qui étaient auparavant gratuits, ou pire, déjà payé.

J'en reviens toujours à cette idée de l'utilisation de OneDrive ou Dropbox, ou certains autres gratuits d'hébergement cloud comme une base de données. Voici comment je vois les choses de travail.

Permet de dire que nous avons des choses à faire application appelée Jobbie

  • Utilisateur installe Jobbie sur les deux appareils
  • Utilisateur se connecte à OneDrive sur les deux appareils, la création d'un "jobbie" dossier de synchronisation dans leur dossier OneDrive
  • Sur Un Appareil, l'Utilisateur crée un nouvel élément todo "ramasser nettoyage à sec"
  • Appareil télécharge un fichier texte à OneDrive avec le nom "20153001-pick_up_dry_cleaning.l'élément".
  • Appareil B analyse le dossier, trouve un nouveau fichier, et l'ajoute à la base de données locale
  • Sur l'Appareil B, l'Utilisateur marque "ramasser nettoyage à sec" comme "terminé", et le fichier est renommé "x20153001-pick_up_dry_cleaning.l'objet" (ou supprimé)
  • Appareil analyse le dossier, considère que l'article a été renommé (ou supprimé) et le supprime de la base de données locale

Les problèmes évidents que je vois avec cette approche sont

  1. éléments sont limitées à 255 - 9 caractères (9 réservé pour xYYYYMMDD), sauf si vous voulez télécharger chaque fichier qui serait assez lent
  2. il n'y a pas de verrouillage

Autres que ces deux questions, il y a d'autres problèmes que je pourrait faire face à la mise en œuvre d'un tel système?

PS: j'ai également tenu compte de l'écrasement d'un stockées fichier SQLite avec une copie locale mais je suppose que ce serait trop de données aériennes pour un appareil mobile

Mise à JOUR

J'ai accepté Peter Nied la réponse ci-dessous, qui a souligné les problèmes que je pourrais rencontrer avec un tel système, qui a répondu à ma question. Cependant, Smarx souligné dans les commentaires que Dropbox est un magasin de données de l'API que je peux utiliser pour mes applications. Cela semble être une bien meilleure solution que d'essayer de mettre en œuvre ma propre banque de données sur le haut du système de fichiers, donc, je vais avec cela.

Mise à JOUR 2

La banque de données de l'API a été déprécié de 3 mois après j'ai mis à jour le post, donc sa n'est plus disponible. Heureusement, je n'avais pas commencé le développement de contre elle à ce point. Vous pouvez utiliser Dropbox comme un standard de la plate-stockage de fichiers très facilement, mais si vous voulez pour n'importe quel type de synchronisation, vous devrez supprimer votre propre

en fait, maintenant que j'y pense, vous pourriez vous en sortir avec 7 caractères si vous utilisez 2 chiffres de l'année de format. ce serait le travail pour les 100 prochaines années au moins.
Je devine que vous n'avez pas entendu parler de la sélection de la banque de données de l'API. 🙂 dropbox.com/developers/datastore En particulier, jetez un oeil à la liste des exemples de l'application: dropbox.com/developers/blog/108/new-lists-sample-app.
Si vous ne souhaitez synchroniser via des fichiers, je dirais juste un seul fichier avec toutes les tâches. (Personnellement, je préfère utiliser JSON.) La seule partie délicate avec ce genre de chose est de gérer les conflits créés par les périphériques hors ligne. Le plus simple de résolution de conflit serait de choisir un gagnant (par exemple, premier écrivain qui gagne). Une meilleure stratégie de résolution des conflits serait de fusionner les listes.
sur les plans de données mobiles qui serait d'un grand nombre de données frais - envoi à ce qui constitue l'ensemble de la base de données locale à chaque fois quelques tâches sont ajoutées? Dropbox banque de données semble doux, je pense que je vais l'utiliser! =)
la dropbox intégration, je parlais serait de l'utilisateur compte dropbox, pas un centrale.

OriginalL'auteur roryok | 2015-01-30