SPSync is now available in version 0.8. It has a bunch of bug fixes and a better tested sync engine.
Also it is tested on Windows 7 and Windows 8 against SharePoint 2010 and SharePoint 2013.
With Office 2013 you get SkyDrive Pro for free which is the Microsoft tool to sync a local folder with a SharePoint document library. However, this tool has some disadvantages:
- Obviously, you need Office 2013. SkyDrive Pro cannot be downloaded independently.
- You can define only one root folder, where all of your document libraries will show up. With SPSync you can sync any folder you like.
- With SkyDrivePro you have no control what happens with conflicts. In SPSync you can define whether you would like to see a conflict dialog, always overwrite local changes or always overwrite remote changes.
SPSync now has a new installer and is no longer a "ClickOnce" application. It does not require administrator rights.
Download here: http://spsync.net
To provide feedback use support (at) spsync(dot)net or the FEEDBACK button on http://spsync.net
I have an Access 2010 database published to SharePoint 2010. It is a large database, but it is working fine... as far as Access can be fine. I made a lot of changes and added some more columns to one of the tables. I published the database again and everything worked ok.
To make a backup, I saved the database as a local database. Now if I try to publish the same local database to another site in SharePoint I get the following error message:
There was an error modifying list schemas. Failed to rename the field 'ID' on the SharePoint list 'xxx'
Even though the compatibility checker said everything is ok.
Bing doesn't seem to find a solution, so I tried Fiddler (by the way: great new website) to test what exactly is going on during the publishing process.
And here we have the detailed error message (click to enlarge):

So what exactly is "_OldID2" and why is there a column I cannot see within the Access Client? And why are there too many columns of some type?
I tried to hide all columns, but modifying the view on the list does not seem to have something to do with it. Then I switched the columns back on and see one column which is not my column and I've never seen it before: "_OldID" Wow, why is Access/SharePoint complaining about _OldID2, but all I can see is "_OldID"?
The Solution
Well, it's really simple: Unhide and then delete the "_OldID" column. That fixed it and it can now be published again. Thank you Access for being such a great tool… not.
On SharePoint 2013 I have a basic document library with enterprise keywords enabled and one additional "People or Group" column set to "People only" (not as a multi value field).
Now I try to sync the library with SkyDrive Pro. It fails with the following error message:

The message details:
The query cannot be completed because the number of lookup columns it contains exceeds the lookup column threshold enforced by the administrator. Error code=0x80070093; Error source=Groove
Ok, if you count the enterprise keywords and the people field as lookup fields I have 2. The default "List View Lookup Threshold" (Central Admin –> Web Application –> Resource Throttling) is 8.
Then I tried to set the value to 16. Bam! Now everything is working again. I have no idea why and how 8 shouldn't be enough with my 2 additional columns (which are of course not even lookup columns).
Gerade erfahren, dass ich die Beta Prüfung 70-331 (Core Solutions of Microsoft SharePoint Server 2013) die ich auf der SharePoint Conference in Las Vegas gemacht habe, bestanden habe!
Hätte ich nicht gedacht, da doch einigermaßen schwierige Case Studies dabei waren, aber scheint gereicht zu haben.
Heute ging es zunächst in die Session "Building Search-Driven Windows 8 Apps". Hier gab es wieder ein paar mehr Häppchen Search in SharePoint 2013 und dazu die Connection über die "_api"-Schnittstelle unter der nun das –deutlich ausgebaute– Client Object Model als REST Service zur Verfügung steht.
Aufgrund mangelnder Alternativen war ich anschließend in der Session "Developing Advanced BI Visualizations with Visio & SharePoint in Office 365 with Azure data integration". Klingt kompliziert, aber ich war doch überrascht was Visio alles kann, nachdem ich es bisher vor allem als "Grafik/Chart/Diagramm" Anwendung gesehen habe. Durch Visio Services und der Möglichkeit Diagramme mit Datenquellen zu hinterlegen wird das ganze aber schnell zu einem extrem Mächtigen Werkzeug um (BI-) Dashboards zu erstellen und zu veröffentlichen. Das hat mich doch stark beeindruckt und ich werde jetzt auf jeden fall Visio im Hinterkopf haben, wenn es um das Thema Dashboards geht.
Fazit
Nach dem letzten (kalten) Lunch aus schönen Pappkartons war dann die Konferenz leider auch schon zu Ende. Insgesamt eine wirklich gelunge Woche, insbesondere die Organisation (mal vom WLAN abgesehen). Was das ganze aber etwas trübt ist
a) die Tatsache, dass sich doch recht viele Session im Content ähnelten,
b) es deutlich zu viele "Overview" Sessions (anstatt "Deep-Dive" Sessions) gab
und c) einige der Präsentatoren deutlich merkbar eben keine solchen sind. Die SharePoint Community braucht da dringend mehr Speaker wie z.B. Scott Hanselman ;-)
Frisch gestärkt mit Bacon zum Frühstück (wie jeden Tag ;-) ging es direkt zur Session von Spencer Harbar, dem "User Profile Gott". Zu SP2010 gibt es in SP2013 wenige, dafür aber sehr sinnvolle Änderungen. Der Sync Prozess basiert weiterhin auf dem Forefront Identity Manager und auch weiterhin wird man Probleme haben, wenn man nicht an alle Fallen denkt um die User Profile Service zu starten. Aber in SP2013 wurde eine neue Methode zur Synchronisierung eingeführt. Der AD Direct Mode ist ein Modus der ohne den FIM auskommt. Die Einschränkung hier ist, dass nur ein Import AD->SharePoint möglich ist und kein zurückschreiben von SharePoint->AD. Da dies aber sowieso bei nur sehr wenigen Kunden genutzt wird ist dies definitiv der zukünftige Weg. Und wenn man später dann doch einen Full Sync benötigt, ist ein relativ leichter Wechsel vom AD Direct Mode auf den FIM Full Sync Prozess möglich und vor allem auch supported!
Nach dem an Tag 2 bereits klar wurde, dass JavaScript eine entscheiden Rolle spielt/spielen wird, gab es heute eine Session zum Thema TypeScript. Keine Sorge, dabei handelt es sich nicht um eine neue Sprache, sondern nur um eine Abstraktion von JavaScript. TypeScript ergänzt dabei die JavaScript Syntax um ein paar Schlüsselwörter, Konstrukte und Typsicherheit mit denen sich auch große JavaScript Anwendungen "vernünftig"® entwickeln und verwalten lassen (Stichwort Klassen, Namespaces, etc.). Alles was man mit TypeScript schreibt wird in JavaScript übersetzt und funktioniert somit wie alle anderen JavaScript Anwendungen. Dass die Sprache gerade mal einen Monat alt ist, merkt man an der noch verbesserungsfähigen Tool Unterstützung, wobei es im Visual Studio 2012 schon einigermaßen gut funktioniert. Im Zusammenhang mit SP2013 dürfte TypeScript für größere SharePoint Apps aber durchaus die Sprache der Wahl werden.
Nachdem ich ein wenig Fun with SharePoint and Windows 8 hatte, wobei es hauptsächlich um das Client Object Model und REST ging, folgte eine MSIT Session wie Microsoft mit seinen knapp 200.000 Site Collections und 36TB dabei ist zu Office 365 zu migrieren. Dazu nutzen sie u.a. Metalogix und ein paar eigene Tools. Sie waren außerdem erstaunt, wie viele User bereit waren freiwillig ihre Site Collection selbst zu migrieren. Im Umkehrschluss bedeutet das, dass viele Team Sites wohl keine Metadaten verwendet haben, da diese bei so einem Download/Upload Szenario natürlich verloren gehen…
Die erste Session "Hybrid Overview: Connecting SharePoint 2013 On-premises to SharePoint Online in Office365" an diesem Tag war leider schon voll als ich ankam. Da gibt es hier schon Räume Hallen, aber die Session war leider falsch geplant. Was an diesem Tag auch nicht ging: Wifi.
Einige der Sessions an diesem Tag waren allerdings wirklich gut. Insbesondere die Session von Scot Hillier über Javascript Best-Practices. Es wurde hier bereits klar was sich durch die gesamte Konferenz zog:
Javascript ist DAS Ding. Jeder "SharePoint Entwickler/Consultant" sollte sich spätestens jetzt mit JavaScript, jQuery, Knockout.js und ähnlichen Frameworks auseinander setzen.
Für SharePoint-Hosted-Apps ist das z.B. die einzige Möglichkeit der App Entwicklung, da dass Ziel ist, keinerlei Code mehr auf den SharePoint Servern auszuführen. An der Stelle wird die Microsoft Strategie sichtbar.. möglichst wenig Anpassungen der SharePoint Installation um so die Cloud attraktiv zu machen und den späteren Umstieg zu erleichtern.
Ich habe außerdem einen Einblick in das Thema Search Driven Apps bekommen. Endlich muss man dazu nicht mehr XSL(T)
, sondern (wie sollte es anders sein) HTML5/JavaScript nutzen. Dazu passend hier das Kennzeichen unseres Mietwagens nach der Konferenz. Zum Abschluss des Tages vor dem Bon Jovi Konzert dann noch in einer Session erlebt wie man SharePoint in Azure VMs hosted. Insgesamt sehe ich persönlich das aber nicht wirklich als Alternative. Office365 dürfte preislich attraktiver sein und mit On-Prem bin ich flexibler und die Liste der Dinge die man bedenken muss sind ebenfalls geringer (Stichwort User Profiles / Authentication). Einzig für Desaster Recovery ist es natürlich sinnvoll, eine Farm im Cold-Standby (ggf. noch in einem anderen Land) zu haben. Die Kosten sind vernachlässigbar so lange die Farm nicht in Betrieb ist und dank Powershell ist so eine DR Farm dann in kürzester Zeit wieder online.
Bon Jovi war dann erwartungsgemäß GROß mit langen Schlangen am Eingang.
Der komplette Mandalay Bay Beach war dafür für die Teilnehmer (und die wahrscheinlich nochmal so vielen Service Kräfte) geblockt. Es gab jede Menge zu essen und natürlich zu trinken und es war insgesamt sehr gut, auch wenn um Punkt 10 der Strand geräumt wurde und wir an anderer Stelle weiter feiern mussten…
In SharePoint 2010 it is really easy to enable the search center to include a thumbnail of JPG images. The required XSLT is already there and you only have to add the file type "jpg" within the search administration (and a full crawl of course):

However, it works for images within a picture library only. To enable it also for JPGs in "normal" document libraries (e.g. "PublishingImages" which is is, other than the name would indicate, not a picture library), go to your search center results.aspx, edit the page and then edit the "search core result" web part. Make sure you uncheck "Use Location Visualization" (obviously, isn't it? ;-).

Now click "XSL Editor..." and copy/paste that XSLT to modify it within your favorite editor. Look for <xsl:template match="Result">.
There you can see at the first "xsl:when" that it tests on contentclass "STS_ListItem_PictureLibrary". I've just copied the entire "xsl:when" block and modify it.
The first modification is to test if the result is a jpg. Sadly enough there is no "indexOf" in XSLT, so this one is a little bit dirty:
<xsl:when test="contains(url, '.jpg') and not(contains(url, '.jpg.'))">
The second change is where the thumbnail will be shown. I don't want to load the full big JPG so I decided to go with the really nice built-in feature of SharePoint to get a thumbnail of any image just by modifying the URL.
To get a thumbnail from a JPG stored in any SharePoint library just add "/_t/" between the library and the filename and replace the filename extension with "_jpg.jpg":
http://sp2010/DocLib/_t/Test_jpg.jpg
So here is the interesting part before the modification:
<div class="srch-picture2">
<img class="srch-picture" src="{picturethumbnailurl}" alt="" />
</div>
And after the modification:
<div class="srch-picture2">
<img class="srch-picture" alt="">
<xsl:attribute name="src">
<xsl:value-of select="concat(substring-before(url,title),'_t/',
translate(title,'.jpg','_jpg'),'.jpg')" />
</xsl:attribute>
</img>
</div>
At the end your XSL should contain the new "xsl:when" between the existing one and the "xsl:otherwise":

After saving this and the entire page, you should get a nice looking result:

On my SharePoint 2013 developer machine I had an issue with the Search Service.
On the "Services on Server" page, the "Search Host Controller Service" showed the status "Starting". After some googling on Bing, I found a post on the Microsoft Forum. Thanks to "SPJeff" here is the solution:
Copy the following script to a new .ps1 file and execute it within the SharePoint PowerShell console (run as (Farm-) Administrator):
$acl = Get-Acl HKLM:\System\CurrentControlSet\Control\ComputerName
$person = [System.Security.Principal.NTAccount]"Users"
$access = [System.Security.AccessControl.RegistryRights]::FullControl
$inheritance = [System.Security.AccessControl.InheritanceFlags]"ContainerInherit, ObjectInherit"
$propagation = [System.Security.AccessControl.PropagationFlags]::None
$type = [System.Security.AccessControl.AccessControlType]::Allow
$rule = New-Object System.Security.AccessControl.RegistryAccessRule($person, $access, $inheritance, $propagation, $type)
$acl.AddAccessRule($rule)
Set-Acl HKLM:\System\CurrentControlSet\Control\ComputerName $acl
$sh = Get-SPServiceInstance | ? {$_.TypeName -eq "Search Host Controller Service"}
$sh.Unprovision()
$sh.Provision($true)
After a reboot everything is now working as expected:

Soeben genehmigt und gebucht! Ich bin also im November bei der #SPC12 in Las Vegas!
Weitere Informationen dann an dieser Stelle.
I’ve just tried to install SharePoint 2013 Preview on a blank Windows Server 2012. The problem: The prerequisite installer had a lot of problems.
First of all, ASP.NET 4 could not be installed. After some digging around in the log file I found that the setup failed on this line:
"C:\Windows\system32\cscript.exe" "C:\Windows\system32\iisext.vbs" /enext "ASP.NET v4.0.30319"
I had to install "IIS6 Scripting Tools" manually. Additionally I had to install "Windows Identity Foundation 3.5" manually via "Add Roles and Features" within the "Server Manager".
Now SharePoint 2013 is up and running on a dev VM.
A new version of the SharePoint / Windows Explorer synchronization tool is available. It provides now a lot more robust synchronization mechanism, especially for renaming of files on the server-side.
ADFS authentication now works regardless how long the app is running. If the authentication cookie is expired it will automatically be renewed.
There are also a lot of minor issues resolved, so download the new version now. If you have the previous version make sure that you uninstall it and install the new version manually, because there was an issue with the setup so you won’t get updated automatically.
Please update to the latest version now. DOWNLOAD HERE
To provide feedback use support (at) spsync(dot)net or the FEEDBACK button on http://spsync.net
SPSync gets one step closer to a final version.
The most important thing: It can now connect to SharePoint sites by using NTLM or ADFS claims based authentication. Also SPSync now uses ClickOnce so it can start without the need for administrator permissions and updates automatically. Furthermore a lot of minor fixes are included to improve the sync capabilities.
Regarding the setup process, I will include a “standard” MSI install package for the final version to be ready for enterprise automatic software deployments.
One known issue: Only HTTPS servers are supported right now. The next version should include HTTP support also.
Please update to the latest version now. DOWNLOAD HERE
To provide feedback use support (at) spsync(dot)net or the FEEDBACK button on http://spsync.net
SPSync is now available as a public beta. You can download it here. It works now with large files. I’m currently working on integrating ADFS/Claims authentication. Currently only Windows authentication (NTLM) is supported.
I would like to know, what else you would expect from such an application. Please provide feedback via the feedback button on http://spsync.net or directly via uservoice here.
A few weeks ago I started working on a new tool. All of you know Dropbox: It has nearly zero UI and just do what it is supposed to do.
I’m working a lot with SharePoint 2010 as it is my job and I also really like it. What I don’t like is how to work with document libraries that are mainly used as a file store. Of course, I know meta data and all these stuff what you can do with SharePoint, but sometimes you just want to synchronize a folder within Windows Explorer with a document library in SharePoint.
Microsoft already created a tool for that (or better: bought it from Groove ;-) It is now called SharePoint Workspace. It can sync document libraries and also custom lists. You then have an offline copy of an entire SharePoint site. BUT: It is somewhere “within SharePoint Workspace”. You cannot define a “normal” folder on your hard disk as the sync target.
That’s why I’ve created a new tool called SPSync which is intended to close the gap.
User Interface
The UI of SPSync mainly consists of an icon in your taskbar:

It has a context menu, where you can manage all sync configurations:


A configuration consists of a name, the local folder, the SharePoint site URL, the title of the document library, the conflict handling mode and the credentials to use. If the conflict handling mode is set to manual, a balloon will popup on any conflict and you can choose what you want to do.
That’s all for now what you can configure, but I will extend it in the next weeks/months.
Technical Details
First of all: The password is stored encrypted with the Windows Data Protection API and bound to the current user. Therefore it cannot be decrypted on any other machine or by any other user on the same machine.
The communication with SharePoint is done by the SharePoint Client Object Model (Client OM). The sync core is built from scratch and contains a meta data store to also be able to handle deleted files. SPSync checks for changes automatically every 30 minutes and also actively monitors the local folder for any changes. That means local changes are sync’d immediately to SharePoint.
Currently there are no overlay icons within the Windows Explorer (like you have it for the Dropbox folder), because those Explorer Shell Extensions require a native (C++) implementation.
How to get it?
Visit http://spsync.net to get more information.