SharePoint Sandboxed Solutions

At the Australia SharePoint Conference, Sandboxed Solutions was a popular topic amongst many of the developers & IT Professionals. I thought I’d share my thoughts.

Sandboxed Solution is a new feature in SharePoint 2010 that allows for safe extensibility in locked down hosted environments. For example, SharePoint Online or even large enterprises that offer SharePoint as a service to their various business units. Sandboxed Solutions allow sit e administrators to upload & manage partially trusted solutions in a safe way. This is a win/win/win for end users, IT Professionals & developers. End users are able to customize their environment without involving IT; IT doesn’t have to be the bottleneck when business users ask to deploy custom solutions; developers can have their solutions deployed without any barriers.

The value proposition of Sandboxed Solutions is strong, but it’s important to note that Sandboxed Solutions do have their limitations. For example, you can’t directly make external calls from the sandbox out-of-the-box; you can’t access the entire SharePoint Server Object Model; you can’t access the file system of the web server front end; you have limited “resources” so you can’t run really heavy computationally intensive processes. There are those who argue that Sandboxed Solutions are too limiting. But I argue that it’s how you should think about solutions by default.

Todd Bleeker, a SharePoint MVP, advises developers that they should think about developing all their solutions as Sandboxed Solutions – even those that will be deployed as a farm solution. I think that’s great advice and while it’s not possible to develop all solutions that way, it’s a good way to think about it.

One of the patterns that I think will be very popular with Sandbox development is Silverlight. Silverlight, because it runs on the client machine, gives the developer more flexibility with things like external service calls – for example, you can make a call to an external service in Windows Azure. With SharePoint 2010, it’s relatively straightforward developing a SharePoint Silverlight with the SharePoint Client Object Model. One of my favorite Sandbox solution examples is a partner solution that has developed a really creative Sandbox solution that 1) extends the SharePoint Ribbon, 2) extends the SharePoint Site Actions Menu & 3) delivers a Silverlight e-learning solution. It’s really clever and demonstrates how creative design can result in some compelling Sandoxed Solutions. I’ll write more about this specific solution in another blog post.

If the Silverlight pattern doesn’t give you the flexibility you need & you’re an enterprise, you do have the option to deploy full-trust proxy classes as a farm solution that can be called from the sandbox – for example, calling out to Windows Azure. You can also create a BCS external content type that connects to an external data source that you can use from the sandbox. 

Another really nice benefit of Sandboxed Solutions is that you can package up & distribute declarative solutions easily to end users. For example, a Site Template or workflow that you design in SharePoint Designer can be exported as a WSP and then uploaded in the Solution Gallery. Very cool & useful scenario! I think this is a hidden gem with a lot of potential.

Net/net: Sandbox solutions have a great value proposition for end users, IT Professionals and developers. They do, however, have their limitations. While not everything can be developed as a Sandboxed Solution, think about it when designing your solutions.

Some links to check out:
- Article written by Paul Stubbs @ https://msdn.microsoft.com/en-us/magazine/ee335711.aspx
- Sandbox Solutions Podcast @ https://www.sharepointdevwiki.com/display/SPPodCasts/2010/06/18/SPWebCast+018+-+Sandboxed+Solutions+interview+with+Arpan+Shah,+Todd+Bleeker,+Paul+Swider+and+Mark+Rhodes
- ShowMe for SharePoint Solution by Point8020 @ https://www.point8020.com
- Managing Scrum Projects by Andrew Woodward @ https://www.21scrum.com