Developing applications with Office 365
Published: February 28, 2013
Learn what languages, tools, and libraries are used to develop apps for Office, apps for SharePoint, Windows 8 phone apps, mobile phone apps, .NET applications, and management scripts.
Applies to: Office 365 | Exchange Online | Lync Online | Forefront 2013
Thousands of people start Office 365 subscriptions every day and these subscribers enrich their Office documents with apps they buy from the Office Store. Office 365 subscribers open apps for Office in Microsoft Word 2013, Microsoft Excel 2013, Microsoft PowerPoint 2013, Microsoft Outlook 2013, or Microsoft Project 2013. To reach this ever-growing customer base, upload your app to the Office Store. New versions of your app are easy to distribute too--simply upload a new app manifest to the Office Store and upload a new version of your app to a web host. Your customers are notified that a new version is available through the Office Store. You no longer need to distribute the app yourself or reach out to each customer to install your app. Office Store takes on the responsibility of distribution.
Create one app and use it for many Office applications
The apps for Office unified development model lets you create an app for Office for a productivity application such as Word 2013 and then publish the app for any other Microsoft Office application without changing the app code. For example, a content app can get a range of data from SharePointExcel Services and display the data as a graph. That graphic content can be relevant and useful in an Excel spreadsheet, a PowerPoint slide, or a Word document. Create the graph content app once and use it in any of these Microsoft Office applications.
Web standards-based development
To create a Microsoft Office content, mail, or task pane app that can be hosted in any Microsoft Office Professional Plus 2013 application, use the tools in the following table. These tools enable you to create an app for Office that reads and writes content in a hosting Microsoft Office document or read the content of an Outlook mail item.
Programming models and protocols
“Napa” Office 365 Development Tools
Office content app
By using REST endpoints in SharePoint and robust user authentication with OAUTH, you can perform create, read, update, and delete (CRUD) operations on SharePoint data from an app for Office or an app for SharePoint. This CRUD facility lets you tightly integrate your Microsoft Office productivity applications with your SharePoint 2013 data and applications.
Advanced workload-specific features such as SharePoint lists or Lync contact presence require additional frameworks or programming models which you use in your app for Office as needed. Figure 2 shows the toolbox of the most commonly used languages, development environments, frameworks, and programming models used to develop apps for Office. You may use just the essential development tools shown in Figure 2 to develop a generic app for Office task pane app that can be hosted in any Microsoft Office application. As you add workload-specific features such as integrating with SharePoint 2013 or Microsoft Project Server 2013, you add tools listed in Figure 2.
Managed code libraries
SharePoint 2013 and Exchange 2013 provide managed .NET SDKs that let you integrate your managed .NET client application with both on-premise servers and Office 365 hosted services. These SDK offerings expose the same set of features that their REST endpoint. Exchange 2013 continues support for SOAP calls that correspond to the .NET SDK. This gives you the flexibility to create your solution as a managed client or as an app for Office. If you want to publish your solution to the Office Store or let users interact with your solution in the context of a Microsoft Office application, your solution must be an app for Office. For more information about apps for Office, see Overview of apps for Office.
If your organization has installed Microsoft Lync 2013 on workstations in the organization, .NET managed applications installed on those workstations can use the Microsoft Lync 2013 SDK to get a user’s Lync contact list with current presence and then start new conversations.
Apps for Office development languages, tools, and frameworks
An Office 365 application developer should have a core set of development skills that apply across all Office 365 application development. The unified development model used in Office 365 lets a development team create apps for Office and SharePoint using a common development life cycle and app packaging mechanism. The SharePoint development tools in Microsoft Visual Studio 2010 cover a variety of technologies. For information about the right SharePoint tool to use in your development, see Choose the right API set in SharePoint 2013.
The following table shows the languages, tools, and frameworks that make up a comprehensive Office 365 development toolbox. The following sections walk you through a survey of the many Microsoft Office solution possibilities that you can implement with different combinations of these tools.
The applications described in this section represent typical apps for Office. Your app can combine the features of any of these example solutions by adding the appropriate development framework or programming model. When you are ready to make your new app for Office available to other users, you can publish it in the Office Store. If your app for Office is a mail app for use in Outlook, it is published on an Exchange 2013 server. For information about publishing your app for Office, see Publish apps for Office.
Consume external web content in an app for Office
This app enables content to appear in the UI from external web services such as Bing, Ebay, or some other web service that implements an asynchronous web service. The app gets the context of the information by reading content in the host document and using that content to get information from the external web. For example, the hosting document can contain a street address that the user can select. The Bing Maps web service is queried with the selected address and an URL to a Bing map is returned. The Bing map at the URL is displayed in the app UI.
Consume SharePoint Business Connectivity Service data objects in an app for Office
Consume SharePoint data in an app for Office
You can get the contents of SharePoint lists and display them in your app for Office. The list to get, or the range of list items within a SharePoint list, can be defined by using host document content that you get by reading the document-selected text using the CSOM. For information about using SharePoint REST endpoints to consume SharePoint data, see Programming using the SharePoint 2013 REST service.
The app for Office that consumes SharePoint data is hosted by SharePoint in this scenario. If you use OAuth to authenticate a user, you can host an app for Office on other locations. In this case, you use server-side OAuth-based connections to SharePoint to get SharePoint data.
Consume Exchange mailbox data in an app for Office
A benefit of using web standard technologies to develop apps for Office is that you can generally re-use an app for many Office 2013 applications. This is especially true for solutions such as the Exchange Server mailbox data consumer. In this case, you need only one framework in addition to the Microsoft Office CSOM. When you add Exchange Web Services (EWS) SOAP calls to your application, you get access to Exchange Server mailbox data, including all properties of individual mail items. You can create a list of the user’s Outlook mail items that is scoped to the context of text selected in the hosting document, whether it is a Word document, an Excel workbook, or a Project 2013 file. For more information about programming with the EWS SOAP service, see EWS operations in Exchange 2013.
An example of a valuable mailbox feature for your Office 2013 content or task pane app is one that takes selected document content and searches in the user’s mailbox for mail items whose subject line or body contain the selected text. The conforming mail items are retrieved with a SOAP request/response and appropriate mail item detail can be displayed in the app or inserted into the document as content. For information about making a FindItem SOAP request, see FindItem operation in the Exchange Server 2013EWS reference documentation.
Figure 6 shows the development tools that are used to create Exchange Server mailbox-enabled solutions that can get mailbox data from an Exchange Server.
An app for Office mail app must be usable in either a browser-based Outlook client, mobile client, or a rich client. To learn about making your app flexible to handle either form factor, see Designing a mail app for specific form factors in Outlook.
Build a Windows Phone 8 app for SharePoint
If you want to give users the ability to read and update SharePoint data by using a Windows Phone 7 or Windows Phone 8, build an app with the tools listed in figure 10. You can use either C# or VB.NET in your solution. You can also build a solution that is composed of C# and VB.NET projects. In both cases, you must install the Microsoft SharePoint SDK Preview for Windows Phone 7.1 along with the Windows Phone SDK 7.1.
For information about building a SharePoint app for Windows phone, see Build mobile apps for SharePoint 2013.
Build a mobile app for SharePoint
If you have created a solution that will consume data that your organization manages in an on-premise database or in Windows Azure data storage, then you should create a data service which exposes your data as an OData feed or other web standard data structure. To do this, you create a data service using the WCF data services framework. The data service that you create exposes appropriate CRUD operations and data sets that you define. You can use Microsoft SQL Server as a data provider or a third-party data provider from the list of ADO.NET Data Providers. Your data service can be self-hosted or you can host it on a Windows Azure Cloud Service.
Create security for Windows Azure-hosted data by synchronizing your organization Active Directory Domain Services (AD DS) server with Windows Azure Active Directory to provide a single-sign-on experience for users and authenticate them with Windows Azure. Windows Azure identifies users based on Windows Azure Active Directory and gives authenticated users from your organization access to your data. For information about authenticating users with Windows Azure, see Windows Azure Identity. If you want to know more about hosting your data on Windows Azure, see Data Management: Choosing the Right Technology.
For more information about building a data service with WCF, see Exposing Your Data as a Service (WCF Data Services). For an introduction to Windows Azure, see Introducing Windows Azure.
An Outlook Social Connector provides presence and contact card information from external social networks. Outlook Social Connector providers work with SharePoint Server, Microsoft SharePoint Workspace, Lync client and all Office Professional Plus 2013 client applications. By installing an Outlook Social Connector, Microsoft Office users can see people’s activities, photos, and current status from external social network sources. You cannot use an Outlook Social Connector with Microsoft Office Web Apps in the Office 365 suite.
The programming language and COM requirements for developing an Outlook Social Connector have not changed from previous versions of Microsoft Office applications. This means that your existing Outlook Social Connector solution continues to be supported in Office Professional Plus 2013 applications. Like Visual Basic for Applications (VBA) customization solutions or Microsoft Office add-ins, an Outlook Social Connector solution cannot be published through the Office Store. Instead, you should create a Microsoft Windows Installer 4.5 package to be made available for download from a network or internet resource. For information about building an Outlook Social Connector, see Outlook Social Connector 2013 provider reference.