Sync Services forADO.NET and SQL Server Compact Presentation


At Tech Ed US ’07, and several other events I’ve been giving a presentation discussing how Sync Services for ADO.NET and SQL Server Compact can optimize online and enable offline scenarios. I’ve been hoping to do more of a write up/blogicle, but just haven’t had the time. So, rather than continue to procrastinate, here’s the deck I’ve been using.


Tech Ed US ’07 DAT 325– Synchronization Options for SQL Server Compact


Tech Ed US ’07 DAT 326- Microsoft SQL Server 2005 Compact Edition in Action 


A slightly newer, modified version of Sync Services without Tech Ed specifics
Optimizing Online, Enabling Offline with SQL Server Compact and Sync Services for ADO.NET


One size doesn’t fit allLogical Queuing Demo


In order to show how Sync Services may fit into an overall architecture, I’ve been showing this demo that I call logical queuing. As I have time, I’ll write up an article explaining the concept, but here’s a quick picture from the PowerPoint above.


Many developers looking to implement service queuing may take the following approach caching the operating they wish to commit on the back end. If the “service” isn’t available, the developer queues the “message” in some blob, potentially MSMQ, a queued WCF channel, or something else.



In Logical Queuing, you save the raw data for the operation you wish to commit, but store it in it’s original format marking it “good to go”. Until you can actually send the operation, you can continue to edit it, query it, etc.


The save and send operations are split. It’s the same code, but instead of the save operation creating the message which is then queued, the save operation saves the original data, and marks it “good to go”. As the service becomes available, an event is raised which triggers the same code in the service queuing that would take the operational change and it then submits it to the service. It then marks the local data as sent awaiting some sort of confirmation from the server that it has been received, processed, declined, etc.



 


The point is several technologies may play together to fill the broader need of synchronizing reference data and interacting with existing or new services.


For those that haven’t seen me present this, it may seem like hogwash, or overly complicated. I promise to have a screencast, and article to follow it up in the near future.


 Steve


Comments (7)

  1. THis looks really intersting WebbCast ASAP PLease

    KUTGW

    Richard

  2. So, I was looking at Google Reader and noticed a link in the upper right – Offline (new).. What’s that?

  3. Cem says:

    The link given for your presentation DAT 326 is false (links to DAT 325)!

    Regards

  4. Steve Lasker says:

    Thanks Cem,

    Somehow the text was actually two links. If you clicked the "right" portion you got the correct link.  Thanks for the QA, I’ve updated the link.

    Steve

  5. This is another one of the resources posts I promised at TechED. The talk was broken down into LINQ See

  6. There’s been a lot of talk, momentum and questioning for where and how occasionally connected designs

  7. Normal 0 false false false EN-US X-NONE X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table