What’s in a name?
SkyDrive Pro might be the worst named of all of the products to come out of Microsoft in a while. I sometimes think about the meetings that must happen in Redmond, Developers on one side of the room and Marketing on the other.
Marketing: “Yeah it’s just like SkyDrive where you can store all your files but more corporate because it links to SharePoint”
Development: “Huh? But it doesn’t have anything to do with SkyDrive”
Marketing: “Yeah but SharePoint is moving to the cloud and SkyDrive is in the cloud so it’s the same isn’t it?”
Development: “Whatever dude, call it what you want, you will anyway”
That conversation and the obvious retreat of technology reality to marketing dream left most of us with the following confusing array of icons and names in Explorer, Task Manager and the Tray.
Whats worse is the “SkyDrive” menu bar in SharePoint 2013 is not SkyDrive either, nor is it SkyDrive Pro, but instead it’s a link to a personal SharePoint document library. Something tells me we are half way along a not completely formed roadmap.
Bad naming (and icons) notwithstanding, SkyDrive Pro is not SkyDrive and it’s more than SharePoint Workspace. Under the hood SkyDrive Pro is, just as SharePoint Workspace 2010 was, a synchronization product called Groove (Marketing team again?). Try right clicking on SkyDrive Pro in the Task Manager and click Properties.
Groove is a synchronization technology that uses the Sync Framework under the hood. The Sync Framework is a generic library for implementing synchronization of disparate data sources, and is appearing under the hood in many applications, including SQL Azure Data Sync.
There is one very important improvement in SkyDrive Pro over SharePoint Workspace 2010, and that is the way it stores files locally on your machine. Where SharePoint Workspace 2010 persisted files in large encrypted blobs that could only be accessed through the SharePoint Workspace user interface, SkyDrive Pro lays the files down on your disk just as they appear in your SharePoint document library. You are then free to interact with those files just as you would other files on disk. SkyDrive Pro will sync the changes between SharePoint and local file system as required in the background.
Which got me to thinking, could we convince SkyDrive Pro to sync two SharePoint lists with each other by syncing them with folders that themselves are synced? Turns out you can, with some work.
First set up two SharePoint document libraries. They can be in the same site, different sites, online of on-prem and even different versions of SharePoint. In one create a DocumentA and the other create Document1. Now use the Sync button in the top right corner to sync the libraries to local folders on your machine.
Once these are syncing with SkyDrive Pro you’ll end up with files in two folders (SkyDrive Pro won’t let you sync to the exact same folder so it will add a number on the end to avoid the clash.).
What we need to do is Sync those two directories with each other.
SyncToy (I blame this name on the Development team) is a product that again uses the Sync Framework under the hood but is focussed on keeping file systems in sync. It can be used through the GUI or scripted to regularly sync 2 folders. Now use SyncToy to set up a sync between your two folders.
And optionally set up a regular scheduled task to run the sync with the following command.
“C:\Program Files\SyncToy 2.1\synctoycmd” -R
Add or remove files from one SharePoint library, after the schedule task runs, the changes are reflected in your other SharePoint library. What we’ve done is set up a 3-way sync between SharePoint libraries and local directories
That’s pretty powerful but there’s a couple of problems with it. First the sync is only as regular as the synctoycmd
scheduled task. Second, SyncToy adds a couple of files your directories to maintain state that are hidden in the file system but show up in SharePoint
NTFS supports a symbolic link between folders which will make the same files appear under multiple folder locations. If we use a link then there’s no need to sync files locally using SyncToy. The difficulty in setting this up is SkyDrive Pro is holding onto these folders and is remarkably resilient to being shut down even temporarily so we can set up the link. But it can be done.
There’s probably a couple of ways to do this. Here’s my attempt (on Windows 8)
Copy the following into a link.bat file on your desktop (replace with the names of the directories you need to sync)
rmdir /S /Q “C:\Users\Peter\SharePoint\Kloud Team Site – Documents 1”
mklink /D /J “C:\Users\Peter\SharePoint\Kloud Team Site – Documents 1” “C:\Users\Peter\SharePoint\Kloud Team Site – Documents”
Click Start and type msconfig and choose “Safe boot- Minimal”.
And Restart as requested
This will launch Windows without all the services running in the background and means you’re free to play with the SkyDrive Pro folders.
Run the link.bat file and reboot again but this time using “Normal startup”. When Windows comes back up, right click on SkyDrive Pro icon in the task bar and “Open your SkyDrive Pro folder” (Don’t worry about the red cross, I think this is because the “Link” explorer icon and SkyDrive icon don’t work together)
Now any changes made in either SharePoint library are constantly being synced to the other.
While it’s a bit of work to set up, the effect is quite powerful. What we’ve set up is a local sync agent for two SharePoint sites. It could be used as a backup service or keeping development and test environments in sync, or bringing remote data closer to the user. That’s a service that some software companies sell expensive replication products for and it’s a service that would make a great PAYG service like Data Sync Service for SQL Azure.
Now there is one product absent from the new 2013 suite of SharePoint products, a new version of Groove Server. This technology can be used as just this sort of a synchronization agent between multiple parties. As the challenges of dealing with remote cloud based services like SharePoint Online becomes more prevalent, I expect it’ll turn up again in other clothes.
Maybe SkyDrive Pro Sync Service? (Over to you Marketing team?)