28
Clint Edmonson Architect Evangelist Microsoft Corporation www.notsotrivial.net

Defy Occassionally Connected Challenges With Smart Client Applications

Embed Size (px)

DESCRIPTION

Overview of the Microsoft Synchronization Framework for Smart Clients

Citation preview

Page 1: Defy Occassionally Connected Challenges With Smart Client Applications

Clint EdmonsonArchitect EvangelistMicrosoft Corporationwww.notsotrivial.net

Page 2: Defy Occassionally Connected Challenges With Smart Client Applications

WEB 2.0

ASP.NET

AJAX

WinForms

WPF

Silverlight

ClickOnce

XBAP

InfoPath

MOSS

Page 3: Defy Occassionally Connected Challenges With Smart Client Applications
Page 4: Defy Occassionally Connected Challenges With Smart Client Applications

Support

Manage

Sell

Manufacture

Specify

“Finished” Services

Microsoft Dynamics™ CRM LiveLive Meeting ServiceHosted Exchange, SharePoint®,Office Communication Server

“Attached” Services

Exchange Hosted Services (Forefront, filtering)Windows UpdateWindows OneCare

“Building Block” Services

Virtual Earth™BizTalk Services® (relay, authentication)Live ID and online services

Page 5: Defy Occassionally Connected Challenges With Smart Client Applications

Software DevelopersToday Are

Expected To MaximizeThe Web

Even whenit is not

available

Page 6: Defy Occassionally Connected Challenges With Smart Client Applications

Line of businessLine of business

Field force applicationField force application

Point of salePoint of sale

Branch officeBranch office

Home EntertainmentHome Entertainment

Media Center/TIVOMedia Center/TIVO

Media playersMedia players

Home AppliancesHome Appliances

Leverage both the local and remote resourcesEnabling user productivity anytime, anyplace, regardless of network reliabilityEnabling data to move freely between various endpoints with varying types of data in a collaborative model

Optimize Online,Optimize Online,Enable OfflineEnable Offline

for:for:

Page 7: Defy Occassionally Connected Challenges With Smart Client Applications
Page 8: Defy Occassionally Connected Challenges With Smart Client Applications

I need an application that works when I am not connected

ChallengeChallenge

Visual Studio 2008 provides a local database cache wizard that provides turn-key offline capabilities for your application

SolutionSolution

Page 9: Defy Occassionally Connected Challenges With Smart Client Applications

Offloads detailed questions to the clientEnables local processing, closer to the user

Enables offline scenarios

Page 10: Defy Occassionally Connected Challenges With Smart Client Applications
Page 11: Defy Occassionally Connected Challenges With Smart Client Applications

Microsoft Sync Framework

Page 12: Defy Occassionally Connected Challenges With Smart Client Applications

Common Sync Metadata and Runtime

“Make-it-simple” Services

Protocol and Store Providers

3rd Party Providers

OCS Framework API

“Better-together”

Applications

Knowledge VersionsChange

EnumerationConflict

Detection

Metadata Store

Anchor Providers

“Simple” Providers

RSS/ATOMFile

ProviderRelational Provider

SQL Change Tracking

Sync for ADO.NET

1st Party API

Astoria Provider

3rd Party API

Page 13: Defy Occassionally Connected Challenges With Smart Client Applications
Page 14: Defy Occassionally Connected Challenges With Smart Client Applications

SyncAgentSyncAgent

SyncTableSyncTable

SyncAdapterSyncAdapter

ServerServerSyncProviderSyncProvider

SQL Server SQL Server CompactCompact

3.53.5

ClientClientSyncProviderSyncProvider

SyncGroupSyncGroup Server DBServer DB

Data AccessData Access

Data FormsData Forms

SyncAgent SyncAgent Overall OrchestrationOverall Orchestration

ClientSyncProvider ClientSyncProvider Local Store ImplementationLocal Store Implementation

ServerSyncProvider ServerSyncProvider Aggregates SyncAdaptersAggregates SyncAdapters

SyncTables SyncTables Clients interest in what the server has Clients interest in what the server has to offerto offer

SyncGroup SyncGroup Transaction Boundary for SyncTablesTransaction Boundary for SyncTables

Server Schema ChangesServer Schema Changes Saves as scripts for later executionSaves as scripts for later execution

Page 15: Defy Occassionally Connected Challenges With Smart Client Applications
Page 16: Defy Occassionally Connected Challenges With Smart Client Applications

Conflicts can occur during synchronization

ChallengeChallenge

Enabled by extending the Sync Designer

Client and Server Providers have conflict events

Business rules must be re-run(Not really any different than a connected system)

SolutionSolution

Page 17: Defy Occassionally Connected Challenges With Smart Client Applications
Page 18: Defy Occassionally Connected Challenges With Smart Client Applications

How do we get this to work in a distributed, services based environment?

ChallengeChallenge

The Sync framework includes a transport layer to bridge the client and server providers together through a WCF sync adapter

SolutionSolution

Page 19: Defy Occassionally Connected Challenges With Smart Client Applications

SyncTableSyncTable

SQL Server SQL Server CompactCompact

3.53.5

ClientClientSyncProviderSyncProvider

SyncGroupSyncGroup Server DBServer DB

Data AccessData Access

Data FormsData Forms

Move the server components to another dll, hosted on a remote serverShim in a service (WCF) and a matching proxy

SyncAdapterSyncAdapter

ServerSyncProviderServerSyncProvider

TransportTransport

ServiceServiceServiceServiceProxyProxy

SyncAgentSyncAgent

Page 20: Defy Occassionally Connected Challenges With Smart Client Applications
Page 21: Defy Occassionally Connected Challenges With Smart Client Applications

SELECT CT.ProductID, CT.SYS_CHANGE_OPERATION,      CT.SYS_CHANGE_COLUMNS, CT.SYS_CHANGE_CONTEXTFROM   CHANGETABLE(CHANGES SalesLT.Product,@last_synchronization_version) AS CT

Page 22: Defy Occassionally Connected Challenges With Smart Client Applications
Page 23: Defy Occassionally Connected Challenges With Smart Client Applications

VS 2005 SP1VS 2005 SP1 Visual Studio 2008Visual Studio 2008 SQL Server 2008SQL Server 2008

Page 24: Defy Occassionally Connected Challenges With Smart Client Applications
Page 25: Defy Occassionally Connected Challenges With Smart Client Applications

Building resilient applications is the future, not a stop gap

It’s how all important resources are managed

Design your apps to cache from the beginning

When things are connected, they work greatWhen “stuff” happens, your business continues to function

Page 26: Defy Occassionally Connected Challenges With Smart Client Applications

Install Visual Studio 2008Trial version available http://msdn.microsoft.com/vstudioVisit the .NET Framework Developer Centerhttp://msdn.microsoft.com/netframeworkVisit the Sync Framework Developer Centerhttp://msdn.microsoft.com/syncClint Edmonson’s Bloghttp://www.notsotrivial.net Simon Guest’s UX IQhttp://simonguest.com

Page 27: Defy Occassionally Connected Challenges With Smart Client Applications

© 2008 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.

Page 28: Defy Occassionally Connected Challenges With Smart Client Applications