"For the first time we are opening up Office 365 not just as an end-user and an enterprise tool and a service, but as a developer platform," said Microsoft CEO Satya Nadella during the earnings call following the company's latest financial results.
Despite Nadella's comment the ability to develop for Office 365 is not new, though it is significantly enhanced following announcements at the Microsoft Build developer conference at the end of March 2016. For Microsoft though, there is strategic sense in promoting Office as a web platform, adding value for those customers who sign up to Office 365.
What is Microsoft Office? The answer used to be Word, Excel, Outlook, PowerPoint, and a bunch of other more specialist applications like Access, Publisher, Project and Visio, all of which ran best on the Windows desktop and some of which were also available on the Mac.
Today Microsoft means something different, especially in the context of Office as a platform. Office 365 is built around hosted Exchange, SharePoint, and the directory service called Azure Active Directory. It is the obvious destination for businesses tired of running their own Exchange server, and while Google and more recently Amazon are grabbing some of that market, plenty is also going Microsoft's way. According to figures presented at Build, there are over 50,000 new Office 365 small businesses per month.
There are still a ton of Microsoft Office users who do not use Office 365, or even on-premises Exchange and SharePoint, but only a subset of the "Office platform" is available to them. That said, there is an option for individuals to use personal Outlook.com and OneDrive as a kind of lite version of Office 365, and one of the announcements at Build was about a new unified API for business and personal users.
This increasing cloud-dependency is not just Microsoft's attempt to hook more users into its web platform, but also a reflection of the greater potential for integrating services (both from Microsoft and from third-parties) which a cloud platform offers.
Web add-ins for Office applications
Preamble over, what does the Office platform now look like? The starting point is the application suite itself, which now runs tolerably well on iOS and Android as well as Mac and Windows. There is also a Universal version, for Windows 10 in all its forms (including even HoloLens augmented reality headsets).
The Office Add-in model
Web add-ins in Office 2013 were hampered by a limited API, but in Office 2016 this is greatly extended. Web add-ins are also now supported in Office online, Office for iPad and Office for Mac, with Android and universal compatibility promised.
Microsoft's cloud services are not required to run these add-ins. All you need is an XML manifest and a web application hosted somewhere. That said, a neat feature announced at Build is the ability to deploy add-ins automatically to Office 365 users. Administrators can go to the shiny new Office 365 portal (still in preview), upload the manifest for an add-in, specify users or groups to use it, and it will automatically appear for those users.
In keeping with Microsoft's cross-platform push, you can develop Office add-ins on Linux or on the Mac as well as with Visual Studio. Just install TypeScript, Bower, Gulp and Yeoman, and type "yo office" to generate an add-in ready for modification.
These are web add-ins, though, and as such have limited ability to interact with the local machine. Old-style VBAs or other solutions are still needed if you want to interact with local files or devices, though it is possible to retrieve an open document as a binary string and send it to a remote location such as OneDrive storage.
Another limitation of web add-ins is lack of event support, other than the binding mentioned above. You cannot write code that runs in response to events like opening or saving a document, for example.