Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Permissions model 
Restricted -> Read -> Write -> ReadWrite
(end-user and developer)
Access the full document (in slices up to 4MB) 
Collection of locations in document (e.g. user or app defined) 
Navigate t...
May need CORS, JSONP or server-side proxy
related 
MSDN - How to: Create an app for SharePoint that contains a document 
template and task pane app
Document is 
then used as 
template in 
SharePoint
Server-side authentication back to SharePoint is difficult (no SharePoint context passed) 
Workaround – use client-side co...
(task pane app + SharePoint app)
Demo shows app with 2 surfaces – 
Word task pane + SharePoint 
• Task pane app finds documents 
with similar content to cu...
Showing different tabs within the 
task pane app: 
• Keywords/phrases found in the 
current document – top 3 are 
used to ...
Showing references saved from task 
pane app into the user’s OneDrive 
site
Showing saved references shown in 
search results (given special 
rendering with gray background)
Search 
Display 
templates 
User profiles 
OneDrive for 
Business sites 
Lists 
SharePoint
External 
not 
(and more to come!)
ReadWriteMailbox 
• R/W access to item 
• Limited EWS access 
ReadWriteItem 
• R/W access to item 
ReadItem 
• Read access...
* Due to limitations of iOS, AAD auth won’t work, so Exchange Identity Token is necessary. Android works.
APP 
Outlook 
App backend validates token 
App Backend 
Exchange 
3 
1 2 
EIT1 AAD refresh token 
1 
EIT2 AAD refresh toke...
App + Service host 
Bug Database 
App + Service host 
• Uses Windows Integrated auth 
• Uses service account to call into ...
Task pane app x x x 
Content app x x x 
Mail app x x 
App for SharePoint x x
Azure Websites
(using Azure for app hosting)
 
 
 

• Document is not running in app 
web 
• 
• 
• 
•
http://msdn.microsoft.com/en-us/library/office/jj612823(v=office.15).aspx
BUT, no app parts! 
Consider JS injection 
instead..
http://aka.ms/OfficeDevPnP
• 
• 
-> Consider Office 365/Azure AD external app if target is Office 365
PowerPoint 
• Corporate 
presentation 
builder 
Excel 
• Import data from 
LOB system for 
analysis 
Word 
• Proposal/cont...
Developer Patterns & Practices 
aka.ms/OfficeDevPnP
http://msdn.microsoft.com/EN-US/ 
library/office/fp161135(v=office.15).aspx 
http://msdn.microsoft.com/en-us/ 
library/off...
http://aka.ms/COB
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
Chris OBrien - Weaving Enterprise Solutions into Office Products
Upcoming SlideShare
Loading in …5
×

Chris OBrien - Weaving Enterprise Solutions into Office Products

19,938 views

Published on

A presentation I gave at TechEd 2014 (Barcelona) in October 2014. Covers some fundamentals of developing Apps for Office, and shows a sample Word task pane app, which analyzes the current document and searches your SharePoint/Office 365 environment for similar documents. The app also integrates with OneDrive for Business, to allow the user to save links for future reference.

Also, my co-presenter Andrew Salamatov presents some great information and demos around mail apps.

The presentation also covers some common mistakes, and tips and tricks when developing Apps for Office.

Published in: Technology
  • Be the first to comment

Chris OBrien - Weaving Enterprise Solutions into Office Products

  1. 1. Permissions model Restricted -> Read -> Write -> ReadWrite
  2. 2. (end-user and developer)
  3. 3. Access the full document (in slices up to 4MB) Collection of locations in document (e.g. user or app defined) Navigate to a place in the document (binding) Persist some state (get/set)
  4. 4. May need CORS, JSONP or server-side proxy
  5. 5. related MSDN - How to: Create an app for SharePoint that contains a document template and task pane app
  6. 6. Document is then used as template in SharePoint
  7. 7. Server-side authentication back to SharePoint is difficult (no SharePoint context passed) Workaround – use client-side code (cross domain library) One instance of app files each
  8. 8. (task pane app + SharePoint app)
  9. 9. Demo shows app with 2 surfaces – Word task pane + SharePoint • Task pane app finds documents with similar content to current doc (public web service + SP search) • SP provider-hosted app used to configure user’s OneDrive site (adds list/ctype etc. using OfficeDev PnP “core” libraries) • Allows user to “save reference” from task pane to their OneDrive • SP search enhancements implemented for this content (result source, display templates etc.)
  10. 10. Showing different tabs within the task pane app: • Keywords/phrases found in the current document – top 3 are used to power the search for similar documents • “Sentiment” of current document
  11. 11. Showing references saved from task pane app into the user’s OneDrive site
  12. 12. Showing saved references shown in search results (given special rendering with gray background)
  13. 13. Search Display templates User profiles OneDrive for Business sites Lists SharePoint
  14. 14. External not (and more to come!)
  15. 15. ReadWriteMailbox • R/W access to item • Limited EWS access ReadWriteItem • R/W access to item ReadItem • Read access to item Restricted • Limited access to item props
  16. 16. * Due to limitations of iOS, AAD auth won’t work, so Exchange Identity Token is necessary. Android works.
  17. 17. APP Outlook App backend validates token App Backend Exchange 3 1 2 EIT1 AAD refresh token 1 EIT2 AAD refresh token 2 EIT3 AAD refresh token 3 … … 4 App requests token Token passed back for validation Looks up identity mapping Identity Mapping
  18. 18. App + Service host Bug Database App + Service host • Uses Windows Integrated auth • Uses service account to call into bug database
  19. 19. Task pane app x x x Content app x x x Mail app x x App for SharePoint x x
  20. 20. Azure Websites
  21. 21. (using Azure for app hosting)
  22. 22.    
  23. 23. • Document is not running in app web • • • •
  24. 24. http://msdn.microsoft.com/en-us/library/office/jj612823(v=office.15).aspx
  25. 25. BUT, no app parts! Consider JS injection instead..
  26. 26. http://aka.ms/OfficeDevPnP
  27. 27. • • -> Consider Office 365/Azure AD external app if target is Office 365
  28. 28. PowerPoint • Corporate presentation builder Excel • Import data from LOB system for analysis Word • Proposal/contract builder • Yammer integration Mail • Bug tracker • Frequent snippets • Meeting location details
  29. 29. Developer Patterns & Practices aka.ms/OfficeDevPnP
  30. 30. http://msdn.microsoft.com/EN-US/ library/office/fp161135(v=office.15).aspx http://msdn.microsoft.com/en-us/ library/office/fp179815(v=office.15).aspx
  31. 31. http://aka.ms/COB

×