Clint Edmonson Architect Evangelist Microsoft Corporation www.notsotrivial.net
WEB 2.0 ASP.NET AJAX WinForms WPF Silverlight ClickOnce XBAP InfoPath MOSS
 
Support Manage Sell Manufacture Specify “ Finished” Services <ul><ul><li>Microsoft  Dynamics™ CRM Live </li></ul></ul><ul>...
Software Developers Today Are Expected To Maximize The Web Even when it is not available
<ul><li>Line of business </li></ul><ul><ul><li>Field force application </li></ul></ul><ul><ul><li>Point of sale </li></ul>...
 
<ul><ul><li>I need an application that works when I am  not connected </li></ul></ul>Challenge <ul><ul><li>Visual Studio 2...
<ul><li>Offloads detailed questions to the client </li></ul><ul><li>Enables local processing, closer to the user </li></ul...
 
Microsoft Sync Framework
Common Sync Metadata and Runtime “ Make-it-simple” Services Protocol and Store Providers 3 rd  Party Providers OCS Framewo...
 
SyncAgent SyncTable SQL Server  Compact 3.5 Client SyncProvider SyncGroup Server DB <ul><ul><li>SyncAgent  Overall Orchest...
 
Conflicts can occur during synchronization Challenge <ul><li>Enabled by extending the Sync Designer </li></ul><ul><ul><li>...
 
How do we get this to work in a distributed, services based environment? Challenge The Sync framework includes a transport...
SyncTable SQL Server  Compact 3.5 Client SyncProvider SyncGroup Server DB <ul><li>Move the server components to another dl...
 
SELECT CT.ProductID, CT.SYS_CHANGE_OPERATION,      CT.SYS_CHANGE_COLUMNS, CT.SYS_CHANGE_CONTEXT FROM   CHANGETABLE(CHANGES...
 
VS 2005 SP1 Visual Studio 2008 SQL Server 2008
 
<ul><li>Building resilient applications is the future,  not a stop gap </li></ul><ul><ul><li>It’s how all important resour...
<ul><li>Install Visual Studio 2008 Trial version available  http://msdn.microsoft.com/vstudio </li></ul><ul><li>Visit the ...
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be...
 
Upcoming SlideShare
Loading in …5
×

Defy Occassionally Connected Challenges With Smart Client Applications

1,802 views

Published on

Overview of the Microsoft Synchronization Framework for Smart Clients

Published in: Business, Technology
  • Be the first to comment

  • Be the first to like this

Defy Occassionally Connected Challenges With Smart Client Applications

  1. 1. Clint Edmonson Architect Evangelist Microsoft Corporation www.notsotrivial.net
  2. 2. WEB 2.0 ASP.NET AJAX WinForms WPF Silverlight ClickOnce XBAP InfoPath MOSS
  3. 4. Support Manage Sell Manufacture Specify “ Finished” Services <ul><ul><li>Microsoft Dynamics™ CRM Live </li></ul></ul><ul><ul><li>Live Meeting Service </li></ul></ul><ul><ul><li>Hosted Exchange, SharePoint®, Office Communication Server </li></ul></ul>“ Attached” Services <ul><ul><li>Exchange Hosted Services (Forefront, filtering) </li></ul></ul><ul><ul><li>Windows Update </li></ul></ul><ul><ul><li>Windows OneCare </li></ul></ul>“ Building Block” Services <ul><ul><li>Virtual Earth™ </li></ul></ul><ul><ul><li>BizTalk Services® (relay, authentication) </li></ul></ul><ul><ul><li>Live ID and online services </li></ul></ul>
  4. 5. Software Developers Today Are Expected To Maximize The Web Even when it is not available
  5. 6. <ul><li>Line of business </li></ul><ul><ul><li>Field force application </li></ul></ul><ul><ul><li>Point of sale </li></ul></ul><ul><ul><li>Branch office </li></ul></ul><ul><li>Home Entertainment </li></ul><ul><ul><li>Media Center/TIVO </li></ul></ul><ul><ul><li>Media players </li></ul></ul><ul><ul><li>Home Appliances </li></ul></ul>Leverage both the local and remote resources Enabling user productivity anytime, anyplace, regardless of network reliability Enabling data to move freely between various endpoints with varying types of data in a collaborative model <ul><ul><li>Optimize Online, </li></ul></ul><ul><ul><li>Enable Offline </li></ul></ul><ul><ul><li>for: </li></ul></ul>
  6. 8. <ul><ul><li>I need an application that works when I am not connected </li></ul></ul>Challenge <ul><ul><li>Visual Studio 2008 provides a local database cache wizard that provides turn-key offline capabilities for your application </li></ul></ul>Solution
  7. 9. <ul><li>Offloads detailed questions to the client </li></ul><ul><li>Enables local processing, closer to the user </li></ul><ul><li>Enables offline scenarios </li></ul>
  8. 11. Microsoft Sync Framework
  9. 12. Common Sync Metadata and Runtime “ Make-it-simple” Services Protocol and Store Providers 3 rd Party Providers OCS Framework API “ Better-together” Applications Knowledge Versions Change Enumeration Conflict Detection Metadata Store Anchor Providers “ Simple” Providers RSS/ATOM File Provider Relational Provider SQL Change Tracking Sync for ADO.NET 1 st Party API Astoria Provider 3 rd Party API
  10. 14. SyncAgent SyncTable SQL Server Compact 3.5 Client SyncProvider SyncGroup Server DB <ul><ul><li>SyncAgent Overall Orchestration </li></ul></ul><ul><ul><li>ClientSyncProvider Local Store Implementation </li></ul></ul><ul><ul><li>ServerSyncProvider Aggregates SyncAdapters </li></ul></ul><ul><ul><li>SyncTables Clients interest in what the server has to offer </li></ul></ul><ul><ul><li>SyncGroup Transaction Boundary for SyncTables </li></ul></ul><ul><ul><li>Server Schema Changes Saves as scripts for later execution </li></ul></ul>SyncAdapter Server SyncProvider Data Access Data Forms
  11. 16. Conflicts can occur during synchronization Challenge <ul><li>Enabled by extending the Sync Designer </li></ul><ul><ul><li>Client and Server Providers have conflict events </li></ul></ul><ul><li>Business rules must be re-run </li></ul><ul><ul><li>(Not really any different than a connected system) </li></ul></ul>Solution
  12. 18. How do we get this to work in a distributed, services based environment? Challenge The Sync framework includes a transport layer to bridge the client and server providers together through a WCF sync adapter Solution
  13. 19. SyncTable SQL Server Compact 3.5 Client SyncProvider SyncGroup Server DB <ul><li>Move the server components to another dll, hosted on a remote server </li></ul><ul><li>Shim in a service (WCF) and a matching proxy </li></ul>SyncAgent Data Access Data Forms SyncAdapter ServerSyncProvider Transport Service Service Proxy
  14. 21. SELECT CT.ProductID, CT.SYS_CHANGE_OPERATION,      CT.SYS_CHANGE_COLUMNS, CT.SYS_CHANGE_CONTEXT FROM   CHANGETABLE(CHANGES SalesLT.Product,@last_synchronization_version) AS CT
  15. 23. VS 2005 SP1 Visual Studio 2008 SQL Server 2008
  16. 25. <ul><li>Building resilient applications is the future, not a stop gap </li></ul><ul><ul><li>It’s how all important resources are managed </li></ul></ul><ul><li>Design your apps to cache from the beginning </li></ul><ul><ul><li>When things are connected, they work great </li></ul></ul><ul><ul><li>When “stuff” happens, your business continues to function </li></ul></ul>
  17. 26. <ul><li>Install Visual Studio 2008 Trial version available http://msdn.microsoft.com/vstudio </li></ul><ul><li>Visit the .NET Framework Developer Center http://msdn.microsoft.com/netframework </li></ul><ul><li>Visit the Sync Framework Developer Center http://msdn.microsoft.com/sync </li></ul><ul><li>Clint Edmonson’s Blog http://www.notsotrivial.net </li></ul><ul><li>Simon Guest’s UX IQ http://simonguest.com </li></ul>
  18. 27. © 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.

×