Get Started with Apps for SharePoint 2013!

Download Report

Transcript Get Started with Apps for SharePoint 2013!

Image from http://msdn.microsoft.com/en-us/library/fp179930.aspx
Image from http://msdn.microsoft.com/en-us/library/fp179925.aspx
Image from http://msdn.microsoft.com/en-us/library/fp179930.aspx
$(document).ready(function () {
hostweburl = decodeURIComponent(getQueryStringParameter("SPHostUrl"));
var scriptbase = hostweburl + "/_layouts/15/";
$.getScript(scriptbase + "SP.UI.Controls.js", renderChrome);
});
function renderChrome() {
var options = {
"appIconUrl": "", "appTitle": "CSOM/JSOM/REST demos",
};
// Place the chrome control in the <div> with ID="chrome_ctrl_placeholder"
var nav = new SP.UI.Controls.Navigation("chrome_ctrl_placeholder", options);
nav.setVisible(true);
}
http://aka.ms/officedevtoolsforvs2013
http://aka.ms/officedevtoolsforvs2012
http://www.nuget.org/packages/AppForSharePointWebToolkit
using Microsoft.SharePoint.Client;
var
using var
SharePointContextProvider
"//ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js"
"//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.9.1.min.js"
var
var
var
"SPHostUrl"
"SPAppWebUrl"
"/_layouts/15/"
"SP.Runtime.js"
function
"SP.js"
function
"SP.RequestExecutor.js"
function
var
var
var
var
var
new
new
new
http://odata.org
URL
Returns
_api/web/title
The title of the current site
_api/web/lists/getByTitle('Announcements')
The Announcements list
_api/web/lists/getByTitle('Announcements')/fields
The columns in the Announcements list
_api/web/lists/getByTitle('Tasks')/items
The items in the Tasks list
_api/web/siteusers
The users in the site
_api/web/sitegroups
The user groups in the site
_api/web/GetFolderByServerRelativeUrl('/Shared
Documents')
The root folder of the Shared Documents
library
_api/web/GetFolderByServerRelativeUrl('/Plans')
/Files('a.txt')/$value
The file a.txt from the Plans library
Table adapted from http://msdn.microsoft.com/en-us/magazine/dn198245.aspx
https://djsp.sharepoint.com/_api/web/title
Danny's O365 Dev Tenant
CSOM
REST
Less “chatty” (requests can be batched)
More “chatty” (no request batching)
Handles the “plumbing” of calls to SharePoint
Requires you to construct and manage your
own HTTPRequest/Response objects
Requires CAML for queries
Uses standard OData vocabularies
Can interact with managed metadata
taxonomies and workflows
No support for interacting with managed
metadata taxonomies and workflows
Easy to leverage third-party libraries (jQuery)
Can be debugged using Fiddler
No external assembly references required
Table adapted from http://www.andrewconnell.com/blog/sharepoint-2013-csom-vs.-rest-...-my-preference-and-why
http://tools.ietf.org/html/draft-ietf-oauth-v2-22
Image from http://msdn.microsoft.com/en-us/library/fp142382.aspx
Requirement/Scenario
OAuth
Cross-domain
I use client-side technologies (HTML + JavaScript).
I want to use REST interfaces.
There is a firewall between SharePoint and my remote app,
and I need to issue the calls through the browser.
My app needs to access resources as the logged-on user.
My app needs to elevate privileges to other than those of the
current logged-on user.
My app needs to act on behalf of a user other than the one
who is logged on.
My app needs to perform operations only while the user is
logged on.
My app needs to perform operations even when the user is
not logged on.
Table from http://msdn.microsoft.com/en-us/library/fp179897.aspx
key
key
ClientId value xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ClientSecret value xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
http://msdn.microsoft.com/en-us/library/fp179924%28v=office.15%29
http://cloudshare.com
http://portal.windowsazure.com
http://msdn.microsoft.com/library/fp179887%28v=office.15%29
http://msdn.microsoft.com/en-us/library/fp179899%28v=office.15%29
http://msdn.microsoft.com/en-us/library/fp179922%28v=office.15%29
http://msdn.microsoft.com/en-us/library/fp142383%28v=office.15%29
http://msdn.microsoft.com/en-us/library/fp142382%28v=office.15%29
http://msdn.microsoft.com/en-us/library/fp179927%28v=office.15%29
http://msdn.microsoft.com/en-us/library/fp179930.aspx
http://msdn.microsoft.com/library/office/jj164060.aspx
http://msdn.microsoft.com/en-us/library/office/fp179925
http://msdn.microsoft.com/enus/library/office/fp179934%28v=office.15%29.aspx
http://blogs.msdn.com/b/visualstudio/archive/2014/03/03/announcing-officedeveloper-tools-for-visual-studio-2013-march-2014-update.aspx
http://msdn.microsoft.com/en-us/library/jj220038.aspx
http://msdn.microsoft.com/en-us/library/jj220041.aspx
http://msdn.microsoft.com/enus/library/office/fp179886%28v=office.15%29.aspx
http://msdn.microsoft.com/en-us/library/fp179897.aspx
http://msdn.microsoft.com/en-us/library/fp142384.aspx
http://msdn.microsoft.com/en-us/library/office/fp179912
http://msdn.microsoft.com/en-us/library/office/jj163201
http://msdn.microsoft.com/en-us/library/office/jj164022
http://www.andrewconnell.com/blog/sharepoint-2013-csom-vs.-rest-...-mypreference-and-why
http://msdn.microsoft.com/enus/library/office/jj612823%28v=office.15%29.aspx
https://officeams.codeplex.com/
http://blogs.msdn.com/b/officeapps/archive/2013/11/07/announcing-thenew-sharepointcontext-helper-in-apps-for-sharepoint-2013.aspx