MSDN - SharePoint 2013 to app or not to app
-
Upload
joris-poelmans -
Category
Technology
-
view
145 -
download
0
Transcript of MSDN - SharePoint 2013 to app or not to app
![Page 1: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/1.jpg)
SharePoint 2013: To App or not to App?
joris poelmans04.09.2012
![Page 2: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/2.jpg)
About me
Joris Poelmans
@jopxtwitsjopx.blogspot.comlinkedin.com/in/jorispoelmans
unit managerarchitectdeveloper
SharePoint
Windows 8 & Phone
![Page 3: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/3.jpg)
Agenda• Introduction to SharePoint 2013 apps• Deployment options and design patterns• Technologies used in app development• Building a SharePoint-hosted app
![Page 4: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/4.jpg)
setting the sceneIntroducing the new SharePoint app framework
![Page 5: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/5.jpg)
Introducing appsIn SharePoint 2013 everything is an app …
In strict sense: “Apps are self-contained pieces of functionality that extend the capabilities of a SharePoint site.”
new deployment method
low server footprint
cloud driven
using app catalog
![Page 6: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/6.jpg)
App isolation: App web vs Host web• Apps live in their own isolated environment called
the “app web”.• The site in which they function is called the “host
web”
http://app-7b0fe2bced5247.apps.contoso.com/555DE569-4083-4397-8714-668B91D9C7A9
APP1UID GUIDAPP1
![Page 7: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/7.jpg)
Packaging and deployment optionsFarm
• Full access API• Server side
code• Server file level
access required• Classic model
from 2007• On-premise only
Sandbox Apps
• Partially trusted code service with limited server side code
• No file level access required
• Resource monitored
• Introduced with 2010
• Online deployment possible
• New model• Deploy from
corporate catalog or marketplace
• Limited server footprint
• Relies heavily on client-side technologies
• Online deployment possible
![Page 8: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/8.jpg)
SharePoint 2013 app development scenariosDeployment options
On-premise install
Development options Development tools
Hosted install
Office 365
Farm solution
Sandbox solution
SharePoint-Hosted appsDeveloper-Hosted apps
Azure-Hosted apps
Browser
SharePoint Designer
Visual Studio
Eclipse, PHP, etc....
![Page 9: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/9.jpg)
DemoApps from end user perspective
![Page 10: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/10.jpg)
Getting started with development• Local development• Has to be on Windows Server 2008 R2 (or later)• Memory reqs have gone up – 12 GB RAM seems
workable ... But TechNet recommends 24 GB• Extra configuration needed for app development• Visual Studio 2012
• Remote development• Sign up for Office 365 Developer Site• Possible to use NAPA – app for building apps
![Page 11: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/11.jpg)
SharePoint App UX• Immersive App - app is shown full screen
with in a separate page • Part - App is shown as a part on the
SharePoint page – similar experience to web part
• UI Custom Actions – possible to make the App available through ribbon or menu actions for documents and items
See Apps for SharePoint UX design guidelines
![Page 12: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/12.jpg)
DemoHello world SharePoint app
![Page 13: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/13.jpg)
the bigger picturedeployment options, app identity and design patterns
![Page 14: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/14.jpg)
Basic SharePoint App architecture• Code runs “Off SharePoint
Box”• Declarative Hooks into
SharePoint• AppWeb Host in SharePoint
![Page 15: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/15.jpg)
Apps – three possible approaches
App Web
Parent Web
SharePoint-hosted AppProvision an isolated sub web on a parent web• Reuse web elements
(lists, files, out-of-box web parts)
• No server code allowed; use client JavaScript for logic, UX
Azure Auto-Provisioned AppWindows Azure + SQL Azure provisioned invisibly as apps are installed
Azure SharePoint Web
Get remote events from SharePoint Use CSOM/REST + OAuth to work with SPS
Cloud-based Apps
Developer-Hosted App“Bring your own server hosting infrastructure”Developers will need to isolate tenants
SharePoint
Web
Your Hosted
Site
![Page 16: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/16.jpg)
Hosting: cloud vs SharePointCloud Hosted Apps SharePoint Hosted Apps
Possible hosting model for almost all types of apps
Good for smaller apps
Choose your own infrastructure & technology
SharePoint based; no server-side code
May require your own hosting Automatically hosted in SharePoint
May require your own handling of multitenancy & permission management
Inherent multitenancy & isolation
![Page 17: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/17.jpg)
App identity• Challenge with SPS2010• Farm solutions – too much privileges - risk of
RunWithElevatedPrivileges• Sandbox solutions – no RunWithElevatedPrivileges –
always under user context• In SharePoint 2013 apps have their own identity
and specific permissions• Installing user either grants or denies permissions to host
web• Permission is explicitly given for a specific scope• App identity is passed around using oAuth tokens
![Page 18: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/18.jpg)
App scopes• SPSite – site collection• SPWeb – site• SPList • Tenancy• Other scopes (and rights) for performing search
queries, accessing taxonomy data, user profiles, etc...
![Page 19: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/19.jpg)
App rights• Default rights : Read, Write, Manage and Full Control• Not possible to customize• Apps are granted permissions to a scope and all
children of the scope• Defined in declarative XML
![Page 20: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/20.jpg)
Azure Access Control Service (ACS)• ACS required with oAuth implementation in
SharePoint 2013• How is the ACS server configured as the
authentication server?• Automatically done for sites in Office 365 Preview• On-premise farms, a trust to ACS must be configured.
Possible to avoid when using Server-to-server (S2S) trust
![Page 21: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/21.jpg)
DemoUsing App permissions
![Page 22: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/22.jpg)
base technologiesSharePoint 2013 REST/CSOM API
![Page 23: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/23.jpg)
SharePoint 2013 CSOM and REST API• Apps connect to SharePoint using
• SharePoint 2013 Client Side Object Model (CSOM)• SharePoint 2013 REST API• Javascript cross-domain library (SP.RequestExecutor.js)
• Main investments in 2013• Client.svc is extended with REST capabilities
• Easier for javascript and non .NET code• Implemented in accordance with oData protocol• Programming style is largely unchanged
• New APIs for SharePoint Server functionality• User Profiles, Search, Taxonomy, Feeds, ....
![Page 24: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/24.jpg)
REST URLs in SharePoint 2013• CSOM URLs can go through _api folder• Replace
http://sharepoint/_vti_bin/client.svc/web• With
http://sharepoint/_api/web
• Example REST URLs targeting SharePoint sites• _api/web/lists• _api/web/lists/List1• _api/web/?$select=title,id• /_api/web/lists/getByTitle('Consultants')/Items• ....
![Page 25: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/25.jpg)
ATOM XML vs JSON• Response data format selected with ACCEPT header• XML can be easier to deal with from managed code• JSON easier to deal with using Javascript• To get JSON response use “application/json”http://sharepoint/_vti_bin/client.svc/web
![Page 26: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/26.jpg)
DemoExploring SPS 2013 REST API
![Page 27: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/27.jpg)
building a SharePoint hosted appUsing Office 365 Developer site
![Page 28: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/28.jpg)
SharePoint Hosted App• App components are SharePoint components• SharePoint list, site columns, content types• CSOM and REST API• Client web part
• Key Developer skills• HTML5, CSS, Javascript• Jquery, ASP.NET AJAX• CSOM and REST API• Silverlight
![Page 29: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/29.jpg)
SharePoint Hosted App• Installation of App creates child site in target
site• App can add declarative items to App Web• App Web <-> Host Web communication:
CSOM/REST or Javascript cross-domain library • Full client-side extension – no server-side code
Host Web
App Web
• Custom Actions• Client-side web parts
• Lists• Site Pages• CSS files• Javascript files
![Page 30: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/30.jpg)
DemoBuilding a SharePoint Hosted App with Office 365
![Page 31: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/31.jpg)
summary
Call to Action
![Page 32: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/32.jpg)
SummaryCall to action:• Sign up for Office 365 Developer Preview• Watch developer videos around building Shar
ePoint 2013 apps
• Register on www.biwug.be as a member to stay up to date for local SharePoint 2013 sessions
• For more information or questions• SharePoint 2013 Preview start page• SharePoint 2013 Preview Developer documentation• Developing Apps for SharePoint 2013 MSDN forum• SharePoint 2013 Delicious links• Yammer – https://www.yammer.com/spyam
![Page 33: MSDN - SharePoint 2013 to app or not to app](https://reader033.fdocuments.net/reader033/viewer/2022052901/556596ead8b42a093a8b4d74/html5/thumbnails/33.jpg)
questionsthank you for your attendance
@jopxtwits