Recently Microsoft published a new sample project that I worked on with Scot Hillier on the OfficeDev Github account named the Research Project Code Sample . The sample scenario is a Project Research Tracker. The idea is that the web application makes it easy for users to create projects and add reference items found throughout the internet. The scenario demonstrates how to create different types of applications that communicate with Office 365 & SharePoint Online while keeping with recommended programming practices.
All apps within this scenario follow a similar pattern. An Azure AD directory is used to facilitate single sign-on capabilities. Each app in the scenario is registered as an application within the Azure AD directory and granted permissions to Office 365, specifically SharePoint Online. Office 365, specifically SharePoint Online, is used to hold all the data stored and used within the different apps. Two lists will store all projects and project references.
There are a total of three apps demonstrated in this scenario:
- A single page app, also known as a SPA, that provides a rich browser based experience
- An Office Outlook App that extracts links from an email and adds them to an existing project
- An Office Word App that lets a user select one or more references in a project and add them to a table in a Word document
Within the Github repository you’ll also find a presentation of the entire sample apps.
The samples found within these apps follow a pattern and track nicely with a series that Scot is writing on ITUnity. Scot has written a few articles so far in his series, the first of which started with Provider-Hosted Apps vs. Microsoft Azure Application . These samples provide a great baseline and demonstration showing how to create apps that leverage resources within Office 365, facilitate single sign-on using the same Active AD directory that is shared between both Azure subscriptions and Office 365 tenants, and deploy these apps to Azure without having to do any special SharePoint configuration or app deployment!