SlideShare a Scribd company logo
1 of 40
Download to read offline
Made for Mobile - Let Office 365
Power Your Mobile Apps
BILL AYERS, FLOW SIMULATION LTD
SPONSORS
Bill Ayers
MCM/MCSM Charter SharePoint
• MCT, MCTS, MCITP, MCSD, MCAD, MCSA,
MCDBA, Professional Scrum Master, etc.
• Flow Simulation Ltd.
• www.SPDoctor.net
• BillA@flosim.com
• @SPDoctor
• Consultant specialising in SharePoint and
Office 365 Development and Architecture for
Collaboration and Mobile Development (Since
Windows CE beta).
AGENDA
• Mobile First
• REST
• Office 365 API
• OAuth2
• Azure AD and ADAL
• Apache Cordova
• Microsoft Graph
• Conclusions
Mobile clients matter
Source: Morgan Stanley
87
Mobile is Becoming a Priority for Businesses
Source: Gartner
The world is changing…
“mobile is now redefining personal computing and not the other way round.“
Developer Economics, VisionMobile 2014
Mobile-first, Cloud-first
The opportunity ahead will require us to reimagine a lot of what we have done in
the past for a mobile and cloud-first world, and do new things.
Satya Nadella
Apps
• Self-contained, clean uninstall, sandboxed
• Office 365, SharePoint as a Service (devices+services model)
• Greatly improved REST API in SharePoint 2013 in order to
support SharePoint Add-ins
• Office 365 REST endpoints for SharePoint (Sites),
Outlook/Exchange, Azure AD, OneDrive, Cognitive Svcs. etc.
• HTTP verbs specify operations (as originally intended)
• Uses OData Operators
• API Sandbox (https://apisandbox.msdn.microsoft.com/)
http://server/_api/web/lists/getbytitle(“Butterflies")/items
?$select=ID,Title
&$order=Title
&$filter=startswith(Title,”M”)
REST – Representational State Transfer
Creating and Updating Data
• Creating New Items
• Formulate a REST URL for the parent list
• Use the POST verb
• Updating Existing Items
• Formulate a URL to the item itself
• Use the PATCH, MERGE, or PUT verbs
• Deleting Items
• Formulate a URL to the item
• Use the DELETE verb
• X-HTTP-Method header (firewall arms race)
JavaScript and REST
getAccessToken(resourceUrl, appId, redirectUrl, function (response) {
var requestUri = "https://graph.microsoft.com/v1.0/me/messages";
var xhr = new XMLHttpRequest();
xhr.open('GET', requestUri);
xhr.setRequestHeader("Authorization", "Bearer " + response.accessToken);
xhr.setRequestHeader("Accept", "application/json;odata.metadata=minimal");
xhr.onload = function () {
if (xhr.status === 200) {
var response = JSON.parse(xhr.responseText);
var data = "";
if (response.value)
for (var i = 0; i < response.value.length; i++)
data += "<li>" + displayValue(response.value[i]) + "</li>";
document.getElementById("data").innerHTML = data;
}
It gets better!
• Wrapper libraries for Office 365 APIs (with CORS support)
• Available for .NET and JavaScript
• Takes care of AuthN and AuthZ
• Included in latest update for Office 365 API Tools for Visual Studio and Visual
Studio 2015
• http://blogs.office.com/2014/05/12/net-and-javascript-libraries-for-
office-365-apis/
• http://github.com/OfficeDev/PnP
• Use local storage to enable functionality while disconnected
Example (JavaScript):
var authContext = new O365Auth.Context();
authContext.getIdToken('https://outlook.office365.com/')
.then((function (token) {
var client = new Microsoft.OutlookServices.Client(
https://outlook.office365.com/api/v1.0/',
token.getAccessTokenFn('https://outlook.office365.com'));
client.me.calendar.events.getEvents().fetch().then(function
(events) {
// do something with events…
authContext.logOut();
}, function (reason) {
// error handling here…
});
}).bind(this), function (reason) {
// error handling here…
});
Sample Code: github.com/SPDoctor/Office365Cordova
The Quest for Single Sign-on
• OpenID
• OAuth
• OAuth2
• OpenID Connect
OAuth2 standard: http://tools.ietf.org/html/rfc6749
Decoded JSON – JWT format
Payload:
{
"aud":ab75de55-3073-364-b7-8f32d696e7645f2/localhost:44300@2c057b90-685e-4c13-817b-e43933637ad0
"iss":00000001-0000-0000-c000-000000000000@2c057b90-685e-4c13-817b-e43933637ad0
"nbf":2014-10-11 21:20:25Z (11/11/2012 12:27:25 PM) - 1352665645
"exp":2014-10-12 08:27:25Z (11/12/2012 12:27:25 AM) - 1352708845
"appctxsender":00000003-0000-0ff1-ce00-000000000000@2c057b90-685e-4c13-817b-e43933637ad0
"appctx":{
"CacheKey":"XcjXMtIJcVBO7JwIG2BSiA/eVNeM3lIK8Sf5LXcPc4w=“
"SecurityTokenServiceUri":"https://accounts.accesscontrol.windows.net/tokens/OAuth/2"
}
"refreshtoken":IAAAAKOgwA0o-EBCoP5PWpVofwHw…
"isbrowserhostedapp":true
}
eyJhdWQiOiJhZDY5NmU1NS0zZjMzLTQwNzgtYjM2Ny0yZTdiNzVkNjQ1ZjIvbG9jYWxob
3N0OjQ0MzAwQDJjNDM5MzMwLTY4NWUtNGMxMy04MTdiLWUwNTdiOTYzN2FkMCIsImlzcyI6IjAwMDAwMDAxLTAwMDAtMDAwMC1jMDAwLTAwMDAwMD
AwMDAwMEAyYzQzOTMzMC02ODVlLTRjMTMtODE3Yi1lMDU3Yjk2MzdhZDAiLCJuYmYiOjEzNTI2NjU2NDUsImV4cCI6MTM1MjcwODg0NSwiYXBwY3R4c2VuZG
VyIjoiMDAwMDAwMDMtMDAwMC0wZmYxLWNlMDAtMDAwMDAwMDAwMDDJjNDM5MzMwLTY4UwNTdiOTYzN2FkMCIsImFwcGN0eCI6IntcIkNhY2hlS2V5X
CI6XCJCU2lLOFNmQS9lVk5lTU10SUpjVkJPM2xJNUxYY1BjN0p3SUcyWGNqWDR3PVwiLFwiU2VjdXJpdHlUb2tlblNlcnZpY2VVcmlcIjpcImh0dHBzOi8vYWNjb3Vud
HMuYWNjZXNzY29udHJvbC53aW5kb3dzLm5ldC90b2tlbnMvT0F1dGgvMlwifSIsInJlZnJlc2h0b2tlbiI6IklBQUFBS0JDb1Bwby1FVm9PZ3dBMGZ3SDVQV3dyY29PR3
BGSHdpVW1CMnpBZjRjMXdoeFFzOXlWRlVtcWNqNmYyZ2JTRF9CM3dPakktRXN2b2dWVWVQeXBtMjF5RlQ3VkxFdW5OSW1rT1RxeHFtb1BwSE9SU3F0c2pXaEh
OdnUxM0ppVmNGZzh2UEFyMl9HbFFCNjBQVThQdEVUVlpjWXpCcExhY3hzNjNlVVdMajBTY0lQMGwzUW12dENTVEdidlRqUW1hR3RGaVZYQnZwLXhQN1RuZnl
kRUJUUG9hTDNDcERoQXA5TVhMNXpsRVIxbUtBdDN6bEEtSXpQSzdRTmxyOVJ5RnVPTnJGZmtSRnhyRHNBTDJMS0hPZ2pkZVM5Y0VHWnpZdG9odkdWRFFiVW
ptaFlxM3FueHYyM09qX25idm9KNUNJQXBTOTVMUTNXVkwyaFJKQlltUHVIQ1Z3emhjZG12QlJJNURJZVNYb25RR2d5blNVYU9vUUtheUg2b1R6RzcwSWljaUtSNm
5FMzJZYnhhaGJzdm1XOGszblpvaTV4TDdfa0JXSUZjQXh0Ny1sMUJxTEFockpoZEliZ0dVa1VpVGk5d3JJVm9KZ0RDTDNxSzZucGNHdm4xbGdRZWNBbFpkeG5qOGl
tcmdGVmRmNDVGa1EyQTZTOTJEakVjWE1odUZwakE2aHFpSzdHRU85ZnEwM0tER0tjIiwiaXNicm93c2VyaG9zdGVkYXBwIjoidHJ1ZSJ9
OAuth2 Authorization Flows
• Resource Owner Password Credentials
• Client Credentials
• Authorization Code
• Implicit Grant
Azure Active Directory
• Active Directory hosted in Azure
• Azure AD – a sort of DC Lite
• Can synchronize with on-prem (DirSync, ADFS etc.)
• Azure AD knows about users and groups
• Now supports Applications
• AAD is replacing ACS (Access Control Services) used by SharePoint client APIs
• Office365 APIs use AAD and OAuth2
• Make yourself known to AAD by registering your app
• OAuth Sandbox: https://oauthplay.azurewebsites.net/
Three ways to configure
• Azure portal (improvements coming)
• Add Connected Service in Visual Studio
• https://apps.dev.microsoft.com/
DEMO:
CONFIGURE MOBILE APPLICATION
USING AZURE PORTAL
ADAL
• ADAL – Active Directory Authentication Library
• Install-Package Microsoft.Identity.Model.Clients.ActiveDirectory
• V1 supports ACS, V2 is AAD only – now V3
• Available in several forms
• JavaScript version ADAL.js
• Angular.js bindings
• Underpins authorization in other libraries and plug-ins
• “Next Generation” is called MSAL – Microsoft Authentication Library
Active Directory Authentication Libraries
Target V1 V2 (current) V3 (preview)
.NET ADAL.NET ADAL.NET ADAL.NET
Android ADAL.Android ADAL.NET/Xamarin
iOS ADAL.objC ADAL.NET/Xamarin
MAC ADAL.objC ADAL.NET/Xamarin
JavaScript ADAL.JS ADAL.JS
JavaScript Mobile
(Cordova)
O365auth.js O365auth.js or
ADAL.JS
ADAL Cordova
plugin 0.6.2
“If only there was some way we could use
that JavaScript library and build a
mobile app that just somehow worked
across Windows, Android and iOS
devices without me having to learn new
programming languages and tooling and
all that other stuff”
Native Web
Easy
deployment
Native look
and feel,
performance
Web
apps
Codegen
/cross-
compilers
Native vs. Web
HTML5
Hybrid
What is Cordova (aka PhoneGap)?
• Platform for developing hybrid apps with web technology (HTML, CSS and
JavaScript) delivered to client device as a package which behaves like a native
application
• An open source collection of JavaScript device APIs (plug-ins) to give access
to hardware features
• Bridges the “Gap” between phone capabilities and standard JavaScript APIs
• Toolsets built on top of Cordova
• PhoneGap (Abode)
• AppBuilder (Telerik)
• VSTAC (VS-TACO)
28
Reasons to use HTML5 Hybrid Apps
• Code re-use across platforms – one code-base, skill-set
• Prototype and build quickly (low cost)
• Use widely available web development skills
• Large JS community and frameworks
• HTML5 gives limited access to device functions (hence PhoneGap)
• Great option for LOB apps
• Access to mobile marketplace like native
• Users perceive it as an “App”
• Large number of apps in app stores are actually hybrid HTML5 apps
Visual Studio Tools for Apache Cordova
• Acquire all required 3rd party dependencies
• Configure everything to allow you to build/deploy for the Android, iOS, and
Windows platforms
• Debug apps running on Android and Windows Store
• Easily add native device capabilities through plug-ins
• Select “Cross Platform Mobile Development” option when installing Visual
Studio
Command Line Tools
• The “modern” development tools: Git, Grunt, Gulp, Node and Code
• npm install –g cordova-cli
• npm install –g ionic@beta
• ionic start myproject
• Ionic serve
• etc. etc.
DEMO: ADDING OFFICE 365 API TO A CORDOVA CROSS-PLATFORM
APP
ADAL Cordova Plugin
• Current version 0.6.2 recommended (not the NPM version which is at
0.6.0/0.6.1)
• Uses the native ADALs for iOS/objective C, Android and .NET
• Can make use of platform capabilities such as secure token caching
• Refresh token is handled for you
• Not currently supporting Ripple emulator (“I Haz Cheeseburger”)
• To deploy to Windows Phone 8.1 you may need to deploy from the child
project in platformswindows
Microsoft Graph API
https://graph.microsoft.com/
USERS FILES MAIL
CALENDA
R
GROUPS
Insights and relationships from Office Graph
TASKS
• Formerly known as Office 365 Unified API
• One REST URL namespace
(https://graph.microsoft.com)
• One token
TASKS
manager
memberOf
FILES
MESSAGES
workingWith
Shared with me
directReports
createdBy
FILES
CONVERSATIONS
createdBy
workingWith
EVENTS
trendingAround
GROUPS
TASKS
NOTES
NOTES
public
modifiedBy
USER
trendingAround
API
DEMO: USING THE MICROSOFT GRAPH
SAMPLE CODE:
HTTP://GITHUB.COM/OFFICEDEV/PNP/SAMPLES/MICROS
OFTGRAPH.CORDOVA.MOBILE
Give Your Apps a Professional Look!
• jQuery Mobile (open source)
• Kendo UI Mobile (commercial, recently open-sourced)
• Ionic (+ angular.js) – Use NuGet package IonicVS2015 or Ionic CLI
• AvailableLight – minimalist solution for learning
(http://github.com/SPDoctor/AvailableLightDemo)
* Other frameworks are available  - these are specifically designed for mobile
Conclusions
• Let’s re-use our JavaScript and REST API skills
• View APIs as just a time saver to wrap the REST calls
• Learn once, use anywhere
• Office 365 API allows us to deliver business benefit where it’s needed
• Microsoft Graph will make it even better
• Changing fast – need to be agile
• Spread the word – mobile first 
spca.biz/ZUA6
Recommended Reading:
• Office 365 Dev Center (http://dev.office.com/)
• Github.com/officedev
• Patterns and Practices (https://github.com/OfficeDev/PnP)
• Blogs.office.com/dev (podshow)
• Visual Studio TACO dev blog: (http://taco.visualstudio.com/)
thank you
questions?
live ratings
HTTP://SPDOCTOR.COM/@SPDOCTOR
spca.biz/ZUA6

More Related Content

What's hot

Workflow Best Practices:Five (or More) "Do"s and "Don't"s
Workflow Best Practices:Five (or More) "Do"s and "Don't"sWorkflow Best Practices:Five (or More) "Do"s and "Don't"s
Workflow Best Practices:Five (or More) "Do"s and "Don't"sSPC Adriatics
 
Office 365 Connectors
Office 365 ConnectorsOffice 365 Connectors
Office 365 ConnectorsSPC Adriatics
 
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...European Collaboration Summit
 
Teams Nation - Extend The Power Platform With Custom Connectors
Teams Nation - Extend The Power Platform With Custom ConnectorsTeams Nation - Extend The Power Platform With Custom Connectors
Teams Nation - Extend The Power Platform With Custom ConnectorsDaniel Laskewitz
 
Office apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thingOffice apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thingSPC Adriatics
 
ECS2018 - Accelerate success and time to-value for Office 365 with best pract...
ECS2018 - Accelerate success and time to-value for Office 365 with best pract...ECS2018 - Accelerate success and time to-value for Office 365 with best pract...
ECS2018 - Accelerate success and time to-value for Office 365 with best pract...Patrick Guimonet
 
[Draskovic] The next chapter: What's new in SharePoint Server 2019?
[Draskovic] The next chapter: What's new in SharePoint Server 2019?[Draskovic] The next chapter: What's new in SharePoint Server 2019?
[Draskovic] The next chapter: What's new in SharePoint Server 2019?European Collaboration Summit
 
ECS19 - Ahmad Najjar and Serge Luca - Power Platform Tutorial
ECS19 - Ahmad Najjar and Serge Luca - Power Platform TutorialECS19 - Ahmad Najjar and Serge Luca - Power Platform Tutorial
ECS19 - Ahmad Najjar and Serge Luca - Power Platform TutorialEuropean Collaboration Summit
 
Make IT Pro's great again: Microsoft Azure for the SharePoint professional
Make IT Pro's great again: Microsoft Azure for the SharePoint professionalMake IT Pro's great again: Microsoft Azure for the SharePoint professional
Make IT Pro's great again: Microsoft Azure for the SharePoint professionalBIWUG
 
Design and Implement Azure Web Apps
Design and Implement Azure Web AppsDesign and Implement Azure Web Apps
Design and Implement Azure Web AppsAyush Rathi
 
PL-900 Microsoft Power Platform Fundamentals
PL-900 Microsoft Power Platform FundamentalsPL-900 Microsoft Power Platform Fundamentals
PL-900 Microsoft Power Platform FundamentalsNanddeep Nachan
 
Introduction to Office 365 PnP- Reusable solutions
Introduction to Office 365 PnP- Reusable solutionsIntroduction to Office 365 PnP- Reusable solutions
Introduction to Office 365 PnP- Reusable solutionsSPC Adriatics
 
Microsoft Flow best practices European Collaboration Summit 2018
Microsoft Flow best practices European Collaboration Summit 2018Microsoft Flow best practices European Collaboration Summit 2018
Microsoft Flow best practices European Collaboration Summit 2018serge luca
 
Chris O'Brien - Ignite 2019 announcements and selected roadmaps
Chris O'Brien - Ignite 2019 announcements and selected roadmapsChris O'Brien - Ignite 2019 announcements and selected roadmaps
Chris O'Brien - Ignite 2019 announcements and selected roadmapsChris O'Brien
 
[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClass
[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClass[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClass
[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClassEuropean Collaboration Summit
 
ECS19 - John White - Unlock SharePoint’s Reporting Secrets
ECS19 - John White - Unlock SharePoint’s Reporting SecretsECS19 - John White - Unlock SharePoint’s Reporting Secrets
ECS19 - John White - Unlock SharePoint’s Reporting SecretsEuropean Collaboration Summit
 
ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...
ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...
ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...European Collaboration Summit
 
Understanding SharePoint Framework Extensions
Understanding SharePoint Framework ExtensionsUnderstanding SharePoint Framework Extensions
Understanding SharePoint Framework ExtensionsBIWUG
 
O365Con18 - Microsoft Graph, a Walk-through - Adis Jugo
O365Con18 - Microsoft Graph, a Walk-through - Adis JugoO365Con18 - Microsoft Graph, a Walk-through - Adis Jugo
O365Con18 - Microsoft Graph, a Walk-through - Adis JugoNCCOMMS
 
ECS19 - Dragan Panjkov - Connecting Enterprise Software With Flow
ECS19 - Dragan Panjkov - Connecting Enterprise Software With FlowECS19 - Dragan Panjkov - Connecting Enterprise Software With Flow
ECS19 - Dragan Panjkov - Connecting Enterprise Software With FlowEuropean Collaboration Summit
 

What's hot (20)

Workflow Best Practices:Five (or More) "Do"s and "Don't"s
Workflow Best Practices:Five (or More) "Do"s and "Don't"sWorkflow Best Practices:Five (or More) "Do"s and "Don't"s
Workflow Best Practices:Five (or More) "Do"s and "Don't"s
 
Office 365 Connectors
Office 365 ConnectorsOffice 365 Connectors
Office 365 Connectors
 
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
 
Teams Nation - Extend The Power Platform With Custom Connectors
Teams Nation - Extend The Power Platform With Custom ConnectorsTeams Nation - Extend The Power Platform With Custom Connectors
Teams Nation - Extend The Power Platform With Custom Connectors
 
Office apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thingOffice apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thing
 
ECS2018 - Accelerate success and time to-value for Office 365 with best pract...
ECS2018 - Accelerate success and time to-value for Office 365 with best pract...ECS2018 - Accelerate success and time to-value for Office 365 with best pract...
ECS2018 - Accelerate success and time to-value for Office 365 with best pract...
 
[Draskovic] The next chapter: What's new in SharePoint Server 2019?
[Draskovic] The next chapter: What's new in SharePoint Server 2019?[Draskovic] The next chapter: What's new in SharePoint Server 2019?
[Draskovic] The next chapter: What's new in SharePoint Server 2019?
 
ECS19 - Ahmad Najjar and Serge Luca - Power Platform Tutorial
ECS19 - Ahmad Najjar and Serge Luca - Power Platform TutorialECS19 - Ahmad Najjar and Serge Luca - Power Platform Tutorial
ECS19 - Ahmad Najjar and Serge Luca - Power Platform Tutorial
 
Make IT Pro's great again: Microsoft Azure for the SharePoint professional
Make IT Pro's great again: Microsoft Azure for the SharePoint professionalMake IT Pro's great again: Microsoft Azure for the SharePoint professional
Make IT Pro's great again: Microsoft Azure for the SharePoint professional
 
Design and Implement Azure Web Apps
Design and Implement Azure Web AppsDesign and Implement Azure Web Apps
Design and Implement Azure Web Apps
 
PL-900 Microsoft Power Platform Fundamentals
PL-900 Microsoft Power Platform FundamentalsPL-900 Microsoft Power Platform Fundamentals
PL-900 Microsoft Power Platform Fundamentals
 
Introduction to Office 365 PnP- Reusable solutions
Introduction to Office 365 PnP- Reusable solutionsIntroduction to Office 365 PnP- Reusable solutions
Introduction to Office 365 PnP- Reusable solutions
 
Microsoft Flow best practices European Collaboration Summit 2018
Microsoft Flow best practices European Collaboration Summit 2018Microsoft Flow best practices European Collaboration Summit 2018
Microsoft Flow best practices European Collaboration Summit 2018
 
Chris O'Brien - Ignite 2019 announcements and selected roadmaps
Chris O'Brien - Ignite 2019 announcements and selected roadmapsChris O'Brien - Ignite 2019 announcements and selected roadmaps
Chris O'Brien - Ignite 2019 announcements and selected roadmaps
 
[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClass
[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClass[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClass
[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClass
 
ECS19 - John White - Unlock SharePoint’s Reporting Secrets
ECS19 - John White - Unlock SharePoint’s Reporting SecretsECS19 - John White - Unlock SharePoint’s Reporting Secrets
ECS19 - John White - Unlock SharePoint’s Reporting Secrets
 
ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...
ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...
ECS 19 - John White, Jason Himmelstein - Everything You Always Wanted To Know...
 
Understanding SharePoint Framework Extensions
Understanding SharePoint Framework ExtensionsUnderstanding SharePoint Framework Extensions
Understanding SharePoint Framework Extensions
 
O365Con18 - Microsoft Graph, a Walk-through - Adis Jugo
O365Con18 - Microsoft Graph, a Walk-through - Adis JugoO365Con18 - Microsoft Graph, a Walk-through - Adis Jugo
O365Con18 - Microsoft Graph, a Walk-through - Adis Jugo
 
ECS19 - Dragan Panjkov - Connecting Enterprise Software With Flow
ECS19 - Dragan Panjkov - Connecting Enterprise Software With FlowECS19 - Dragan Panjkov - Connecting Enterprise Software With Flow
ECS19 - Dragan Panjkov - Connecting Enterprise Software With Flow
 

Viewers also liked

Building Office 365 Apps with TypeScript
Building Office 365 Apps with TypeScriptBuilding Office 365 Apps with TypeScript
Building Office 365 Apps with TypeScriptSPC Adriatics
 
0116-leadership-resilience-md
0116-leadership-resilience-md0116-leadership-resilience-md
0116-leadership-resilience-mdPat Sanaghan
 
Filtros de cabine
Filtros de cabineFiltros de cabine
Filtros de cabinetuliovmg1
 
TBEX15 Asia Thailand Sara Meaney
TBEX15 Asia Thailand Sara MeaneyTBEX15 Asia Thailand Sara Meaney
TBEX15 Asia Thailand Sara MeaneyTBEX
 
Tarif jne-reg-2013-bdg-1-juni-2013
Tarif jne-reg-2013-bdg-1-juni-2013Tarif jne-reg-2013-bdg-1-juni-2013
Tarif jne-reg-2013-bdg-1-juni-2013ridwansf2
 
Ch2 2014 Kristen Ricker Nixa High School
Ch2 2014 Kristen Ricker Nixa High School Ch2 2014 Kristen Ricker Nixa High School
Ch2 2014 Kristen Ricker Nixa High School rickerkristen
 
The quality of work and health inequalities – cross-national differences
The quality of work and health inequalities –  cross-national differences �The quality of work and health inequalities –  cross-national differences �
The quality of work and health inequalities – cross-national differences sophieproject
 
阳光保险,摇一摇流程
阳光保险,摇一摇流程阳光保险,摇一摇流程
阳光保险,摇一摇流程朋 陈
 
Book4 unit1-lesson5
Book4 unit1-lesson5Book4 unit1-lesson5
Book4 unit1-lesson5stthomas8
 
fdgdfgdfg
fdgdfgdfgfdgdfgdfg
fdgdfgdfgsotirov
 
Say little, do more.
Say little, do more.Say little, do more.
Say little, do more.SURAJ MISHRA
 
Beautiful Women Of China
Beautiful Women Of ChinaBeautiful Women Of China
Beautiful Women Of ChinaRen
 
Chafer, 52 Bible Doctines: Man and sin part 2
Chafer, 52 Bible Doctines: Man and sin part 2Chafer, 52 Bible Doctines: Man and sin part 2
Chafer, 52 Bible Doctines: Man and sin part 2Richard Chamberlain
 

Viewers also liked (20)

Building Office 365 Apps with TypeScript
Building Office 365 Apps with TypeScriptBuilding Office 365 Apps with TypeScript
Building Office 365 Apps with TypeScript
 
0116-leadership-resilience-md
0116-leadership-resilience-md0116-leadership-resilience-md
0116-leadership-resilience-md
 
Google inchina
Google inchinaGoogle inchina
Google inchina
 
Lulusan SMK PI class of 2014
Lulusan SMK PI class of 2014Lulusan SMK PI class of 2014
Lulusan SMK PI class of 2014
 
Filtros de cabine
Filtros de cabineFiltros de cabine
Filtros de cabine
 
Yg Ini 1
Yg Ini 1Yg Ini 1
Yg Ini 1
 
TBEX15 Asia Thailand Sara Meaney
TBEX15 Asia Thailand Sara MeaneyTBEX15 Asia Thailand Sara Meaney
TBEX15 Asia Thailand Sara Meaney
 
Tarif jne-reg-2013-bdg-1-juni-2013
Tarif jne-reg-2013-bdg-1-juni-2013Tarif jne-reg-2013-bdg-1-juni-2013
Tarif jne-reg-2013-bdg-1-juni-2013
 
Ch2 2014 Kristen Ricker Nixa High School
Ch2 2014 Kristen Ricker Nixa High School Ch2 2014 Kristen Ricker Nixa High School
Ch2 2014 Kristen Ricker Nixa High School
 
The quality of work and health inequalities – cross-national differences
The quality of work and health inequalities –  cross-national differences �The quality of work and health inequalities –  cross-national differences �
The quality of work and health inequalities – cross-national differences
 
Ususnmptn2011
Ususnmptn2011Ususnmptn2011
Ususnmptn2011
 
阳光保险,摇一摇流程
阳光保险,摇一摇流程阳光保险,摇一摇流程
阳光保险,摇一摇流程
 
Creando Enlaces a Prueba de Penguin
Creando Enlaces a Prueba de PenguinCreando Enlaces a Prueba de Penguin
Creando Enlaces a Prueba de Penguin
 
Book4 unit1-lesson5
Book4 unit1-lesson5Book4 unit1-lesson5
Book4 unit1-lesson5
 
1st Grade Unit 6: Blue jay finds a way
1st Grade Unit 6: Blue jay finds a way1st Grade Unit 6: Blue jay finds a way
1st Grade Unit 6: Blue jay finds a way
 
fdgdfgdfg
fdgdfgdfgfdgdfgdfg
fdgdfgdfg
 
Say little, do more.
Say little, do more.Say little, do more.
Say little, do more.
 
Beautiful Women Of China
Beautiful Women Of ChinaBeautiful Women Of China
Beautiful Women Of China
 
Chafer, 52 Bible Doctines: Man and sin part 2
Chafer, 52 Bible Doctines: Man and sin part 2Chafer, 52 Bible Doctines: Man and sin part 2
Chafer, 52 Bible Doctines: Man and sin part 2
 
англійська мова 3 кл підручник
англійська мова 3 кл підручниканглійська мова 3 кл підручник
англійська мова 3 кл підручник
 

Similar to Made for Mobile - Let Office 365 Power Your Mobile Apps

Drupal and mobile devices komelin konstanin (eng)
Drupal and mobile devices komelin konstanin (eng)Drupal and mobile devices komelin konstanin (eng)
Drupal and mobile devices komelin konstanin (eng)drupalconf
 
Getting started with development in azure
Getting started with development in azureGetting started with development in azure
Getting started with development in azureJasjit Chopra
 
First Look at Azure Logic Apps (BAUG)
First Look at Azure Logic Apps (BAUG)First Look at Azure Logic Apps (BAUG)
First Look at Azure Logic Apps (BAUG)Daniel Toomey
 
Azure app service to create web and mobile apps
Azure app service to create web and mobile appsAzure app service to create web and mobile apps
Azure app service to create web and mobile appsKen Cenerelli
 
Build an AI/ML-driven image archive processing workflow: Image archive, analy...
Build an AI/ML-driven image archive processing workflow: Image archive, analy...Build an AI/ML-driven image archive processing workflow: Image archive, analy...
Build an AI/ML-driven image archive processing workflow: Image archive, analy...wesley chun
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineIMC Institute
 
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of ChoicePaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of ChoiceIsaac Christoffersen
 
Developing Azure Functions as custom connectors for Flow and Nintex
Developing Azure Functions as custom connectors for Flow and NintexDeveloping Azure Functions as custom connectors for Flow and Nintex
Developing Azure Functions as custom connectors for Flow and NintexDocFluix, LLC
 
Ibm xamarin gtruty
Ibm xamarin gtrutyIbm xamarin gtruty
Ibm xamarin gtrutyRon Favali
 
Connecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixConnecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixIBM
 
The new Azure App Service Architecture
The new Azure App Service ArchitectureThe new Azure App Service Architecture
The new Azure App Service ArchitectureJoão Pedro Martins
 
Capture the Cloud with Azure
Capture the Cloud with AzureCapture the Cloud with Azure
Capture the Cloud with AzureShahed Chowdhuri
 
Developing Azure Functions for Flow and Nintex SPS SD 2018
Developing Azure Functions for Flow and Nintex SPS SD 2018Developing Azure Functions for Flow and Nintex SPS SD 2018
Developing Azure Functions for Flow and Nintex SPS SD 2018DocFluix, LLC
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_authlzongren
 
Angular mobile angular_u
Angular mobile angular_uAngular mobile angular_u
Angular mobile angular_uDoris Chen
 
Trivadis TechEvent 2017 Der Azure App Service by Manuel Meyer
Trivadis TechEvent 2017 Der Azure App Service by Manuel MeyerTrivadis TechEvent 2017 Der Azure App Service by Manuel Meyer
Trivadis TechEvent 2017 Der Azure App Service by Manuel MeyerTrivadis
 
2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile Services2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile ServicesMarco Parenzan
 
An Introduction to webOS
An Introduction to webOSAn Introduction to webOS
An Introduction to webOSKevin Decker
 

Similar to Made for Mobile - Let Office 365 Power Your Mobile Apps (20)

Drupal and mobile devices komelin konstanin (eng)
Drupal and mobile devices komelin konstanin (eng)Drupal and mobile devices komelin konstanin (eng)
Drupal and mobile devices komelin konstanin (eng)
 
Getting started with development in azure
Getting started with development in azureGetting started with development in azure
Getting started with development in azure
 
First Look at Azure Logic Apps (BAUG)
First Look at Azure Logic Apps (BAUG)First Look at Azure Logic Apps (BAUG)
First Look at Azure Logic Apps (BAUG)
 
Azure app service to create web and mobile apps
Azure app service to create web and mobile appsAzure app service to create web and mobile apps
Azure app service to create web and mobile apps
 
Build an AI/ML-driven image archive processing workflow: Image archive, analy...
Build an AI/ML-driven image archive processing workflow: Image archive, analy...Build an AI/ML-driven image archive processing workflow: Image archive, analy...
Build an AI/ML-driven image archive processing workflow: Image archive, analy...
 
Google App Engine
Google App EngineGoogle App Engine
Google App Engine
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
 
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of ChoicePaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
 
Developing Azure Functions as custom connectors for Flow and Nintex
Developing Azure Functions as custom connectors for Flow and NintexDeveloping Azure Functions as custom connectors for Flow and Nintex
Developing Azure Functions as custom connectors for Flow and Nintex
 
Ibm xamarin gtruty
Ibm xamarin gtrutyIbm xamarin gtruty
Ibm xamarin gtruty
 
Connecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in BluemixConnecting Xamarin Apps with IBM Worklight in Bluemix
Connecting Xamarin Apps with IBM Worklight in Bluemix
 
The new Azure App Service Architecture
The new Azure App Service ArchitectureThe new Azure App Service Architecture
The new Azure App Service Architecture
 
Capture the Cloud with Azure
Capture the Cloud with AzureCapture the Cloud with Azure
Capture the Cloud with Azure
 
Developing Azure Functions for Flow and Nintex SPS SD 2018
Developing Azure Functions for Flow and Nintex SPS SD 2018Developing Azure Functions for Flow and Nintex SPS SD 2018
Developing Azure Functions for Flow and Nintex SPS SD 2018
 
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
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
Angular mobile angular_u
Angular mobile angular_uAngular mobile angular_u
Angular mobile angular_u
 
Trivadis TechEvent 2017 Der Azure App Service by Manuel Meyer
Trivadis TechEvent 2017 Der Azure App Service by Manuel MeyerTrivadis TechEvent 2017 Der Azure App Service by Manuel Meyer
Trivadis TechEvent 2017 Der Azure App Service by Manuel Meyer
 
2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile Services2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile Services
 
An Introduction to webOS
An Introduction to webOSAn Introduction to webOS
An Introduction to webOS
 

More from SPC Adriatics

How to secure your data in Office 365
How to secure your data in Office 365 How to secure your data in Office 365
How to secure your data in Office 365 SPC Adriatics
 
Do you know, where your sensitive data is?
Do you know, where your sensitive data is?Do you know, where your sensitive data is?
Do you know, where your sensitive data is?SPC Adriatics
 
Securing Intellectual Property using Azure Rights Management Services
Securing Intellectual Property using Azure Rights Management ServicesSecuring Intellectual Property using Azure Rights Management Services
Securing Intellectual Property using Azure Rights Management ServicesSPC Adriatics
 
Creating Workflows in Project Online
Creating Workflows in Project OnlineCreating Workflows in Project Online
Creating Workflows in Project OnlineSPC Adriatics
 
Faster than a flash behind the scenes of patching SharePoint Online
Faster than a flash   behind the scenes of patching SharePoint OnlineFaster than a flash   behind the scenes of patching SharePoint Online
Faster than a flash behind the scenes of patching SharePoint OnlineSPC Adriatics
 
Role based views in Project and Resource Center
Role based views in Project and Resource CenterRole based views in Project and Resource Center
Role based views in Project and Resource CenterSPC Adriatics
 
OneDrive, TwoDrive, Whiterive, BlueDrive (hahaha)
OneDrive, TwoDrive, Whiterive, BlueDrive (hahaha)OneDrive, TwoDrive, Whiterive, BlueDrive (hahaha)
OneDrive, TwoDrive, Whiterive, BlueDrive (hahaha)SPC Adriatics
 
SharePoint Governance and Compliance
SharePoint Governance and ComplianceSharePoint Governance and Compliance
SharePoint Governance and ComplianceSPC Adriatics
 
From analyses to successful Implementation
From analyses to successful ImplementationFrom analyses to successful Implementation
From analyses to successful ImplementationSPC Adriatics
 
The key to a successful Office 365 implementation is adoption
The key to a successful Office 365 implementation is adoptionThe key to a successful Office 365 implementation is adoption
The key to a successful Office 365 implementation is adoptionSPC Adriatics
 
10 Steps to be Successful with Enterprise Search
10 Steps to be Successful with Enterprise Search10 Steps to be Successful with Enterprise Search
10 Steps to be Successful with Enterprise SearchSPC Adriatics
 
How the Cloud Changes Business Solution Design and Delivery
How the Cloud Changes Business Solution Design and DeliveryHow the Cloud Changes Business Solution Design and Delivery
How the Cloud Changes Business Solution Design and DeliverySPC Adriatics
 
Scaling SharePoint 2016 Farms with MinRole & Other Tools
Scaling SharePoint 2016 Farms with MinRole & Other ToolsScaling SharePoint 2016 Farms with MinRole & Other Tools
Scaling SharePoint 2016 Farms with MinRole & Other ToolsSPC Adriatics
 
SharePoint 2013 Search Operations
SharePoint 2013 Search OperationsSharePoint 2013 Search Operations
SharePoint 2013 Search OperationsSPC Adriatics
 
Office Online Server 2016 - a must for on-premises installation for SharePoin...
Office Online Server 2016 - a must for on-premises installation for SharePoin...Office Online Server 2016 - a must for on-premises installation for SharePoin...
Office Online Server 2016 - a must for on-premises installation for SharePoin...SPC Adriatics
 
Custom Code-The Missing Piece of the SharePoint Governance Puzzle
Custom Code-The Missing Piece of the SharePoint Governance PuzzleCustom Code-The Missing Piece of the SharePoint Governance Puzzle
Custom Code-The Missing Piece of the SharePoint Governance PuzzleSPC Adriatics
 
SharePoint 2016 Hybrid Sites Inside Out
SharePoint 2016 Hybrid Sites Inside OutSharePoint 2016 Hybrid Sites Inside Out
SharePoint 2016 Hybrid Sites Inside OutSPC Adriatics
 
Microsoft BI demystified: SharePoint 2016 BI or for PowerBI v2?
Microsoft BI demystified: SharePoint 2016 BI or for PowerBI v2?Microsoft BI demystified: SharePoint 2016 BI or for PowerBI v2?
Microsoft BI demystified: SharePoint 2016 BI or for PowerBI v2?SPC Adriatics
 
What's New for the BI workload in SharePoint 2016 and SQL Server 2016
What's New for the BI workload in SharePoint 2016 and SQL Server 2016What's New for the BI workload in SharePoint 2016 and SQL Server 2016
What's New for the BI workload in SharePoint 2016 and SQL Server 2016SPC Adriatics
 

More from SPC Adriatics (20)

How to secure your data in Office 365
How to secure your data in Office 365 How to secure your data in Office 365
How to secure your data in Office 365
 
Do you know, where your sensitive data is?
Do you know, where your sensitive data is?Do you know, where your sensitive data is?
Do you know, where your sensitive data is?
 
Securing Intellectual Property using Azure Rights Management Services
Securing Intellectual Property using Azure Rights Management ServicesSecuring Intellectual Property using Azure Rights Management Services
Securing Intellectual Property using Azure Rights Management Services
 
Creating Workflows in Project Online
Creating Workflows in Project OnlineCreating Workflows in Project Online
Creating Workflows in Project Online
 
Faster than a flash behind the scenes of patching SharePoint Online
Faster than a flash   behind the scenes of patching SharePoint OnlineFaster than a flash   behind the scenes of patching SharePoint Online
Faster than a flash behind the scenes of patching SharePoint Online
 
Role based views in Project and Resource Center
Role based views in Project and Resource CenterRole based views in Project and Resource Center
Role based views in Project and Resource Center
 
OneDrive, TwoDrive, Whiterive, BlueDrive (hahaha)
OneDrive, TwoDrive, Whiterive, BlueDrive (hahaha)OneDrive, TwoDrive, Whiterive, BlueDrive (hahaha)
OneDrive, TwoDrive, Whiterive, BlueDrive (hahaha)
 
SharePoint Governance and Compliance
SharePoint Governance and ComplianceSharePoint Governance and Compliance
SharePoint Governance and Compliance
 
From analyses to successful Implementation
From analyses to successful ImplementationFrom analyses to successful Implementation
From analyses to successful Implementation
 
The key to a successful Office 365 implementation is adoption
The key to a successful Office 365 implementation is adoptionThe key to a successful Office 365 implementation is adoption
The key to a successful Office 365 implementation is adoption
 
Office 365 Video
Office 365 VideoOffice 365 Video
Office 365 Video
 
10 Steps to be Successful with Enterprise Search
10 Steps to be Successful with Enterprise Search10 Steps to be Successful with Enterprise Search
10 Steps to be Successful with Enterprise Search
 
How the Cloud Changes Business Solution Design and Delivery
How the Cloud Changes Business Solution Design and DeliveryHow the Cloud Changes Business Solution Design and Delivery
How the Cloud Changes Business Solution Design and Delivery
 
Scaling SharePoint 2016 Farms with MinRole & Other Tools
Scaling SharePoint 2016 Farms with MinRole & Other ToolsScaling SharePoint 2016 Farms with MinRole & Other Tools
Scaling SharePoint 2016 Farms with MinRole & Other Tools
 
SharePoint 2013 Search Operations
SharePoint 2013 Search OperationsSharePoint 2013 Search Operations
SharePoint 2013 Search Operations
 
Office Online Server 2016 - a must for on-premises installation for SharePoin...
Office Online Server 2016 - a must for on-premises installation for SharePoin...Office Online Server 2016 - a must for on-premises installation for SharePoin...
Office Online Server 2016 - a must for on-premises installation for SharePoin...
 
Custom Code-The Missing Piece of the SharePoint Governance Puzzle
Custom Code-The Missing Piece of the SharePoint Governance PuzzleCustom Code-The Missing Piece of the SharePoint Governance Puzzle
Custom Code-The Missing Piece of the SharePoint Governance Puzzle
 
SharePoint 2016 Hybrid Sites Inside Out
SharePoint 2016 Hybrid Sites Inside OutSharePoint 2016 Hybrid Sites Inside Out
SharePoint 2016 Hybrid Sites Inside Out
 
Microsoft BI demystified: SharePoint 2016 BI or for PowerBI v2?
Microsoft BI demystified: SharePoint 2016 BI or for PowerBI v2?Microsoft BI demystified: SharePoint 2016 BI or for PowerBI v2?
Microsoft BI demystified: SharePoint 2016 BI or for PowerBI v2?
 
What's New for the BI workload in SharePoint 2016 and SQL Server 2016
What's New for the BI workload in SharePoint 2016 and SQL Server 2016What's New for the BI workload in SharePoint 2016 and SQL Server 2016
What's New for the BI workload in SharePoint 2016 and SQL Server 2016
 

Recently uploaded

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

Made for Mobile - Let Office 365 Power Your Mobile Apps

  • 1. Made for Mobile - Let Office 365 Power Your Mobile Apps BILL AYERS, FLOW SIMULATION LTD
  • 3. Bill Ayers MCM/MCSM Charter SharePoint • MCT, MCTS, MCITP, MCSD, MCAD, MCSA, MCDBA, Professional Scrum Master, etc. • Flow Simulation Ltd. • www.SPDoctor.net • BillA@flosim.com • @SPDoctor • Consultant specialising in SharePoint and Office 365 Development and Architecture for Collaboration and Mobile Development (Since Windows CE beta).
  • 4. AGENDA • Mobile First • REST • Office 365 API • OAuth2 • Azure AD and ADAL • Apache Cordova • Microsoft Graph • Conclusions
  • 5. Mobile clients matter Source: Morgan Stanley 87
  • 6. Mobile is Becoming a Priority for Businesses Source: Gartner
  • 7. The world is changing… “mobile is now redefining personal computing and not the other way round.“ Developer Economics, VisionMobile 2014
  • 8. Mobile-first, Cloud-first The opportunity ahead will require us to reimagine a lot of what we have done in the past for a mobile and cloud-first world, and do new things. Satya Nadella
  • 9. Apps • Self-contained, clean uninstall, sandboxed • Office 365, SharePoint as a Service (devices+services model)
  • 10. • Greatly improved REST API in SharePoint 2013 in order to support SharePoint Add-ins • Office 365 REST endpoints for SharePoint (Sites), Outlook/Exchange, Azure AD, OneDrive, Cognitive Svcs. etc. • HTTP verbs specify operations (as originally intended) • Uses OData Operators • API Sandbox (https://apisandbox.msdn.microsoft.com/) http://server/_api/web/lists/getbytitle(“Butterflies")/items ?$select=ID,Title &$order=Title &$filter=startswith(Title,”M”) REST – Representational State Transfer
  • 11. Creating and Updating Data • Creating New Items • Formulate a REST URL for the parent list • Use the POST verb • Updating Existing Items • Formulate a URL to the item itself • Use the PATCH, MERGE, or PUT verbs • Deleting Items • Formulate a URL to the item • Use the DELETE verb • X-HTTP-Method header (firewall arms race)
  • 12. JavaScript and REST getAccessToken(resourceUrl, appId, redirectUrl, function (response) { var requestUri = "https://graph.microsoft.com/v1.0/me/messages"; var xhr = new XMLHttpRequest(); xhr.open('GET', requestUri); xhr.setRequestHeader("Authorization", "Bearer " + response.accessToken); xhr.setRequestHeader("Accept", "application/json;odata.metadata=minimal"); xhr.onload = function () { if (xhr.status === 200) { var response = JSON.parse(xhr.responseText); var data = ""; if (response.value) for (var i = 0; i < response.value.length; i++) data += "<li>" + displayValue(response.value[i]) + "</li>"; document.getElementById("data").innerHTML = data; }
  • 13. It gets better! • Wrapper libraries for Office 365 APIs (with CORS support) • Available for .NET and JavaScript • Takes care of AuthN and AuthZ • Included in latest update for Office 365 API Tools for Visual Studio and Visual Studio 2015 • http://blogs.office.com/2014/05/12/net-and-javascript-libraries-for- office-365-apis/ • http://github.com/OfficeDev/PnP • Use local storage to enable functionality while disconnected
  • 14. Example (JavaScript): var authContext = new O365Auth.Context(); authContext.getIdToken('https://outlook.office365.com/') .then((function (token) { var client = new Microsoft.OutlookServices.Client( https://outlook.office365.com/api/v1.0/', token.getAccessTokenFn('https://outlook.office365.com')); client.me.calendar.events.getEvents().fetch().then(function (events) { // do something with events… authContext.logOut(); }, function (reason) { // error handling here… }); }).bind(this), function (reason) { // error handling here… }); Sample Code: github.com/SPDoctor/Office365Cordova
  • 15. The Quest for Single Sign-on • OpenID • OAuth • OAuth2 • OpenID Connect
  • 17. Decoded JSON – JWT format Payload: { "aud":ab75de55-3073-364-b7-8f32d696e7645f2/localhost:44300@2c057b90-685e-4c13-817b-e43933637ad0 "iss":00000001-0000-0000-c000-000000000000@2c057b90-685e-4c13-817b-e43933637ad0 "nbf":2014-10-11 21:20:25Z (11/11/2012 12:27:25 PM) - 1352665645 "exp":2014-10-12 08:27:25Z (11/12/2012 12:27:25 AM) - 1352708845 "appctxsender":00000003-0000-0ff1-ce00-000000000000@2c057b90-685e-4c13-817b-e43933637ad0 "appctx":{ "CacheKey":"XcjXMtIJcVBO7JwIG2BSiA/eVNeM3lIK8Sf5LXcPc4w=“ "SecurityTokenServiceUri":"https://accounts.accesscontrol.windows.net/tokens/OAuth/2" } "refreshtoken":IAAAAKOgwA0o-EBCoP5PWpVofwHw… "isbrowserhostedapp":true } eyJhdWQiOiJhZDY5NmU1NS0zZjMzLTQwNzgtYjM2Ny0yZTdiNzVkNjQ1ZjIvbG9jYWxob 3N0OjQ0MzAwQDJjNDM5MzMwLTY4NWUtNGMxMy04MTdiLWUwNTdiOTYzN2FkMCIsImlzcyI6IjAwMDAwMDAxLTAwMDAtMDAwMC1jMDAwLTAwMDAwMD AwMDAwMEAyYzQzOTMzMC02ODVlLTRjMTMtODE3Yi1lMDU3Yjk2MzdhZDAiLCJuYmYiOjEzNTI2NjU2NDUsImV4cCI6MTM1MjcwODg0NSwiYXBwY3R4c2VuZG VyIjoiMDAwMDAwMDMtMDAwMC0wZmYxLWNlMDAtMDAwMDAwMDAwMDDJjNDM5MzMwLTY4UwNTdiOTYzN2FkMCIsImFwcGN0eCI6IntcIkNhY2hlS2V5X CI6XCJCU2lLOFNmQS9lVk5lTU10SUpjVkJPM2xJNUxYY1BjN0p3SUcyWGNqWDR3PVwiLFwiU2VjdXJpdHlUb2tlblNlcnZpY2VVcmlcIjpcImh0dHBzOi8vYWNjb3Vud HMuYWNjZXNzY29udHJvbC53aW5kb3dzLm5ldC90b2tlbnMvT0F1dGgvMlwifSIsInJlZnJlc2h0b2tlbiI6IklBQUFBS0JDb1Bwby1FVm9PZ3dBMGZ3SDVQV3dyY29PR3 BGSHdpVW1CMnpBZjRjMXdoeFFzOXlWRlVtcWNqNmYyZ2JTRF9CM3dPakktRXN2b2dWVWVQeXBtMjF5RlQ3VkxFdW5OSW1rT1RxeHFtb1BwSE9SU3F0c2pXaEh OdnUxM0ppVmNGZzh2UEFyMl9HbFFCNjBQVThQdEVUVlpjWXpCcExhY3hzNjNlVVdMajBTY0lQMGwzUW12dENTVEdidlRqUW1hR3RGaVZYQnZwLXhQN1RuZnl kRUJUUG9hTDNDcERoQXA5TVhMNXpsRVIxbUtBdDN6bEEtSXpQSzdRTmxyOVJ5RnVPTnJGZmtSRnhyRHNBTDJMS0hPZ2pkZVM5Y0VHWnpZdG9odkdWRFFiVW ptaFlxM3FueHYyM09qX25idm9KNUNJQXBTOTVMUTNXVkwyaFJKQlltUHVIQ1Z3emhjZG12QlJJNURJZVNYb25RR2d5blNVYU9vUUtheUg2b1R6RzcwSWljaUtSNm 5FMzJZYnhhaGJzdm1XOGszblpvaTV4TDdfa0JXSUZjQXh0Ny1sMUJxTEFockpoZEliZ0dVa1VpVGk5d3JJVm9KZ0RDTDNxSzZucGNHdm4xbGdRZWNBbFpkeG5qOGl tcmdGVmRmNDVGa1EyQTZTOTJEakVjWE1odUZwakE2aHFpSzdHRU85ZnEwM0tER0tjIiwiaXNicm93c2VyaG9zdGVkYXBwIjoidHJ1ZSJ9
  • 18. OAuth2 Authorization Flows • Resource Owner Password Credentials • Client Credentials • Authorization Code • Implicit Grant
  • 19. Azure Active Directory • Active Directory hosted in Azure • Azure AD – a sort of DC Lite • Can synchronize with on-prem (DirSync, ADFS etc.) • Azure AD knows about users and groups • Now supports Applications • AAD is replacing ACS (Access Control Services) used by SharePoint client APIs • Office365 APIs use AAD and OAuth2 • Make yourself known to AAD by registering your app • OAuth Sandbox: https://oauthplay.azurewebsites.net/
  • 20. Three ways to configure • Azure portal (improvements coming) • Add Connected Service in Visual Studio • https://apps.dev.microsoft.com/
  • 22.
  • 23. ADAL • ADAL – Active Directory Authentication Library • Install-Package Microsoft.Identity.Model.Clients.ActiveDirectory • V1 supports ACS, V2 is AAD only – now V3 • Available in several forms • JavaScript version ADAL.js • Angular.js bindings • Underpins authorization in other libraries and plug-ins • “Next Generation” is called MSAL – Microsoft Authentication Library
  • 24. Active Directory Authentication Libraries Target V1 V2 (current) V3 (preview) .NET ADAL.NET ADAL.NET ADAL.NET Android ADAL.Android ADAL.NET/Xamarin iOS ADAL.objC ADAL.NET/Xamarin MAC ADAL.objC ADAL.NET/Xamarin JavaScript ADAL.JS ADAL.JS JavaScript Mobile (Cordova) O365auth.js O365auth.js or ADAL.JS ADAL Cordova plugin 0.6.2
  • 25. “If only there was some way we could use that JavaScript library and build a mobile app that just somehow worked across Windows, Android and iOS devices without me having to learn new programming languages and tooling and all that other stuff”
  • 26. Native Web Easy deployment Native look and feel, performance Web apps Codegen /cross- compilers Native vs. Web HTML5 Hybrid
  • 27. What is Cordova (aka PhoneGap)? • Platform for developing hybrid apps with web technology (HTML, CSS and JavaScript) delivered to client device as a package which behaves like a native application • An open source collection of JavaScript device APIs (plug-ins) to give access to hardware features • Bridges the “Gap” between phone capabilities and standard JavaScript APIs • Toolsets built on top of Cordova • PhoneGap (Abode) • AppBuilder (Telerik) • VSTAC (VS-TACO) 28
  • 28. Reasons to use HTML5 Hybrid Apps • Code re-use across platforms – one code-base, skill-set • Prototype and build quickly (low cost) • Use widely available web development skills • Large JS community and frameworks • HTML5 gives limited access to device functions (hence PhoneGap) • Great option for LOB apps • Access to mobile marketplace like native • Users perceive it as an “App” • Large number of apps in app stores are actually hybrid HTML5 apps
  • 29. Visual Studio Tools for Apache Cordova • Acquire all required 3rd party dependencies • Configure everything to allow you to build/deploy for the Android, iOS, and Windows platforms • Debug apps running on Android and Windows Store • Easily add native device capabilities through plug-ins • Select “Cross Platform Mobile Development” option when installing Visual Studio
  • 30. Command Line Tools • The “modern” development tools: Git, Grunt, Gulp, Node and Code • npm install –g cordova-cli • npm install –g ionic@beta • ionic start myproject • Ionic serve • etc. etc.
  • 31. DEMO: ADDING OFFICE 365 API TO A CORDOVA CROSS-PLATFORM APP
  • 32.
  • 33. ADAL Cordova Plugin • Current version 0.6.2 recommended (not the NPM version which is at 0.6.0/0.6.1) • Uses the native ADALs for iOS/objective C, Android and .NET • Can make use of platform capabilities such as secure token caching • Refresh token is handled for you • Not currently supporting Ripple emulator (“I Haz Cheeseburger”) • To deploy to Windows Phone 8.1 you may need to deploy from the child project in platformswindows
  • 34. Microsoft Graph API https://graph.microsoft.com/ USERS FILES MAIL CALENDA R GROUPS Insights and relationships from Office Graph TASKS • Formerly known as Office 365 Unified API • One REST URL namespace (https://graph.microsoft.com) • One token
  • 36. DEMO: USING THE MICROSOFT GRAPH SAMPLE CODE: HTTP://GITHUB.COM/OFFICEDEV/PNP/SAMPLES/MICROS OFTGRAPH.CORDOVA.MOBILE
  • 37. Give Your Apps a Professional Look! • jQuery Mobile (open source) • Kendo UI Mobile (commercial, recently open-sourced) • Ionic (+ angular.js) – Use NuGet package IonicVS2015 or Ionic CLI • AvailableLight – minimalist solution for learning (http://github.com/SPDoctor/AvailableLightDemo) * Other frameworks are available  - these are specifically designed for mobile
  • 38. Conclusions • Let’s re-use our JavaScript and REST API skills • View APIs as just a time saver to wrap the REST calls • Learn once, use anywhere • Office 365 API allows us to deliver business benefit where it’s needed • Microsoft Graph will make it even better • Changing fast – need to be agile • Spread the word – mobile first  spca.biz/ZUA6
  • 39. Recommended Reading: • Office 365 Dev Center (http://dev.office.com/) • Github.com/officedev • Patterns and Practices (https://github.com/OfficeDev/PnP) • Blogs.office.com/dev (podshow) • Visual Studio TACO dev blog: (http://taco.visualstudio.com/)