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.
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
SharePoint Saturday San Diego - SharePoint 2013 Apps
1. SharePoint Saturday San Diego
November 15, 2014
UCSD Extension
SharePoint Apps in SharePoint
2013
Ryan Schouten
Intermountain Technology Group
@shrpntknight
San Diego 2014 #SPSSD @sanspug
2. Ryan Schouten
Worked with SharePoint for 8 years
I have experience with SharePoint 2003 – 2013
I have About worked Me
with ASP.Net for 11 years
MCPD, MCT
Contact Information
Ryan.Schouten@itg-mail.com
@shrpntknight
http://www.sharepointknight.com
San Diego 2014 #SPSSD @sanspug
3. • Office365 Implementations
• Custom SharePoint Development
• Responsive Design
San Diego 2014 #SPSSD @sanspug
4. Objectives
The Need
Benefits
Details
Limitations
Permissions and Security
Deployment
Break it Down
San Diego 2014 #SPSSD @sanspug
6. 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
San Diego 2014 #SPSSD @sanspug
7. 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)
San Diego 2014 #SPSSD @sanspug
8. Hosting Options
Provider-Hosted App
“Bring your own server hosting
infrastructure and technology platform”
San Diego 2014 #SPSSD @sanspug
Cloud-based Apps
Get remote events from
SharePoint
Use CSOM/REST +
OAuth to work with SP
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
Your
Hosted Site
Autohosted App
Windows Azure + SQL Azure provisioned
invisibly as apps are installed
Azure
SharePoint
Host Web
App Web*
(separate SharePoint
domain)
SharePoint
Host Web
App Web*
(separate SharePoint
domain)
SharePoint
Host Web
App Web
(separate SharePoint
domain)
9. Hosting Comparison
SharePoint 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
San Diego 2014 #SPSSD @sanspug
10. App Presentation Options
Shape 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
San Diego 2014 #SPSSD @sanspug
12. 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
San Diego 2014 #SPSSD @sanspug
13. 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 FilesMicrosoft SharedWeb Server
Extensions15TEMPLATELAYOUTS
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" />
San Diego 2014 #SPSSD @sanspug
14. San Diego 2014 #SPSSD @sanspug
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);
}
15. 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();
San Diego 2014 #SPSSD @sanspug
}
}
16. 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
San Diego 2014 #SPSSD @sanspug
18. 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
San Diego 2014 #SPSSD @sanspug
19. Permission Options
San Diego 2014 #SPSSD @sanspug
User 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
20. 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
San Diego 2014 #SPSSD @sanspug
22. San Diego 2014 #SPSSD @sanspug
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
24. 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 Schedule
Google Map & directions: http://ow.ly/E164L
San Diego 2014 #SPSSD @sanspug
25. SharePoint Saturday San Diego
November 15, 2014
UCSD Extension
PLEASE THANK OUR SPONSORS!
Please fill out your session evaluation! http://ntx.lv/lwGlKl1 (case sensitive)
San Diego 2014 #SPSSD @sanspug
Hinweis der Redaktion
Worked with all but one version of SharePoint. I missed the first version. Slides will be posted to my blog at http://www.sharepointknight.com in the next 24 hours.