How to build better apps using Microsoft Graph
Mark Stafford
Program Manager, Microsoft Graph
Microsoft Graph is a free-to-use REST API for M365 and more.
Agenda
Introducing Contoso Airlines
▅ Small airline, 95% US domestic
▅ 4,500 flight crew
▅ 60 developers, mostly Web/mobile
▅ Mixed cloud platform
▅ M365 E5 subscribers
About Contoso Airlines
▅ Mobile/kiosk scheduling app for flight crew
▅ Serverless provisioning app for compliance and conformity
▅ Workflow app to handle last-minute flight crew changes
▅ Bot as an natural language interface for scheduling system
▅ Analytic app for analyzing effectiveness of flight crew allocation
Contoso Airlines’ app needs
1. Realistic needs
2. Architecturally differentiated
3. Different patterns for consuming Microsoft Graph
Why those apps?
Why build with Microsoft Graph?
2 cognitive biases every dev should know
• The origami experiment
• Overvaluation of things
you’ve worked on
1. The IKEA effect
• The idea experiment
• Tendency to reject other
ideas in favor of your own
2. Not-invented-here
1. Distract from your business 2. You own the risk
2 dangers of these biases
What business are you in?
2 examples of knowing your business
Real estate Media company
Focusing on others’ business costs you time
Re-researching
8%
Re-building
26%
Re-certifying
10%
Adding YOUR unique value
56%
Microsoft helps you focus on your business
Fundamentals
☑Secure
☑Compliant
☑Scalable and resilient
☑Global
☑Trusted
Graph domains
☑Productivity
☑Directory
☑Security
☑ Files
☑And more!
Microsoft scale, Microsoft guarantees
>1Bidentities secured
>70compliance certifications
>50Azure regions
95%of Fortune 500
companies
Productivity
Calendar
Teamwork
Tasks
Directory
Users
Groups
Devices
Policies
Sites & files
Files
Sites
Lists
Excel
…and more
Security
Reports
Cross-
device
…and still
more!
Graph domains
Beware the slippery slope
Graph is a unified endpoint
API 1 -
register app
API 1 -
authenticate
API 1 - read
docs
API 2 -
register app
API 2 -
authenticate
API 2 - read
docs
Add
YOUR
value
1
2
3
4
What to build with Microsoft Graph?
Portal/mobile appsAutomation/business
process apps
Bots/dialogue apps Analytical apps
4 app patterns
Portals, desktop, and mobile apps
▅ Typically HTML+JavaScript,
iOS, or Android
▅ Always has authenticated
user
▅ Content tends to be user-
oriented and scoped
▅ Consider offline usage
scenarios
Automation and business process apps
▅ Variety of languages and
hosting options (e.g.,
serverless)
▅ Almost never has
authenticated user
▅ Content can range over
users and domains
▅ Consider batching and
throttling implications
Bots and interactive dialogue apps
▅ Typically framework based
(e.g., Bot Framework)
▅ Usually has authenticated
user (but auth is challenging)
▅ Content tends to be user-
oriented and scoped
▅ Consider how to render
result(s) with limited real
estate or “headless” devices
Analytic apps
▅ Typically involves big data
processing tools
▅ Never has authenticated
user
▅ Content tends to be broad
but specific (minimize
footprint)
▅ Consider security, privacy,
and ToU implications
Portal Automation Bot Analytic
Auth
flow
Implicit/OBO Client
credentials
Device code Client
credentials
Has user Always Rarely Usually Never
Content User-oriented Varies User-oriented Scenario-
oriented
Consider Offline Throttling Limited size Security/
privacy
App pattern comparison
How to build with Microsoft Graph?
Step 1: Try Graph Explorer (https://aka.ms/ge)
Step 2: Browse the API reference
Step 3: Try a quickstart
Step 4: Register an app
Step 5: Download the SDK
Step 6: Build your app!
▅ 2 cognitive biases: IKEA effect and not-invented-here
▅ Know and focus on your business
▅ Microsoft checks all the right security and scalability boxes
▅ Microsoft Graph has many useful domains
▅ 4 app types: portal/mobile, automation, bot, analytics
▅ Graph Explorer is a zero-cost way to get started
Review