Office 365 from a developer point of view
In my last post we looked at what Office 365 means to end-users and companies as well as the services that are available to them. Now, I’m sure like me, a lot of developers out there are asking just what exactly Office 365 means to us. Also, how would we integrate with Office 365? What exactly can we integrate with? Will my existing Office add-ins still work?
Let’s start by looking at the different components of Office 365 and what they mean to the developer.
The SharePoint component of Office 365 is the most customizable and will probably be the most used component for developers. Existing SharePoint developers will be extremely comfortable with SharePoint Online as it will allow them to reuse their existing skills to develop for the platform. Although there are a few limitations due to the fact that SharePoint online solutions can only run as sandboxed solutions.
Sandboxed solutions cannot access certain security-related functionality and can also not access any data outside of the SharePoint site collection in which they were deployed.
This is done to restrict any poor performing or malicious code from adversely affecting the SharePoint Online environment. It is also the only way to run custom code on SharePoint Online. Certain SharePoint item templates will not be compatible with SharePoint Online, please refer to the chart below for a list of compatible item templates:
|Compatible with SharePoint Online
|Visual Web Part (Sandboxed)
|List Definition from Content Type
|Visual Web Part
|State Machine Workflow
|Business Data Connectivity Model
As I’ve mentioned before, a sandboxed solution is not allowed to access any data outside its site collection. This means that you cannot make web service calls via the internet or access any code that is not marked to allow a partial trusted caller; you can also not access the hard drive to read or write files. Deploying files to disk and adding assemblies to the Global Assembly Cache (GAC) is also not allowed for sandboxed solutions.
You should be careful though when developing a sandboxed solution, by not using too much of the server’s resource as each sandbox solution has a resource quota. If your solution exceeds that quota it may be disabled. The quota is measured in the following metrics:
- Process abnormally terminated
- Number of threads in overall process
- Unhandled exceptions
- Unresponsive process
These are just some of the metrics, and each one has a score that will contribute to your solutions’ quota.
For those of us unfamiliar with SharePoint development, never fear. Visual Studio 2010 comes with a host of project and item templates to help you. I do recommend you download and install the Visual Studio 2010 SharePoint Power Tools, which provides compilation support for Office 365 sandboxed solutions and a Visual Web Part (Sandboxed) project item template.
SharePoint shares a UI element that all Office developers will recognize and that is the Server Ribbon, which provides a familiar user interface for working in SharePoint. The SharePoint Online Server Ribbon can also be customized by developers.
SharePoint dialog boxes
If you’ve used SharePoint you would’ve noticed that it does use a lot of fancy looking dialog boxes to display information to the user and to help the user perform certain tasks. This dialog box platform will also be available to help developers create fast and responsive UI’s. A major benefit of using a dialog box is that it can improve performance in many instances by reducing the number of round trips to the server and for page requests.
SharePoint 2010 provides a Silverlight Web Part that developers can use to add a Silverlight application to a page in their SharePoint site. It is relatively easy to deploy as you simply need to upload it to your SharePoint site. It is also an effective way to overcome some of the limitations of the SharePoint Sandbox as Silverlight will be allowed to make web service calls. For an example of an embedded Silverlight web part in SharePoint, click on the Add Web Part button on the Page edit ribbon as illustrated in the following image:
LINQ to SharePoint
A LINQ to SharePoint provider is included in SharePoint 2010 which enables developers to query SharePoint lists using the LINQ syntax instead of the Collaborative Application Markup Language (CAML) which is used by SharePoint internally. Another scenario of skill-reuse!
Client object model
Developers would be able to add custom branding to their SharePoint Online sites. There are a variety of options available for adding custom branding, which includes:
- Master Pages
- Page Layouts
- Custom CSS
- Custom and built-in themes
Microsoft Exchange Online
Microsoft Exchange Online is a hosted/cloud-based version of Microsoft Exchange Server and provides a message (e-mail) and calendar solution. It also provides many of the same programmability interfaces of the on-premise version of Microsoft Exchange.
Developers have a choice of using either the Microsoft Exchange Web Services (EWS) Managed API 1.1 or the Exchange Web Services (EWS) to develop a variety of solutions for Exchange Online. A short list of what tasks can be performed using the Exchange API or web service is:
- Search mailboxes;
- Work with message attachments;
- Create, Read, Update and Delete Contacts, E-mails, Tasks and Appointments
- Create Inbox rules.
Microsoft Lync is a cloud communication service that enables people to connect from anywhere and in different ways including instant messaging, audio/video calling and audio/video and web conferencing.
Using the Microsoft Lync 2010 Managed API, a full-featured client API that combines the Unified Communications Client (UCC) API with the Office Communicator Automation API, developers are able to develop solutions that start instant messaging, audio, desktop sharing and file transfer conversations. Using the Lync Controls included in the Lync SDK, developers can also embed presence and click-to-communicate functionality into their applications.
Microsoft Office Professional Plus
If you have written an add-in for Microsoft Office, it will most likely still work with the offline versions of Microsoft Office. Users will still have the rich and featured Microsoft Office experience they are used to when using the offline version of Office.
The Microsoft Outlook Web App available on Office 365 can be customized to a certain degree and if you can believe what is written here, it sounds like developers would finally be able to add entries to the navigation pane.
Phew! This is just a relatively short introduction to the vast developer ecosystem which is Office 365 and I’m sure you would agree that Office 365 will provide developers with a much larger audience and market for their solutions. Exciting stuff!
Thank you for reading. Until next time, keep coding.