2010-01-28 6 views
0

Je crée un système de gestion de projet simple qui utilise NHibernate pour le stockage d'objets. La base de données sous-jacente est SQL Express (au moins actuellement pour le développement).Synchroniser deux SqlExpress en utilisant NHibernate

Le client s'exécute sur le bureau ou l'ordinateur portable. Je sais que je pourrais utiliser des services Web et stocker la base de données uniquement sur le bureau, mais cela obligerait le bureau à être disponible tout le temps.

Je pense actuellement à la duplication de la base de données, avec deux instances avec "données différentes". Pour clarifier, nous ne parlons pas d'une application productive ici, c'est un prototype.

Une façon d'y parvenir serait très simple le processus suivant:

  • Client: Vérifiez si DB de bureau est disponible (via le service Web)
  • Client: Si oui, utilisez le stockage de bureau, aucun problème ici
  • client: Dans le cas contraire, utilisez DB propre que le stockage
  • client: Sondage de bureau regulary, dès qu'il est activé, synchronisation
  • client: Switc h au stockage de bureau
  • ...
  • Desktop: Ne tentez pas d'opération DB avant de vérifier la synchronisation requise
  • Desktop: Si la synchronisation nécessaire, faites-le ...

Ma question est maintenant , comment voulez-vous synchroniser? Supposons 4 ou 5 types d'objets, tous ont GUID comme identificateurs. Souhaitez-vous toujours "charger paresseux" manuellement tous les objets d'un certain type et les alimenter à la DB. Souhaitez-vous toujours supprimer la totalité de la base de données de bureau au cas où la base de données client serait plus récente et désynchronisée?

Encore une fois, je tiens à souligner, je ne suppose pas de conflits ou de données périmées, je veux simplement juste "copier la base de données entière du client". Utiliseriez-vous NHibernate pour cela? Ou voulez-vous séparer le processus de copie?

Quand je pense à ce sujet, mes questions se résume à ceci:

Y at-il fonction de NHibernate:

SyncDBs_SourceWins_ (SourceDB, TargetDB)

Merci pour l'aide, Chris

+0

Je pense que la réplication peut vous aider ici, mais je ne suis pas sûr si la réplication de support SQL Express – Beatles1692

+0

je pouvais passer à SQL2008 professionnel. Parler de casser une mouche sur une roue :-) –

Répondre

0

Non NHibernate, mais qu'en est-il de Sync Services for ADO.NET 2.0?

-sa

+0

Eh bien, juste un petit coup d'oeil. Pas sûr, mais je ne pense pas qu'il peut être utilisé en combinaison avec NHibernate. Et j'ai définitivement besoin de NHibernate (ok, je veux :-) Seulement ce truc de synchronisation vient, pour des "raisons de commodité" –

+0

Non, ce n'est pas NHibernate, mais il devrait être possible de les utiliser côte à côte mais ce n'est certainement pas le plus beau . Une question sur l'intégration des deux mondes ici est encore sans réponse (http://stackoverflow.com/questions/1264161/does-nhibernate-intergrate-well-with-microsoft-sync-framework).En outre, le faire manuellement est fastidieux. Un long travail et vous aurez certainement rencontré des situations étranges. – Sascha

+0

Ok, je vais regarder de plus près le framework de synchronisation. Une petite recherche fondamentale ne peut pas nuire ... –

Questions connexes