Rahul Gangwar Partner Technical Consultant| Microsoft | rahul.gangwar@microsoft.com

Preview:

Citation preview

Microsoft Sync Framework Advances

Rahul GangwarPartner Technical Consultant| Microsofthttp://blogs.msdn.com/rahul/ | rahul.gangwar@microsoft.com

Agenda

Introduction to Sync FrameworkNew features in Sync Framework 2.0Sync Services for ADO.NETDemo of Sync Services on Windows Mobile client

Why Sync

Service

Thin Client RichClient

Sync!

Why Sync

Service

Client App

Client App

All stores are differentSome are very capable, most are not

Conflicts are difficult to detectAnd even harder to manage afterwards

Misidentification of conflicts bad experienceDuplicates, over-prompting, data loss

Inefficient change enumeration makes sync too expensive

Sync loops are a fact of lifeFew people set out to get into one, many end up in one

80% solution much simpler than 100%Corner cases are everywhere!

Why use a Framework?Sync is hard

Home PC

SmartPhone

Server

Settings

Files

Settings

Files

We strike for the balance of power and flexibility

Powerful: solve hard sync problemsConflict detection and resolutionUnreliable networks, i.e. interruptions/partial syncsLoops, metadata loss, etcEasy-to-use and performant

FlexibleArbitrary storesArbitrary protocolsArbitrary data typesArbitrary topologies

Why Microsoft Sync Framework?Solving hard problems exactly once

Using Microsoft Sync FrameworkHow synchronization happens

Sync Provider

Sync Application

Sync Provider

Sync Orchestrator

DataStore

Data Store

changes

changes changes

changes

Writing a Sync Application

SyncOrchestrator orch = new SyncOrchestrator();

orch.LocalProvider = new FileSyncProvider(guid1, “c:\\temp\\

myfolder”);

orch.RemoteProvider =

new LiveMeshProvider(guid2,

new NetworkCreditial(username, password),

“MyMeshFolder”);

orch.Synchronize();

Not too hard!

Sync Services for FileSystems

DEMO

Change Unit Filtering

NameemailPhone

Address

Photograph

Contact on Notebook

NameemailPhone

Contact on Small Device

Provider Negotiated Filters

File System

Interested Party

*.txt

*.jpg

*.wmv

*.txtProvider

Provider

Orchestrator

filter filter

Makes it easy for you to sync participating endpoints

Makes it easy for your endpoint to participate

Comes with built-in endpoints:V1: File System, Relational DatabasesV2: SQL Data Services, Live Mesh, ADO.NET Data Services and more

Provides integrated tools and user experiencesSync Services for ADO.NETSyncToy Project Codename “Anchorage”

What does Microsoft Sync Framework do? Live

MeshSmugMu

gSync

StoreSyncable

Synching ADO.NET Data ServiceOR “Taking ADO.NET Data Service offline”

ADO.NET Data Service exposes data source over cloud.Sync Framework brings offline capability to data source.Combining these two will expose data source over cloud with offline capability.

Astoria

ClientSync

Framework

Sync Services for ADO.NET

Application SQL ServerFetch

Update

Local Storage Fetc

h

Synchronize

Sync Services for ADO.NET

Using “n” tier ArchitectureSynchronization done via web services

DEMO

Sync Framework v2 is the easiest and most efficient way to synchronize your data with

Live Mesh, File systems, Databases, ADO.NET Data Services, SQL Data Services, and more.

Summary

Resources

Sync Developer Centerhttp://msdn.microsoft.com/sync

SDK (including documentation)WhitepapersSamples (including several end-to-end)

Sync Bloghttp://blogs.msdn.com/sync

AnnouncementsTips and Tricks

SQL Labswww.sqlserviceslabs.com

Cutting edge prototypes and pre-release functionality

Feedback / QnA

Your Feedback is Important!Please take a few moments to fill out our

online feedback form.

Use the Question Manager on LiveMeeting to ask your questions now!

Contact

Blog Addresshttp://blogs.msdn.com/rahul/

Email Addressrahul.gangwar@microsoft.com

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after

the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Recommended