330 likes | 631 Views
Windows Vista: Centralizing Data Synchronization With The New Sync Center. David Potter – David.Potter@Microsoft.com DAT317 Development Lead Microsoft Corporation. Agenda. Synchronization Today Goals for Sync in Windows Vista New UI Walkthrough Sync Center Architecture
E N D
Windows Vista:Centralizing Data Synchronization With The New Sync Center David Potter – David.Potter@Microsoft.com DAT317 Development Lead Microsoft Corporation
Agenda • Synchronization Today • Goals for Sync in Windows Vista • New UI Walkthrough • Sync Center Architecture • Building a Sync Handler • Conflicts and Extensibility • Backward Compatibility and Managed Code • Questions
Synchronization Today • Sync Manager provides a centralized UI for sync • Feedback showed us: • UI is hard to discover • Requires user’s attention • Conflicts must be resolved as they occur • Sync blocks logoff • No overview of what is synchronizing to and from the computer • Many applications provided their own sync experiences • Different user interfaces and access points • Sync Manager used mostly for offline files/web pages
Sync Goals In Windows Vista • New name – Sync Center • Centralized, consistent sync experience • For applications, services, devices, computers • It is clear to the user what is being synchronized to and from PC • Additional framework for: • Setup • Conflicts • Error reporting • Background sync support
Sync Center User Experience5 main components • Sync system tray icon • Folders • Sync Center (handlers and items) • Sync Setup • Sync Results (errors, warnings, etc.) • Conflict Folder
Plugging In To Sync CenterDesign decisions • What is the target of synchronization? • What kinds of data will be synchronized? • How many instances? • What is the setup experience? • Do you need to handle conflicts? • What errors will be reported to users? • Do you need to extend the folder UI? • Do you want to support other tasks?
Sync Handler Architecture Optional Handler Collection UI Operations Property Sheet Extensions Context Menu Extensions Conflict Store Event Store
Synchronization ModelMechanics • Handler interacts with Sync Center through callback • Provides progress • Provides events • Checks for cancellation • Callback created using Session Creator
Synchronization ModelThreading • Previous model • Synchronize() called on same thread as UI • Windows Vista • Handler instantiated on new thread to sync • Synchronize() method can take as long as needed • Less complex model, less work for you!
Background Sync • What is background sync? • Application monitors data source for changes • Automatically syncs in the background • Problem: Status of these syncs not visible to user in centralized UI • Background sync engine should report progress, errors, conflicts to Sync Center • Helps user determine if data is up-to-date
Existing Sync Engine / UI • Use the session creator to plug an existing sync engine into Sync Center • Benefits • You don’t have to refactor your sync engine • Consistent, centralized user experience which includes your sync relationships
ExtensibilitySync Center Folders • Standard shell extensibility model • Property sheets • Context menus • All folder items can be extended • Handlers (partnerships) • Items • Events • Conflicts
ExtensibilityHandlers and Items • Handlers can display additional UI • Confirmation/data collection before operation • Setup, enable, disable, etc. • Sync Center provides entry point for your UI • Scheduling • Browsing contents of sync relationship • Event stores • Conflicts
Conflicts • Conflict definition: • An item that has been changed on both ends of a sync relationship between sync requests • Handler maintains a store of conflicts • Conflict resolution is deferred and does not block sync • Conflict resolution UI • Handler can provide custom conflict UI • Default UI used if not provided by handler
Conflict Life Cycle unresolved Detected Persisted enumerateand present automatically resolved skip resolve Resolved Presenting delete Deleted
Compatibility • Windows XP • Write a component to wrap the new APIs • Component translates between new/old APIs • Managed Code • Don’t run managed code in Sync Center or in the Shell • Run managed sync engine in separate process • Design sync handler as intermediary between Sync Center and external sync engine • FUN309 – Designing Managed Add-Ins for Reliability, Security, and Versioning
What’s In The PDC Build • APIs to create a Sync Center handler • All APIs demoed are available • Conflict resolution APIs are available • Primary sync user experience • Sync Center folders with basic functionality • Basic sync tray
What’s In Future Builds • Support for browsing handlers and items • Sync Schedule Wizard • Support for custom event stores • Full sync tray functionality • Fit and finish
Summary • Sync Center is a rich sync platform with APIs that are simple to develop to • Plugging in to Sync Center gives your users a solid sync experience • Sync Center is fully extensible to support a wide-range of sync scenarios
Community Resources • At PDC • For more information, go see • DAT406: Windows Vista: Under the Hood on Storage and Advanced Application Development • PRS308: Windows Vista: Reaching Your Users When Their Machine Is Off, Using Auxiliary Display Devices (Wed. 1:45 p.m.) • PRS315: Windows Vista Tablet PC: Advances in Creating Tablet Enabled Applications (Wed. 5 p.m.) • FUN319: Windows Vista: Developing Power-Aware Applications (Thur. 5:15 p.m.) • PNL12: Future Directions in Mobile Device Hardware (Fri. 1 p.m.) • Ask The Experts table: Data and Systems • DAT Track lounge: I’ll be there right after this session • After PDC • Windows Platform SDK: http://msdn.microsoft.com/ • Mobile PC on MSDN: http://msdn.microsoft.com/mobilepc • Sync Center Team Blog: http://blogs.msdn.com/SyncCenter
Additional Mobile PC Resources • How to setup a new developer environment on Windows Vista in order to take advantage of the Mobile PC and Tablet PC SDK features, along with Windows Presentation Foundation at msdn.microsoft.com/mobilepc/pdc05 • Mobile PC and Tablet PC Developer Center: msdn.microsoft.com/MobilePC • Download SDKs, code samples, articles • Fabrikam Fine Furniture Reference Application: End-to-end reference application demonstrating Mobile PC and Tablet PC best practices for business applications • Arcs of Fire: Classic artillery duel game demonstrating how to use gestures, use pressure sensitivity, draw landscapes, and more. This uses the new Tablet PC Game SDK • Tablet PC ISV Partner Program: TabletPCPartners.com
Questions David Potter – David.Potter@Microsoft.com Development Lead, Windows Shell Team
© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.