SlideShare a Scribd company logo
1 of 35
SharePoint 2013: App or Not to App

Walkthrough of SharePoint 2013 Apps
-- why you should use apps over farm solutions
Session Evaluations
• Schedule and evaluate each session you attend via our mobile

app that can be used across devices at
http://spsaturday.cloudapp.net

• You will be able to evaluate a session 25 minutes before the

scheduled end time
• Evaluations are stored anonymously and your feedback is
appreciated
• The app will be the only method available to submit session
evaluations for the event and we hope you find it intuitive and
convenient
Room Survey
• Have seen SharePoint 2013?
• Installed on-prem Or O365?
• Currently a C# developer?
• Know Web-Dev Technologies (HTML5, CSS3, JS, jQuery)?
• Used JS-CSOM for SharePoint 2010?
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.”
Isolation: App web vs Host web
• Apps live in their own isolated environment; the “app web”
• The site in which they function is called the “host web”

APP UID

Host Web GUID
Packaging and deployment options
SharePoint 2013 app development
Demo
Getting started with development
• Local development
• Has to be on Windows Server 2008 R2 (or later)
• Memory reqs have gone up – TechNet recommends at least 24 GB
• Extra configuration needed for app development
• Visual Studio 2012
• Remote development
• Sign up for Office 365 - $3/month
• 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
Basic SharePoint App architecture
• Code runs “Off SharePoint Box”
• Declarative Hooks into

SharePoint
• AppWeb Host in SharePoint
Apps – three possible approaches
Cloud-based
Apps
Get remote
events from
SharePoint
Use CSOM/REST
+
OAuth to work
with SPS

Developer-Hosted App

“Bring your own server hosting
infrastructure”
Developers will need to isolate
tenants

Azure AutoProvisioned App

Windows Azure + SQL Azure
provisioned invisibly as apps
are installed

SharePoint-hosted App

Provision 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

SharePoint
Web

Your Hosted
Site

SharePoint
Web

Azure

Parent
Web
App Web
Hosting: cloud vs SharePoint
Cloud 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
App identity
• Challenge with SPS2010
• Farm solutions
• Full Access to Almost Everything
• Risk of RunWithElevatedPrivileges
• Memory Leaks – SPWeb.Dispose() not used well

• Sandbox solutions
• no RunWithElevatedPrivileges
• always under user context

• In SharePoint 2013 Apps have their own identity & 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...
• Potentially other services like Lync, Exchange
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
• Visual Stuio Assists with defining these:
• Defined in declarative XML
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 2013 REST API and CSOM
• 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 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
Housekeeping
• Follow SharePoint Saturday St. Louis on Twitter

@spsstlouis and hashtag #spsstl
• Play “Sponsor Bingo” to register for your chance to
win one of the many great giveaways at the end of
the day
• Schedule and evaluate each session you attend via
our mobile app that can be used across devices at
http://spsaturday.cloudapp.net
Thanks to Our Sponsors!
SharePoint 2013 App or Not to App

More Related Content

What's hot

Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
Nik Patel
 
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted AppsSharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
Sanjay Patel
 
Practical management of development & QA environments for SharePoint 2013
Practical management of development & QA environments for SharePoint 2013Practical management of development & QA environments for SharePoint 2013
Practical management of development & QA environments for SharePoint 2013
SharePointRadi
 

What's hot (20)

Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
Developing SharePoint 2013 apps with Visual Studio 2012 - Microsoft TechDays ...
 
SharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSharePoint 2013 APIs demystified
SharePoint 2013 APIs demystified
 
SP Apps, New Model, New App Store: The Office Store
SP Apps, New Model, New App Store: The Office StoreSP Apps, New Model, New App Store: The Office Store
SP Apps, New Model, New App Store: The Office Store
 
App Model For SharePoint 2013
App Model For SharePoint 2013App Model For SharePoint 2013
App Model For SharePoint 2013
 
Oauth and SharePoint 2013 Provider Hosted apps
Oauth and SharePoint 2013 Provider Hosted appsOauth and SharePoint 2013 Provider Hosted apps
Oauth and SharePoint 2013 Provider Hosted apps
 
Essential Knowledge for SharePoint Add-Ins
Essential Knowledge for SharePoint Add-InsEssential Knowledge for SharePoint Add-Ins
Essential Knowledge for SharePoint Add-Ins
 
Introduction to the new SharePoint 2013 App Model
Introduction to the new SharePoint 2013 App ModelIntroduction to the new SharePoint 2013 App Model
Introduction to the new SharePoint 2013 App Model
 
Developing Apps for SharePoint Store
Developing Apps for SharePoint StoreDeveloping Apps for SharePoint Store
Developing Apps for SharePoint Store
 
SharePoint 2013 apps overview
SharePoint 2013 apps overviewSharePoint 2013 apps overview
SharePoint 2013 apps overview
 
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
 
Developer’s Independence Day: Introducing the SharePoint App Model
Developer’s Independence Day:Introducing the SharePoint App ModelDeveloper’s Independence Day:Introducing the SharePoint App Model
Developer’s Independence Day: Introducing the SharePoint App Model
 
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
Understanding SharePoint 2013 Code Deployment Models - Apps vs Solutions - Sh...
 
Designing SharePoint solutions – Big Decisions for Big Success
Designing SharePoint solutions – Big Decisions for Big SuccessDesigning SharePoint solutions – Big Decisions for Big Success
Designing SharePoint solutions – Big Decisions for Big Success
 
Get started with building native mobile apps interacting with SharePoint
Get started with building native mobile apps interacting with SharePointGet started with building native mobile apps interacting with SharePoint
Get started with building native mobile apps interacting with SharePoint
 
SharePoint Apps model overview
SharePoint Apps model overviewSharePoint Apps model overview
SharePoint Apps model overview
 
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted AppsSharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
SharePoint 2013 “App Model” Developing and Deploying Provider Hosted Apps
 
SharePoint 2013 Search and Creating Dynamic Content Management Solutions
SharePoint 2013 Search and Creating Dynamic Content Management SolutionsSharePoint 2013 Search and Creating Dynamic Content Management Solutions
SharePoint 2013 Search and Creating Dynamic Content Management Solutions
 
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrienDeep dive into SharePoint 2013 hosted apps - Chris OBrien
Deep dive into SharePoint 2013 hosted apps - Chris OBrien
 
Apps for SharePoint
Apps for SharePointApps for SharePoint
Apps for SharePoint
 
Practical management of development & QA environments for SharePoint 2013
Practical management of development & QA environments for SharePoint 2013Practical management of development & QA environments for SharePoint 2013
Practical management of development & QA environments for SharePoint 2013
 

Viewers also liked

SharePoint Saturday STL: SharePoint Powershell Admins
SharePoint Saturday STL: SharePoint Powershell AdminsSharePoint Saturday STL: SharePoint Powershell Admins
SharePoint Saturday STL: SharePoint Powershell Admins
Kenneth Maglio
 
Template 3
Template 3Template 3
Template 3
Icostyle
 
Fjulkaiseminen.com - Ilmainen, koko sivu Facebook julkaiseminen - Organisaati...
Fjulkaiseminen.com - Ilmainen, koko sivu Facebook julkaiseminen - Organisaati...Fjulkaiseminen.com - Ilmainen, koko sivu Facebook julkaiseminen - Organisaati...
Fjulkaiseminen.com - Ilmainen, koko sivu Facebook julkaiseminen - Organisaati...
Fjulkaiseminen
 
Kerberos: The Four Letter Word
Kerberos: The Four Letter WordKerberos: The Four Letter Word
Kerberos: The Four Letter Word
Kenneth Maglio
 
Fjulkaiseminen.com - Ilmainen, koko sivu Facebook julkaiseminen - Organisaati...
Fjulkaiseminen.com - Ilmainen, koko sivu Facebook julkaiseminen - Organisaati...Fjulkaiseminen.com - Ilmainen, koko sivu Facebook julkaiseminen - Organisaati...
Fjulkaiseminen.com - Ilmainen, koko sivu Facebook julkaiseminen - Organisaati...
Fjulkaiseminen
 

Viewers also liked (20)

SharePoint Saturday STL: SharePoint Powershell Admins
SharePoint Saturday STL: SharePoint Powershell AdminsSharePoint Saturday STL: SharePoint Powershell Admins
SharePoint Saturday STL: SharePoint Powershell Admins
 
Brown_Working with Teachers Project
Brown_Working with Teachers ProjectBrown_Working with Teachers Project
Brown_Working with Teachers Project
 
Raadseltjevoormannen!1
Raadseltjevoormannen!1Raadseltjevoormannen!1
Raadseltjevoormannen!1
 
William fabricio manual de sistemas sas
William fabricio manual de sistemas sasWilliam fabricio manual de sistemas sas
William fabricio manual de sistemas sas
 
Approaches
ApproachesApproaches
Approaches
 
Template 3
Template 3Template 3
Template 3
 
Fjulkaiseminen.com - Ilmainen, koko sivu Facebook julkaiseminen - Organisaati...
Fjulkaiseminen.com - Ilmainen, koko sivu Facebook julkaiseminen - Organisaati...Fjulkaiseminen.com - Ilmainen, koko sivu Facebook julkaiseminen - Organisaati...
Fjulkaiseminen.com - Ilmainen, koko sivu Facebook julkaiseminen - Organisaati...
 
Kerberos: The Four Letter Word
Kerberos: The Four Letter WordKerberos: The Four Letter Word
Kerberos: The Four Letter Word
 
Fjulkaiseminen.com - Ilmainen, koko sivu Facebook julkaiseminen - Organisaati...
Fjulkaiseminen.com - Ilmainen, koko sivu Facebook julkaiseminen - Organisaati...Fjulkaiseminen.com - Ilmainen, koko sivu Facebook julkaiseminen - Organisaati...
Fjulkaiseminen.com - Ilmainen, koko sivu Facebook julkaiseminen - Organisaati...
 
Plagio por Internet -UFT DIPLOMADO SAIA
Plagio por Internet -UFT DIPLOMADO SAIAPlagio por Internet -UFT DIPLOMADO SAIA
Plagio por Internet -UFT DIPLOMADO SAIA
 
From Trashy to Classy: How The SharePoint 2013 App Model Changes Everything
From Trashy to Classy: How The SharePoint 2013 App Model Changes EverythingFrom Trashy to Classy: How The SharePoint 2013 App Model Changes Everything
From Trashy to Classy: How The SharePoint 2013 App Model Changes Everything
 
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
Apps 101 - Moving to the SharePoint 2013 App Model - Presented 7/27/13 at Sha...
 
Building your first app for share point 2013
Building your first app for share point 2013Building your first app for share point 2013
Building your first app for share point 2013
 
SharePoint Summit Vancouver: Reach your audience with a SharePoint mobile app
SharePoint Summit Vancouver: Reach your audience with a SharePoint mobile appSharePoint Summit Vancouver: Reach your audience with a SharePoint mobile app
SharePoint Summit Vancouver: Reach your audience with a SharePoint mobile app
 
SPCA2013 - Once you go app you don't go back
SPCA2013 - Once you go app you don't go backSPCA2013 - Once you go app you don't go back
SPCA2013 - Once you go app you don't go back
 
Votre première App SharePoint pour Office 365 avec Visual Studio !
Votre première App SharePoint pour Office 365 avec Visual Studio !Votre première App SharePoint pour Office 365 avec Visual Studio !
Votre première App SharePoint pour Office 365 avec Visual Studio !
 
O365con14 - the new sharepoint online apps - napa in action
O365con14 - the new sharepoint online apps - napa in actionO365con14 - the new sharepoint online apps - napa in action
O365con14 - the new sharepoint online apps - napa in action
 
SharePoint Evolution conference 2013 - Bringing SharePoint Information into O...
SharePoint Evolution conference 2013 - Bringing SharePoint Information into O...SharePoint Evolution conference 2013 - Bringing SharePoint Information into O...
SharePoint Evolution conference 2013 - Bringing SharePoint Information into O...
 
Transitioning to SharePoint App Development
Transitioning to SharePoint App DevelopmentTransitioning to SharePoint App Development
Transitioning to SharePoint App Development
 
SharePoint App Store - itunes for you business
SharePoint App Store - itunes for you businessSharePoint App Store - itunes for you business
SharePoint App Store - itunes for you business
 

Similar to SharePoint 2013 App or Not to App

Access share point-2013-data-with-provider-hosted-apps
Access share point-2013-data-with-provider-hosted-appsAccess share point-2013-data-with-provider-hosted-apps
Access share point-2013-data-with-provider-hosted-apps
Alexander Meijers
 

Similar to SharePoint 2013 App or Not to App (20)

Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013
 
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
Cloud-Based App Development using SharePoint 2013, Office 365 and AzureCloud-Based App Development using SharePoint 2013, Office 365 and Azure
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
 
(Almost) All About Apps for SharePoint 2013
(Almost) All About Apps for SharePoint 2013(Almost) All About Apps for SharePoint 2013
(Almost) All About Apps for SharePoint 2013
 
Prepararsi a spostare le proprie applicazioni share point su office 365
Prepararsi a spostare le proprie applicazioni share point su office 365Prepararsi a spostare le proprie applicazioni share point su office 365
Prepararsi a spostare le proprie applicazioni share point su office 365
 
Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...Come riprogettare le attuali farm solution di share point con il nuovo modell...
Come riprogettare le attuali farm solution di share point con il nuovo modell...
 
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 1: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
 
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?
 
Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint app
 
Getting started with SharePoint 2013 online development
Getting started with SharePoint 2013 online developmentGetting started with SharePoint 2013 online development
Getting started with SharePoint 2013 online development
 
Access share point-2013-data-with-provider-hosted-apps
Access share point-2013-data-with-provider-hosted-appsAccess share point-2013-data-with-provider-hosted-apps
Access share point-2013-data-with-provider-hosted-apps
 
Developing a provider hosted share point app
Developing a provider hosted share point appDeveloping a provider hosted share point app
Developing a provider hosted share point app
 
SPS Gulf : SharePoint 2013 Cloud Business App
SPS Gulf : SharePoint 2013 Cloud Business AppSPS Gulf : SharePoint 2013 Cloud Business App
SPS Gulf : SharePoint 2013 Cloud Business App
 
What's New for Developers in SharePoint 2013
What's New for Developers in SharePoint 2013What's New for Developers in SharePoint 2013
What's New for Developers in SharePoint 2013
 
Introduction to SharePoint 2013
Introduction to SharePoint 2013Introduction to SharePoint 2013
Introduction to SharePoint 2013
 
Introduction to SharePoint Framework
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint Framework
 
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClassECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
 
The Greatest Introduction to SharePoint Framework (SPFx) on earth!
The Greatest Introduction to SharePoint Framework (SPFx) on earth!The Greatest Introduction to SharePoint Framework (SPFx) on earth!
The Greatest Introduction to SharePoint Framework (SPFx) on earth!
 
Apps for SharePoint 2013
Apps for SharePoint 2013Apps for SharePoint 2013
Apps for SharePoint 2013
 
SharePoint 2013 - What's New
SharePoint 2013 - What's NewSharePoint 2013 - What's New
SharePoint 2013 - What's New
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

SharePoint 2013 App or Not to App

  • 1. SharePoint 2013: App or Not to App Walkthrough of SharePoint 2013 Apps -- why you should use apps over farm solutions
  • 2. Session Evaluations • Schedule and evaluate each session you attend via our mobile app that can be used across devices at http://spsaturday.cloudapp.net • You will be able to evaluate a session 25 minutes before the scheduled end time • Evaluations are stored anonymously and your feedback is appreciated • The app will be the only method available to submit session evaluations for the event and we hope you find it intuitive and convenient
  • 3. Room Survey • Have seen SharePoint 2013? • Installed on-prem Or O365? • Currently a C# developer? • Know Web-Dev Technologies (HTML5, CSS3, JS, jQuery)? • Used JS-CSOM for SharePoint 2010?
  • 4. Agenda • • • • Introduction to SharePoint 2013 apps Deployment options and design patterns Technologies used in app development Building a SharePoint-hosted app
  • 5. setting the scene Introducing the new SharePoint app framework
  • 6. 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.”
  • 7. Isolation: App web vs Host web • Apps live in their own isolated environment; the “app web” • The site in which they function is called the “host web” APP UID Host Web GUID
  • 9. SharePoint 2013 app development
  • 10. Demo
  • 11. Getting started with development • Local development • Has to be on Windows Server 2008 R2 (or later) • Memory reqs have gone up – TechNet recommends at least 24 GB • Extra configuration needed for app development • Visual Studio 2012 • Remote development • Sign up for Office 365 - $3/month • Possible to use NAPA – app for building apps
  • 12. 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
  • 13. Demo
  • 14.
  • 15. Basic SharePoint App architecture • Code runs “Off SharePoint Box” • Declarative Hooks into SharePoint • AppWeb Host in SharePoint
  • 16. Apps – three possible approaches Cloud-based Apps Get remote events from SharePoint Use CSOM/REST + OAuth to work with SPS Developer-Hosted App “Bring your own server hosting infrastructure” Developers will need to isolate tenants Azure AutoProvisioned App Windows Azure + SQL Azure provisioned invisibly as apps are installed SharePoint-hosted App Provision 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 SharePoint Web Your Hosted Site SharePoint Web Azure Parent Web App Web
  • 17. Hosting: cloud vs SharePoint Cloud 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
  • 18. App identity • Challenge with SPS2010 • Farm solutions • Full Access to Almost Everything • Risk of RunWithElevatedPrivileges • Memory Leaks – SPWeb.Dispose() not used well • Sandbox solutions • no RunWithElevatedPrivileges • always under user context • In SharePoint 2013 Apps have their own identity & 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
  • 19. App scopes • • • • • SPSite – site collection SPWeb – site SPList Tenancy Other scopes (and rights) for performing search queries, accessing taxonomy data, user profiles, etc... • Potentially other services like Lync, Exchange
  • 20. 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 • Visual Stuio Assists with defining these: • Defined in declarative XML
  • 21. 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
  • 22. Demo
  • 23.
  • 24. SharePoint 2013 REST API and CSOM • 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, ....
  • 25. 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 • ....
  • 26. 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.
  • 29. 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
  • 30. 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
  • 32.
  • 33. Housekeeping • Follow SharePoint Saturday St. Louis on Twitter @spsstlouis and hashtag #spsstl • Play “Sponsor Bingo” to register for your chance to win one of the many great giveaways at the end of the day • Schedule and evaluate each session you attend via our mobile app that can be used across devices at http://spsaturday.cloudapp.net
  • 34. Thanks to Our Sponsors!

Editor's Notes

  1. Splash
  2. Session Eval
  3. Have seen SharePoint 2013?Installed on-prem Or O365?Currently a C# developer?Know Web-Dev Technologies (HTML5, CSS3, JS, jQuery)?Used JS-CSOM for SharePoint 2010?
  4. AgendaIntroHow does it look from and End User perspective.DeploymentTypes of AppsTechnologiesSharePoint Hosted Apps – JavaScript, jQuery, Rest APIDemosDone using Office 365
  5. Setting the scene
  6. Lists – Library are apps.Apps are targeted at specific business scenariosNew Development MethodPrevious: Farm / SandboxNow deploy to Development SiteLow server footprintAllow extension of SharePoint, minimal impact.Apps Cloud drive (on-prem = private cloud)App CatalogMonetizationSelective apps by Admins
  7. IsolationAPP1UID : 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
  8. Deployment OptionsFarmSandboxAppsGo away Sandbox
  9. App DevDeploy optionsDevelopment OptionsDevelopment Tools
  10. Demo – Apps End User
  11. Getting Started Dev
  12. App UXSharePoint Marketplace requires SharePoint UX design guidelines for approval.
  13. Demo Hello World
  14. Bigger picture – deploy options, app identity, design paterns
  15. Architecture
  16. Hosting Options
  17. Cloudvs Hosted
  18. App Identity
  19. ScopesAn 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. App RightsPermission 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. ACSPermission 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
  22. Demo – App Permissions
  23. Basic techREST / CSOM API
  24. CSOM / REST API
  25. Building hosted app
  26. Hosted app concepts
  27. Hosted app architecture
  28. Demo – build sharepoint hosted app
  29. summary
  30. housekeeping
  31. sponsors
  32. questions