spca2013 - developing sharepoint 2013 apps with visual studio 2012

35

Upload: nccomms

Post on 29-Jan-2018

738 views

Category:

Technology


1 download

TRANSCRIPT

Developing SharePoint 2013 Apps with Visual Studio 2012

Bram de Jager

SharePoint Architect | Microsoft Certified Solution Master: SharePoint

Evolution

Apps for SharePoint

Visual Studio Tools

REST & CSOM APIs

Agenda

Development Evolution

Portals & content App discovery & management

2003 2007 2010 2013

LOB applications

Custom server side code

WSP deployment

Investment in

Silverlight CSOM limited Sandbox Web Template

Web Parts Site

Definitions

Apps Client side

experience CSOM REST/oData

Customization Options

Sandbox

Hosted in isolated

process

Limited server side

SharePoint API

access

No external service

calls

Farm SharePoint Apps

Full trust solutions

Customizations to

file system of

servers

Hosted in same

process as

SharePoint

Server side

SharePoint API

access

Classic model from

2007

New Apps model

Deployed from

corporate catalog or

Office Store

Manage permission

and licenses

specifically

Simple install and

upgrade process

Preferred option

Deprecated in

SharePoint

2013

““

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

On-Premise Farm

Installation

SharePoint Online

(Office 365)

Hosted Installation

Customization Options

Farm-Trust Solutions

Sandboxed Solutions

SharePoint-Hosted

app

Provider-Hosted app

Autohosted app

Development Tools

Web Browser

SharePoint Designer

Visual Studio

Eclipse, etc

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

SharePoint App Web

SharePoint Host Web

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

Provider-hosted app

Provide your own hosting environment

- Use server code

- Receive SP events

- Use OAuth to access

SP

Cloud-hosted apps

Your Hosted Site(IIS)

Autohosted app

Windows Azure + SQL Azure provisioned

automatically as apps are installed

Azure SharePoint Host Web

SharePoint Host Web

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

.ap

p P

acka

ge

(O

PC

)

WS

P

Azure

App Web (from WSP)

HostWeb

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)

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, Publishing, eDiscovery, IRM, BCS, … and more

JavaScript

Library

Silverlight

Library

.Net CLR

Library

Custom Client Code

Client

Server

_api is new alias for _vti_bin/client.svc

SharePoint 2013 Remote API

REST

OData

JSON

CSOM

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 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)

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

[email protected] | bramdejager.wordpress.com | @bramdejager

Bram de Jager