SlideShare une entreprise Scribd logo
1  sur  34
Developing SharePoint 2013 Apps
with Visual Studio 2012
Bram de Jager
SharePoint Architect | Microsoft Certified Solution Master: SharePoint
Agenda
Evolution
Apps for SharePoint
Visual Studio Tools
REST & CSOM APIs
1

EVOLUTION
Development Evolution
Investment in
Portals & content
2003

 Web Parts
 Site
Definitions

App discovery & management
2007

 LOB
applications
 Custom
server side
code
 WSP
deployment

2010






Silverlight
CSOM limited
Sandbox
Web Template

2013

 Apps
 Client side
experience
 CSOM
 REST/oData
Customization Options
Farm






Full trust solutions
Customizations to
file system of
servers
Hosted in same
process as
SharePoint
Server side
SharePoint API
access
Classic model from
2007

Sandbox




Hosted in isolated
process
Limited server side
SharePoint API
access
No external service
calls



SharePoint Apps





Deprecated in
SharePoint
2013



New Apps model
Deployed from
corporate catalog or
Office Store
Manage permission
and licenses
specifically
Simple install and
upgrade process
Preferred option
“

Note that code-based sandboxed
solutions are still supported in
SharePoint Online 2013 but, no
further investments in that
infrastructure are planned. We
recommend you consider the
Cloud App Model (CAM) as an
alternative.

“
App Development Scenarios
Deployment Options

Customization Options

On-Premise Farm
Installation

Farm-Trust Solutions

Web Browser

SharePoint Online
(Office 365)

Sandboxed Solutions

SharePoint Designer

Hosted Installation

SharePoint-Hosted
app

Visual Studio

Provider-Hosted app

Eclipse, etc

Autohosted app

Development Tools
2

APPS FOR SHAREPOINT
App Shapes
Full page
Implement complete app experiences to satisfy business
scenarios
App Parts
Create app parts that can interact with the SharePoint
experience
UI command extensions
Add new commands to the ribbon and item menus
Hosting Options
Provider-hosted app
Provide your own hosting environment

SharePoint
Host Web

Your Hosted Site
(IIS)

Cloud-hosted apps
- Use server code
- Receive SP events
- Use OAuth to access
SP

Autohosted app
Windows Azure + SQL Azure provisioned
automatically as apps are installed

SharePoint
Host Web

Azure

SharePoint-Hosted app
Provisions an isolated sub web on a host web
- Use SP artifacts & out-of-box web parts
- Use HTML & JavaScript for UI & client-side logic
- Use Workflows for middle tier logic

SharePoint
Host Web
SharePoint
App Web
3

VISUAL STUDIO TOOLS
Visual Studio SharePoint Tools
• Development Environments
• Develop against a local SharePoint server
• Remote development against SharePoint Online (Office 365)
• Tools
• Office Developer Tools
• Download http://dev.office.com
Debug your app
• No app registration required
• SharePoint Developer Site
• ClientId & ClientSecret are generated for you

• IISExpress is used to host Web project
• ~remoteAppUrl token update so it points to IISExpress Url
(http://localhost:1234)
• LocalDB is used for SQL database
• Connection string updated in web.config from SQL project
• Local workflow service is started & configured
Publish your app
• SharePoint-hosted & Autohosted
• No app registration required
• Everything included in the .app package

• Provider-hosted
• Developer must acquire ClientId & ClientSecret via Seller Dashboard (Office
Store only)
• SharePoint artifacts in .app package
• Web assets in Web Deploy package - developer must deploy
• Developer must publish & deploy SQL assets if not in Web Deploy package
Anatomy of an App Package

App Web

WS
P

.app Package
(OPC)

Host
Web

(from WSP)

Azure
“

DEMO
Building your first app

“
Demo Silly Facts
• SharePoint-Hosted app
• Look around
• AppManifest.xml
• SharePoint Artifacts
• Silly Fact content type and Facts list
• App Part (Client Web Part)
• Custom Action (Host web)
4

REST & CSOM
Changes from 2010 to 2013
• The client.svc service extended with REST capabilities
• client.svc now supports direct access from REST clients
• client.svc accepts HTTP GET, PUT, POST requests
• Implemented in accordance with OData protocol
• CSOM Extended new APIs
• Focus investment on SharePoint Server APIs
• Search, Social, Taxonomy, Workflow, Analytics, Sharing, Publish
ing, eDiscovery, IRM, BCS, … and more
SharePoint 2013 Remote API
_api is new alias for _vti_bin/client.svc
Server
Client

REST
OData
JSON

CSOM
JavaScript
Library

Silverlight
Library

Custom Client Code

.Net CLR
Library
Why is REST Important?
• Significant Industry Momentum
• Simple and Easy to Use
• Much easier to use than SOAP-based Web service
• Higher productivity when using JavaScript and jQuery
• Results can be returned in JSON and ATOM format
• Test in a browser
• Platform agnostic
• Each query is submitted with a unique URL
• Results can be cached by proxy servers
REST URLs in SharePoint 2013
• CSOM URLS can go through _api folder
• Simplifies URLs that need to be built
• Removes client.svc file name from URL
• You can replace this URL
• http://contoso.com/_vti_bin/client.svc/web
• With this URL
• http://contoso.com/_api/web
Mapping Objects to Resources
• Example REST URLs targeting SharePoint
• _api/web/lists
• _api/web/lists/getByTitle('Announcements')
• _api/web/getAvailableWebTemplates(lcid=1033)
App Authentication
• Use OAuth for secure communications
• SharePoint & web application (IIS) trust third party (ACS)
• Trust developed using ClientId & ClientSecret
• SharePoint & ACS know the ClientId
• Web application & ACS know the ClientSecret
Online authentication
“

DEMO
Using CSOM and
REST

“
Demo CSOM and REST
• Provider-Hosted app
• Add web project
• Chrome
• Use CSOM and REST to create silly facts
• User Profile (REST)
• Search (REST)
• Taxonomy (CSOM)
5

WRAP-UP
Summary
• The way forward for customizations on SharePoint
• Build for the cloud (Office 365)
• Heavily invested in CSOM and REST, allowing interaction with
SharePoint
Try it yourself
• Office Store
• Play around with current Apps for SharePoint
• Office 365 playground
• Sign up on http://dev.office.com for Office 365 playground
• SharePoint Client Browser
• http://spcb.codeplex.com
“

Questions & Answers
Thank You!

“
Bram de Jager
bram.de.jager@macaw.nl | bramdejager.wordpress.com |
@bramdejager
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connections Amsterdam 2013 - Bram de Jager
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connections Amsterdam 2013 - Bram de Jager

Contenu connexe

Tendances

Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
SPTechCon
 

Tendances (20)

App Model For SharePoint 2013
App Model For SharePoint 2013App Model For SharePoint 2013
App Model For SharePoint 2013
 
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...
 
SharePoint 2013 apps overview
SharePoint 2013 apps overviewSharePoint 2013 apps overview
SharePoint 2013 apps overview
 
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
Tutorial: Building Apps for SharePoint 2013 Inside and Outside of the Firewal...
 
SharePoint 2013 APIs demystified
SharePoint 2013 APIs demystifiedSharePoint 2013 APIs demystified
SharePoint 2013 APIs demystified
 
O365Con18 - External Collaboration with Azure B2B - Sjoukje Zaal
O365Con18 - External Collaboration with Azure B2B - Sjoukje ZaalO365Con18 - External Collaboration with Azure B2B - Sjoukje Zaal
O365Con18 - External Collaboration with Azure B2B - Sjoukje Zaal
 
OAuth in SharePoint 2013
OAuth in SharePoint 2013OAuth in SharePoint 2013
OAuth in SharePoint 2013
 
Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint app
 
Improving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous IntegrationImproving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous Integration
 
O365Con18 - Reach for the Cloud Build Solutions with the Power of Microsoft G...
O365Con18 - Reach for the Cloud Build Solutions with the Power of Microsoft G...O365Con18 - Reach for the Cloud Build Solutions with the Power of Microsoft G...
O365Con18 - Reach for the Cloud Build Solutions with the Power of Microsoft G...
 
O365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
O365Con18 - Hybrid SharePoint Deep Dive - Thomas VochtenO365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
O365Con18 - Hybrid SharePoint Deep Dive - Thomas Vochten
 
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
 
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
 
Designing for SharePoint Provider Hosted Apps
Designing for SharePoint Provider Hosted AppsDesigning for SharePoint Provider Hosted Apps
Designing for SharePoint Provider Hosted Apps
 
Deep Dive Building Office Mail Add-ins with the Microsoft Graph
Deep Dive Building Office Mail Add-ins with the Microsoft GraphDeep Dive Building Office Mail Add-ins with the Microsoft Graph
Deep Dive Building Office Mail Add-ins with the Microsoft Graph
 
O365Con18 - Azure AD Connect Inside and Out - Sander Berkouwer
O365Con18 - Azure AD Connect Inside and Out - Sander BerkouwerO365Con18 - Azure AD Connect Inside and Out - Sander Berkouwer
O365Con18 - Azure AD Connect Inside and Out - Sander Berkouwer
 
Introducing the new SharePoint 2013 app model
Introducing the new SharePoint 2013 app modelIntroducing the new SharePoint 2013 app model
Introducing the new SharePoint 2013 app model
 
Understanding SharePoint Apps, authentication and authorization infrastructur...
Understanding SharePoint Apps, authentication and authorization infrastructur...Understanding SharePoint Apps, authentication and authorization infrastructur...
Understanding SharePoint Apps, authentication and authorization infrastructur...
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013
 
The SharePoint 2013 App Model
The SharePoint 2013 App ModelThe SharePoint 2013 App Model
The SharePoint 2013 App Model
 

En vedette

En vedette (20)

Visual Studio 2012
Visual Studio 2012Visual Studio 2012
Visual Studio 2012
 
Getting to grips with SharePoint 2013 apps - Chris O'Brien
Getting to grips with SharePoint 2013 apps - Chris O'BrienGetting to grips with SharePoint 2013 apps - Chris O'Brien
Getting to grips with SharePoint 2013 apps - Chris O'Brien
 
Circuitos elétricos corrente contínua e corrente Alternada otávio markus - ...
Circuitos elétricos corrente contínua e corrente Alternada   otávio markus - ...Circuitos elétricos corrente contínua e corrente Alternada   otávio markus - ...
Circuitos elétricos corrente contínua e corrente Alternada otávio markus - ...
 
Análise de circuitos em corrente contínua
Análise de circuitos em corrente contínuaAnálise de circuitos em corrente contínua
Análise de circuitos em corrente contínua
 
Programação assíncrona com c sharp
Programação assíncrona com c sharpProgramação assíncrona com c sharp
Programação assíncrona com c sharp
 
Aprendendo a programar - Programação Procedural vs OOP
Aprendendo a programar - Programação Procedural vs OOPAprendendo a programar - Programação Procedural vs OOP
Aprendendo a programar - Programação Procedural vs OOP
 
Solucionário introdução à análise de circuitos - robert l. boylestad - 10ª ...
Solucionário   introdução à análise de circuitos - robert l. boylestad - 10ª ...Solucionário   introdução à análise de circuitos - robert l. boylestad - 10ª ...
Solucionário introdução à análise de circuitos - robert l. boylestad - 10ª ...
 
Ingeniería electrónica
Ingeniería  electrónicaIngeniería  electrónica
Ingeniería electrónica
 
Apostila de eletrotécnica II
Apostila de eletrotécnica IIApostila de eletrotécnica II
Apostila de eletrotécnica II
 
03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0
 
Aula 2 eletroeletrônica
Aula 2   eletroeletrônicaAula 2   eletroeletrônica
Aula 2 eletroeletrônica
 
Visual studio 2012 - What's in it for me?
Visual studio 2012 - What's in it for me?Visual studio 2012 - What's in it for me?
Visual studio 2012 - What's in it for me?
 
Manual visual basic .net
Manual visual basic .net Manual visual basic .net
Manual visual basic .net
 
New SharePoint Features in Visual Studio 2012!
New SharePoint Features in Visual Studio 2012!New SharePoint Features in Visual Studio 2012!
New SharePoint Features in Visual Studio 2012!
 
Circuitos magnéticos y transformadores (recomendado por MIT - UTEC - UNI)
Circuitos magnéticos y transformadores (recomendado por MIT - UTEC - UNI)Circuitos magnéticos y transformadores (recomendado por MIT - UTEC - UNI)
Circuitos magnéticos y transformadores (recomendado por MIT - UTEC - UNI)
 
Chapter 01
Chapter 01Chapter 01
Chapter 01
 
Moving to Microsoft Visual Basic .NET
Moving to Microsoft Visual Basic .NETMoving to Microsoft Visual Basic .NET
Moving to Microsoft Visual Basic .NET
 
Lógica de programação, algoritmos e big data
Lógica de programação, algoritmos e big dataLógica de programação, algoritmos e big data
Lógica de programação, algoritmos e big data
 
Visual Basic IDE Introduction
Visual Basic IDE IntroductionVisual Basic IDE Introduction
Visual Basic IDE Introduction
 
Visual Studio 2012 introduction
Visual Studio  2012 introductionVisual Studio  2012 introduction
Visual Studio 2012 introduction
 

Similaire à Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connections Amsterdam 2013 - Bram de Jager

MSDN - SharePoint 2013 to app or not to app
MSDN - SharePoint 2013 to app or not to appMSDN - SharePoint 2013 to app or not to app
MSDN - SharePoint 2013 to app or not to app
Joris Poelmans
 

Similaire à Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connections Amsterdam 2013 - Bram de Jager (20)

MSDN - SharePoint 2013 to app or not to app
MSDN - SharePoint 2013 to app or not to appMSDN - SharePoint 2013 to app or not to app
MSDN - SharePoint 2013 to app or not to app
 
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
 
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...
 
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
 
SharePoint Server 2013: to app or not to app?
SharePoint Server 2013: to app or not to app? SharePoint Server 2013: to app or not to app?
SharePoint Server 2013: to app or not to app?
 
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?
 
SharePoint 2013 App or Not to App
SharePoint 2013 App or Not to AppSharePoint 2013 App or Not to App
SharePoint 2013 App or Not to App
 
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
 
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 ...
 
Deep dive into share point framework webparts
Deep dive into share point framework webpartsDeep dive into share point framework webparts
Deep dive into share point framework webparts
 
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
 
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
 
Introduction to SharePoint Framework
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint Framework
 
Office Track: SharePoint Apps for the IT Pro - Thomas Vochten
Office Track: SharePoint Apps for the IT Pro - Thomas VochtenOffice Track: SharePoint Apps for the IT Pro - Thomas Vochten
Office Track: SharePoint Apps for the IT Pro - Thomas Vochten
 
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!
 
Developing Apps for SharePoint Store
Developing Apps for SharePoint StoreDeveloping Apps for SharePoint Store
Developing Apps for SharePoint Store
 
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in AzureHeading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
 
2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to Apps2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to Apps
 
#spsuk: Understanding the Office 365 Architecture
#spsuk: Understanding the Office 365 Architecture#spsuk: Understanding the Office 365 Architecture
#spsuk: Understanding the Office 365 Architecture
 
Connector API Apps
Connector API AppsConnector API Apps
Connector API Apps
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Dernier (20)

[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 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
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 

Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connections Amsterdam 2013 - Bram de Jager

  • 1. Developing SharePoint 2013 Apps with Visual Studio 2012 Bram de Jager SharePoint Architect | Microsoft Certified Solution Master: SharePoint
  • 2. Agenda Evolution Apps for SharePoint Visual Studio Tools REST & CSOM APIs
  • 4. Development Evolution Investment in Portals & content 2003  Web Parts  Site Definitions App discovery & management 2007  LOB applications  Custom server side code  WSP deployment 2010     Silverlight CSOM limited Sandbox Web Template 2013  Apps  Client side experience  CSOM  REST/oData
  • 5. Customization Options Farm      Full trust solutions Customizations to file system of servers Hosted in same process as SharePoint Server side SharePoint API access Classic model from 2007 Sandbox    Hosted in isolated process Limited server side SharePoint API access No external service calls  SharePoint Apps     Deprecated in SharePoint 2013  New Apps model Deployed from corporate catalog or Office Store Manage permission and licenses specifically Simple install and upgrade process Preferred option
  • 6. “ Note that code-based sandboxed solutions are still supported in SharePoint Online 2013 but, no further investments in that infrastructure are planned. We recommend you consider the Cloud App Model (CAM) as an alternative. “
  • 7. App Development Scenarios Deployment Options Customization Options On-Premise Farm Installation Farm-Trust Solutions Web Browser SharePoint Online (Office 365) Sandboxed Solutions SharePoint Designer Hosted Installation SharePoint-Hosted app Visual Studio Provider-Hosted app Eclipse, etc Autohosted app Development Tools
  • 9. App Shapes Full page Implement complete app experiences to satisfy business scenarios App Parts Create app parts that can interact with the SharePoint experience UI command extensions Add new commands to the ribbon and item menus
  • 10. Hosting Options Provider-hosted app Provide your own hosting environment SharePoint Host Web Your Hosted Site (IIS) Cloud-hosted apps - Use server code - Receive SP events - Use OAuth to access SP Autohosted app Windows Azure + SQL Azure provisioned automatically as apps are installed SharePoint Host Web Azure SharePoint-Hosted app Provisions an isolated sub web on a host web - Use SP artifacts & out-of-box web parts - Use HTML & JavaScript for UI & client-side logic - Use Workflows for middle tier logic SharePoint Host Web SharePoint App Web
  • 12. Visual Studio SharePoint Tools • Development Environments • Develop against a local SharePoint server • Remote development against SharePoint Online (Office 365) • Tools • Office Developer Tools • Download http://dev.office.com
  • 13. Debug your app • No app registration required • SharePoint Developer Site • ClientId & ClientSecret are generated for you • IISExpress is used to host Web project • ~remoteAppUrl token update so it points to IISExpress Url (http://localhost:1234) • LocalDB is used for SQL database • Connection string updated in web.config from SQL project • Local workflow service is started & configured
  • 14. Publish your app • SharePoint-hosted & Autohosted • No app registration required • Everything included in the .app package • Provider-hosted • Developer must acquire ClientId & ClientSecret via Seller Dashboard (Office Store only) • SharePoint artifacts in .app package • Web assets in Web Deploy package - developer must deploy • Developer must publish & deploy SQL assets if not in Web Deploy package
  • 15. Anatomy of an App Package App Web WS P .app Package (OPC) Host Web (from WSP) Azure
  • 17. Demo Silly Facts • SharePoint-Hosted app • Look around • AppManifest.xml • SharePoint Artifacts • Silly Fact content type and Facts list • App Part (Client Web Part) • Custom Action (Host web)
  • 19. Changes from 2010 to 2013 • The client.svc service extended with REST capabilities • client.svc now supports direct access from REST clients • client.svc accepts HTTP GET, PUT, POST requests • Implemented in accordance with OData protocol • CSOM Extended new APIs • Focus investment on SharePoint Server APIs • Search, Social, Taxonomy, Workflow, Analytics, Sharing, Publish ing, eDiscovery, IRM, BCS, … and more
  • 20. SharePoint 2013 Remote API _api is new alias for _vti_bin/client.svc Server Client REST OData JSON CSOM JavaScript Library Silverlight Library Custom Client Code .Net CLR Library
  • 21. Why is REST Important? • Significant Industry Momentum • Simple and Easy to Use • Much easier to use than SOAP-based Web service • Higher productivity when using JavaScript and jQuery • Results can be returned in JSON and ATOM format • Test in a browser • Platform agnostic • Each query is submitted with a unique URL • Results can be cached by proxy servers
  • 22. REST URLs in SharePoint 2013 • CSOM URLS can go through _api folder • Simplifies URLs that need to be built • Removes client.svc file name from URL • You can replace this URL • http://contoso.com/_vti_bin/client.svc/web • With this URL • http://contoso.com/_api/web
  • 23. Mapping Objects to Resources • Example REST URLs targeting SharePoint • _api/web/lists • _api/web/lists/getByTitle('Announcements') • _api/web/getAvailableWebTemplates(lcid=1033)
  • 24. App Authentication • Use OAuth for secure communications • SharePoint & web application (IIS) trust third party (ACS) • Trust developed using ClientId & ClientSecret • SharePoint & ACS know the ClientId • Web application & ACS know the ClientSecret
  • 27. Demo CSOM and REST • Provider-Hosted app • Add web project • Chrome • Use CSOM and REST to create silly facts • User Profile (REST) • Search (REST) • Taxonomy (CSOM)
  • 29. Summary • The way forward for customizations on SharePoint • Build for the cloud (Office 365) • Heavily invested in CSOM and REST, allowing interaction with SharePoint
  • 30. Try it yourself • Office Store • Play around with current Apps for SharePoint • Office 365 playground • Sign up on http://dev.office.com for Office 365 playground • SharePoint Client Browser • http://spcb.codeplex.com
  • 32. Bram de Jager bram.de.jager@macaw.nl | bramdejager.wordpress.com | @bramdejager

Notes de l'éditeur

  1. SandboxedSolutionsdeprecated statement: http://msdn.microsoft.com/en-us/library/jj163114.aspx
  2. Sandbox solutionsSandbox solutions are upgraded with the content databases and activated once upgrade is complete. If your solution includes customizations, however, you’ll need to evaluate them individually to ensure they work as expected in the new environment.Note that code-based sandboxed solutions are still supported in SharePoint Online 2013 but, no further investments in that infrastructure are planned. We recommend you consider the Cloud App Model as an alternative. See What’s new for developers in SharePoint 2013 for information. http://office.microsoft.com/en-001/office365-sharepoint-online-enterprise-help/plan-to-upgrade-your-sharepoint-online-environment-to-the-2013-experience-HA104034491.aspx
  3. Office Developer Tools RTM on Tue 4 March: http://blogs.msdn.com/b/somasegar/archive/2013/03/04/now-available-office-developer-tools-for-visual-studio-2012.aspx
  4. Use when app is ready for…Testing by anther person or teamUpload to Store or App CatalogUse the packages from app.publish folder
  5. Open Packaging Conventions (OPC): http://msdn.microsoft.com/en-us/magazine/cc163372.aspxStandard For Packaging Data, also used for Office Open XML.
  6. Legacy of Frontpage…, finally gone
  7. ACS = Access Control Service (Windows Azure Access Control Service)