With over a billion users worldwide, Microsoft Office is already a premier platform for productivity, and with the release of Apps for Office, developers have a powerful new resource for extending and enhancing the suite of apps to solve new problems. In this series of blog posts, we'll see how the Apps for Office platform works, how to get started, check out some of the ways it allows developers to add new features and interactivity to the suite of apps, and lastly, see how those additions run on both the desktop and online versions of Office. This first entry introduces the platform and its features, and will be followed by a series of posts demonstrating the different ways you can integrate with the various Office apps.
Apps for Office and Office 365 Platform
One important distinction to make is the difference between developing Apps for Office and developing with the Office 365 platform. Apps for Office offers a way to enhance the suite of Office apps (Word, Excel, PowerPoint, Project and Outlook) with new functionality that runs on both the desktop and online versions of Office. On the other hand, the Office 365 platform is a set of API endpoints allowing you to connect to an Office 365 user, their information, and data, such as email, calendar, and even OneDrive. In a future series we'll dive into Office 365 development, but this series of posts focuses on extending Office applications via the Apps for Office platform.
Platform Overview
Apps for Office is a new app development model that allows the creation of applications using standard and familiar web technologies such as HTML and JavaScript. The apps run within the Office 2013 suite of apps — such as Word, Excel, and Outlook — using the Office JavaScript API to allow interaction directly with Office documents and email.
Apps for Office consist of two parts. First, the App Manifest defines the application metadata and is registered in either the public Office App Store, or is deployed internally via SharePoint or a network share. The actual functionality and user interface of the application is hosted within a companion website which is exposed through the Office application.
The App Website can be of any type, including ASP.NET MVC, Webforms, PHP, Ruby, or even just plain HTML and JavaScript. Each page in the app then contains a reference to the Office JavaScript API, which allows the user to interact with the document through the app and vice versa.
There is virtually no limit to the different types of apps you can build for Office
Because these apps use standard HTML and JavaScript, you can make use of familiar frameworks such as jQuery, reach out to external data via REST and AJAX, as well as run custom server-side code. As a result, there is virtually no limit to the different types of apps you can build for the various Office Apps, as evidenced by some of these screenshots from the Office catalog.
However, Apps for Office basically fall into one of three categories, which are revealed by Visual Studio when you create a new project:
Task Pane Apps
These applications run in a sidebar alongside your Office content such as a Word Document, Excel Spreadsheet or PowerPoint presentation. These can provide both contextual feedback based on the current state of the document, as well interactivity by presenting a custom user interface that can read and write data in the document via the JavaScript API. One example of a Task Pane App is Falafel Software's own EventBoard Conference Builder App for Excel, which presents an interactive help guide for conference organizers as they prepare their data for import into the EventBoard Mobile system.
Content Apps
Content Apps are displayed inline, embedded within the content of the document itself. These can be useful for providing real-time information such as charting or other live data based on the contents of the Office document. The Bing Maps App is a great example, allowing you to easily map relevant data from Excel in real time.
Mail Apps
Designed specifically to work with Outlook for both desktop and online, Mail Apps allow you to present apps directly inside of an email, meeting request, or appointment. These apps allow you to present relevant information to the user without having to leave Outlook. The Package Tracker from Microsoft, which detects tracking numbers in an email and shows the latest status of any associated packages is a great example of a Mail App.
App Usage
While Mail Apps are obviously limited to Outlook, Content Apps can run in Excel, PowerPoint and Access. Task Pane apps are the most versatile, being supported in Word, Excel, PowerPoint, and Project. And because these apps are all written as standard websites, they run without modification in both the Windows and Mac versions as well as Office online. Also, when apps are installed to an Office document, they remain embedded within, meaning they can then be shared via OneDrive or email. If the application is public (or the user has access to the internal App Catalog) the recipient will see the app automatically when opened, even if opened online.
App Deployment
As mentioned, Apps for Office can be published publicly to the Office App Store and even sold to end-users. These can be inserted into any compatible app via the Insert section of the Office Ribbon, where the Office Store is readily accessible.
Alternatively, the manifest can be uploaded to an internal SharePoint or Office 365 tenancy, allowing only authorized users who are logged into their company account to access them. This is especially helpful for testing purposes, as we'll see in a future post.
Finally, if an app is going to be of limited use, it can also be deployed to a trusted network share. We'll explore all of these scenarios in future posts.
Wrapping Up and Next Steps
Apps for Office allow developers to leverage their existing web development skills to build useful and interactive apps to increase the productivity of Office users. In addition to showing contextual help and external data, Apps for Office can use the JavaScript API to interact with the associated document, reading and writing data to simplify or even automate common tasks. Now that we've seen a brief overview of Apps for Office, we can dive in and start building! In our next post we'll set up the environment and build the customary "Hello, World!" app, and later explore each App type in detail. Until then, if there is any aspect of Apps for Office development you would like to see explored, please sound off in the comments, and as always, I hope this was helpful!
Enjoyed this post and/or found it useful?