I've been messing around with sandboxed solutions in SharePoint Online for a bit now. I have a few concerns about development, and especially maintenance.

In on premise environments I was used to using feature upgrades to add new stuff to existing features like new fields or lists. Works great, you upload a new version of your WSP, use the object model for updating and you're done.

Now with sandboxed solutions things are a bit different. To start off with, you need to upload your solution under a different filename to the server. The server wil recognize that your new WSP is an upgrade when the ID of the package matches that of an existing package. That way you can still write feature upgrade code which basically should work the same.

Visual Studio doesn't seem to support this. For one, the WSP is generated with the same name everytime. That means studio has to retract the solution before it get's deployed again. This causes the features to deactivate and in some of my feature code I use the activate event to create subsites (instead of a stapled feature) which are deleted again on deactivation. That's definitely unwanted behaviour.

You can workaround this by editing the filename after packaging, uploading yourself and then issuing the upgrade. Those steps could probably be scripted and used as a tool in VS, but it's not ideal since you'd also have to attach the debugger manually and stuff like that.

Then there's testing, how to properly automate the testing of deployment, usage and upgrading of solutions. An extra challenge there is that there is no way to back-up your SharePoint Online site to an on-premise testserver. Especially the upgrade scenario you'll want to test against an environment which is similar to the production environment. In onprem cases, I back-up the webapp and restore it on our testserver, but that's going to be impossible with online it seems.

Then deploying a not thouroughly tested solution and upgrading a production site... I don't know... it's not like there's an easy way to back-up and restore everything in case something does go wrong, right?

closed as not constructive by SPDoctor Jan 4 '12 at 21:12

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1
    This is more of a statement than a question. Please rewrite as a question so it can be answered. – Wictor Wilen MCA MCM MVP Dec 28 '11 at 19:33
  • Well ok; it's not really a question but more a discussion starter. I really love stackexchange but it would be nice if there was a bit more room for general discussion topics. – Jasper Dec 29 '11 at 15:11
  • Thanks for the "discussion starter", and this is an interesting topic, but StackExchange just isn't designed to work as a discussion board. If you want to explore that further it would be a good question to ask on meta. If you can re-phrase this question as a specific, answerable question then please do edit your post. It will be have to be closed for now, but don't worry - once you have improved the question flag a moderator and it can be reopened. See our FAQ for general guidelines. – SPDoctor Jan 4 '12 at 21:11