SPCA2013 - Building Windows Client Applications for SharePoint 2013

Preview:

DESCRIPTION

Building Windows Client Applications for SharePoint 2013

Citation preview

Building Windows Client Applications for SharePoint 2013

Bill Ayers

Building Windows Client Applications for SharePoint 2013

Bill Ayers

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: BillA@flosim.com

Twitter: @SPDoctor

Agenda

Why Apps?

Why Rich Client Applications still matter

Windows 8 apps

Windows Phone apps

Other Mobile Platforms

Conclusions

200

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.

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

“Apps” are everywhere!

What are “Apps” anyway?

Easy distribution

Self-contained

Clean Uninstall

Sandboxed

Some degree of vetting

Marketplace infrastructure

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

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

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”

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?

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

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

Other endpoints:

Search:

People Search:

Demo: Using REST

How would we do this in traditional SharePoint development?

Demo: Client-side App

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

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

Native WebHTML5Hybrid

Easy deployment

Native look and feel, performance

Web apps

Codegen/cross-compilers

Native vs. Web

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

JavaScript mobile libraries and frameworks

jQuery Mobile

PhoneGap (Cordova)

Kendo UI Mobile (commercial)

View

ViewModel

Model

Data binding REST

Model-View-ViewModel (MVVM)

C#/XAML JavaScript/HTML5

Demo: Client-side App code

Skills needed:

JavaScript (done properly)

jQuery

JavaScript frameworks, e.g. MVVM

REST

OData

HTML5

CSS3.

Tools:

Visual Studio 2013

Chrome, IE developer tools (F12)

Fiddler

JSFiddle (or equivalent)

Stack Overflow

JSLint, “use strict”

JavaScript libraries

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)

Demo: Cloud Build

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

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

Contact me:

Blog: www.spdoctor.net

Twitter: @spdoctor

Sharepoint.stackexchange.com (moderator)

Email: BillA@flosim.com