50

Chris OBrien - Weaving Enterprise Solutions into Office Products

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: Chris OBrien - Weaving Enterprise Solutions into Office Products
Page 2: Chris OBrien - Weaving Enterprise Solutions into Office Products
Page 3: Chris OBrien - Weaving Enterprise Solutions into Office Products
Page 4: Chris OBrien - Weaving Enterprise Solutions into Office Products
Page 5: Chris OBrien - Weaving Enterprise Solutions into Office Products
Page 6: Chris OBrien - Weaving Enterprise Solutions into Office Products
Page 7: Chris OBrien - Weaving Enterprise Solutions into Office Products
Page 8: Chris OBrien - Weaving Enterprise Solutions into Office Products

Permissions model

Restricted -> Read -> Write -> ReadWrite

Page 9: Chris OBrien - Weaving Enterprise Solutions into Office Products

(end-user and developer)

Page 10: Chris OBrien - Weaving Enterprise Solutions into Office Products

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

May need CORS, JSONP or server-side proxy

Page 12: Chris OBrien - Weaving Enterprise Solutions into Office Products
Page 13: Chris OBrien - Weaving Enterprise Solutions into Office Products
Page 14: Chris OBrien - Weaving Enterprise Solutions into Office Products

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

Document is then used as template in SharePoint

Page 16: Chris OBrien - Weaving Enterprise Solutions into Office Products

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

(task pane app + SharePoint app)

Page 18: Chris OBrien - Weaving Enterprise Solutions into Office Products

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

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

Showing references saved from task

pane app into the user’s OneDrive

site

Page 21: Chris OBrien - Weaving Enterprise Solutions into Office Products

Showing saved references shown in

search results (given special

rendering with gray background)

Page 22: Chris OBrien - Weaving Enterprise Solutions into Office Products

SearchDisplay

templatesUser profiles

OneDrive for

Business sitesLists

SharePoint

Page 23: Chris OBrien - Weaving Enterprise Solutions into Office Products

External

not

(and more to come!)

Page 24: Chris OBrien - Weaving Enterprise Solutions into Office Products
Page 25: Chris OBrien - Weaving Enterprise Solutions into Office Products
Page 26: Chris OBrien - Weaving Enterprise Solutions into Office Products
Page 27: Chris OBrien - Weaving Enterprise Solutions into Office Products
Page 28: Chris OBrien - Weaving Enterprise Solutions into Office Products

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

* 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

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

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
Page 33: Chris OBrien - Weaving Enterprise Solutions into Office Products
Page 34: Chris OBrien - Weaving Enterprise Solutions into Office Products
Page 35: Chris OBrien - Weaving Enterprise Solutions into Office Products

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

Azure Websites

Page 37: Chris OBrien - Weaving Enterprise Solutions into Office Products

(using Azure for app hosting)

Page 38: Chris OBrien - Weaving Enterprise Solutions into Office Products
Page 39: Chris OBrien - Weaving Enterprise Solutions into Office Products
Page 40: Chris OBrien - Weaving Enterprise Solutions into Office Products

• Document is not running in app web

Page 41: Chris OBrien - Weaving Enterprise Solutions into Office Products

http://msdn.microsoft.com/en-us/library/office/jj612823(v=office.15).aspx

Page 42: Chris OBrien - Weaving Enterprise Solutions into Office Products
Page 43: Chris OBrien - Weaving Enterprise Solutions into Office Products

BUT, no app parts! Consider JS injection instead..

Page 44: Chris OBrien - Weaving Enterprise Solutions into Office Products

http://aka.ms/OfficeDevPnP

Page 45: Chris OBrien - Weaving Enterprise Solutions into Office Products

-> Consider Office 365/Azure AD external app if target is Office 365

Page 46: Chris OBrien - Weaving Enterprise Solutions into Office Products

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

Page 47: Chris OBrien - Weaving Enterprise Solutions into Office Products

Developer Patterns & Practices

aka.ms/OfficeDevPnP

Page 48: Chris OBrien - Weaving Enterprise Solutions into Office Products

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 49: Chris OBrien - Weaving Enterprise Solutions into Office Products

http://aka.ms/COB

Page 50: Chris OBrien - Weaving Enterprise Solutions into Office Products