2010-02-27 7 views
4

Je travaille sur une application à la minute qui sera initialement installée sur une machine client avec une base de données légère (peut être SqlLite). Après un certain temps, je veux ajouter une version web du même logiciel et le client intelligent pourra alors synchroniser avec la version en ligne.Synchronisation Smart Client détachée

Quelqu'un at-il fait quelque chose de semblable, je cherche à savoir:

  1. Quelle est la meilleure façon de la synchronisation, y at-il des modèles autour d'elle?
  2. Existe-t-il des cadres pour gérer la synchronisation?
  3. Y at-il des trucs dont je devrais être au courant dès le début (peut-être la concurrence de sécurité)?
  4. Quelle serait la meilleure façon d'architecturer cela?

thansk à l'avance ...

+0

Le client intelligent sera-t-il dans le même réseau local que le serveur Web? Ou vous attendez-vous à beaucoup de clients intelligents situés dans des endroits différents et une seule installation de serveur Web? – Timores

+0

Ils ne seront pas sur le même réseau, ce sera via Internet avec des personnes qui téléchargent l'application à partir d'un site web. – Burt

Répondre

1

Ainsi, cadre Sync Microsofts aider. Introduction

Quelques problèmes se présentent dès le départ.

Si vous souhaitez que les données soient d'abord stockées sur le client, puis synchronisées sur un serveur plus tard, vous devez penser à ce qui se produit lorsqu'un certain nombre de clients se synchronisent tous sur le serveur, en particulier. autour de la résolution des conflits.

Certains événements sont levés du côté du serveur pour s'identifier lorsqu'un conflit se produit, mais vous devez décider qui gagne. (un sur le serveur, un sur le client entrant). Selon ce que vous choisissez de faire ici, la deuxième synchronisation est susceptible de modifier les données client.

Réfléchissez bien à la synchronisation. S'il s'agit d'une base de données contacvts, est-ce suffisant d'avoir juste le nom du client et la synchronisation du numéro de téléphone, ou avez-vous besoin de tout l'historique des contacts? Pensez en termes de synchronisation d'une table, en utilisant des lignes où la clé est la même valeur. Même s'il s'agit d'une table construite avec des déclencheurs, etc. Cela rend la synchronisation de la structure plus simple et moins sujette aux erreurs (les tables devaient être synchronisées dans différents ordres). Si c'est un programme de facturation, peut-être un tableau de commandes de téléversement est nécessaire, avec toutes les factures assorties, l'historique, les tableaux de rapports etc. mis à jour sur le serveur, plutôt que de les mettre à jour et de synchroniser plusieurs tables.

+0

J'ai utilisé Microsoft Sync Framework pour quelques projets et je pense que c'est un bon choix. Pour la base de données légère, je suggère SqlCE comme cela est pris en charge par le cadre de synchronisation hors de la boîte. – Cornelius