One of my customer had the following problem : he had an old & ugly public web site written in asp.net. Nobody wanted to maintain this application anymore, but worse than that: the business was unable to easily & quickly add new content and was therefore slow to react.
As a SharePoint guy, my first reflex was to use SharePoint as a web content management tool, but we didn’t have the budget to buy, to set up and to maintain a SharePoint farm.
Moving to the cloud (Azure or Office 365) was the obvious option; Azure didn’t provide any real web content management functionalities so I turned my attention to SharePoint online (the SharePoint component of Office 365).
Office 365 provides both an intranet (several Site Collections) and a public web site (one public site collection).
Branding the public web site is possible by creating a custom master page (don’t try to modify the default master page!); I did it by following this MSDN tutorial that I recommend . That works very well and you can completely change the ugly look & feel of the default Office 365 public web site.
I was very glad to be able to achieve it for my customer for only 25 €/month; I also noticed that the publishing features were available, so I thought I could leverage the very handy Page Layout stuff until I discovered in the Office 365 forums that even if they work the publishing features of Office 365 are not supported on the public web site !!! And an Office 365 program manager confirmed it afterwards at the SPC 2011.
That was a real problem for me –> I decided to leverage the SharePoint Foundation wiki pages (very flexible) with web parts (web parts properties are now versioned on SharePoint Foundation 2010)
I had to remove all publishing controls from my custom master page.
Other huge problem : we cannot remotely debug an Office 365 SharePoint application (this didn’t surprise me)
–>I decided to create the 4 following environments :
DEV environment :
my HyperV virtual machine, with Visual Studio 2010 & TFS source control. I always start by using the SharePoint 2010 Microsoft Information worker VM. In my Visual Studio project I have a mixture of CAML Code & sandboxed .net code that I deploy & debug on my local SharePoint.No problem so far.
I quickly discovered that I couldn’t create a form that would send information by e-mail because one of the methods that is explicitly blocked in the sandbox is SPUtility.SendEmail. As far as I know, there is no alternate method provided in SharePoint.
TEST environment :
I created a (free) trial Office 365 account and I manually uploaded & activate my sandbox solution over there. Here I noticed several problems :
1..Net Code that worked very well in my on premise sandbox didn’t always work in the cloud. I was surprised; I even created an empty web part that didn’t work in O365…and other people experimented the same issue.
2.Sometime I couldn’t even update my solution package in the cloud, it looks like the User Code Service couldn’t unpack and deploy my solution package.Even deploying the solution to another (private here) site collection didn’t work (which didn’t surprise me : the User Code service is Shared across the farm).
I created another (free) trial Office 365 account with another public site collection where I deployed my solution package in such way that some key beta testers could test it and report some problems & suggestions.
I created yet another (free) trial Office 365 account where I deployed the tested solution package; eventually I paid the subscription.