SharePoint Saturday San Diego - SharePoint 2013 Apps

25
#SPSSD @sanspug San Diego 2014 SharePoint Saturday San Diego November 15, 2014 UCSD Extension SharePoint Apps in SharePoint 2013 Ryan Schouten Intermountain Technology Group @shrpntknight

description

Session presented by Ryan Schouten at SharePoint Saturday in San Diego Nov 15th, 2014. This session covered an overview of creating apps in SharePoint 2013 and gotchas that may be encountered.

Transcript of SharePoint Saturday San Diego - SharePoint 2013 Apps

Page 1: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

SharePoint Saturday San DiegoNovember 15, 2014 UCSD Extension

SharePoint Apps in SharePoint 2013

Ryan SchoutenIntermountain Technology Group

@shrpntknight

Page 2: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

About Me

Ryan Schouten

Worked with SharePoint for 8 years

I have experience with SharePoint 2003 – 2013

I have worked with ASP.Net for 11 years

MCPD, MCT

Contact Information

[email protected]

@shrpntknight

http://www.sharepointknight.com

Page 3: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

• Office365 Implementations• Custom SharePoint Development• Responsive Design

Page 4: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

Objectives

The Need Benefits Details Limitations Permissions and Security Deployment Break it Down

Page 5: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

Why the changeToday’s Market Today’s Trends Our Principles

Page 6: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

Hence the new App Model No custom code on the SharePoint server

Easier to upgrade to future versions of SharePoint Works in Office 365 SharePoint Online without limitations

Reduces the ramp-up time for those building apps Don’t need to know/be as familiar with SharePoint “-isms” Leverage hosting platform features in new apps

Enables taking SharePoint apps to different levels – further than what can be done with farm / sandbox solutions

Page 7: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

Benefits (continued) Low cost of entry for developers

Hosted SharePoint Dev sites No need to have a farm per developer (Shared Development

Farms/Tenants) No Intensive development environment requirements

Can create apps through the browser(Office365 Only)

Page 8: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

Hosting Options

SharePoint-Hosted App

Provision an isolated sub web on a parent web (separate domain)

• Reuse web elements (lists, files, out-of-box web parts)

• No server code allowed; use client JavaScript for logic, UX

Provider-Hosted App

“Bring your own server hosting infrastructure and technology platform”Get remote events

from SharePoint Use CSOM/REST + OAuth to work with SP

Cloud-based Apps

Your Hosted

Site

Autohosted App

Windows Azure + SQL Azure provisioned invisibly as apps are installed

Azure

SharePoint

Host WebApp Web*

(separate SharePoint domain)

SharePoint

Host WebApp Web*

(separate SharePoint domain)

SharePoint

Host WebApp Web

(separate SharePoint domain)

*App Webs are optional in Cloud-Hosted Apps

Page 9: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

Hosting ComparisonSharePoint Hosted Cloud Hosted

App Scope SharePoint Site Site or Tenancy

Architecture Web Site Can be Multi-Tenant App

Developer Skillset SharePoint + HTML/JS

Full Stack

UI Technologies SharePoint + HTML/JS

Any Web Stack

Server Code None Any

Storage Lists and Libraries Any

Key Limitations No Server Code Hosting Expertise Required

Good for… Smaller apps & resource storage

Any type of Application

Page 10: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

App Presentation OptionsShape Description Example

Immersive Full Page App

App that implements a new scenario for customers

Resource Tracking, Budgeting

App/Client Part Provides new parts you can add to your sites

Weather, News, Stock Ticker

Extension App Add new actions for documents and items

Display Document Visualization, Print to Print Service Vendor

Page 11: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

App Demo

Page 12: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

New Functionality Improved CSOM Improved Rest API

Needed since code is not run in SharePoint Processes

O-Auth Security New Security Model to allow app specific permissions

Page 13: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

JSOM Library Library has two versions

SP.js – minified version of the library SP.Debug.js – unminified with intellisense

Both can be found in the layouts folder %ProgramFiles%\Common Files\Microsoft Shared\Web Server

Extensions\15\TEMPLATE\LAYOUTS http://siteurl/_layouts/15

Easiest way to reference it in SharePoint is<SharePoint:ScriptLink name="SP.js" runat="server" ondemand="false" localizable="false" loadafterui="true" />

Page 14: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

Example

SP.SOD.executeOrDelayUntilScriptLoaded(GetProjects, "PS.js");

function GetProjects() { var projContext = PS.ProjectContext.get_current(); projects = projContext.get_projects(); projContext.load(projects, 'Include(Name, CreatedDate, Id)'); projContext.executeQueryAsync(onQuerySucceeded, onQueryFailed);}

Page 15: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

Continued

function onQuerySucceeded(sender, args) { var projectEnumerator = projects.getEnumerator(); while (projectEnumerator.moveNext()) { var project = projectEnumerator.get_current();

var row = tblProjects.insertRow();

row.insertCell().innerText = project.get_name(); row.insertCell().innerText = project.get_createdDate(); row.insertCell().innerText = project.get_id(); }}

Page 16: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

Limitations Apps in general

Deployed to different domain(extra login possible) Initial configuration is a pain

App/Client Parts Loaded in an iframe(size is fixed, not auto sizing) Also loaded from other domain

Page 17: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

Let’s Create Our First App

Page 18: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

Permissions and Security Apps have their own permissions You must specify what SharePoint you want to access in

your Manifest Content is secured through Oauth Users must have the permissions you need for them to

install

Page 19: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

Permission OptionsUser Only

User must have access to data that is being requested.

App+User User and app must both have access.

App Only Only the app has to have permission. Can be used to setup Elevated Priviledges

Page 20: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

Deployment

Everything Packaged into a .app file

This can be used to add the app manually to a site or publish it to the SharePoint Store

Page 21: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

Let’s Examine How this works

Page 22: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

Gotchas

On-Premise Sites are not configured by default to handle Apps

Sideloading of apps is not enabled on this site.Enable-SPFeature e374875e-06b6-11e0-b0fa-57f5dfd72085 –url http://sp.contoso.com

App Management Shared Service Proxy is not installed.

Technet article on how to setup On-Premise for development

http://msdn.microsoft.com/en-us/library/fp179923.aspx

Page 23: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

Questions?

Page 24: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

Post Event: SharePint

Location: La Jolla Brewing Company

Address: 7536 Fay Ave, La Jolla, CA 92037

Phone: 858-246-6759

Immediately following event closing & prize drawings

Map and Directions on SPS Events ScheduleGoogle Map & directions: http://ow.ly/E164L

Page 25: SharePoint Saturday San Diego - SharePoint 2013 Apps

#SPSSD @sanspugSan Diego 2014

SharePoint Saturday San DiegoNovember 15, 2014 UCSD Extension

PLEASE THANK OUR SPONSORS!

Please fill out your session evaluation! http://ntx.lv/lwGlKl1 (case sensitive)