SlideShare a Scribd company logo
SharePoint 2013:
To App or not to
App?
About me
Agenda
•   Introduction to SharePoint 2013 apps
•   Deployment options and design patterns
•   Technologies used in app development
•   Building a SharePoint-hosted app
setting the scene
Introducing the new SharePoint app
framework
Introducing apps
In SharePoint 2013 everything is an app …

In strict sense: “Apps are self-contained pieces of functionality
that extend the capabilities of a SharePoint site.”
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”


              APP1UID                    GUIDAPP1
Packaging and deployment options
SharePoint 2013 app development
scenarios
Demo
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
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
Demo
SharePoint Server 2013: to app or not to app?
Basic SharePoint App architecture
• Code runs “Off SharePoint Box”
• Declarative Hooks into
  SharePoint
• AppWeb Host in SharePoint
Apps – three possible approaches
                Developer-Hosted App
Cloud-based     “Bring your own server hosting        SharePoint      Your Hosted
Apps            infrastructure”                          Web              Site
                Developers will need to isolate
Get remote      tenants
events from
SharePoint      Azure Auto-
Use CSOM/REST   Provisioned App                       SharePoint        Azure
+               Windows Azure + SQL Azure
OAuth to work   provisioned invisibly as apps            Web
with SPS        are installed


                SharePoint-hosted App
                                                             Parent
                Provision an isolated sub web
                on a parent web                               Web
                   • Reuse web elements                                App Web
                      (lists, files, out-of-box web
                      parts)
                   • No server code allowed;
                      use client JavaScript for
                      logic, UX
Hosting: cloud vs SharePoint
Cloud Hosted Apps                             SharePoint Hosted Apps


Possible hosting model for almost all types   Good for smaller apps
of apps

Choose your own infrastructure &              SharePoint based; no server-side code
technology

May require your own hosting                  Automatically hosted in SharePoint


May require your own handling of              Inherent multitenancy & isolation
multitenancy & permission management
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
App scopes
•   SPSite – site collection
•   SPWeb – site
•   SPList
•   Tenancy
•   Other scopes (and rights) for performing search queries,
    accessing taxonomy data, user profiles, etc...
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
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
Demo
SharePoint Server 2013: to app or not to app?
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, ....
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
   • ....
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
Demo
Exploring SPS 2013 REST API
SharePoint Server 2013: to app or not to app?
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
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

                        •   Custom Actions
                        •   Client-side web parts


                                     •    Lists
                                     •    Site Pages
                                     •    CSS files
                                     •    Javascript files
Demo
Building a SharePoint Hosted App with Office 365
SharePoint Server 2013: to app or not to app?
Summary
 Call to action:
 • Sign up for Office 365 Developer Preview
 • Watch developer videos around building SharePoint
   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
SharePoint Server 2013: to app or not to app?

More Related Content

PPTX
SharePoint 2013 App or Not to App
PPTX
MSDN - SharePoint 2013 to app or not to app
PDF
Building SharePoint 2013 Apps - Architecture, Authentication & Connectivity API
PPTX
Introducing the new SharePoint 2013 app model
PPTX
The SharePoint 2013 App Model
PPTX
Introduction to the new SharePoint 2013 App Model
PPTX
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
PPTX
Designing SharePoint solutions – Big Decisions for Big Success
SharePoint 2013 App or Not to App
MSDN - SharePoint 2013 to app or not to app
Building SharePoint 2013 Apps - Architecture, Authentication & Connectivity API
Introducing the new SharePoint 2013 app model
The SharePoint 2013 App Model
Introduction to the new SharePoint 2013 App Model
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
Designing SharePoint solutions – Big Decisions for Big Success

What's hot (20)

PPTX
Developing Apps for SharePoint Store
PPTX
Get started with building native mobile apps interacting with SharePoint
PDF
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
PDF
Practical management of development & QA environments for SharePoint 2013
PPTX
OAuth in SharePoint 2013
PPTX
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
PPTX
Sharepoint 2013 App
PPTX
SharePoint 2013 apps overview
PPTX
Visio Services in SharePoint 2010
PPTX
App Model For SharePoint 2013
PPTX
Oauth and SharePoint 2013 Provider Hosted apps
PPTX
Sonja madsen speaker slides espc 2013
PPTX
Essential Knowledge for SharePoint Add-Ins
PPTX
SharePoint 2013 Hosted App Presentation by Roy Kim
PDF
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
PPTX
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
PPTX
SharePoint 2013 APIs demystified
PPTX
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
PPTX
SharePoint 2013 Search and Creating Dynamic Content Management Solutions
PPTX
Developer’s Independence Day: Introducing the SharePoint App Model
Developing Apps for SharePoint Store
Get started with building native mobile apps interacting with SharePoint
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
Practical management of development & QA environments for SharePoint 2013
OAuth in SharePoint 2013
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Sharepoint 2013 App
SharePoint 2013 apps overview
Visio Services in SharePoint 2010
App Model For SharePoint 2013
Oauth and SharePoint 2013 Provider Hosted apps
Sonja madsen speaker slides espc 2013
Essential Knowledge for SharePoint Add-Ins
SharePoint 2013 Hosted App Presentation by Roy Kim
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
SharePoint 2013 APIs demystified
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
SharePoint 2013 Search and Creating Dynamic Content Management Solutions
Developer’s Independence Day: Introducing the SharePoint App Model
Ad

Similar to SharePoint Server 2013: to app or not to app? (20)

PDF
(Almost) All About Apps for SharePoint 2013
PPTX
Share point unvealed apps in sharepoint 2013
PPTX
Access share point-2013-data-with-provider-hosted-apps
PPTX
SharePoint Development with Visual Studio 2012
PPTX
Getting started with SharePoint 2013 online development
PPTX
SharePoint 2013 App Provisioning Models
PPTX
Getting Started with SharePoint 2013 Apps
PPTX
2014 SharePoint Saturday Melbourne Apps or not to Apps
PPTX
SP Apps, New Model, New App Store: The Office Store
PPT
SP2013 What's New for Developers : SPSSTL
PDF
SharePoint in the cloud: Deep Azure apps for SharePoint 2013
PPTX
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
PPTX
Sp2013 overview biwug
PPTX
Sp2013 overview
PPTX
SPCA2013 - Once you go app you don't go back
PPTX
Deep Dive SharePoint 2013: Developing applications in SharePoint 2013: forget...
PPTX
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
PPTX
SharePoint Saturday Sacramento 2013 SharePoint Apps
PPTX
Developing Apps for SharePoint 2013
PPTX
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
(Almost) All About Apps for SharePoint 2013
Share point unvealed apps in sharepoint 2013
Access share point-2013-data-with-provider-hosted-apps
SharePoint Development with Visual Studio 2012
Getting started with SharePoint 2013 online development
SharePoint 2013 App Provisioning Models
Getting Started with SharePoint 2013 Apps
2014 SharePoint Saturday Melbourne Apps or not to Apps
SP Apps, New Model, New App Store: The Office Store
SP2013 What's New for Developers : SPSSTL
SharePoint in the cloud: Deep Azure apps for SharePoint 2013
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Sp2013 overview biwug
Sp2013 overview
SPCA2013 - Once you go app you don't go back
Deep Dive SharePoint 2013: Developing applications in SharePoint 2013: forget...
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
SharePoint Saturday Sacramento 2013 SharePoint Apps
Developing Apps for SharePoint 2013
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
Ad

More from Microsoft Developer Network (MSDN) - Belgium and Luxembourg (20)

PPTX
Code in the Cloud - Ghent - 20 February 2015
PPTX
Executive Summit for ISV & Application builders - January 2015
PDF
Executive Summit for ISV & Application builders - Internet of Things
PPTX
Executive Summit for ISV & Application builders - January 2015
PPTX
PPTX
cloud value for application development
PPTX
PPTX
Inside the Microsoft TechDays Belgium Apps
PPTX
PPTX
PPTX
Applied MVVM in Windows 8 apps: not your typical MVVM session!
PPTX
Building SPA’s (Single Page App) with Backbone.js
PPTX
Deep Dive and Best Practices for Windows Azure Storage Services
PPTX
Building data centric applications for web, desktop and mobile with Entity Fr...
Code in the Cloud - Ghent - 20 February 2015
Executive Summit for ISV & Application builders - January 2015
Executive Summit for ISV & Application builders - Internet of Things
Executive Summit for ISV & Application builders - January 2015
cloud value for application development
Inside the Microsoft TechDays Belgium Apps
Applied MVVM in Windows 8 apps: not your typical MVVM session!
Building SPA’s (Single Page App) with Backbone.js
Deep Dive and Best Practices for Windows Azure Storage Services
Building data centric applications for web, desktop and mobile with Entity Fr...

Recently uploaded (20)

PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
KodekX | Application Modernization Development
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Spectroscopy.pptx food analysis technology
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
cuic standard and advanced reporting.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Big Data Technologies - Introduction.pptx
Network Security Unit 5.pdf for BCA BBA.
KodekX | Application Modernization Development
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
The AUB Centre for AI in Media Proposal.docx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Spectroscopy.pptx food analysis technology
Mobile App Security Testing_ A Comprehensive Guide.pdf
Electronic commerce courselecture one. Pdf
Encapsulation_ Review paper, used for researhc scholars
Review of recent advances in non-invasive hemoglobin estimation
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
cuic standard and advanced reporting.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Understanding_Digital_Forensics_Presentation.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Big Data Technologies - Introduction.pptx

SharePoint Server 2013: to app or not to app?

  • 1. SharePoint 2013: To App or not to App?
  • 3. Agenda • Introduction to SharePoint 2013 apps • Deployment options and design patterns • Technologies used in app development • Building a SharePoint-hosted app
  • 4. setting the scene Introducing the new SharePoint app framework
  • 5. Introducing apps In SharePoint 2013 everything is an app … In strict sense: “Apps are self-contained pieces of functionality that extend the capabilities of a SharePoint site.”
  • 6. 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” APP1UID GUIDAPP1
  • 8. SharePoint 2013 app development scenarios
  • 10. 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
  • 11. 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
  • 12. Demo
  • 14. Basic SharePoint App architecture • Code runs “Off SharePoint Box” • Declarative Hooks into SharePoint • AppWeb Host in SharePoint
  • 15. Apps – three possible approaches Developer-Hosted App Cloud-based “Bring your own server hosting SharePoint Your Hosted Apps infrastructure” Web Site Developers will need to isolate Get remote tenants events from SharePoint Azure Auto- Use CSOM/REST Provisioned App SharePoint Azure + Windows Azure + SQL Azure OAuth to work provisioned invisibly as apps Web with SPS are installed SharePoint-hosted App Parent Provision an isolated sub web on a parent web Web • Reuse web elements App Web (lists, files, out-of-box web parts) • No server code allowed; use client JavaScript for logic, UX
  • 16. Hosting: cloud vs SharePoint Cloud Hosted Apps SharePoint Hosted Apps Possible hosting model for almost all types Good for smaller apps of apps Choose your own infrastructure & SharePoint based; no server-side code technology May require your own hosting Automatically hosted in SharePoint May require your own handling of Inherent multitenancy & isolation multitenancy & permission management
  • 17. 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
  • 18. App scopes • SPSite – site collection • SPWeb – site • SPList • Tenancy • Other scopes (and rights) for performing search queries, accessing taxonomy data, user profiles, etc...
  • 19. 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
  • 20. 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
  • 21. Demo
  • 23. 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, ....
  • 24. 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 • ....
  • 25. 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
  • 28. 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
  • 29. 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 • Custom Actions • Client-side web parts • Lists • Site Pages • CSS files • Javascript files
  • 30. Demo Building a SharePoint Hosted App with Office 365
  • 32. Summary Call to action: • Sign up for Office 365 Developer Preview • Watch developer videos around building SharePoint 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

Editor's Notes

  • #7: APP1UID : unique ID given to each app installation in tenancy – makes each app domain uniqueGUIDAPP1: Name of the SPWeb under which the app is installed – allows devs to plugin
  • #19: An app uses permission requests to specify the permissions that it needsThe requests specify both the rights and scope which are neededScopes indicate where in the SharePoint hierarchy a permission request applies. SharePoint supports four different content scopes:SPSite—site collectionSPWeb—websiteSPList—listTenancy—the tenancy scope is at http://&lt;sharepointserver&gt;/&lt;content&gt;/&lt;tenant&gt;/There are also scopes for things like performing search queries, accessing taxonomy data, user profiles, etc.
  • #20: Permission rights indicate what an app is permitted to do within a scope. SharePoint supports four rights levels for content (there are others for things like search, term store, etc.):Read-OnlyWriteManageFull ControlUnlike SharePoint user roles, these rights levels are not customizableIf an app is granted permission to a scope, the permission applies to all children of the scopeIf an app is granted perms to an SPWeb, the app is also granted perms to each SPList in the SPWeb, and all SPListItems in each list, but NOT each subweb
  • #21: Permission rights indicate what an app is permitted to do within a scope. SharePoint supports four rights levels for content (there are others for things like search, term store, etc.):Read-OnlyWriteManageFull ControlUnlike SharePoint user roles, these rights levels are not customizableIf an app is granted permission to a scope, the permission applies to all children of the scopeIf an app is granted perms to an SPWeb, the app is also granted perms to each SPList in the SPWeb, and all SPListItems in each list, but NOT each subweb