SlideShare ist ein Scribd-Unternehmen logo
1 von 42
SharePoint Saturday Belgium 2016 • October 15 • Brussels Track: IT DEV | Level: 200
Extend your Office 365
environment to cross-platform
apps
Alexander Meijers
PlatinumGoldSilver
SharePoint Saturday Belgium 2016 • October 15 • Brussels
ALEXANDER MEIJERS
Architect @ ETTU
Email : alexander@appzinside.com
a.meijers@ettu.nl
Twitter : ameijers
Facebook : alexander.meijers.5
LinkedIn : alexandermeijers
Apps | Azure | SharePoint | Office 365 | Xamarin
HoloLens | Logic Apps | Cross-platform
Dev | Functional | Architecture | Love to connect
Technology enthousiast | Speaker | Blogger
3 kids | Fitness | Airsoft | Music
SharePoint Saturday Belgium 2016 • October 15 • Brussels
What are we going to build?
SharePoint Saturday Belgium 2016 • October 15 • Brussels
How are we going to build it?
• Cross-platform with Xamarin for Visual Studio
• Implementing ADAL for each device using
DependencyService
• Query User Profile data via SharePoint Online search REST
API
• Represent the data through XAML forms
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Cross-platform with Xamarin for
Visual Studio
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Xamarin [‘zæmərɪn]
• Allows developers using Visual Studio and C# shared codebase to create
cross-platform native applications
• Uses code-sharing strategies to
write code once for all platforms
• Possible to write platform specific code
• Support of platforms as iOS, Android,
Windows 8, Windows Universal App
• Acquired by Microsoft in February 2016
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Code-sharing strategies
• Shared Asset Project (SAP)
• Code becomes part of the platform specific project during compilation
• Platform specific code is possible by using compiler directives
• Easy implementation but no reuse possible
• Portable Class Library (PCL)
• Code becomes class library
• No platform specific code is allowed.
You need to use interfaces
• Rather difficult approach and supports reuse
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Xamarin App development model
iOS App
Xamarin.iOS
(MonoTouch/MonoMac)
iOS API
Android App
Xamarin.Android
(Mono for Android)
Android API
Windows App
Windows API
Shared Asset Project or Portable Class Library
Shared code with
C# projects
Xamarin API
layer
Native Platform
APIs
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Xamarin.Forms App development model
iOS App
Xamarin.iOS
(MonoTouch/MonoMac)
iOS API
Android App
Xamarin.Android
(Mono for Android)
Android API
Windows App
Windows API
Shared Asset Project or Portable Class Library
Xamarin.Forms.Core / Xamarin.Forms.Xaml
Xamarin +
Xamarin.Forms
API layer
Native Platform
APIs
Shared code with
C# projects
SharePoint Saturday Belgium 2016 • October 15 • Brussels
What is needed?
• Windows 8 or higher
• Hyper-V enabled
• Needed for emulators
• Visual Studio 2013 with Update 4 or higher
• Contains the Windows Phone SDK
• Xamarin for Windows
• Xamarin Android Player for Windows
• Only when you want to develop for Android!!
• You will need VirtualBox
(not possible with Hyper-V enabled)
• Update the Android SDK Manager
• Developing for iOS requires
Mac with Mac OS X
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Compiling native code for iOS
• Compiler and simulator runs on a Mac
with Mac OS X
• Xcode IDE needs to be installed
• A Xamarin Mac agent on the Mac is used
to connect to your Windows machine
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Setup the project
• Create a Xamarin project
• Since February 2016 it is
possible to create a
Universal Windows app
• Use Xamarin.Forms Portable project
• Remove any not used projects
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Testing your app•Emulator
•Easy to test for a variety of
devices
•Android simulator is very
slow
•Not able tot test touch for
iOS since Mac desktops do
not have touch
•Other features are not
possible to test like
compass, gyroscope, etc.
•iOS emulator on Windows
available but still needs a
Mac to compile
Device
•Easy to test complex touch
interaction
•Better feel for startup and
responsiveness
•Need of a developer
account (Windows Phone,
Windows 10, iOS)
•Android needs debugging
enabled
•iOS only possible when
using ad-hoc testing or
through the store
XamarinTestCloud
•Test with a large amount of
different devices
•Not able tot test touch for
iOS since Mac desktops do
not have touch
•Other features are not
possible to test like
compass, gyroscope, etc.
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Demo
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Implementing ADAL for each
device
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Active Directory Authentication Library
• Enables developers to easily authenticate users against Azure AD in the cloud or
on-premises AD
• It handles mostly all complexity of the authentication
• Returns access tokens to execute secure API calls
• ADAL should not be confused with MSAL
• Microsoft Identity at //build/2016
• ADAL is the main means when working with Azure AD and ADFS
SharePoint Saturday Belgium 2016 • October 15 • Brussels
ADAL features
• Handles the login screen (including your
organization page)
• Asynchronous support
• Configurable token cache for storing access and
refresh tokens
• Also called “in-memory token cache”
• Automatic token refresh when access token
expires
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Active Directory Authentication LibraryPlatformavailability
• .NET 4.5
• JavaScript
• OSX
• iOS
• Android
• node.js
Canbeusedin
• .NET 4.5 and above
(desktop and web apps)
• .NET Core
• Windows universal apps
• Windows Store apps
• iOS and Android via
Xamarin
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Register your application in Azure AD
• Specify name, type of application
and redirect URL(s)
• Select the permissions to other
applications
• Client ID is generated
• Client ID and Redirect URL
combination is used during
authentication
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Implement authentication with ADAL
AuthenticationContext ac = new
AuthenticationContext(string authority);
• authority  URL of the authority
• Https://login.microsoftonline.com/common
without the tenant id will allow your app to be multi-tenant
Be aware! Some delegated permissions require admin consent
when using multi-tenant apps &prompt=admin_consent
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Implement authentication with ADAL
AuthenticationResult authResult =
AcquireTokenAsync(string resource, string
clientId, Uri redirectUri, IPlatformParameters
parameters));
• resource  the URL of the requested resource
• clientId and redirectUri  Azure AD registration
• parameters  Platform specific parameters
• Attempts to return a token for the requested resource based on caching or
refreshing old tokens
• If necessary an Azure AD sign page is shown to acquire a request token
SharePoint Saturday Belgium 2016 • October 15 • Brussels
PlatformParameters
Platform Parameter(s) Value
iOS Reference to a
UIViewController
UIApplication.SharedApplication.KeyWindow.Root
ViewController
Android Reference to an
Activity
(Activity)Forms.Context
Remark: You will need to override the OnActivityResult
method in MainActivity.cs and call the
WebAuthenticationBrokerContinuationHelper class.
Windows Phone No parameters N/A
Windows 10
(Universal)
PromptBehavior,
OrganizationOnly
PromptBehavior.Auto, false
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Implement authentication with ADAL
• Implement the following in the portable class library project
• Authentication class
• Define the IAuthenticator interface
• Implement per platform the interface and use Authentication class
• Use from your page code the DependencyService class to retrieve the
platform specific implementation of the IAuthenticator interface
var auth = DependencyService.Get<IAuthenticator>();
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Demo
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Query User Profile data via
SharePoint Online search REST API
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Execute the query and processing the results
• HttpClient is used for executing the call to the REST API
• HttpRequestMessage(HttpMethod.Get, [URL])
contains the URL
• Headers are used
• MediaTypeWirhQualityHeaderValue(“application/json”)
• AuthenticationHeaderValue(“Bearer”, accessToken)
• Result from Content.ReadAsStringAsync() as part of
HttpResponseMessage
• Response is parsed and enumerated through json objects
SharePoint Saturday Belgium 2016 • October 15 • Brussels
SharePoint Search Rest API call
https://[domain]/_api/search/query
?querytext='*'
&sourceid='b09a7990-05ea-4af9-81ef-edfab16c4e31'
&selectproperties='AccountName,UserName,AboutMe,
Department,Interest,JobTitle,PastProjects,Respon
sibilities,Schools,Skills,WorkEmail,PictureURL,P
referredName'
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Search results
• Search results back in json
as specified in the header
• Results found in
[PrimaryQueryResult][RelevantResults][Table][Rows]
• Values depends on selectproperties part of URL
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Get the profile picture
• Authentication token will not work for the “my-domain”
• Http error 401, Unauthorized
• Use separate call to form page to retrieve
the image by account and original URL
https://[domain]/_layouts/15/userphoto.aspx?
size=S
&accountname=alexander@appzinside.com
&url=https://[my-domain]/User Photos/Profielafbeeldingen/
alexander_appzinside_com_MThumb.jpg
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Demo
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Represent the data through XAML
forms
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Xamarin.Forms
• Write user interface code for
all platforms at once
• Framework exists of
• Xamarin.Forms.Core
• Xamarin.Forms.Xaml
• A single XAML file is used for all platforms
• Controls are translated to platform specific
controls
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Xamarin.Forms controls
• All kind of XAML controls available
• Layouts like StackLayout, AbsoluteLayout, RelativeLayout,
Grid, ScrollView
• Display data through ListView and TableView
• Controls like Image, Label, Entry, Editor, …
• Property binding in XAML through
property=“{Binding [content property name]}”
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Master detail model
• Contains of three XAML forms
• MasterDetailPage
• ProfileListPage
• UserProfilePage
• Delegate ProfileSelected used to
report item selected to
MasterDetailPage
• Sets the current profile data on the
UserProfilePage
• Changes to model to detail view
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Bind thumbnail through XAML
• Define a class to convert to Xamarin.Forms.ImageSource
• Include the class through ResourceDictionary in XAML
page
<ResourceDictionary>
<local:ByteToImageFieldConverter x:Key="btiConverter" />
</ResourceDictionary>
<Image WidthRequest="50" HeightRequest="50" Source="{Binding
Picture, Converter={StaticResource btiConverter}}" />
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Demo
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Wrap-up
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Wrap-up
• Xamarin platform is great for developing cross-platform apps
• ADAL makes it really easy to integrate authentication without the
knowledge and difficulty of the process
• Office 365 Search REST API allows you easily retrieve data like profiles
from SharePoint Online
• You need knowledge of XAML to create pages in your app
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Questions?
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Thank You!
Feedback
http://spsbe.be

Weitere ähnliche Inhalte

Was ist angesagt?

aOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 DevelopmentaOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 DevelopmentSébastien Levert
 
aOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
aOS Canadian Tour - Toronto - From SharePoint to Office 365 DevelopmentaOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
aOS Canadian Tour - Toronto - From SharePoint to Office 365 DevelopmentSébastien Levert
 
Spca2014 keynote johnson
Spca2014 keynote johnsonSpca2014 keynote johnson
Spca2014 keynote johnsonNCCOMMS
 
ESPC Webinar - From SharePoint to Office 365 Development
ESPC Webinar - From SharePoint to Office 365 DevelopmentESPC Webinar - From SharePoint to Office 365 Development
ESPC Webinar - From SharePoint to Office 365 DevelopmentSébastien Levert
 
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 DevelopmentSharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 DevelopmentSébastien Levert
 
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 DevelopmentSharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 DevelopmentSébastien Levert
 
SharePoint Fest DC 2018 - From SharePoint to Office 365 Development
SharePoint Fest DC 2018 - From SharePoint to Office 365 DevelopmentSharePoint Fest DC 2018 - From SharePoint to Office 365 Development
SharePoint Fest DC 2018 - From SharePoint to Office 365 DevelopmentSébastien Levert
 
Forge - DevCon 2016: Developing & Deploying Secure, Scalable Applications on ...
Forge - DevCon 2016: Developing & Deploying Secure, Scalable Applications on ...Forge - DevCon 2016: Developing & Deploying Secure, Scalable Applications on ...
Forge - DevCon 2016: Developing & Deploying Secure, Scalable Applications on ...Autodesk
 
Prepararsi a spostare le proprie applicazioni share point su office 365
Prepararsi a spostare le proprie applicazioni share point su office 365Prepararsi a spostare le proprie applicazioni share point su office 365
Prepararsi a spostare le proprie applicazioni share point su office 365Giuseppe Marchi
 
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 DevelopmentSébastien Levert
 
SPTechCon Austin 2019 - From SharePoint to Office 365 development
SPTechCon Austin 2019 - From SharePoint to Office 365 developmentSPTechCon Austin 2019 - From SharePoint to Office 365 development
SPTechCon Austin 2019 - From SharePoint to Office 365 developmentSébastien Levert
 
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
Cloud-Based App Development using SharePoint 2013, Office 365 and AzureCloud-Based App Development using SharePoint 2013, Office 365 and Azure
Cloud-Based App Development using SharePoint 2013, Office 365 and AzureTobias Lekman
 
Building strong foundations apex enterprise patterns
Building strong foundations apex enterprise patternsBuilding strong foundations apex enterprise patterns
Building strong foundations apex enterprise patternsandyinthecloud
 
Building Push Triggers for Logic Apps
Building Push Triggers for Logic AppsBuilding Push Triggers for Logic Apps
Building Push Triggers for Logic AppsBizTalk360
 
Digital Publishing Made Easy with the OSCI Toolkit
 Digital Publishing Made Easy with the OSCI Toolkit Digital Publishing Made Easy with the OSCI Toolkit
Digital Publishing Made Easy with the OSCI ToolkitKyle Jaebker
 
Forge - DevCon 2016: Free your design data
Forge - DevCon 2016: Free your design dataForge - DevCon 2016: Free your design data
Forge - DevCon 2016: Free your design dataAutodesk
 
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012NCCOMMS
 
#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?
#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?
#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?Vincent Biret
 
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...NCCOMMS
 
The Adventures of Azure Functions and Microsoft Graph
The Adventures of Azure Functions and Microsoft GraphThe Adventures of Azure Functions and Microsoft Graph
The Adventures of Azure Functions and Microsoft GraphEric Overfield
 

Was ist angesagt? (20)

aOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 DevelopmentaOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
aOS Canadian Tour - Ottawa - From SharePoint to Office 365 Development
 
aOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
aOS Canadian Tour - Toronto - From SharePoint to Office 365 DevelopmentaOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
aOS Canadian Tour - Toronto - From SharePoint to Office 365 Development
 
Spca2014 keynote johnson
Spca2014 keynote johnsonSpca2014 keynote johnson
Spca2014 keynote johnson
 
ESPC Webinar - From SharePoint to Office 365 Development
ESPC Webinar - From SharePoint to Office 365 DevelopmentESPC Webinar - From SharePoint to Office 365 Development
ESPC Webinar - From SharePoint to Office 365 Development
 
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 DevelopmentSharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
SharePoint Saturday Calgary 2017 - From SharePoint to Office 365 Development
 
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 DevelopmentSharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
SharePoint Fest Seattle 2018 - From SharePoint to Office 365 Development
 
SharePoint Fest DC 2018 - From SharePoint to Office 365 Development
SharePoint Fest DC 2018 - From SharePoint to Office 365 DevelopmentSharePoint Fest DC 2018 - From SharePoint to Office 365 Development
SharePoint Fest DC 2018 - From SharePoint to Office 365 Development
 
Forge - DevCon 2016: Developing & Deploying Secure, Scalable Applications on ...
Forge - DevCon 2016: Developing & Deploying Secure, Scalable Applications on ...Forge - DevCon 2016: Developing & Deploying Secure, Scalable Applications on ...
Forge - DevCon 2016: Developing & Deploying Secure, Scalable Applications on ...
 
Prepararsi a spostare le proprie applicazioni share point su office 365
Prepararsi a spostare le proprie applicazioni share point su office 365Prepararsi a spostare le proprie applicazioni share point su office 365
Prepararsi a spostare le proprie applicazioni share point su office 365
 
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
 
SPTechCon Austin 2019 - From SharePoint to Office 365 development
SPTechCon Austin 2019 - From SharePoint to Office 365 developmentSPTechCon Austin 2019 - From SharePoint to Office 365 development
SPTechCon Austin 2019 - From SharePoint to Office 365 development
 
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
Cloud-Based App Development using SharePoint 2013, Office 365 and AzureCloud-Based App Development using SharePoint 2013, Office 365 and Azure
Cloud-Based App Development using SharePoint 2013, Office 365 and Azure
 
Building strong foundations apex enterprise patterns
Building strong foundations apex enterprise patternsBuilding strong foundations apex enterprise patterns
Building strong foundations apex enterprise patterns
 
Building Push Triggers for Logic Apps
Building Push Triggers for Logic AppsBuilding Push Triggers for Logic Apps
Building Push Triggers for Logic Apps
 
Digital Publishing Made Easy with the OSCI Toolkit
 Digital Publishing Made Easy with the OSCI Toolkit Digital Publishing Made Easy with the OSCI Toolkit
Digital Publishing Made Easy with the OSCI Toolkit
 
Forge - DevCon 2016: Free your design data
Forge - DevCon 2016: Free your design dataForge - DevCon 2016: Free your design data
Forge - DevCon 2016: Free your design data
 
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
 
#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?
#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?
#SPFestDc dev302 Is it possible to do #DevOps with the SharePoint Framework?
 
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
 
The Adventures of Azure Functions and Microsoft Graph
The Adventures of Azure Functions and Microsoft GraphThe Adventures of Azure Functions and Microsoft Graph
The Adventures of Azure Functions and Microsoft Graph
 

Andere mochten auch

Design a share point 2013 architecture – the basics
Design a share point 2013 architecture – the basicsDesign a share point 2013 architecture – the basics
Design a share point 2013 architecture – the basicsAlexander Meijers
 
UX Myths: Knowing them, avoiding them
UX Myths: Knowing them, avoiding themUX Myths: Knowing them, avoiding them
UX Myths: Knowing them, avoiding themBryan Web Agency
 
Opinion - Choosing the right chart
Opinion - Choosing the right chartOpinion - Choosing the right chart
Opinion - Choosing the right chartOso Adinugroho
 
Achmea technight - HoloLens development
Achmea technight  - HoloLens developmentAchmea technight  - HoloLens development
Achmea technight - HoloLens developmentAlexander Meijers
 
QA in Digitalized World Kari Kakkonen WCSQ
QA in Digitalized World Kari Kakkonen WCSQQA in Digitalized World Kari Kakkonen WCSQ
QA in Digitalized World Kari Kakkonen WCSQKari Kakkonen
 
Ingesting Drone Data into Big Data Platforms
Ingesting Drone Data into Big Data Platforms Ingesting Drone Data into Big Data Platforms
Ingesting Drone Data into Big Data Platforms Timothy Spann
 
Monochrome Awards 2016: Winners Wildlife
Monochrome Awards 2016: Winners Wildlife Monochrome Awards 2016: Winners Wildlife
Monochrome Awards 2016: Winners Wildlife maditabalnco
 
Just Jobs, helping blue collared jobs to carve a place in India
Just Jobs, helping blue collared jobs to carve a place in IndiaJust Jobs, helping blue collared jobs to carve a place in India
Just Jobs, helping blue collared jobs to carve a place in IndiaJust.Jobs
 
Definitive Guide to Local SEO Ranking Factors - SMX West 2017
Definitive Guide to Local SEO Ranking Factors - SMX West 2017Definitive Guide to Local SEO Ranking Factors - SMX West 2017
Definitive Guide to Local SEO Ranking Factors - SMX West 2017Daniel Leibson
 
Build business applications with HoloLens and Cloud
Build business applications with HoloLens and CloudBuild business applications with HoloLens and Cloud
Build business applications with HoloLens and CloudAlexander Meijers
 
Advertising Insights through Segmented Analytics - Adobe Summit 2017
Advertising Insights through Segmented Analytics  - Adobe Summit 2017Advertising Insights through Segmented Analytics  - Adobe Summit 2017
Advertising Insights through Segmented Analytics - Adobe Summit 2017Chris Haleua
 

Andere mochten auch (13)

Design a share point 2013 architecture – the basics
Design a share point 2013 architecture – the basicsDesign a share point 2013 architecture – the basics
Design a share point 2013 architecture – the basics
 
UX Myths: Knowing them, avoiding them
UX Myths: Knowing them, avoiding themUX Myths: Knowing them, avoiding them
UX Myths: Knowing them, avoiding them
 
Visualization in design
Visualization in designVisualization in design
Visualization in design
 
Opinion - Choosing the right chart
Opinion - Choosing the right chartOpinion - Choosing the right chart
Opinion - Choosing the right chart
 
Achmea technight - HoloLens development
Achmea technight  - HoloLens developmentAchmea technight  - HoloLens development
Achmea technight - HoloLens development
 
Powerlabs Profile
Powerlabs ProfilePowerlabs Profile
Powerlabs Profile
 
QA in Digitalized World Kari Kakkonen WCSQ
QA in Digitalized World Kari Kakkonen WCSQQA in Digitalized World Kari Kakkonen WCSQ
QA in Digitalized World Kari Kakkonen WCSQ
 
Ingesting Drone Data into Big Data Platforms
Ingesting Drone Data into Big Data Platforms Ingesting Drone Data into Big Data Platforms
Ingesting Drone Data into Big Data Platforms
 
Monochrome Awards 2016: Winners Wildlife
Monochrome Awards 2016: Winners Wildlife Monochrome Awards 2016: Winners Wildlife
Monochrome Awards 2016: Winners Wildlife
 
Just Jobs, helping blue collared jobs to carve a place in India
Just Jobs, helping blue collared jobs to carve a place in IndiaJust Jobs, helping blue collared jobs to carve a place in India
Just Jobs, helping blue collared jobs to carve a place in India
 
Definitive Guide to Local SEO Ranking Factors - SMX West 2017
Definitive Guide to Local SEO Ranking Factors - SMX West 2017Definitive Guide to Local SEO Ranking Factors - SMX West 2017
Definitive Guide to Local SEO Ranking Factors - SMX West 2017
 
Build business applications with HoloLens and Cloud
Build business applications with HoloLens and CloudBuild business applications with HoloLens and Cloud
Build business applications with HoloLens and Cloud
 
Advertising Insights through Segmented Analytics - Adobe Summit 2017
Advertising Insights through Segmented Analytics  - Adobe Summit 2017Advertising Insights through Segmented Analytics  - Adobe Summit 2017
Advertising Insights through Segmented Analytics - Adobe Summit 2017
 

Ähnlich wie Spsbe2016 extend your office 365 environement to cross-platform apps

SharePoint Saturday Belgium 2016
SharePoint Saturday Belgium 2016SharePoint Saturday Belgium 2016
SharePoint Saturday Belgium 2016Rick Van Rousselt
 
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Bram de Jager
 
Develop business apps cross-platform development using visual studio with x...
Develop business apps   cross-platform development using visual studio with x...Develop business apps   cross-platform development using visual studio with x...
Develop business apps cross-platform development using visual studio with x...Alexander Meijers
 
Connector API Apps
Connector API AppsConnector API Apps
Connector API AppsBizTalk360
 
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016Waldek Mastykarz
 
Keynote speech
Keynote speechKeynote speech
Keynote speechBizTalk360
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013SPC Adriatics
 
aOS Canadian Tour - Quebec - From SharePoint to Office 365 Development
aOS Canadian Tour  - Quebec - From SharePoint to Office 365 DevelopmentaOS Canadian Tour  - Quebec - From SharePoint to Office 365 Development
aOS Canadian Tour - Quebec - From SharePoint to Office 365 DevelopmentSébastien Levert
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Talbott Crowell
 
Xamarin.Forms Bootcamp
Xamarin.Forms BootcampXamarin.Forms Bootcamp
Xamarin.Forms BootcampMike Melusky
 
Windows Azure Active Directory: Identity Management in the Cloud
Windows Azure Active Directory: Identity Management in the CloudWindows Azure Active Directory: Identity Management in the Cloud
Windows Azure Active Directory: Identity Management in the CloudChris Dufour
 
SP Apps, New Model, New App Store: The Office Store
SP Apps, New Model, New App Store: The Office StoreSP Apps, New Model, New App Store: The Office Store
SP Apps, New Model, New App Store: The Office StoreJuan Carlos Gonzalez
 
Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appTalbott Crowell
 
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...UA Mobile
 
#spsbe Get Typing with Typescript
#spsbe Get Typing with Typescript#spsbe Get Typing with Typescript
#spsbe Get Typing with TypescriptDavid Opdendries
 
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
 
Azure App Service at Let's Dev This
Azure App Service at Let's Dev ThisAzure App Service at Let's Dev This
Azure App Service at Let's Dev ThisGuy Barrette
 
NextGen Portal for Your Organization
NextGen Portal for Your OrganizationNextGen Portal for Your Organization
NextGen Portal for Your OrganizationWaldek Mastykarz
 

Ähnlich wie Spsbe2016 extend your office 365 environement to cross-platform apps (20)

SharePoint Saturday Belgium 2016
SharePoint Saturday Belgium 2016SharePoint Saturday Belgium 2016
SharePoint Saturday Belgium 2016
 
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
 
Develop business apps cross-platform development using visual studio with x...
Develop business apps   cross-platform development using visual studio with x...Develop business apps   cross-platform development using visual studio with x...
Develop business apps cross-platform development using visual studio with x...
 
Connector API Apps
Connector API AppsConnector API Apps
Connector API Apps
 
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
 
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
 
Keynote speech
Keynote speechKeynote speech
Keynote speech
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013
 
aOS Canadian Tour - Quebec - From SharePoint to Office 365 Development
aOS Canadian Tour  - Quebec - From SharePoint to Office 365 DevelopmentaOS Canadian Tour  - Quebec - From SharePoint to Office 365 Development
aOS Canadian Tour - Quebec - From SharePoint to Office 365 Development
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?
 
Xamarin.Forms Bootcamp
Xamarin.Forms BootcampXamarin.Forms Bootcamp
Xamarin.Forms Bootcamp
 
Windows Azure Active Directory: Identity Management in the Cloud
Windows Azure Active Directory: Identity Management in the CloudWindows Azure Active Directory: Identity Management in the Cloud
Windows Azure Active Directory: Identity Management in the Cloud
 
SP Apps, New Model, New App Store: The Office Store
SP Apps, New Model, New App Store: The Office StoreSP Apps, New Model, New App Store: The Office Store
SP Apps, New Model, New App Store: The Office Store
 
Developing a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint appDeveloping a Provider Hosted SharePoint app
Developing a Provider Hosted SharePoint app
 
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...
 
Azure app services API apps
Azure app services API appsAzure app services API apps
Azure app services API apps
 
#spsbe Get Typing with Typescript
#spsbe Get Typing with Typescript#spsbe Get Typing with Typescript
#spsbe Get Typing with Typescript
 
The new Azure App Service Architecture
The new Azure App Service ArchitectureThe new Azure App Service Architecture
The new Azure App Service Architecture
 
Azure App Service at Let's Dev This
Azure App Service at Let's Dev ThisAzure App Service at Let's Dev This
Azure App Service at Let's Dev This
 
NextGen Portal for Your Organization
NextGen Portal for Your OrganizationNextGen Portal for Your Organization
NextGen Portal for Your Organization
 

Mehr von Alexander Meijers

Microsoft ignite tour - Create an immersive experience with office 365 data ...
Microsoft ignite tour  - Create an immersive experience with office 365 data ...Microsoft ignite tour  - Create an immersive experience with office 365 data ...
Microsoft ignite tour - Create an immersive experience with office 365 data ...Alexander Meijers
 
Microsoft ignite tour empower your workers using remote assist - theater se...
Microsoft ignite tour   empower your workers using remote assist - theater se...Microsoft ignite tour   empower your workers using remote assist - theater se...
Microsoft ignite tour empower your workers using remote assist - theater se...Alexander Meijers
 
O365 and SharePoint Connect - Create an immersive experience with office 365...
O365 and SharePoint Connect  - Create an immersive experience with office 365...O365 and SharePoint Connect  - Create an immersive experience with office 365...
O365 and SharePoint Connect - Create an immersive experience with office 365...Alexander Meijers
 
Modern workplace conference create an immersive experience with office 365 ...
Modern workplace conference   create an immersive experience with office 365 ...Modern workplace conference   create an immersive experience with office 365 ...
Modern workplace conference create an immersive experience with office 365 ...Alexander Meijers
 
Code motion - Extend visualization of microsoft graph data to hololens applic...
Code motion - Extend visualization of microsoft graph data to hololens applic...Code motion - Extend visualization of microsoft graph data to hololens applic...
Code motion - Extend visualization of microsoft graph data to hololens applic...Alexander Meijers
 
Code europe holobasics - develop your mixed reality hololens app with unity...
Code europe   holobasics - develop your mixed reality hololens app with unity...Code europe   holobasics - develop your mixed reality hololens app with unity...
Code europe holobasics - develop your mixed reality hololens app with unity...Alexander Meijers
 
Code europe holoadvanced - building more advanced mixed reality apps for ho...
Code europe   holoadvanced - building more advanced mixed reality apps for ho...Code europe   holoadvanced - building more advanced mixed reality apps for ho...
Code europe holoadvanced - building more advanced mixed reality apps for ho...Alexander Meijers
 
Azure thursday HoloLens and cognitive services a powerful combination
Azure thursday HoloLens and cognitive services a powerful combinationAzure thursday HoloLens and cognitive services a powerful combination
Azure thursday HoloLens and cognitive services a powerful combinationAlexander Meijers
 
It next summit - holobasics - develop your mixed reality hololens app with un...
It next summit - holobasics - develop your mixed reality hololens app with un...It next summit - holobasics - develop your mixed reality hololens app with un...
It next summit - holobasics - develop your mixed reality hololens app with un...Alexander Meijers
 
SharePoint Unite - Build business applications with HoloLens and Cloud
SharePoint Unite - Build business applications with HoloLens and CloudSharePoint Unite - Build business applications with HoloLens and Cloud
SharePoint Unite - Build business applications with HoloLens and CloudAlexander Meijers
 
HoloLens inspiration session
HoloLens inspiration sessionHoloLens inspiration session
HoloLens inspiration sessionAlexander Meijers
 
Holo basics develop your mixed reality hololens app with unity and visual s...
Holo basics   develop your mixed reality hololens app with unity and visual s...Holo basics   develop your mixed reality hololens app with unity and visual s...
Holo basics develop your mixed reality hololens app with unity and visual s...Alexander Meijers
 
Build your own yammer app @ Collab365
Build your own yammer app @ Collab365Build your own yammer app @ Collab365
Build your own yammer app @ Collab365Alexander Meijers
 
SharePoint 2013 for internet websites
SharePoint 2013 for internet websitesSharePoint 2013 for internet websites
SharePoint 2013 for internet websitesAlexander Meijers
 
Sp24 design a share point 2013 architecture – the basics
Sp24   design a share point 2013 architecture – the basicsSp24   design a share point 2013 architecture – the basics
Sp24 design a share point 2013 architecture – the basicsAlexander Meijers
 
Share point 2013 and sql server 2012 what to choose
Share point 2013 and sql server 2012   what to chooseShare point 2013 and sql server 2012   what to choose
Share point 2013 and sql server 2012 what to chooseAlexander Meijers
 
Access share point-2013-data-with-provider-hosted-apps
Access share point-2013-data-with-provider-hosted-appsAccess share point-2013-data-with-provider-hosted-apps
Access share point-2013-data-with-provider-hosted-appsAlexander Meijers
 
Share point unvealed apps in sharepoint 2013
Share point unvealed   apps in sharepoint 2013Share point unvealed   apps in sharepoint 2013
Share point unvealed apps in sharepoint 2013Alexander Meijers
 

Mehr von Alexander Meijers (20)

Microsoft ignite tour - Create an immersive experience with office 365 data ...
Microsoft ignite tour  - Create an immersive experience with office 365 data ...Microsoft ignite tour  - Create an immersive experience with office 365 data ...
Microsoft ignite tour - Create an immersive experience with office 365 data ...
 
Microsoft ignite tour empower your workers using remote assist - theater se...
Microsoft ignite tour   empower your workers using remote assist - theater se...Microsoft ignite tour   empower your workers using remote assist - theater se...
Microsoft ignite tour empower your workers using remote assist - theater se...
 
O365 and SharePoint Connect - Create an immersive experience with office 365...
O365 and SharePoint Connect  - Create an immersive experience with office 365...O365 and SharePoint Connect  - Create an immersive experience with office 365...
O365 and SharePoint Connect - Create an immersive experience with office 365...
 
Modern workplace conference create an immersive experience with office 365 ...
Modern workplace conference   create an immersive experience with office 365 ...Modern workplace conference   create an immersive experience with office 365 ...
Modern workplace conference create an immersive experience with office 365 ...
 
Code motion - Extend visualization of microsoft graph data to hololens applic...
Code motion - Extend visualization of microsoft graph data to hololens applic...Code motion - Extend visualization of microsoft graph data to hololens applic...
Code motion - Extend visualization of microsoft graph data to hololens applic...
 
Code europe holobasics - develop your mixed reality hololens app with unity...
Code europe   holobasics - develop your mixed reality hololens app with unity...Code europe   holobasics - develop your mixed reality hololens app with unity...
Code europe holobasics - develop your mixed reality hololens app with unity...
 
Code europe holoadvanced - building more advanced mixed reality apps for ho...
Code europe   holoadvanced - building more advanced mixed reality apps for ho...Code europe   holoadvanced - building more advanced mixed reality apps for ho...
Code europe holoadvanced - building more advanced mixed reality apps for ho...
 
Azure thursday HoloLens and cognitive services a powerful combination
Azure thursday HoloLens and cognitive services a powerful combinationAzure thursday HoloLens and cognitive services a powerful combination
Azure thursday HoloLens and cognitive services a powerful combination
 
It next summit - holobasics - develop your mixed reality hololens app with un...
It next summit - holobasics - develop your mixed reality hololens app with un...It next summit - holobasics - develop your mixed reality hololens app with un...
It next summit - holobasics - develop your mixed reality hololens app with un...
 
SharePoint Unite - Build business applications with HoloLens and Cloud
SharePoint Unite - Build business applications with HoloLens and CloudSharePoint Unite - Build business applications with HoloLens and Cloud
SharePoint Unite - Build business applications with HoloLens and Cloud
 
HoloLens inspiration session
HoloLens inspiration sessionHoloLens inspiration session
HoloLens inspiration session
 
Holo basics develop your mixed reality hololens app with unity and visual s...
Holo basics   develop your mixed reality hololens app with unity and visual s...Holo basics   develop your mixed reality hololens app with unity and visual s...
Holo basics develop your mixed reality hololens app with unity and visual s...
 
Build your own yammer app @ Collab365
Build your own yammer app @ Collab365Build your own yammer app @ Collab365
Build your own yammer app @ Collab365
 
An introduction to DevOps
An introduction to DevOpsAn introduction to DevOps
An introduction to DevOps
 
SharePoint 2013 for internet websites
SharePoint 2013 for internet websitesSharePoint 2013 for internet websites
SharePoint 2013 for internet websites
 
Build you own yammer app
Build you own yammer appBuild you own yammer app
Build you own yammer app
 
Sp24 design a share point 2013 architecture – the basics
Sp24   design a share point 2013 architecture – the basicsSp24   design a share point 2013 architecture – the basics
Sp24 design a share point 2013 architecture – the basics
 
Share point 2013 and sql server 2012 what to choose
Share point 2013 and sql server 2012   what to chooseShare point 2013 and sql server 2012   what to choose
Share point 2013 and sql server 2012 what to choose
 
Access share point-2013-data-with-provider-hosted-apps
Access share point-2013-data-with-provider-hosted-appsAccess share point-2013-data-with-provider-hosted-apps
Access share point-2013-data-with-provider-hosted-apps
 
Share point unvealed apps in sharepoint 2013
Share point unvealed   apps in sharepoint 2013Share point unvealed   apps in sharepoint 2013
Share point unvealed apps in sharepoint 2013
 

Kürzlich hochgeladen

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 

Kürzlich hochgeladen (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 

Spsbe2016 extend your office 365 environement to cross-platform apps

  • 1. SharePoint Saturday Belgium 2016 • October 15 • Brussels Track: IT DEV | Level: 200 Extend your Office 365 environment to cross-platform apps Alexander Meijers
  • 3. SharePoint Saturday Belgium 2016 • October 15 • Brussels ALEXANDER MEIJERS Architect @ ETTU Email : alexander@appzinside.com a.meijers@ettu.nl Twitter : ameijers Facebook : alexander.meijers.5 LinkedIn : alexandermeijers Apps | Azure | SharePoint | Office 365 | Xamarin HoloLens | Logic Apps | Cross-platform Dev | Functional | Architecture | Love to connect Technology enthousiast | Speaker | Blogger 3 kids | Fitness | Airsoft | Music
  • 4. SharePoint Saturday Belgium 2016 • October 15 • Brussels What are we going to build?
  • 5. SharePoint Saturday Belgium 2016 • October 15 • Brussels How are we going to build it? • Cross-platform with Xamarin for Visual Studio • Implementing ADAL for each device using DependencyService • Query User Profile data via SharePoint Online search REST API • Represent the data through XAML forms
  • 6. SharePoint Saturday Belgium 2016 • October 15 • Brussels Cross-platform with Xamarin for Visual Studio
  • 7. SharePoint Saturday Belgium 2016 • October 15 • Brussels Xamarin [‘zæmərɪn] • Allows developers using Visual Studio and C# shared codebase to create cross-platform native applications • Uses code-sharing strategies to write code once for all platforms • Possible to write platform specific code • Support of platforms as iOS, Android, Windows 8, Windows Universal App • Acquired by Microsoft in February 2016
  • 8. SharePoint Saturday Belgium 2016 • October 15 • Brussels Code-sharing strategies • Shared Asset Project (SAP) • Code becomes part of the platform specific project during compilation • Platform specific code is possible by using compiler directives • Easy implementation but no reuse possible • Portable Class Library (PCL) • Code becomes class library • No platform specific code is allowed. You need to use interfaces • Rather difficult approach and supports reuse
  • 9. SharePoint Saturday Belgium 2016 • October 15 • Brussels Xamarin App development model iOS App Xamarin.iOS (MonoTouch/MonoMac) iOS API Android App Xamarin.Android (Mono for Android) Android API Windows App Windows API Shared Asset Project or Portable Class Library Shared code with C# projects Xamarin API layer Native Platform APIs
  • 10. SharePoint Saturday Belgium 2016 • October 15 • Brussels Xamarin.Forms App development model iOS App Xamarin.iOS (MonoTouch/MonoMac) iOS API Android App Xamarin.Android (Mono for Android) Android API Windows App Windows API Shared Asset Project or Portable Class Library Xamarin.Forms.Core / Xamarin.Forms.Xaml Xamarin + Xamarin.Forms API layer Native Platform APIs Shared code with C# projects
  • 11. SharePoint Saturday Belgium 2016 • October 15 • Brussels What is needed? • Windows 8 or higher • Hyper-V enabled • Needed for emulators • Visual Studio 2013 with Update 4 or higher • Contains the Windows Phone SDK • Xamarin for Windows • Xamarin Android Player for Windows • Only when you want to develop for Android!! • You will need VirtualBox (not possible with Hyper-V enabled) • Update the Android SDK Manager • Developing for iOS requires Mac with Mac OS X
  • 12. SharePoint Saturday Belgium 2016 • October 15 • Brussels Compiling native code for iOS • Compiler and simulator runs on a Mac with Mac OS X • Xcode IDE needs to be installed • A Xamarin Mac agent on the Mac is used to connect to your Windows machine
  • 13. SharePoint Saturday Belgium 2016 • October 15 • Brussels Setup the project • Create a Xamarin project • Since February 2016 it is possible to create a Universal Windows app • Use Xamarin.Forms Portable project • Remove any not used projects
  • 14. SharePoint Saturday Belgium 2016 • October 15 • Brussels Testing your app•Emulator •Easy to test for a variety of devices •Android simulator is very slow •Not able tot test touch for iOS since Mac desktops do not have touch •Other features are not possible to test like compass, gyroscope, etc. •iOS emulator on Windows available but still needs a Mac to compile Device •Easy to test complex touch interaction •Better feel for startup and responsiveness •Need of a developer account (Windows Phone, Windows 10, iOS) •Android needs debugging enabled •iOS only possible when using ad-hoc testing or through the store XamarinTestCloud •Test with a large amount of different devices •Not able tot test touch for iOS since Mac desktops do not have touch •Other features are not possible to test like compass, gyroscope, etc.
  • 15. SharePoint Saturday Belgium 2016 • October 15 • Brussels Demo
  • 16. SharePoint Saturday Belgium 2016 • October 15 • Brussels Implementing ADAL for each device
  • 17. SharePoint Saturday Belgium 2016 • October 15 • Brussels Active Directory Authentication Library • Enables developers to easily authenticate users against Azure AD in the cloud or on-premises AD • It handles mostly all complexity of the authentication • Returns access tokens to execute secure API calls • ADAL should not be confused with MSAL • Microsoft Identity at //build/2016 • ADAL is the main means when working with Azure AD and ADFS
  • 18. SharePoint Saturday Belgium 2016 • October 15 • Brussels ADAL features • Handles the login screen (including your organization page) • Asynchronous support • Configurable token cache for storing access and refresh tokens • Also called “in-memory token cache” • Automatic token refresh when access token expires
  • 19. SharePoint Saturday Belgium 2016 • October 15 • Brussels Active Directory Authentication LibraryPlatformavailability • .NET 4.5 • JavaScript • OSX • iOS • Android • node.js Canbeusedin • .NET 4.5 and above (desktop and web apps) • .NET Core • Windows universal apps • Windows Store apps • iOS and Android via Xamarin
  • 20. SharePoint Saturday Belgium 2016 • October 15 • Brussels Register your application in Azure AD • Specify name, type of application and redirect URL(s) • Select the permissions to other applications • Client ID is generated • Client ID and Redirect URL combination is used during authentication
  • 21. SharePoint Saturday Belgium 2016 • October 15 • Brussels Implement authentication with ADAL AuthenticationContext ac = new AuthenticationContext(string authority); • authority  URL of the authority • Https://login.microsoftonline.com/common without the tenant id will allow your app to be multi-tenant Be aware! Some delegated permissions require admin consent when using multi-tenant apps &prompt=admin_consent
  • 22. SharePoint Saturday Belgium 2016 • October 15 • Brussels Implement authentication with ADAL AuthenticationResult authResult = AcquireTokenAsync(string resource, string clientId, Uri redirectUri, IPlatformParameters parameters)); • resource  the URL of the requested resource • clientId and redirectUri  Azure AD registration • parameters  Platform specific parameters • Attempts to return a token for the requested resource based on caching or refreshing old tokens • If necessary an Azure AD sign page is shown to acquire a request token
  • 23. SharePoint Saturday Belgium 2016 • October 15 • Brussels PlatformParameters Platform Parameter(s) Value iOS Reference to a UIViewController UIApplication.SharedApplication.KeyWindow.Root ViewController Android Reference to an Activity (Activity)Forms.Context Remark: You will need to override the OnActivityResult method in MainActivity.cs and call the WebAuthenticationBrokerContinuationHelper class. Windows Phone No parameters N/A Windows 10 (Universal) PromptBehavior, OrganizationOnly PromptBehavior.Auto, false
  • 24. SharePoint Saturday Belgium 2016 • October 15 • Brussels Implement authentication with ADAL • Implement the following in the portable class library project • Authentication class • Define the IAuthenticator interface • Implement per platform the interface and use Authentication class • Use from your page code the DependencyService class to retrieve the platform specific implementation of the IAuthenticator interface var auth = DependencyService.Get<IAuthenticator>();
  • 25. SharePoint Saturday Belgium 2016 • October 15 • Brussels Demo
  • 26. SharePoint Saturday Belgium 2016 • October 15 • Brussels Query User Profile data via SharePoint Online search REST API
  • 27. SharePoint Saturday Belgium 2016 • October 15 • Brussels Execute the query and processing the results • HttpClient is used for executing the call to the REST API • HttpRequestMessage(HttpMethod.Get, [URL]) contains the URL • Headers are used • MediaTypeWirhQualityHeaderValue(“application/json”) • AuthenticationHeaderValue(“Bearer”, accessToken) • Result from Content.ReadAsStringAsync() as part of HttpResponseMessage • Response is parsed and enumerated through json objects
  • 28. SharePoint Saturday Belgium 2016 • October 15 • Brussels SharePoint Search Rest API call https://[domain]/_api/search/query ?querytext='*' &sourceid='b09a7990-05ea-4af9-81ef-edfab16c4e31' &selectproperties='AccountName,UserName,AboutMe, Department,Interest,JobTitle,PastProjects,Respon sibilities,Schools,Skills,WorkEmail,PictureURL,P referredName'
  • 29. SharePoint Saturday Belgium 2016 • October 15 • Brussels Search results • Search results back in json as specified in the header • Results found in [PrimaryQueryResult][RelevantResults][Table][Rows] • Values depends on selectproperties part of URL
  • 30. SharePoint Saturday Belgium 2016 • October 15 • Brussels Get the profile picture • Authentication token will not work for the “my-domain” • Http error 401, Unauthorized • Use separate call to form page to retrieve the image by account and original URL https://[domain]/_layouts/15/userphoto.aspx? size=S &accountname=alexander@appzinside.com &url=https://[my-domain]/User Photos/Profielafbeeldingen/ alexander_appzinside_com_MThumb.jpg
  • 31. SharePoint Saturday Belgium 2016 • October 15 • Brussels Demo
  • 32. SharePoint Saturday Belgium 2016 • October 15 • Brussels Represent the data through XAML forms
  • 33. SharePoint Saturday Belgium 2016 • October 15 • Brussels Xamarin.Forms • Write user interface code for all platforms at once • Framework exists of • Xamarin.Forms.Core • Xamarin.Forms.Xaml • A single XAML file is used for all platforms • Controls are translated to platform specific controls
  • 34. SharePoint Saturday Belgium 2016 • October 15 • Brussels Xamarin.Forms controls • All kind of XAML controls available • Layouts like StackLayout, AbsoluteLayout, RelativeLayout, Grid, ScrollView • Display data through ListView and TableView • Controls like Image, Label, Entry, Editor, … • Property binding in XAML through property=“{Binding [content property name]}”
  • 35. SharePoint Saturday Belgium 2016 • October 15 • Brussels Master detail model • Contains of three XAML forms • MasterDetailPage • ProfileListPage • UserProfilePage • Delegate ProfileSelected used to report item selected to MasterDetailPage • Sets the current profile data on the UserProfilePage • Changes to model to detail view
  • 36. SharePoint Saturday Belgium 2016 • October 15 • Brussels Bind thumbnail through XAML • Define a class to convert to Xamarin.Forms.ImageSource • Include the class through ResourceDictionary in XAML page <ResourceDictionary> <local:ByteToImageFieldConverter x:Key="btiConverter" /> </ResourceDictionary> <Image WidthRequest="50" HeightRequest="50" Source="{Binding Picture, Converter={StaticResource btiConverter}}" />
  • 37. SharePoint Saturday Belgium 2016 • October 15 • Brussels Demo
  • 38. SharePoint Saturday Belgium 2016 • October 15 • Brussels Wrap-up
  • 39. SharePoint Saturday Belgium 2016 • October 15 • Brussels Wrap-up • Xamarin platform is great for developing cross-platform apps • ADAL makes it really easy to integrate authentication without the knowledge and difficulty of the process • Office 365 Search REST API allows you easily retrieve data like profiles from SharePoint Online • You need knowledge of XAML to create pages in your app
  • 40. SharePoint Saturday Belgium 2016 • October 15 • Brussels Questions?
  • 41. SharePoint Saturday Belgium 2016 • October 15 • Brussels Thank You!

Hinweis der Redaktion

  1. The goal is to support an architecture shown in this diagram, where a single codebase can be utilized by multiple platforms Two types of strategy Shared Asset Project (SAP) Portable Class Library (PCL)
  2. https://blogs.technet.microsoft.com/enterprisemobility/2016/03/31/microsoft-identity-at-build-2016/ https://blog.xamarin.com/authenticate-mobile-apps-using-microsoft-authentication-library/ https://azure.microsoft.com/en-us/documentation/articles/active-directory-v2-compare/ https://azure.microsoft.com/en-us/documentation/articles/active-directory-protocols-oauth-code/ https://azure.microsoft.com/nl-nl/documentation/articles/active-directory-appmodel-v2-overview/
  3. http://www.cloudidentity.com/blog/2014/07/09/the-new-token-cache-in-adal-v2/
  4. https://blogs.technet.microsoft.com/enterprisemobility/2016/03/31/microsoft-identity-at-build-2016/ ADAL will be updated when .NET core reaches GA Windows Store apps (Windows 8 and above)
  5. The app starts the flow and redirects to Azure AD authorization endpoint Azure AD authorization endpoint redirects to app with authorization code App requests access token from the issuance endpoint Issuance endpoint returns access and refresh token App uses access token tot authenticate against web API Request data from web API is returned to App
  6. Explained by Waldek in following article
  7. SourceId: This parameter holds the result source id that we want to use for executing the search query. In the above screen if you have a look, we are making use of “B09A7990-05EA-4AF9-81EF-EDFAB16C4E31” as the sourceid. This is the id of “Local People Results” result source