Pieter van der Westhuizen

Office 365 for developers – What, How, Where?

With Build and Ignite behind us we’ve seen some pretty incredible things from Microsoft, from mobile to virtual reality. If you haven’t watched the Build keynote or some of the sessions yet, I encourage you to do so.

Office 365 for the future

These are very exciting times, especially for MS Office developers. Satya Nadella, CEO of Microsoft, confirmed that “The most strategic developer surface area for us is Office 365“.

This means that the Office 365 platform is one of the most important areas for Microsoft as part of their vision for the future. It’s also an indication that Microsoft feels that developers need to embrace Office 365 in order for it to be an even bigger success.

Of course, this is incredibly good news for Microsoft Office developers. We could expect improvements to the Microsoft Office platform on a regular basis which will increase opportunities exponentially to develop awesome add-ins and applications that integrate with Office 365.

What is Office 365?

Office 365 is a collection of subscription based services, provided by Microsoft, that are enabled over the internet. The type of services included is dependent on the subscription plan you select, for example many Office 365 plans include the desktop version of Microsoft Office as well as their web-based counterparts.

It is important to keep in mind that Office 365 is much more than simply the desktop and web-based versions of the familiar Microsoft Office suite of tools (Word, Excel, Outlook, and PowerPoint). It is a collection of services that can work in conjunction with your favourite Office productivity tools.

Let’s take a quick look at what Office 365 has to offer.

Microsoft Exchange

Almost all Office 365 plans include a subscription to Microsoft Exchange, which means you receive all the features and abilities we’ve come to know and love from Microsoft Exchange. This means you can send and receive emails, schedule calendar appointments and meetings as well as store contact information. This subscription also includes the Outlook Online client, with which you pretty much perform most tasks related to emails, contacts and calendar entries.

Microsoft Exchange in Office 365

The added benefit of using Exchange is that your data will be synchronized across all your devices, including mobile.

Of course, the best news for developers is that Microsoft has released a REST API to allow developers to access information from MS Exchange. At time of writing we were able to access Mail, Calendar and Contact information in Office 365 Exchange using the REST API.

Not everything that we have been able to access using the classic Outlook Object Model is available yet, but there are a lot that can be accomplished with what the API has to offer at the moment. Microsoft is also actively adding new features to the API, so there are a lot of great things to come!

To see the data available for access, please read this article on MSDN. We’ll dig further into the REST API in future articles.

OneDrive for Business

OneDrive is Microsoft’s cloud based offering for storing and synchronizing files across multiple devices. OneDrive for Business is meant to be used for storing any work-related files in the cloud, whereas OneDrive is for storing personal files. Both work in the same way, the only difference is one is meant to be used for work and the other for your personal files.

All Office 365 plans include an OneDrive for Business subscription with 1 Terabytes (TB) of storage space – which is a whole lot of storage space!

OneDrive is also integrated into the desktop version of Microsoft Office, meaning you’re able to open and save MS Office files directly to OneDrive from within MS Office.

You use OneDrive for your personal files while OneDrive for Business is meant to be used for work.

The Office 365 API also supports integration with OneDrive for Business via the REST API. Developers are able to create applications that can create folders, download files, and create files as well as a host of other operations on OneDrive.

For a complete list of currently supported REST API operations, please have a look at the following MSDN documentation. We’ll also take a closer look at the Files API in the coming articles on this blog.


Part of the Office 365 service offerings are SharePoint Online. Yes, this is the SharePoint we all know with which you can create Team sites, collaborate with your co-workers, create lists and sites and all the other varied uses we’ve grown accustomed to that SharePoint offers.

The SharePoint admin center allows you to perform the required management tasks in setting up and administrating site collections and global SharePoint settings.

What is interesting is that the Office 365 Files REST API is also used to perform a few SharePoint operations. We’ll dig deeper into how to access your SharePoint data using the Files API in future posts, in the meantime you can read more about it on MSDN.


Yammer, was a corporate-styled social network that was acquired by Microsoft in 2012 and has since been incorporated as part of the Office 365 offering. In essence, Yammer is a Facebook-ish service for your business, which allows co-workers to interact and engage in a social media style conversation.

As part of most of the Office 365 subscriptions, you’ll also receive a Yammer subscription. I’ve started using Yammer recently to engage with the Microsoft Office 365 teams and it is pretty cool. It certainly does have a Facebook feel to it. On a different note, the Microsoft guys have been extremely helpful on Yammer and I highly recommend that if you have any Office 365 development questions to get involved in the conversation in the O365 Dev APIs and O365Dev Apps Model Group on Yammer.

The O365 Dev APIs and O365Dev Apps Model Group on Yammer

Developers are also able to integrate with Yammer, as stated in this article from Jeremy Thake. The Yammer delegate permissions has recently been added to the Azure Management Portal (more on the Azure portal, in future posts) and is available in preview. You can also read more on the Yammer REST API on their developer portal.

Office 365 Video Portal

The Office 365 Video Portal allows organizations to view and post videos on Office 365. It is a streaming video service which is available as part of the SharePoint Online subscription. In essence, think of it as YouTube for Business, as it is a great way to share company presentations, training videos or recording of meetings with your co-workers and employees. It also supports multiple channels, so for instance you could have separate channels for training and meetings.

The good news for developers is that we can also interact and access the videos stored on the Video Portal via the Video REST API. It is currently in preview, but you can start reading up on the various available operations on MSDN.

Azure AD

Azure Active Directory (Azure AD) according to their website is:

Azure Active Directory is a comprehensive, highly available identity and access management cloud solution that combines core directory services, advanced identity governance and application access management. Azure Active Directory also offers a rich, standards-based platform that enables developers to deliver access control to their applications, based on a centralised policy and rules.

Azure Active Directory

The long and short of it is that it is essentially an Active Directory for Office 365. I’m making it sound very simple, but a lot rests on the capabilities of Azure AD, for example you’ll need to set up various permissions for your applications that access the Office 365 API in Azure AD. We’ll go into more detail about setting up app permission in Azure AD in the next article. I’m very excited about what Microsoft has delivered so far, and I’m sure you will also not be disappointed.

Apps, Add-ins and Managed Add-ins?

Finally, you might’ve noticed that the terminology for Office Apps has changed a bit. “Apps for Office” is now known as “Office Add-ins”. Of course, this could prove to be terribly confusing, because previously any web-based app for Office was referred to as a Mail App, Excel App etc. and our old tried and true COM Add-ins were called “Office Add-ins”.

But by the looks of it, Microsoft is trying to unify the Office platform and thus our terminology also needs to change.

So, Office Apps are now called Office Add-ins and the traditional COM add-ins are now called Managed Office Add-ins.

Another very important thing to note is that COM/Managed Add-ins will still be supported for a very long time. Although the JavaScript object model for Office has steadily been improving, there is still a lot we cannot accomplish with Office Add-ins and thus will need to rely on COM/Managed Add-in for building really cool and functional Office Add-ins. Of course by combining Office Add-ins with Managed Add-ins, you could have the best of both worlds.

Thank you for reading. Until next time, keep coding!


  • Rex Chan says:

    Will Microsoft Office for iOS/andriod include addon development ?

  • Pieter van der Westhuizen says:

    Hi Rex,

    From what I understand, the Office Apps for iOS will have support for add-ins. The first app to support it will be Excel for the iPad, with support for Word and PowerPoint to follow.
    Similar support for Android is also planned and should follow after the iPad versions.

  • Rex Chan says:

    Hi Peter !

    Good start for Microsoft! Is COM Addin or javascript style addin ?

    Rex Chan

  • Pieter van der Westhuizen says:

    Hi Rex,

    It’ll be JavaScript add-ins.

  • Rex Chan says:

    Hi Peter !

    Will add in express target this platform, e.g migrate addin express.net/vcl user project to javascript project ?

  • Pieter van der Westhuizen says:

    Hi Rex,

    Unfortunately, it won’t be so easy to simply convert a traditional COM add-in into a JavaScript add-in. COM add-ins can still do much, much more than their JavaScript couterparts.

  • Rex Chan says:

    Keep on going add in express !!!

  • Dennis Wallentin says:

    Thanks for an interesting article :-)

    From my point of view, Office 365 is Microsoft’s primarily Office version.

    Therefore we cannot expect any major changes of the desktop version.

    Personally I find it very poor, Microsoft have no loyalty towards Office developers. Never had and never will have. Their loyalty is simple shit.

    Microsoft says now that Java is the prefered language for developing Office Add-ins for Office 365 (and for the desktop version). How many native Office developers use Java on a regular basis?

    That’s why it’s very good to have vendors like Add-In Express, who develop and maintenance tools based on the .NET/COM technologies.

    So please keep up the good work!

    Thanks and all the best,

  • John Poffenbarger says:

    Do you have any plans to develop a product that facilitates accelerated development for Office Add-Ins? It would be nice, as an interim solution, to leverage the managed add-in work and expose some of that without rewriting the whole thing in Javascript and a webserver.

    Is there not a way to take some of the managed COM add-in code and move that to a webserver then expose it through a uniform set of Javascript wrappers, at least for some common and very basic capabilities?

    Seems like it might be difficult and the market window might not justify the effort required (or the potentially minimally useful end-result that could be expected).

    I haven’t thought through much of that – have you guys had a chance to? The goal obviously is to try and leverage existing efforts and get some capability now with Office 365.

  • Andrei Smolin (Add-in Express Team) says:

    Hello John,

    You can’t move COM add-in code to a web server because the COM add-in relies on the object model of its host application and there’s no host application (a desktop Office application) on the web server. Also, an Office add-in can’t contact a COM add-in to invoke existing code because they use different models. Moreover, the features available for a COM add-in and the features available for an Office add-in do not intersect and this is why you can’t even rewrite your existing add-in!

Post a comment

Have any questions? Ask us right now!