2009-12-01 2 views
2

Nous essayons de convertir une ancienne application de serveur client dans une application N-Tier avec synchronisation et support hors ligne utilisant toute la technologie Microsoft (nous sommes un magasin total .Net et SQLServer). Nous voulons nous concentrer sur l'écriture de la logique métier au lieu de passer du temps à plumer, nous allons donc utiliser autant de technologies Microsoft existantes que possible. Jusqu'à présent, nous avons décidé d'utiliser SQL Server Compact Edition avec le client lourd WinForm/WPF, SQL Server 2008 sur le serveur, Microsoft Sync Framework pour faire la synchronisation entre la base de données SQL du client et la base de données SQL du serveur. Jusqu'ici tout va bien.Est-ce que le service de données ADO.Net hors ligne (Astoria hors ligne) est mort? Tout plan B?

Le problème survient lorsque nous essayons d'implémenter la partie "N Tier". Notre application actuelle est plutôt SOA. Chaque appel d'accès aux données est effectué via le service Web. Donc, naturellement, nous pensions utiliser ADO.Net Data Service. Ensuite, il nous a agréablement surpris qu'il y ait quelque chose qui s'appelle ADO.Net Data Service Offline (Astoria Offline), qui nous permet de faire des appels d'accès aux données via le service web, de supporter la synchronisation, et même le support offline. Soudain, nous avons commencé à croire que le paradis est vraiment un endroit sur terre.

Et puis hier, notre coéquipier qui est en charge de la recherche sur "Astoria Offline" nous dit que "Astoria Offline est mort" basé sur le blog (http://blogs.msdn.com/astoriateam/archive/2009/03/07/announcing-project-codename-astoria-offline-alpha-preview.aspx). Nous soupçonnions qu'il était sur crack mais ne voulait pas le défier. Le fait est que Astoria Offline est toujours en mode pré-alpha, et nous avons besoin d'une solution de production. Donc, en dehors d'Astroia Offline, y a-t-il une autre solution similaire qui nous permet d'utiliser Microsoft Sync Framework dans un environnement N-tier prenant également en charge le mode hors-ligne?

Répondre

1

Si vous envisagez ADO.NEt Data Services, vous trouverez peut-être que ADO.NET Synchronization Services vous convient parfaitement. Selon le senario que vous essayez de créer. Alternativement, l'accès aux données à distance peut être mieux adapté.

Vous pouvez choisir les services de synchronisation: 1.Supporte la résolution de conflit. 2.Modifiez le suivi sur le serveur ainsi que sur le client afin que seules les différences de données soient échangées. 3.Peer to Peer Sync dans la prochaine v2 de Sync Framework. 4.Sync avec des bases de données autres que SQL Server. 5.Best adapté pour SSCE fonctionnant sur un ordinateur de bureau ou un ordinateur portable.

RDA peut vous fournir de meilleures performances si: 1. Vos clés primaires utilisent des GUID au lieu des colonnes Identity. 2.Les utilisateurs ne remplacent pas les données les uns des autres de sorte que vous n'avez pas besoin de résolution de conflit. La règle de "Last in Wins" fonctionne pour vous. 3. Bien que vous souhaitiez que les index soient poussés vers le bas, vous ne vous souciez pas de l'application de contraintes d'intégrité référentielle à votre base de données SSCE locale. 4.Vous souhaitez intégrer les modifications que vous téléchargez à SQL Server dans une transaction afin que toutes les modifications soient appliquées ou qu'aucune d'entre elles ne soit appliquée. 5.Change de suivi sur le client est assez bon et re-télécharger les tables mises à jour du serveur ne prend pas trop de temps. 6. Vos développeurs ne dérange pas d'écrire du code de synchronisation. 7.Peut exécuter des procédures SQL et stockées directement sur SQL Server via IIS. 8.Vous téléchargez des données en lecture seule.

Si vous avez besoin de plus, criez.