Embedding Sandbox Web Parts into Page Layouts and Master Pages
Monday, March 10, 2014
Note – this is applicable to both SharePoint 2010 and SharePoint 2013 ... and despite rumours of "The Sandbox is deprecated" many features in SharePoint 2013 rely on the Sandbox so I don’t see it going anywhere for the time being.
This is something that I have been told many times, it is not possible to embed a server control developed in the Sandbox onto a Page Layout or Master Page because you can’t add the appropriate Tag Prefix to the header.
If you consider the standard way of doing this for a Farm / Full Trust solution:
In the sandbox we obviously can’t reference the Assembly in the same way because (a) it isn’t deployed to the GAC / BIN folders and (b) it runs in a completely different process so won’t be JIT compiled by the .Net Framework... but there is a solution!
Microsoft.SharePoint.WebPartPages.SPUserCodeWebPart allows you to embed a Web Part from an assembly running in the Sandbox.
You still need the “AssemblyFullName” attribute. I’ve found the easy way to get this is to add a feature receiver to a Feature in Visual Studio then copy-paste it from the Manifest in Visual Studio (which contains the full text that you need).
So that’s it! Happy coding!
By Martin Hatch, Associate Principal SharePoint Consultant
Have a comment? Let us know below, or send an email to email@example.com