共用方式為


SharePoint Sandbox isn't Dead...UserCode is

With the introduction of apps for SharePoint, many have speculated that sandbox solutions are dead/deprecated.  This is accurate for solutions containing assemblies running on the Sandboxed Code Service (aka - SPUCHostService.exe).  However, declarative solutions are very much still in play and widely used internally by SharePoint (ex: Web Templates and Design Manager).  A declarative .wsp package (one containing no assemblies) is a powerful way to provision elements into the host web.  So don't be afraid to leverage the solutions gallery as long as your .wsp packages don't contain code.

If your solution contains code and a farm solution isn't an option (read: SharePoint Online), you might consider an approach I outlined in my recent post on App Approaches for Common SharePoint Customizations.  In it, I discussed the use of app installed remote events to provision elements in the host web.  This pattern is generally discouraged, as apps for SharePoint should uninstall cleanly (hence the reason for an app web).  However, it is appropriate for internal apps (not marketplace apps) containing programming logic and host web dependencies.  The app model should not be confused as a deployment mechanism, so if your solution doesn't have code...consider the solution gallery.

Comments

  • Anonymous
    August 01, 2013
    Thanks for promoting this. I think it's important for SharePoint developers to know there are still options other than the app model that will keep your environment clean.

  • Anonymous
    August 19, 2013
    The comment has been removed

  • Anonymous
    September 09, 2013
    I agree with Chris .. there was a "deprecated in favour of apps" statement on MSDN but nothing in TechNet says anything of the sort. I think it was more of a mind-set shift from Sandbox Solutions towards Apps .. but there are still so many scenarios in which apps simply don't cut it, and Sandbox Solutions (even with code) is desirable

  • Anonymous
    September 09, 2013
    The big problem is that remote event receivers can be difficult to set up and in a lot of cases "wasted computing resource".  For example: Most people want to perform something on a declarative basis (copy a file to a library, or create a library lets say) on the event a site or list is created within a site collection. Having to create an auto hosted or provider hosted app in order to achieve this when it is something which is internal just seems like overkill.  The best part of this is through site creation.  Now I have seen the blog where a provider hosted app with Tenant Owner privileges can create sites on site collections and can be used for site provisioning within a tenant however it is not clear if there are any issues I have personally with having an app run as tenant admin to which people on low privilege have access and that code runs in the client. A sandbox solution which performs this is perfect because the logic is hidden from the end user and site creation works as per any SharePoint 2013 documentation and would be intuitive. As long as this is something that can be done in the near future and if not replaced with something of equal functionality then I think this move is fine.

  • Anonymous
    September 10, 2013
    It is not "speculation" that sandboxed solutions are deprecated. Microsoft announced that over a year ago: msdn.microsoft.com/.../jj163114.aspx Also, no exception is made for declarative solutions. So what you are saying in this post is contrary to MS's official policy.

  • Anonymous
    September 10, 2013
    The comment has been removed

  • Anonymous
    September 12, 2013
    The comment has been removed

  • Anonymous
    September 12, 2013
    I noticed that the Design Manager is mentioned but its extremely difficult to deploy and publish (aka have SharePoint auto-generate the needed JS files) in a solution  without simple logic that makes a dummy update to the HTML files. Would we be able to use feature receivers in Sandbox solutions or does that count under UserCode?

  • Anonymous
    November 05, 2013
    Wonder if someone ever tried to upload sandbox solution from an app. Thank you very much make more things clear.

  • Anonymous
    February 26, 2014
    Localization is a major issue now. We would like to continue to use no-code sandbox solutions to deploy content types, lists, custom actions etc. To localize these, we could use satellite assemblies. But, will the satellite assemblies in sandbox solutions be deprecated as well? If so, we essentially have no localization mechanism at all (except JS localization during page load which is really...).

  • Anonymous
    September 30, 2014
    @hhtech1: please can you explain how do you access satellite assemblies in declarative xml? thx