Freigeben über


Occasionally Connected Systems Sync Framework

Recently I’ve been giving some presentations on our upcoming sync framework.  This new sync framework is designed to fill the void between the simplicity of RDA (Remote Data Access), full featured, but complex, Merge Replication, and raw components of DataSet.  This new sync framework is designed to work over services, 2 tier and work with any back end system. 

Because a picture is worth a thousand words, and a video is worth a book, I’ve posted my deck and a screen cast to demonstrates the features we’re working on.

OCS Power Point Deck
Screen Cast of the new Sync Framework demonstrating the architecture and details of download scenarios

Steve

Comments

  • Anonymous
    October 14, 2006
    As you may be aware, after all I have given some presentations about it, I like SQL Everywhere and its

  • Anonymous
    October 14, 2006
    Hi Steve, Nice job :-) Let me know when you start sending out CTP bits. I would very much like to give them a try. Maurice

  • Anonymous
    October 14, 2006
    Steve Lasker has posted a good screencast that walks through how new sync framework will work. ...

  • Anonymous
    October 15, 2006
    Will OCS Sync Framework support column-level change detection as an option, or does it deal with rows only?

  • Anonymous
    October 15, 2006
    The comment has been removed

  • Anonymous
    October 16, 2006
    The comment has been removed

  • Anonymous
    October 16, 2006
    You mentioned that it can be used to sync services.  Do you have any way of doing change detection of the data coming from these web services or is it up to the developer to build this into the web services?  

  • Anonymous
    October 16, 2006
    Steve has a great post (with Video and slides) for building offline apps… Worth a look! My guess is lots

  • Anonymous
    October 16, 2006
    The comment has been removed

  • Anonymous
    October 18, 2006
    Steve, where and how does conflict resolution come into play here? Conflicts cannot be avoided in disconnected scenarios with fully bidirectional sync:

  • client A makes some changes while offline
  • client B syncs conflicting changes (w.r.t. A's local changes) to server
  • client A back online, tries to sync
  • conflict has to be resolved As I understand it, the server sync agent would have to detect stale writes / conflicts (on a per row basis by means of a revision number, for example) and report them back to the client (both the client's values and current server values) for resolution. Karl
  • Anonymous
    October 19, 2006
    Very interested in the testing the framework. How do I go about getting the bits? I have a project that could benefit from this type of synchronization. Also, will this work on the compact framework? I have another project looming for a PPC device. Thanks, Donta

  • Anonymous
    October 19, 2006
    Hi Karl, Yes, these are the scenarios we'll support.  We'll support resolving the conflicts on the server or the client.  Yes, you'll have both the client and the server row available to determine how you want to handle the conflict.

  • Anonymous
    October 19, 2006
    Hi Donta, We're hoping to have CTP ready bits available in the November/December timeframe.  I've been keeping a collection of the emails people have been sending me, so please use the Contact link above to send me the request.  When we're ready, I'll be sending emails to those that have asked and we'll get started. For Compact Framework, as much as I hate to say it, we won't have CF support in the first release.  The Compact Framework team just had too much to get done to take on the work.  Because we will be shipping the OCS and SSEv runtimes out of band from the .NET FX and .NET CF frameworks we have a lot more flexibility.  We hope to ship the .NET CF versions shortly after Orcas. We are doing the engineering work to make sure everything is designed to work on .NET CF.  Meaning, we're testing the overloads and making sure the types we use are available on .NET CF, but the "taxes" we pay to fully support a platform are just beyond the scope of what we could finish in the Orcas timeframe for devices. Steve

  • Anonymous
    October 23, 2006
    Does this OCS framework work with a client using a locally installed SQL Express DB? Thanks. Will

  • Anonymous
    October 23, 2006
    Hi Will, I'm assuming you're asking about Express being installed locally. Not initially.  Our initial focus is for SSEv as we're focused on the breadth of client apps and we see SSEv having a much broader adoption curve.  In order to abstract the change tracking details on the client, we require the local store to have knowledge for change tracking.  SSEv will ship a new release on, or before Orcas.  When the next release of SQL Server ships, code named Katmai, SQL Express will be supported and another release of SSEv will be available with additional functionality. Steve

  • Anonymous
    October 24, 2006
    I am curious what application you used to create the screencast?

  • Anonymous
    October 26, 2006
    I've been using Camtasia: http://www.techsmith.com/camtasia.asp  It's a great product. Steve

  • Anonymous
    October 31, 2006
    SQL Server Everywhere gets a new name

  • Anonymous
    November 02, 2006
    The comment has been removed

  • Anonymous
    November 07, 2006
    Steve Lasker has posted a great whitepaper that describes the differences between SQL/e and SSCE. ...

  • Anonymous
    November 14, 2006
    Hi, Following your presentations on the forthcoming sync services at TechEd:Developers EMEA, I'm very much looking forward to taking advantage of it. I'd be grateful if you could include us in the CTP/early programs thanks Matthew Phillips

  • Anonymous
    November 16, 2006
    On Wednesday morning Steve Lasker delivered his second public webcast (the first...

  • Anonymous
    December 02, 2006
    Steve... very nice... do you have the source you used for the demo posted anywhere? Keep up the awesome work... bill

  • Anonymous
    January 22, 2007
    Steve, do you have an update on when the CTP bits are going to be available? Thanks...derek

  • Anonymous
    January 22, 2007
    Hi Derek, Funny you should ask.  We launched the CTP today: http://blogs.msdn.com/stevelasker/archive/2007/01/23/sync-services-for-ado-net-ocs-ctp-now-available.aspx Steve

  • Anonymous
    October 14, 2007
    Tras semanas de cacharreo con la beta 2 del Visual Studio "Orcas" decidí sacar un pequeño seminario

  • Anonymous
    October 17, 2007
    Hi, When syncing from Sql2005 (full or express) How does the sync framework handle data types that do not exist in the compact framework, such as Xml, varchar(max), nvarchar(somevaluegreaterthan4000) etc ?

  • Anonymous
    October 29, 2007
    Hi Troy, We use the same mapping as Merge Replication. XML and VarChar(Max) become nText data types.   With Sync Services you have a bit more control.  If you pre-create the table, and the data "fits" we'll continue to insert/update the data.  For instance, if you sync an int into a nVarChar column on SQLce, it will continue to work.  Of course if you put Six in the local table, it will fail going up.  We don't do mapping from english to decimal <g> Steve

  • Anonymous
    November 05, 2007
    Cette semaine, à Barcelone, se tient le plus grand événement européen des développeurs sur les technologies

  • Anonymous
    November 05, 2007
    Cette semaine, à Barcelone, se tient le plus grand événement européen des développeurs sur les technologies

  • Anonymous
    November 21, 2007
    hello Steve, As far as I seen on the web, I miss some codes/samples/detailed description regarding 3 topics in Sync Framework: 1.mixing the synchronization - like synchronizing db to file system or vice versa

  1. Implementation of custom providers
  2. Sample code using the rss synchronization. You've mentioned above having some samples using the RSS synchronization. Can you share this code? Thank you in advance! Reka K.
  • Anonymous
    January 18, 2008
    Is it possible to use Sync to temporarily store Client-side text data from a Web Application that goes offline?  Google Gears solves this problem, and while its seems to me that Sync supports Client/Server sync and offline storage, it doesnt seem that this is the case for web applications.  Is this right?

  • Anonymous
    March 31, 2008
    Hi,   I would like to develop the sample web application by using Sync Framework. Is there is any sample application available. And can you please guide me about how to develop the application.

  • Anonymous
    April 10, 2008
    Balaji, When you say "web application", are you referring to server side, or client side? Steve

  • Anonymous
    April 10, 2008
    Hi, I would like to develop a Web application(Not a windows).I would like to enable the application to be available in offline mode.My exact requirement scenario would be, I have a web application with a web server. I need to sense the network ,whether it is offline or online. Then in online mode i can enter data directly to the server(this needs to be in sync with my local cached data). When i am unable to connect to the server,i should be able to access the application and save the data locally and sync them when i am connected back to server. I hope this would be definitely possible with MS Sync. But on browsing through various forums i got some sample applications which are windows application. But mine would be a web application. I sit possible with MS Sync and if yes is there any sample application available?Please redirect me in correct direction . Thanks in advance.

  • Anonymous
    April 10, 2008
    The comment has been removed

  • Anonymous
    April 17, 2008
    Hi Steve,   Thanks for your reply. I need the web application which is working both online and offline(When network is not available). My web application has asp 2.0 in the front end and sql server 2005 in the back end. Please guide me how MS synch sense the network and synch features.

  • Anonymous
    April 21, 2008
    I have a clarification regarding MSF.Is MSF targetted only for desktop application?I have a requieremnt for making my web application to work offline.So,that user can access the site uninterrupted,inspite of the network connection.On browsing for MSF and with the sample applications it is mentioned as MSF can take data offline and synchronize any kind of data when connected to the server.But,is it possible to render a web page in offline mode?( So that when the user is offline data will be captured in the local DB and when he is online data will be captured in the server and in online mode he can sync the data changes in local DB to the server) If yes please redirect me to the right place where i could get information on this.

  • Anonymous
    April 29, 2008
    Hi guys, Sorry for the delayed response.  I’ve been out of town visiting customers.  I hear you saying “web application” and want to “work offline”.  However, what it appears you’re asking for is for the database to be offline, but the web server is still available.  I don’t think that’s what you mean to ask, but your saying you’re getting an error running Compact under ASP.net.  In this case, you’re actually attempting to run SQL Server Compact on the Web Server, so you’re making an assumption the “browser client” can connect.   So, you can enable SQL Server Compact under ASP.net, which I discuss here.  My question is really what is the “client” to your “web application”?  Is the user running in the browser?  Or, is the user running WinForms or WPF on the client, and communicating to the database through a “web server” running “services”? For the WinForm/WPF client, you can absolutely run Compact there.  For running code within the local browser, we don’t yet have anything to announce here.  You could of course run Compact locally, and host it in an ActiveX control.   Steve

  • Anonymous
    June 15, 2008
    Tras semanas de cacharreo con la beta 2 del Visual Studio &quot;Orcas&quot; decidí sacar un pequeño seminario

  • Anonymous
    September 22, 2008
    I am not been able to download "OCS Power Point Deck", seems it is share with window authentication on. How do i go about it ? -Avi

  • Anonymous
    October 09, 2008
    I am implementing sync services across WCF, which so far seems to be working well. However, I need to be able to allow the client to resolve conflicts. From what I can see, you would want to subscribe to the ApplyChangeFailed event. That would be fine, but it only exists under the ServerSyncProvider which, unless I am missing something, cannot be accessed client side. I know you can subscribe to this event on the server, from within the WCF application in my case. But handling this server side only limits you as the user would not be able to decide how the conflict should be handled. My question is what is the recommended way of handling conflicts client side in an n-tier environment and is it possible to handle the ApplyChangeFailed event client side(clientProvider_applyChangeFailed is firing only at INSERT-INSERT conflicts) ?

  • Anonymous
    November 01, 2008
    Hi, All the events you're looking for exist on the SqlCeClientSyncProvider.  http://msdn.microsoft.com/en-us/library/microsoft.synchronization.data.sqlserverce.sqlceclientsyncprovider.aspx You can get this from the SyncAgent.LocalProvider. Hope this helps, Steve

  • Anonymous
    December 16, 2008
    Di Steve, Your blog is really helpful and informative, it's been helping me in the current project i am working on, but i have a question. We are developing a web-application that needs to do the following: 1-local web application on the client deployed on IIS that works on a compact/express SQl database 2-occasionally this database sync with the main server database (2way) The question is: 1-is it better off using SSIS? 2-or i can use SyncFramework? though it is a web application and i heard that sdf is not accessed in the iis appdomain.

  • Anonymous
    June 12, 2009
    I have the same problem as mdlathkar - I need to resolve server sync conflicts on the client. Steve, your suggestion above that the ApplyChangeFailed event is available in the SqlCeClientSyncProvider is not helpful. The documentation states: Occurs after a row could not be applied at the client. I need an event on the client that fires when the server raises it. It seems that a WCF duplex connection with a callback handler on the client is the only solution. I have found references of a sample application on the web for this scenario, but not the actual code. Given that I have had all sorts of issues with WCF duplex connections before, I'd rather not venture down this path. Is there any other option?

  • Anonymous
    November 13, 2009
     I am using Sync Framework 2.0 for Synchronizing SQL Server 2005 and SQL Express database. I need to implement the conflict resolution logic for the same. I am trying to find out the equivalent of "ConflictResolver" property in "SQLCeClientSyncProvider" in SQLServer2005 /SQLExpress I have found out a sample at : http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=sync&ReleaseId=1200 But sample doesnot give any implementation for conflict resolution. Please guide me for handling conflict resolution in case of SQLServer2005 and SQLExpress synchronization.

  • Anonymous
    June 20, 2012
    Hi Steve, Can you kindly make a tutorial on how to deploy N-Tier VB applications on different machines. This application should be based on VB 2008 and WCF. I am struck with the deployment of presentation Tier. It works on same machine, but gives error after installing it on different machine. May be Endpoint Address Issue. but I tried a lot, but couldn't succeed. Thanks, Akbar