Someone asked me today about using the SharePoint 2013 Client Object Model in Managed Code. I’ve done this in VSTA (Visual Studio for Tools and Applications) in C#. It took a bit of experimentation to get it going, here’s how I did it:
I extracted the Client Object Model runtime DLLs from the SharePoint server. That’s both Microsoft.SharePoint.Client.dll and Microsoft.SharePoint.Client.runtime.dll. For good measure I also took Microsoft.SharePoint.Client.Runtime.dll.deploy
In my C# (I was using VSTA) as for Managed C# in InfoPath, I:
- Added three project references:
- Added Using for SharePoint.Client
Opened AssemblyInfo.cs to deal with partial trust exception, and added:
using System.Security; //Added to try to resolve the partial trust error: JP [assembly: AllowPartiallyTrustedCallers] //Added to try to resolve the partial trust error: JP
I had to turn the form from “Automatically determine security level” to “Full Trust”. This is an InfoPath specific setting, that may affect how this runs as a Farm Solution, and whether it needs a Farm Administrators approval.
At that point, you can use the Client Object Model. Getting data is done two different ways:
– CAML: my native old-style preferred approach for simple queries
– LINQ: for SQL-like queries; the one catch is you need to use SPMetal to create a runtime Thunk of sorts specific to your target sites/lists
Hope that helps!