Advanced Windows 10 development with the Office 365

  • Slides: 42
Download presentation

Advanced Windows 10 development with the Office 365 APIs Andrew Coates - @coatsy DEV

Advanced Windows 10 development with the Office 365 APIs Andrew Coates - @coatsy DEV 335

Agenda Introduction Universal App projects Integrating Office 365 APIs

Agenda Introduction Universal App projects Integrating Office 365 APIs

Vision z

Vision z

Developer vision

Developer vision

Universal Windows Platform

Universal Windows Platform

A bigger opportunity with one Windows 10

A bigger opportunity with one Windows 10

…and one app platform Mobile Holographic PC Console Surface Hub Devices +Io. T Adaptive

…and one app platform Mobile Holographic PC Console Surface Hub Devices +Io. T Adaptive User Interface Natural User Inputs SDK + Services One Store + One Dev Center Full Support for Existing Code

Tuned for every form factor

Tuned for every form factor

Adaptive UX

Adaptive UX

Tailored experiences

Tailored experiences

Universal Windows 8. 1 apps #if WINDOWS_APP Resource. Loader loader = new Resource. Loader();

Universal Windows 8. 1 apps #if WINDOWS_APP Resource. Loader loader = new Resource. Loader(); string about = loader. Get. String("Settings. Label/Text"); string privacy = loader. Get. String("Privacy. Settings/Text"); string options = loader. Get. String("Settings/Text"); ISettings. Service settings = container. Register. Settings. Service(); settings. Register. Flyout. Command<About. View. Model>(about); settings. Register. Flyout. Command<Privacy. Policy. View. Model>(p rivacy); settings. Register. Flyout. Command<Settings. View. Model>(option s); #endif

One binary for every device No more shared project and specific platforms project No

One binary for every device No more shared project and specific platforms project No more conditional code Only one Store The Universal Windows Platform is available on every Windows 10 device

Universal Windows Platform It’s a collection of contracts and extensions When you create an

Universal Windows Platform It’s a collection of contracts and extensions When you create an app you target a version of the UWP, not of the operating system <Dependencies> <Target. Device. Family Name="Windows. Universal" Min. Version="10. 0. 10069. 0" Max. Version. Tested="10. 0. 10166. 0" /> </Dependencies>

Platform extensions SDKs to add specific platform APIs on top of the Universal Windows

Platform extensions SDKs to add specific platform APIs on top of the Universal Windows platform

Integrating Office 365

Integrating Office 365

Add Office 365 to Universal App Add Connected Service Registers application in Azure AD

Add Office 365 to Universal App Add Connected Service Registers application in Azure AD and imports necessary assemblies Create a data source XAML makes heavy use of data binding, embrace that paradigm Stateful client Initiate login/consent and store Discovery Context

Adding Connected Services

Adding Connected Services

Adding Connected Services

Adding Connected Services

Add Connected Service Installs Nu. Get Packages for Office 365 and dependencies

Add Connected Service Installs Nu. Get Packages for Office 365 and dependencies

OAuth Implementation Use Web Account Manager when… In most scenarios as this is the

OAuth Implementation Use Web Account Manager when… In most scenarios as this is the default for connected service wizard Your app targets Windows 10 and/or multiple logins (see example) Use Web Authentication Broker when… Your app uses AAD and ADFS only Your app targets Win 7 and/or i. OS/Android (via Xamarin) You need to target authentication flows not supported by WAM 21

Authentication Compared Web Account Manager var web. Token. Request = new Web. Token. Request(aad.

Authentication Compared Web Account Manager var web. Token. Request = new Web. Token. Request(aad. Account. Provider, String. Empty, CLIENT_ID, Web. Token. Request. Prompt. Type. Force. Authentication); web. Token. Request. Properties. Add("authority", AUTHORITY); web. Token. Request. Properties. Add("resource", resource. Id); web. Token. Request. Result = await Web. Authentication. Core. Manager. Request. Token. Async(web. Token. Request); Web Authentication Broker var authentication. Context = new Authentication. Context(String. Format(AUTHORITY, TENANT)); var access. Token = (await context. Acquire. Token. Async(resource. Id, CLIENT_ID, RETURN_URI)). Access. Token;

Universal App template and Authentication demo

Universal App template and Authentication demo

Office 365 Service Communication “Client” objects for each service Exchange. Client Share. Point. Client

Office 365 Service Communication “Client” objects for each service Exchange. Client Share. Point. Client Constructor takes a “token getter” function Discovery. Context wraps an Authentication. Context has methods for getting tokens

“Client” object constructor example return new Exchange. Client(Exchange. Service. Endpoint. Uri, async () =>

“Client” object constructor example return new Exchange. Client(Exchange. Service. Endpoint. Uri, async () => { return (await _discovery. Context. Authentication. Context. Acquire. Token. Silent. Async( Exchange. Service. Resource. Id, _discovery. Context. App. Identity. Client. Id, new Active. Directory. User. Identifier( dcr. User. Id, User. Identifier. Type. Unique. Id) ) ). Access. Token; });

Client Object exposes properties Most are IEnumerable<T> collections Designed much like Entity Framework Client

Client Object exposes properties Most are IEnumerable<T> collections Designed much like Entity Framework Client == Data. Context IEnumerable<T> entities Includes common CRUD operations

Office 365 UWP App demo

Office 365 UWP App demo

Jordan Knight Xamling jakkaj@xamling. net @jakkaj

Jordan Knight Xamling jakkaj@xamling. net @jakkaj

Day Bar See your day in a single glance Office 365 UWP + serial

Day Bar See your day in a single glance Office 365 UWP + serial port access Arduino Led strip (and some other bits and bobs)

Make(er) one yourself! Find all the instructions, links and components (more links) at https:

Make(er) one yourself! Find all the instructions, links and components (more links) at https: //github. com/jakkaj/daybar It’s pretty simple… Some basic wiring Some C code (but not much!) Some C#

Quick run through Jordan Knight

Quick run through Jordan Knight

Day Bar code and links Find all the instructions, links and components (more links)

Day Bar code and links Find all the instructions, links and components (more links) at https: //github. com/jakkaj/daybar Arduino VS plugin: http: //www. visualmicro. com/ Office 365 Windows starter: https: //github. com/Office. Dev/O 365 -Windows-Start Remember: you need an Office 365 developer account (free with Bizspark etc. )

Summary Introduction Universal App projects Integrating Office 365 APIs

Summary Introduction Universal App projects Integrating Office 365 APIs

You want MORE? PRD 322 – A Day in an Office Developer’s Life Yesterday

You want MORE? PRD 322 – A Day in an Office Developer’s Life Yesterday at 09: 45. It’ll be on Channel 9 DEV 326 – Word, Excel, Power. Point Add-ins Yesterday at 17: 00. It’ll be on Channel 9 DEV 327 – Outlook Add-ins. Yesterday at 18: 30. It’ll be on Channel 9 DEV 334 – Windows 10 Development with O 365 APIs This was it.

Getting Started with APIs Mobile dev Code Samples Mobile dev Training videos & hands

Getting Started with APIs Mobile dev Code Samples Mobile dev Training videos & hands on labs Office 365 API documentation

http: //dev. office. com/devprogram

http: //dev. office. com/devprogram

St ar t @Office. Dev https: //www. yammer. com/itpronetwork http: //aka. ms/O 365 Dev.

St ar t @Office. Dev https: //www. yammer. com/itpronetwork http: //aka. ms/O 365 Dev. Show http: //dev. office. com/podcasts http: //officespdev. userv oice. com/

My Ignite

My Ignite

Continue your Ignite learning path Visit Microsoft Virtual Academy for free online training visit

Continue your Ignite learning path Visit Microsoft Virtual Academy for free online training visit https: //www. microsoftvirtualacademy. com Visit Channel 9 to access a wide range of Microsoft training and event recordings https: //channel 9. msdn. com/ Head to the Tech. Net Eval Centre to download trials of the latest Microsoft products http: //Microsoft. com/en-us/evalcenter/

Advanced Windows 10 development with the Office 365 APIs Andrew Coates - @coatsy DEV

Advanced Windows 10 development with the Office 365 APIs Andrew Coates - @coatsy DEV 335

© 2015 Microsoft Corporation. All rights reserved. Microsoft, Windows and other product names are

© 2015 Microsoft Corporation. All rights reserved. Microsoft, Windows and other product names are or may be registered trademarks and/or trademarks in the U. S. and/or other countries. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.