2009-11-16 7 views
1

Nous avons un client intelligent qui parle à une base de données SQL Server via WCF, affichant les entités dans la base de données, et permettant à l'utilisateur de modifier ces entités.Mise en cache à l'écriture de grands ensembles de données dans WCF?

Certains des appels WCF renvoient un grand ensemble de données. Étant donné que cet ensemble de données ne change pas très souvent, je considère une sorte de cache à écriture immédiate sur le client, et seulement obtenir les deltas du service WCF. C'est-à-dire que le client lit le service et écrit dans le service.

Je ne suis pas à la recherche de fonctionnement déconnecté/hors ligne, mais comme la plupart des données ne changent pas très souvent, je l'implémenterais probablement avec un magasin de données local. Je ne veux pas que le magasin local devienne obsolète, et je ne pense pas que je suis trop préoccupé par la résolution des conflits, parce que les mises à jour iront toujours directement au service WCF - pensez-y comme une écriture à travers le cache

Microsoft Sync Framework serait-il bon pour cela? Puis-je utiliser un cache SQL-CE local et effectuer les mises à jour via WCF? La fin du service a un backend SQL Server 2005/2008, mais je ne veux pas en parler directement. Est-ce que Sync Framework s'intègre bien avec WCF?

Existe-t-il d'autres solutions? Devrais-je rouler quelque chose moi-même?

Répondre

0

Je ne pense pas que vous deviez le coupler à WCF du tout. FeedSync vous permet de publier directement sur un flux RSS.

Le seul dont je ne suis pas sûr est de savoir si cela conviendrait à un "grand ensemble de données". Comme vous n'avez pas besoin d'une réplication bidirectionnelle, si votre jeu de données est extrêmement volumineux, vous pouvez écrire votre propre implémentation WCF pour l'optimiser; en particulier pour la population initiale.

+0

Le client modifie également les données. Il pourrait s'agir d'une réplication bidirectionnelle, sauf que - parce que je peux supposer qu'il est toujours connecté - il m'a semblé plus facile de faire une sorte de mise en cache à écriture immédiate. Nous sommes déjà un peu engagés envers la WCF. –

+0

Eh bien, vous pouvez regarder les objets Sync sur WCF, mais je pense qu'il serait plus facile et meilleur pour vous d'écrire une variable du transfert complet que vous mettez en cache qui fournit le datetime ou la version du cache client et vous donne les changements de ce version. Si vous maintenez un journal des modifications de toute façon, ce serait très efficace. – Derek

Questions connexes