host webapp web remote web sharepoint hostedauto hostedprovider hosted js/html/cssjs/html/css/.net...

35
Leveraging SaaS Applications using the SharePoint App Model Brian Prigge

Upload: haylee-hunkins

Post on 10-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Leveraging SaaS Applications using the SharePoint App ModelBrian Prigge

Page 2: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Thanks to our sponsors! And you.

Images © 2013 http://www.flickr.com/photos/boliyou/2884130773/

Page 3: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

About Brian

• SharePoint Architect @ RAMP (@rampinc)

• Blog: brianprigge.com• Twitter: @brprigge• LinkedIn:

http://www.linkedin.com/in/brianprigge• Email: [email protected]

Page 4: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Agenda

• App Model Overview• App Design• Pedal to the Metal• Speed Bumps• Alternative Implementations

Page 5: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

App Model Overview

Page 6: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

App Model Entities

Host Web

App WebRemote Web

SharePoint Love Triangle

Page 7: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

App Types• SharePoint Hosted• Auto Hosted• Provider Hosted

Page 8: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

SharePoint Hosted Paradigm

Host Web App Web

Page 9: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Provider/Auto Hosted ParadigmHost Web App Web

Remote Web

Page 10: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

App Design

Page 11: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

App Type

SharePointHosted Auto Hosted Provider Hosted

JS/HTML/CSS JS/HTML/CSS/.Net

JS/HTML/CSS/.Net

No Asynchronous

Asynchronous Difficult

Easy Asynchronous

Yes On-Prem

No On-Prem

On-Prem with Slight

Modifications

Page 12: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

StorageHostWeb AppWeb Remote Web

Near Complete Control withinSharePoint

Complete Control within SharePoint

Complete Control

Automatic Authorization Automatic Authorization No Automatic Authorization

Easily Orphaned No Orphans Orphanable

Searchable Searchable NotSearchable

Multi-instance Single-instanceFully upgradable, but must support

backwardscompatibility

Page 13: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

User ExperienceAppWeb Remote Web

Less Code Samples Abundant CodeSamples

Lots of UX pieces for “free” Complete Control of the UX

Bugs in certain functionality

“Features”

Page 14: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

App Permissions• Full Control

• Disqualified from App Store• Permission Scopes

• Full Control Required

Page 15: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Pedal to the Metal

Page 16: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Desired Design• Provider Hosted App• Storage – App Web• UX – App Web• No Special Permissions

Page 17: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Provider/Auto Hosted ParadigmHost Web App Web

Remote Web

Page 18: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Context Management• Cross Domain• Cookies vs. Sessions• Pseudo-expired Cookie

Page 19: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Context Demo

Page 20: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Remote Web Service Layer• Context Management Problem• Same Origin Policy• Context Token Request• IFrame Custom Proxy• Reusable Instantiation

Page 21: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Custom Proxy Demo

Page 22: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Asynchronous Processing

Page 23: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Pushing Data Down• No Anonymous Pages• Anonymous = Unprotected• Alternative Authentication• DSA Signing• Service Bus Queue

Page 24: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Speed Bumps

Page 25: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Display Templates• No More XSLT!• Entirely HTML and JavaScript• Awkward Conversion

Page 26: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Display Templates Continued• Debug when deployed• Valid XML Schema Required for Conversion• Use Web Debugger to debug JavaScript• Be careful on property changes

Page 27: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Display Templates – Result Type

Page 28: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Display Templates – Result Type

Page 29: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Web Part Management• Context Management• Edit Mode• Hovering on Ribbon Styles• Saving Custom Properties

Page 30: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Alternative Implementations

Page 31: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

SaaS Backwards• Utilize On-Prem data in Office 365• Provider Hosted Only• Remotely Accessible Web Servers

Page 32: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Standard Provider Hosted App

Host Web

App WebRemote Web

Page 33: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

SaaS Backwards Provider Hosted App

Host Web

App Web

Remote Web

Fir

ew

all

Page 34: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

Questions?

Page 35: Host WebApp Web Remote Web SharePoint HostedAuto HostedProvider Hosted JS/HTML/CSSJS/HTML/CSS/.Net No AsychronousAsynchronous DifficultEasy

One final note• Fill out your evaluation form & turn for the

big raffle (tablet)• SharePint next door (American) 5:30pm• Don’t forget WaterFire downtown tonight!