TechEd: Chris Mayo on ‘Developing Collaboration Solutions in the Cloud with Microsoft SharePoint Online’

Chris Mayo, a Microsoft Senior Technical Evangelist for Office 365, focuses on "dealing with building solutions with these products," hence the topic of his TechEd session this afternoon on Developing Collaboration Solutions in the Cloud with Microsoft SharePoint Online.  Explaining that SharePoint Online "is a subset of SharePoint 2010 hosted in the cloud as SaaS [that] ships with Office 365," Chris pointed out that Office 365 is in beta today and that "Our goal is to release in the first half of this year."

Providing a brief tour of Office 365 "with initial tenancy already set up," Chris began in the Users area of the Admin Overview, saying that "You probably want to set up single sign-on … and once user accounts are up there, you can start applying licenses to them," and assign roles, set user location, etc.  Chris also noted that within the Site Collections area in the Administration Center, you can create Private Site Collections.

Addressing areas that the SharePoint Online platform supports, Chris included all out-of-the-box browser features, said SharePoint Designer "works the same" (including workflows), and that the client object model is supported.  As for what can be done with Visual Studio 2010, Chris said "SharePoint Online supports sandboxed solutions as the only solution type," and that they must be built in Visual Studio and deployed as such.  Acknowledging that while SharePoint Online is "based on SharePoint 2010," Chris allowed that it doesn't include all of the features of SharePoint 2010, explaining that unsupported SharePoint 2010 features include:  full trust solutions, access to file system, timer jobs, admin access beyond site collection, and access to BCS or external Web service calls.

Chris said that the sandboxed solutions development model "Allows you to deploy friction-free [as] compared to full trust … and if a particular solution is throwing exceptions, it doesn't affect other solutions running" in the sandboxed execution environment.  Chris also noted that Visual Studio 2010 "has awesome support for sandboxed solutions, and that "From a deployment perspective, deploying sandboxed solutions is ridiculously easy."  "As far as administration of sandboxed solutions, they're actually self-administered," Chris said, and "Your point of entry for building solutions is at the site collection level." 

Moving into a sandboxed solutions demo, Chris began to build out a solution using two tabs/environments, with one tab being Office 365 on-premises (for development of the solution), and the other tab being a production deployment in the "actual SharePoint Online site."  Opening Visual Studio, Chris created a new project (Purchasing Manager), and left Deploy as a sandboxed solution checked.  Chris then went on to deploy a list declaratively, creating a new Content Type based off item, and opening the associated elements.xml file, manipulating the code to suit his needs (adding columns, FieldRefs, etc.).  Then he created the list definition based off the content type and a list instance, all of which resulted in a successful build, so he deployed it.  Testing and seeing the expected results with the new columns appearing, Chris showed the list as deployed in the sandbox.  Copying the solution up to the cloud via Upload solution from within his on-premises Office 365 tab, Chris then repeated the upload process in SharePoint Online, noting that the solution will run the same in both environments, wrapping up by saying, "You can see it's really easy to have code that's running up in SharePoint Online."

In response to an audience member asking, "Can you do your development on the cloud?," Chris said "No," explaining this is largely because debugging isn't supported in SharePoint Online.

Addressing the client-object model, Chris said that there are new APIs for interacting with SharePoint sites, which "support .NET, Silverlight, and JavaScript."  As well, "You can call external Web services, and it doesn't count against sandboxed solutions quotas."

Moving into another demo, and using a previously created Silverlight app and its UI, Chris showed the code in Visual Studio, focusing initially on what's behind the button to get list, then manipulating the code to add a new item and update the list accordingly.  As well, Chris talked through an accompanying Silverlight Web Part in Visual Studio, deploying, and compiling it.  Chris then demonstrated the newly created Web Part interacting with the list, all of which was done using Silverlight code and Silverlight client object mode.  Next, Chris moved on to packaging, uploading to the Solutions Gallery, and wrapping up by demonstrating it "up in SharePoint Online."

Declarative workflows were the final topic Chris addressed, explaining that "code-based workflows aren't supported in the sandbox because they're full-trust," but that since SharePoint Designer 2010 supports declarative workflows, "You can create custom workflow actions in the sandbox that you can use as part of the overall solution."  This is done by deploying as a .wsp via Save as Template in SharePoint Designer 2010. Chris demonstrated the process with a running workflow, uploading the solution into the Solutions Gallery, turning on the feature in SharePoint Online, associating the workflow with a list using the content type created earlier, giving it a name, and clicking Save.  Back to the list, Chris then applied the workflow to a list item, approved a workflow task, and showed the workflow visualization diagram, having updated accordingly to reflect the task approval. 

In conclusion, Chris said that the online Office 365 Developer Training Course is "your best resource for getting started really quickly building solutions for SharePoint Online."

 

Read our complete coverage of Microsoft TechEd North America 2011: