SPCA2013 - Building Windows Client Applications for SharePoint 2013
-
Upload
nccomms -
Category
Technology
-
view
788 -
download
1
description
Transcript of SPCA2013 - Building Windows Client Applications for SharePoint 2013
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: [email protected]
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: [email protected]