Need advice on what providers to use for specific project RRS feed

  • Question

  • Hi all,

    Im developing an application that needs to sync, and i have done a lot of coding with the sync providers but i cant find a provider that support all of my needs and i dont know if its me setting it wrong up or i need to write a custom provider. Here is the needs for the syncing.

    BiDirectional sync + batching + custom filtering ( data is related to a portalId so i want to only download the data related to the portalId entered in the client application )
    Server - sql 2008 with change tracking enabled for the tables
    Clients - sql express
    It needs to sync through a WCF service or webservice on windows 2008

    Is there providers to do all of this or do i need to do my own or anybody has code?
    (I tested the sqlExpress client -sql 2008 server example from microsoft but i dont think it support batching or else it was custom filtering )

    Looking forward to your best solution for my problem.
    Wednesday, March 3, 2010 11:25 AM


All replies

  • Hi Anders,

    If you're going for an offline scenario, there is no out-of-the-box client sync provider for SQL Express, so you'll have to settle with the sample SQLExpressClientSyncProvider (http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=sync&ReleaseId=1200). Bi-directional sync can be done, and so is batching (http://msdn.microsoft.com/en-us/library/bb902828(SQL.105).aspx) and custom filtering (http://msdn.microsoft.com/en-us/library/bb726003(SQL.105).aspx). You can also configure it to use WCF (http://msdn.microsoft.com/en-us/library/bb902831(SQL.105).aspx)

    For collaboration scenario, you have the SQLSyncProvider, bidirectional support, batching and WCF support (http://msdn.microsoft.com/en-us/library/dd918908(SQL.105).aspx). However, you dont have the same flexibility in filtering similar to the offline scenario. In collaboration, you define your filter as part of the scope and you can't dynamically change the filter value similar to the way you pass parameters in the offline scenario.


    Wednesday, March 3, 2010 1:13 PM
  • Thanks for your answer. Just to recap and to see if i get you right :)
    SQLExpressClientSyncProvider provides bi-directional sync, batching and custom filtering and support WCF? BUT has to be online at every time.
    SQLSyncProvider provides bi directional sync, batching and WCF. BUT not dynamically changed filters.

    The SQLExpressClientSyncProvider looks like the best to go with, but to look a little more into the offline mode. What we need is that when a computer is offline it dont need to sync with anybody, not the server, not other client machines on the same network, it will live its own little life. Wh nthe client gets online again it syncs its data with the server. Is that a possible senario for SQLExpressClientSyncProvide?
    Friday, March 12, 2010 9:01 AM
  • both providers would actually work for what you have in mind.

    the offline scenario is for hub-spoke, the collaboration is for peer-to-peer.

    now, the collaboration scenario/peer-to-peer can also be used similar to the hub-spoke by making sure that your client only syncs with the server and not with its peers.

    Synching has to be explicitly initiated, so even if youre connected, if you dont initiate sync, no sync happens.

    Saturday, March 13, 2010 6:47 AM
  • Would it be possible to extend SQLExpressClientSyncProvider to allow offline senario or how do i get all the things SQLExpressClientSyncProviderprovides AND offline senario possible?
    Friday, March 19, 2010 11:05 AM
  • the SQLExpressClientSyncProvider is actually built  for offline scenario.
    Friday, March 19, 2010 2:00 PM