![Page 1: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/1.jpg)
![Page 2: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/2.jpg)
![Page 3: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/3.jpg)
![Page 4: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/4.jpg)
![Page 5: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/5.jpg)
![Page 6: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/6.jpg)
![Page 7: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/7.jpg)
![Page 8: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/8.jpg)
Permissions model
Restricted -> Read -> Write -> ReadWrite
![Page 9: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/9.jpg)
(end-user and developer)
![Page 10: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/10.jpg)
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)
![Page 11: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/11.jpg)
May need CORS, JSONP or server-side proxy
![Page 12: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/12.jpg)
![Page 13: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/13.jpg)
![Page 14: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/14.jpg)
related
MSDN - How to: Create an app for SharePoint that contains a document template and task pane app
![Page 15: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/15.jpg)
Document is then used as template in SharePoint
![Page 16: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/16.jpg)
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
![Page 17: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/17.jpg)
(task pane app + SharePoint app)
![Page 18: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/18.jpg)
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.)
![Page 19: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/19.jpg)
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
![Page 20: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/20.jpg)
Showing references saved from task
pane app into the user’s OneDrive
site
![Page 21: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/21.jpg)
Showing saved references shown in
search results (given special
rendering with gray background)
![Page 22: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/22.jpg)
SearchDisplay
templatesUser profiles
OneDrive for
Business sitesLists
SharePoint
![Page 23: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/23.jpg)
External
not
(and more to come!)
![Page 24: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/24.jpg)
![Page 25: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/25.jpg)
![Page 26: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/26.jpg)
![Page 27: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/27.jpg)
![Page 28: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/28.jpg)
ReadWriteMailbox
ReadWriteItem
ReadItem
Restricted• Limited access to
item props
• Read access to item
• R/W access to item
• R/W access to item
• Limited EWS access
![Page 29: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/29.jpg)
* Due to limitations of iOS, AAD auth won’t work, so Exchange Identity Token is necessary. Android works.
![Page 30: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/30.jpg)
APP
Outlook
App BackendExchange
1 2
3
EIT1 AAD refresh token
1
EIT2 AAD refresh token
2
EIT3 AAD refresh token
3
… …
4
App requests tokenToken passed back
for validation
App backend validates token
Looks up
identity
mapping
Identity Mapping
![Page 31: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/31.jpg)
App + Service hostBug Database
• Uses Windows Integrated auth
• Uses service account to call into bug database
App + Service host
![Page 32: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/32.jpg)
![Page 33: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/33.jpg)
![Page 34: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/34.jpg)
![Page 35: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/35.jpg)
Task pane app x x x
Content app x x x
Mail app x x
App for SharePoint x x
![Page 36: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/36.jpg)
Azure Websites
![Page 37: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/37.jpg)
(using Azure for app hosting)
![Page 38: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/38.jpg)
![Page 39: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/39.jpg)
![Page 40: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/40.jpg)
• Document is not running in app web
•
•
•
•
![Page 41: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/41.jpg)
http://msdn.microsoft.com/en-us/library/office/jj612823(v=office.15).aspx
![Page 42: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/42.jpg)
![Page 43: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/43.jpg)
BUT, no app parts! Consider JS injection instead..
![Page 45: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/45.jpg)
•
•
-> Consider Office 365/Azure AD external app if target is Office 365
![Page 46: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/46.jpg)
PowerPoint
• Corporate
presentation
builder
Excel
• Import data from
LOB system for
analysis
Word
• Proposal/contract
builder
• Yammer
integration
• Bug tracker
• Frequent snippets
• Meeting location
details
![Page 48: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/48.jpg)
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
![Page 50: Chris OBrien - Weaving Enterprise Solutions into Office Products](https://reader036.vdocuments.mx/reader036/viewer/2022081401/559861fc1a28ab5c4e8b482e/html5/thumbnails/50.jpg)