chris obrien - weaving enterprise solutions into office products

50

Upload: chris-obrien

Post on 05-Jul-2015

18.465 views

Category:

Technology


0 download

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.

TRANSCRIPT

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