Tuesday, November 06, 2007

Microsoft Releases Sync Framework CTP1

I've written several posts and a couple of Visual Studio Magazine articles about Sync Services for ADO.NET, SQL Server Compact Edition (SSCE), and related topics, so here are links to the new Microsoft Sync Framework Developer Center and the Microsoft Sync Framework [SDK] CTP1 download. Links to the magazine articles are in my Google Gears Piques New Interest in Data Synchronization post of June 1, 2007.

Updated: November 10, 2007

Note: Sync Services and the Sync Framework don't compete with Google Gears. Google Gears doesn't include a synchronization runtime (or an alternative implementation of sync functions.) Google Gears is intended to provide local storage for content created by Web applications and is best described as "storage for giant cookies."

The Sync Framework combines peer-to-peer NTFS/FAT file and Simple Sharing Extensions (SSE)-enabled Atom/RSS feed synchronization with the ADO.NET Sync Services API that reached the Beta 2 stage on July 31, 2007. Microsoft timed the Sync Framework release to correspond with presentations about its components at DevConnections 2007 (Las Vegas) and Tech*Ed Developer 2007 (Barcelona).

News of the release was buried in the deck of the Microsoft Commits to November Release Date for Visual Studio 2008 and the .NET Framework 3.5 news release on November 5, 2007, but it got top billing by All About Microsoft's Mary Jo Foley (Microsoft delivers first test build of its online-offline sync platform and More details emerge on Microsoft’s online-offline sync platform) and coverage by Microsoft Watch's Joe Wilcox (in Visual Studio 2008 Gets Its Date).

Joe waxed enthusiastic:

Microsoft Sync Framework is a huge release. I've read some commentary calling the synch technology Microsoft's response to Google Gears. Not so. With Synch Framework, Microsoft is finally delivering on synchronization capabilities chucked from Windows Vista, to make its late ship date. Developers should have been able to tap into Vista for the synchronization foundation, which would have been better for operating system adoption.

That said, the current approach offers more synchronization capabilities across more Microsoft and third-party products. Microsoft has taken into account offline data and collaboration scenarios, which go beyond the previous synchronization vision for Windows Vista.

While seemingly approaching the same kind of offline data access problem, Google Gears and Sync Framework start from opposite ends. Google is trying to extend its Web services, which need constant connectivity, to the desktop. Microsoft is trying to extend its desktop software capabilities to the Web. Additionally, Microsoft is taking more of a peer-to-peer approach to synchronization and collaboration, which is quite sensible and consistent with past product development strategy.

I'm not as taken with the release as Joe appears to be. It seems to me to be an extension of the Occasionally-Connected Systems (OCS) project to promote SSCE as a lightweight client-side data store and synchronization partner with SQL Server 200x. Joe mentions sync features that were "chucked from Windows Vista," which I assume was the PC-to-PC synchronization mentioned in Mary Jo Foley's Another Windows Vista Feature Bites the Dust Microsoft Watch article of June 7, 2006. Presumably, the NTFS file synchronization feature is the belated release of that feature.

Vista's Sync Center provides a central UI for elementary synchronization services. Greg Shultz's Keep everything in sync with Windows Vista's Sync Center article for Tech Republic explains how it works.

Note: MSDN's Windows Sync Center Blog has a Welcome and one other post dated September 21, 2005, but it includes a litany of 70+ unanswered complaints about Sync Center failures up to and including November 5, 2007.

Rafik Rubeal's The Synchronizer Blog is the best source for Sync Services (and probably Sync Framework) updates and samples. Rafik's Big News: Microsoft Sync Framework is Out! post has brief descriptions of its new features.

Updated 11/9/2007: Steve Lasker posted in his November 7, 2007 Presentations & Demos from Tech Ed Barcelona 07 post links to the slide decks and demo code for his SQL Server CE and Sync Services presentations. The demo code is for a post-Beta 2 release of VS 2008, but Steve says "you can open the files in B[eta] 2."

From The Synchronizer blog's Two Fine Articles post of 11/9/2007:

Moe Khosravy's Introducing the Microsoft Sync Framework: Next Generation Synchronization Framework article in the last issue of CoDe Magazine offers this deck:

The Microsoft® Sync Framework is the new framework and runtime for adding synchronization, roaming, and offline capabilities to applications. It supports peer-to-peer scenarios, works with devices and services, and is agnostic of data types, stores, and protocols. In this article, I’ll cover the high-level vision for the platform as well as the enabled scenarios made possible by the framework for developers, ISVs, and OEMs.

Steve Lasker's written Caching with SQL Server Compact and the Microsoft Sync Framework for ADO.NET in the same issue. Here's its deck:

With Sync Services for ADO.NET, developers can easily optimize their online experience by caching data locally within the easy-to-deploy SQL Server Compact embedded database engine. In this article, I’ll cover how Sync Services for ADO.NET was designed to fit the growing developer needs for caching data locally in online-optimized, offline-enabled applications.