SPCA2013 - Building Windows Client Applications for SharePoint 2013

33

description

Building Windows Client Applications for SharePoint 2013

Transcript of SPCA2013 - Building Windows Client Applications for SharePoint 2013

Page 1: SPCA2013 - Building Windows Client Applications for SharePoint 2013
Page 2: SPCA2013 - Building Windows Client Applications for SharePoint 2013

Building Windows Client Applications for SharePoint 2013

Bill Ayers

Page 3: SPCA2013 - Building Windows Client Applications for SharePoint 2013

Building Windows Client Applications for SharePoint 2013

Bill Ayers

Page 4: SPCA2013 - Building Windows Client Applications for SharePoint 2013

MCM/MCSM SharePoint

MCTS, MCITP, MCSD, MCAD, MCSA, MCDBA, MCT etc.

Consultant currently specialising in SharePoint Development and Architecture for Web Content Management and Collaboration. (I also do some

mobile development on the side)

Blog: www.SPDoctor.netE-mail: [email protected]

Twitter: @SPDoctor

Page 5: SPCA2013 - Building Windows Client Applications for SharePoint 2013

Agenda

Why Apps?

Why Rich Client Applications still matter

Windows 8 apps

Windows Phone apps

Other Mobile Platforms

Conclusions

200

Page 6: SPCA2013 - Building Windows Client Applications for SharePoint 2013

SharePoint Development Timeline…

SharePoint 2001 – forget it

SharePoint 2003 – Limited, not aligned with ASP.NET, complex ALM

SharePoint 2007 – Server-side object model (farm solutions)

SharePoint 2010 – Sandboxed solutions

SharePoint 2013 – SharePoint Apps.

Page 7: SPCA2013 - Building Windows Client Applications for SharePoint 2013

Apps for SharePoint

•Development models

• SharePoint-hosted

• Cloud-hosted

• Interaction

• Full page

• App part

• Command extensions

Web PagesScriptsStyle Sheets

SharePoint Hosted App

Web PagesScriptsStyle SheetsServer-Side CodeDatabases

Cloud Hosted App

Page 8: SPCA2013 - Building Windows Client Applications for SharePoint 2013

“Apps” are everywhere!

Page 9: SPCA2013 - Building Windows Client Applications for SharePoint 2013

What are “Apps” anyway?

Easy distribution

Self-contained

Clean Uninstall

Sandboxed

Some degree of vetting

Marketplace infrastructure

Page 10: SPCA2013 - Building Windows Client Applications for SharePoint 2013

Apps for SharePoint

• Distribution

• Publish to App Catalog

• Publish to Office Marketplace

• Self-contained, clean uninstall, sandboxed

• No server-side code

• All SharePoint artifacts hosted within app web

Page 11: SPCA2013 - Building Windows Client Applications for SharePoint 2013

Rich clients still matter

0

400

800

1200

1600

2000

2007 2008 2009 2010 2011 2012 2013 2014 2015

Glo

bal In

tern

et

Users

(m

illio

ns)

Mobile vs. Desktop Internet

Mobile Desktop

Source: Morgan Stanley87

Page 12: SPCA2013 - Building Windows Client Applications for SharePoint 2013

Mobile (i.e. phones and tablets)

Browsing – normal web site is good solution (channels, responsive design)

Specific tasks – mobile app is better model

In general, mobile users want apps – they don’t want to use a web browser for Wikipedia, they want a Wikipedia “app”

Page 13: SPCA2013 - Building Windows Client Applications for SharePoint 2013

http://intranet.contoso.com/_api/web/lists/getbytitle("MyList")/items

?$select=ID,Title&$order=Title&$filter=startswith(Title,”A”)

• We can use it anywhere

• URLs for Common SharePoint Objects

• Using OData Operators

• JSON JavaScript

$.getJSON(”http://litvs13/_api/web”,function(data) {$(“#title”).text(data.d.Title);

});

Why REST/JSON?

Page 14: SPCA2013 - Building Windows Client Applications for SharePoint 2013

http://intranet.contoso.com/_api/search/query?querytext=keyword

http://intranet.contoso.com/_api/sp.userProfiles.peopleManager/...

Other endpoints:

Search:

People Search:

Page 15: SPCA2013 - Building Windows Client Applications for SharePoint 2013

Demo: Using REST

Page 16: SPCA2013 - Building Windows Client Applications for SharePoint 2013

How would we do this in traditional SharePoint development?

Page 17: SPCA2013 - Building Windows Client Applications for SharePoint 2013

Demo: Client-side App

Page 18: SPCA2013 - Building Windows Client Applications for SharePoint 2013

Mobile Platforms

iOS XCode Objective-C

Android Eclipse Java

Windows Phone Visual Studio C#/XAML orHTML5 App

Windows 8/RT Visual Studio C#/XAML orWinJS/HTML5

Other (Blackberry?)

Page 19: SPCA2013 - Building Windows Client Applications for SharePoint 2013

XAML, WinJS?

C#/XAML WPF solutions are Windows only

WinJS/HTML5 framework is closely tied to the platform

Both are a great solution if you know you will only need to support Windows Store and want native look-and-feel

C#/XAML can also be used to build Windows Phone Apps

Page 20: SPCA2013 - Building Windows Client Applications for SharePoint 2013

Native WebHTML5Hybrid

Easy deployment

Native look and feel, performance

Web apps

Codegen/cross-compilers

Native vs. Web

Page 21: SPCA2013 - Building Windows Client Applications for SharePoint 2013

JavaScript libraries:

jQuery – DOM element selection

Twitter Bootstrap – page structure, HTML5/CSS3 framework

Knockout.js – data binding/MVVM

Underscore.js – collections, iterations

Angular.js (alternative to knockout/Durandal)

Require.js

Durandal – SPA framework

SPServices.js

Page 22: SPCA2013 - Building Windows Client Applications for SharePoint 2013

JavaScript mobile libraries and frameworks

jQuery Mobile

PhoneGap (Cordova)

Kendo UI Mobile (commercial)

Page 23: SPCA2013 - Building Windows Client Applications for SharePoint 2013

View

ViewModel

Model

Data binding REST

Model-View-ViewModel (MVVM)

C#/XAML JavaScript/HTML5

Page 24: SPCA2013 - Building Windows Client Applications for SharePoint 2013

Demo: Client-side App code

Page 25: SPCA2013 - Building Windows Client Applications for SharePoint 2013

Skills needed:

JavaScript (done properly)

jQuery

JavaScript frameworks, e.g. MVVM

REST

OData

HTML5

CSS3.

Page 26: SPCA2013 - Building Windows Client Applications for SharePoint 2013

Tools:

Visual Studio 2013

Chrome, IE developer tools (F12)

Fiddler

JSFiddle (or equivalent)

Stack Overflow

JSLint, “use strict”

JavaScript libraries

Page 27: SPCA2013 - Building Windows Client Applications for SharePoint 2013

Building HTML5 apps for other platforms

Web – “native”

SharePoint – Visual Studio

Windows 8 – Visual Studio (“native” HTML5 apps)

Windows Phone 8 – Visual Studio

Android, iPhone, Blackberry…

PhoneGap Build (Adobe)

Icenium (Telerik)

Nomad (Redgate)

Page 28: SPCA2013 - Building Windows Client Applications for SharePoint 2013

Demo: Cloud Build

Page 29: SPCA2013 - Building Windows Client Applications for SharePoint 2013

Conclusions:

JavaScript – learn it, live it, love it!

You need some REST

Let’s re-use our JavaScript and REST API skills

HTML5 Hybrid Apps not perfect but allow skills and code re-use across all platforms

Hybrid Apps a good choice for business applications

Mobile development is going to be key to delivering business solutions in an increasingly mobile world

Page 30: SPCA2013 - Building Windows Client Applications for SharePoint 2013

Resources

70-480 http://www.microsoftvirtualacademy.com/training-courses/learn-html5-with-javascript-css3-jumpstart-training

Andrew Connell http://www.andrewconnell.com/blog/my-thoughts-on-the-sharepoint-app-model-office-365-sharepoint-store-and-the-business-of-sharepoint-apps-today

Chris O’Brien http://www.sharepointnutsandbolts.com/2012/08/sharepoint-2013-appsarchitecture.html

Jeremy Thake http://www.jeremythake.com/

SharePoint.StackExchange.com

Page 31: SPCA2013 - Building Windows Client Applications for SharePoint 2013

Contact me:

Blog: www.spdoctor.net

Twitter: @spdoctor

Sharepoint.stackexchange.com (moderator)

Email: [email protected]

Page 32: SPCA2013 - Building Windows Client Applications for SharePoint 2013
Page 33: SPCA2013 - Building Windows Client Applications for SharePoint 2013