SharePoint Apps

Download Report

Transcript SharePoint Apps

SharePoint Apps in SharePoint 2013
Ryan Schouten
SharePoint Saturday Bend
@shrpntknight
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
Objectives
•
•
•
•
•
•
•
•
•
The Need
Benefits
Hosting Options
Limitations
New Functionality
Development Options
Permissions and Security
Deployment
Break it Down
Why the change
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
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
Hosting Options
Cloud-based Apps
Get remote events from
SharePoint
Use CSOM/REST +
OAuth to work with SP
Provider-Hosted App
SharePoint
Host Web
“Bring your own server hosting
infrastructure and technology platform”
App Web*
Autohosted App
Windows Azure + SQL Azure provisioned
invisibly as apps are installed
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
(separate SharePoint
domain)
SharePoint
Host Web
App Web*
(separate SharePoint
domain)
SharePoint
Host Web
App Web
(separate SharePoint
domain)
Azure
Hosting Comparison
SharePoint Hosted
Cloud Hosted
SharePoint Site
Site or Tenancy
Web Site
Can be Multi-Tenant
App
Developer Skillset
SharePoint + HTML/JS
Full Stack
UI Technologies
SharePoint + HTML/JS
Any Web Stack
None
Any
Lists and Libraries
Any
Key Limitations
No Server Code
Hosting Expertise
Required
Good for…
Smaller apps &
resource storage
Any type of Application
App Scope
Architecture
Server Code
Storage
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
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
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
Let’s Create Our First App
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" />
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);
}
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();
}
}
Let’s Try It
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
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
Let’s Examine How this works
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
Questions?
Wrap-up
Apps can be the way to go
Evaluate your needs to decide how to proceed.
Join us at Fall Fest
Please fill out the survey at: http://bit.ly/1wV5wD6 or