View
175
Download
3
Category
Preview:
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.
Citation preview
#SPSSD @sanspugSan Diego 2014
SharePoint Saturday San DiegoNovember 15, 2014 UCSD Extension
SharePoint Apps in SharePoint 2013
Ryan SchoutenIntermountain Technology Group
@shrpntknight
#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
Ryan.Schouten@itg-mail.com
@shrpntknight
http://www.sharepointknight.com
#SPSSD @sanspugSan Diego 2014
• Office365 Implementations• Custom SharePoint Development• Responsive Design
#SPSSD @sanspugSan Diego 2014
Objectives
The Need Benefits Details Limitations Permissions and Security Deployment Break it Down
#SPSSD @sanspugSan Diego 2014
Why the changeToday’s Market Today’s Trends Our Principles
#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
#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)
#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
#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
#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
#SPSSD @sanspugSan Diego 2014
App Demo
#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
#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" />
#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);}
#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(); }}
#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
#SPSSD @sanspugSan Diego 2014
Let’s Create Our First App
#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
#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
#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
#SPSSD @sanspugSan Diego 2014
Let’s Examine How this works
#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
#SPSSD @sanspugSan Diego 2014
Questions?
#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
#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)
Recommended