SlideShare a Scribd company logo
1 of 41
Download to read offline
Canvas Apps
for the
Model-driven
Mind
Jukka Niiranen
Power Platform Saturday Oslo
24.8.2019
Photo by Denny Luan on Unsplash
Agenda
• The PowerApps plan for world domination
• Current reality: Canvas vs. Model-driven apps
• Demo: what can a citizen developer build?
• Tips for building Canvas apps on CDS
• A platform for Makers or for Developers?
Quick intro
• From Helsinki, Finland
• MS Business Applications Product Lead at
Elisa
• Finland’s largest telco & Office 365
partner
• 400 professionals in IT Services
• 30 in MS Business Applications
• Microsoft MVP since 2013
• Blogging at survivingcrm.com
• Tweeting at @jukkan
• No-code XRM guy since 2005
• Started building Canvas apps 1 year ago
The PowerApps
plan for world
domination
The story so far
• In the beginning there was MS CRM (2003)
• Which grew into XRM with custom entities (2005)
• And went into the cloud (2008)
• It learned to deliver Solutions (2011)
• Was branded as Dynamics 365 (2016)
• Started migrating to Azure (2017)
• Merged with PowerApps (2018)
PowerApps today = aPaaS*
PowerApps
Entity Designer
App Module
Designer
Form
Designer
View
Designer
Dashboard
Designer
Flow (workflow and business processes)
Canvas
Studio
Common Data Service
SolutionExplorer(advanced)
Dynamics 365
applications
Standalone
canvas apps
Customized
Office 365
(e.g., SharePoint form)
Standalone
model-driven
apps
SharingandSecurity
ISV
apps
*Application Platform as a Service
…Or ”LCAP”
(*Low-code Application Platform)
• “Gartner names
Microsoft a Leader
in Enterprise Low-
Code Application
Platforms 2019
Magic Quadrant”
• Link
Yes, this is all just PowerApps. Trust us…
The REAL Unified
Client?
“Artificial limitations in app
features will be removed, so that
choosing [File - New App] will
give you model or canvas
experiences and everything will
work across both.”
- Charles Lamanna
https://www.nz365guy.com/power-platform-changes-and-
answering-community-questions-with-charles-lamanna/
1 + 1 + Portals = …1?
• With Dynamics Portals
reimagined as PowerApps
Portals, we have one more app
type in our LCAP
• Critical for the external app
audience story, yet nothing like a
public version of Canvas or
Model-driven apps - today
• In the fullness of time, also
Portals need to adopt common
technology like PowerApps
Component Framework
Future form factors?
https://twitter.com/clamanna/status/1118760501679235072
Current State:
Canvas
vs.
Model
Photo by Ralph Blvmberg on Unsplash
• Design and build a business app from a
canvas in Microsoft PowerApps without
writing code in a traditional programming
language such as C#.
• Design the app by dragging and dropping
elements onto a canvas, just as you would
design a slide in PowerPoint. Create Excel-
like expressions for specifying logic and
working with data.
• Build apps that integrate business data
from a wide variety of Microsoft and
third-party sources.
• Share your app so that users can run it in
a browser or on a mobile device, and
embed your app so that users can run it in
SharePoint, Power BI, or Teams.
• If you don't need a custom design and
your data is in Common Data Service, you
can automatically generate a model-
driven app from your business data and
processes.
• Model-driven app design is a component-
focused approach to app development.
Model-driven app design doesn’t require
code and the apps you make can be
simple or very complex.
• Unlike canvas app development where the
designer has complete control over app
layout, with model-driven apps much of
the layout is determined for you and
largely designated by the components you
add to the app.
The Real shift
in thinking
Old world
• Apps are an afterthought
• Systems are defined primarily as a data
model
• Users are trained to understand how the
system works
New world
• Apps are the sole purpose
• Data flows in & out from various different
sources
• Apps are designed to fit the way how the
users work
App Designer: Model-driven world
Microsoft Dynamics 365 FastTrack TechTalks: Solution Development
App modules are used for restricting and organizing
the components that are visible to the app’s target
users.
Constructing the visible & invisible
components that make up the complete
functioning app is done inside solutions.
App Designer: Canvas world
• Canvas app determines all
of the client-side logic
• Multiple data sources
connected to the app can all
introduce their own server-
side logic
• Screens contain controls
• Controls bind to data
sources
• Control properties drive UI
behavior
• ...via functions supported by
PowerApps Canvas apps
Canvas Apps
are like
PowerPoint UI
with
Excel business logic
Why Excel rules
• Excel is the original Canvas for
information workers to paint
their data on
• Structure without enforcement,
logic without programming
• Immediate recalculation of the
whole app (workbook) to show
the effect of your tweaks
• Both Excel and PowerApps
Canvas apps are “terrible”, but
they support the problem solving
thought process of most humans
Demo time!
Now it’s…
Tips for building
Canvas
apps on CDS data
Photo by Fas Khan on Unsplash
Don’t start from blank
• When learning how to use CDS data
in a Canvas app, first always generate
the app from data
• You get core plumbing that will feel a
lot more approachable thank a blank
canvas
• You can add & delete anything you want
• Whenever possible, avoid using
Dynamics 365 connector and go for
CDS
App starting point: Model-driven vs.
Canvas
• ”Generate from data”
gives you a nice single
entity experience with
basic CRUD capability
• Anything you don’t
see is for you to build:
• Navigation
• Filters
• Actions (buttons)
• Summaries (count)
• EVERYTHING you see
can be customized
Galleries instead of views
• Gallery is the most important control to
master in Canvas apps
• (There is also a control called Data Table,
but you shouldn’t really ever use it)
• Shows the contents of a single data
source (CDS entity), just like a view
would, but it’s not just a database view
with columns
• Presentation of data in the gallery item
template is extremely flexible
• Conditional display of fields, icons, strings,
label styles, pictures
• Append data from other sources, also
other systems
Filtering: the hard way & the easy way
• Data sources will by default bring in the
whole table
• The lack of built-in view selector component
means two things:
• You’re free to design beautiful preset filter
options for the user
• You have to implement every condition, search
term, sorting in your formula
• ”Items” may well be the most scary looking
formula in your whole Canvas app
• Support for CDS views as the source for
Gallery Items is now in preview!
No context = everything is
universally referenceable
• The biggest conceptual difference to Model-driven apps is
that you’re never “in” any entity or any record
• Whichever control or variable you point to in your formula
is the source of record context
• AccountGallery.Selected, CurrentUser,
First(LeadsCollection)
• The whole app on every screen is recalculated after any
change made by the user
Photo by Varya Lapina on Unsplash
Current CDS user: you’ve got email
• Because CDS is just one of many data
sources, there’s no concept of logged in
CDS user in the app by default
• Security is of course applied to data
source, but further filtering down the data
or prepopulating lookups needs
additional work
• You’ll need to pull in the Azure AD login
info, then match it to User entity based
on email field
• You could just use User().Email, but do it like
Shane Young does and use Office365Users
connector instead
Subgrids for related records: just ”dot” it!
• Earlier you had to build
cumbersome Filter formulas to
match 1:N record with primary &
foreign key fields (GUIDs)
• Now that relational data support
feature has graduated from
Experimental stage, you can directly
reference ”parent.children”
Form vs. Form
Model-driven
• (Command Bar)
• Header
• “Main form”
• Tabs
• Sections
• Fields
• Controls
• Footer
• Navigation (related)
Canvas
• Form
• Data
Card
• Control
You don’t necessarily need forms
for anything in a Canvas app
• Labels to display data
• Patch to update changes from
input controls
Conditional formatting
• Compared to the static format of data inside Model-driven apps,
the rich expressions of Canvas apps were born to highlight
important data
• Example: change background color based on status field
• TemplateFill: If(Text(ThisItem.Status) <> "Open", RGBA(241, 244, 249, 1),
RGBA(0, 0, 0, 0))
• Use switch case for showing different icons for different record
values to make UI even more intuitive
• Downside: you’ll also need to manually handle formats like
DateTime and numbers (since Canvas app doesn’t follow any CDS
user preferences)
Search is great!
(except…)
• Instant filtering of gallery results
once the user starts typing into the
text input field
• Can match the search string with
multiple fields concurrently
• Combine text search with filters set
in other controls
• Except: you can’t search from
complex lookups like ”Customer”
• Dirty hack: copy lookup values to
shadow text fields on CDS side
Photo by Anthony Martino on Unsplash
XRM pain points that can be
addressed in Canvas apps
• Unaware of user’s context: every entity &
command is shown all the time
• Flat navigation structure: everything app area is
seemingly of equal importance
• Pain of reducing choices: hiding actions from
the user is laborious
• Lack of guidance: hard to take users through a
predetermined path (RIP Dialogs)
Photo by Francisco Gonzalez on Unsplash
Price of pixel perfection
• In Model-driven apps you could always blame
the platform for not displaying things in the
most usable way
• With Canvas apps, every pixel imperfection
and UX gap is now squarely YOUR fault👈
• Logical navigation experience is the first
priority you need to deliver in your app
• The more complex you make the UI, the more
time it will take to polish
Photo by Daniel Korpai on Unsplash
Remember to play
around with your
apps
• Use temporary labels, galleries to see your
data change as your formulas evolve
• Store stuff in variables, collections to reach
your final composition
• Use a tablet layout for more side-by-side
screen estate, even if you’re targeting
phone screens in final app
• Keep a proper text editor like Notepad++
available at all times to copy & paste the
pieces together
• Have the PowerApps Formula Reference
documentation page on a browser tab
Photo by Taelynn Christopher on Unsplash
A platform
for Makers
or for
Developers?
Photo by Austin Distel on Unsplash
No-code or Low-code?
Forrester’s take:
• ”The vendors in this
evaluation target
professional
developers as their
primary customers and
address other
participants as
secondary audiences.”
No-code or Low-code?
Gartner’s take:
• ”A low-code application platform (LCAP) is an application platform that supports rapid application
development, one-step deployment, execution and management using declarative, high-level
programming abstractions, such as model-driven and metadata-based programming languages.”
• “Gartner views “no-code” application platforms as part of the LCAP market. “No-code” is a marketing
and positioning statement, implying that the platform requires text entry only for formulas or simple
expressions, all other aspects of application development being enabled by visual modeling or
configuration.”
Low-code = more accessible way to write code
This does look a little bit
”cody”, but it’s actually
not that complicated
when compared to doing
it in ”classic code”.
Scott Durow, Power Platform Unpacked #4
• Developers can go
further with Canvas
apps than functional
consultants ever
would try
• …But first you have
to get them to try,
too
• “Canvas apps are
easy but not
necessarily simple”
• (Quote source)
PCF = making UI extensions scalable
• Every new control in PowerApps
(Canvas or Model-driven) is
already a component from MS
• PowerApps Component
Framework (PCF) components is
what every developer should be
creating
• So that every maker with access
to that component could put it
into their application
• For every user to interact with
http://aka.ms/PCFdemos
DevOps = shipping enterprise scale
PowerApps
40
We are all
App Makers.
Thanks for listening!

More Related Content

What's hot

Understanding power platform licensing feb 2020
Understanding power platform licensing   feb 2020Understanding power platform licensing   feb 2020
Understanding power platform licensing feb 2020Ralph Rivas
 
Microsoft PowerApps and Flow
Microsoft PowerApps and FlowMicrosoft PowerApps and Flow
Microsoft PowerApps and FlowSteve Knutson
 
PL-900 Microsoft Power Platform Fundamentals
PL-900 Microsoft Power Platform FundamentalsPL-900 Microsoft Power Platform Fundamentals
PL-900 Microsoft Power Platform FundamentalsNanddeep Nachan
 
An introduction to microsoft power apps
An introduction to microsoft power appsAn introduction to microsoft power apps
An introduction to microsoft power appsMitul Rana
 
Model-Driven Apps with PowerApps
Model-Driven Apps with PowerAppsModel-Driven Apps with PowerApps
Model-Driven Apps with PowerAppsStefan Strube
 
Introduction to power apps
Introduction to power appsIntroduction to power apps
Introduction to power appsRezaDorrani1
 
Introduction to Power Platform
Introduction to Power PlatformIntroduction to Power Platform
Introduction to Power PlatformPraveen Nair
 
Introduction to PowerApps-1.pptx
Introduction to PowerApps-1.pptxIntroduction to PowerApps-1.pptx
Introduction to PowerApps-1.pptxRatanTATA10
 
Exploring the PowerApps advantage
Exploring the PowerApps advantageExploring the PowerApps advantage
Exploring the PowerApps advantageMalin De Silva
 
Model Driven PowerApps
Model Driven PowerAppsModel Driven PowerApps
Model Driven PowerAppsBIWUG
 
Microsoft power platform
Microsoft power platform Microsoft power platform
Microsoft power platform AYUSHISHARMA295
 
Top 10 New SharePoint Online Features
Top 10 New SharePoint Online FeaturesTop 10 New SharePoint Online Features
Top 10 New SharePoint Online FeaturesOffice
 
Introduction to Microsoft SharePoint Online Capabilities, Security, Deploymen...
Introduction to Microsoft SharePoint Online Capabilities, Security, Deploymen...Introduction to Microsoft SharePoint Online Capabilities, Security, Deploymen...
Introduction to Microsoft SharePoint Online Capabilities, Security, Deploymen...Microsoft Private Cloud
 
Power automate a workflow automation platform
Power automate a  workflow automation platform Power automate a  workflow automation platform
Power automate a workflow automation platform Amit Kumawat
 
04 power apps-platform-boonthawee
04 power apps-platform-boonthawee04 power apps-platform-boonthawee
04 power apps-platform-boonthaweeKumton Suttiraksiri
 

What's hot (20)

Understanding power platform licensing feb 2020
Understanding power platform licensing   feb 2020Understanding power platform licensing   feb 2020
Understanding power platform licensing feb 2020
 
Microsoft PowerApps and Flow
Microsoft PowerApps and FlowMicrosoft PowerApps and Flow
Microsoft PowerApps and Flow
 
PL-900 Microsoft Power Platform Fundamentals
PL-900 Microsoft Power Platform FundamentalsPL-900 Microsoft Power Platform Fundamentals
PL-900 Microsoft Power Platform Fundamentals
 
An introduction to microsoft power apps
An introduction to microsoft power appsAn introduction to microsoft power apps
An introduction to microsoft power apps
 
Model-Driven Apps with PowerApps
Model-Driven Apps with PowerAppsModel-Driven Apps with PowerApps
Model-Driven Apps with PowerApps
 
Introduction to power apps
Introduction to power appsIntroduction to power apps
Introduction to power apps
 
Introduction to Power Platform
Introduction to Power PlatformIntroduction to Power Platform
Introduction to Power Platform
 
What is power apps
What is power appsWhat is power apps
What is power apps
 
Introduction to PowerApps-1.pptx
Introduction to PowerApps-1.pptxIntroduction to PowerApps-1.pptx
Introduction to PowerApps-1.pptx
 
Microsoft power apps
Microsoft power appsMicrosoft power apps
Microsoft power apps
 
PowerApps Deep Dive
PowerApps Deep DivePowerApps Deep Dive
PowerApps Deep Dive
 
Exploring the PowerApps advantage
Exploring the PowerApps advantageExploring the PowerApps advantage
Exploring the PowerApps advantage
 
Model Driven PowerApps
Model Driven PowerAppsModel Driven PowerApps
Model Driven PowerApps
 
Microsoft power platform
Microsoft power platform Microsoft power platform
Microsoft power platform
 
Canvas and Model Driven Apps
Canvas and Model Driven AppsCanvas and Model Driven Apps
Canvas and Model Driven Apps
 
Top 10 New SharePoint Online Features
Top 10 New SharePoint Online FeaturesTop 10 New SharePoint Online Features
Top 10 New SharePoint Online Features
 
Introduction to Microsoft SharePoint Online Capabilities, Security, Deploymen...
Introduction to Microsoft SharePoint Online Capabilities, Security, Deploymen...Introduction to Microsoft SharePoint Online Capabilities, Security, Deploymen...
Introduction to Microsoft SharePoint Online Capabilities, Security, Deploymen...
 
Power automate a workflow automation platform
Power automate a  workflow automation platform Power automate a  workflow automation platform
Power automate a workflow automation platform
 
Power Automate
Power AutomatePower Automate
Power Automate
 
04 power apps-platform-boonthawee
04 power apps-platform-boonthawee04 power apps-platform-boonthawee
04 power apps-platform-boonthawee
 

Similar to Canvas Apps for the Model-driven mind

Towards a common app platform #SPUGfi
Towards a common app platform #SPUGfiTowards a common app platform #SPUGfi
Towards a common app platform #SPUGfiJukka Niiranen
 
Dataverse meets Teams: low code app opportunities for everyone
Dataverse meets Teams: low code app opportunities for everyoneDataverse meets Teams: low code app opportunities for everyone
Dataverse meets Teams: low code app opportunities for everyoneJukka Niiranen
 
Windows Phone 8 - 2 Designing WP8 Applications
Windows Phone 8 - 2 Designing WP8 ApplicationsWindows Phone 8 - 2 Designing WP8 Applications
Windows Phone 8 - 2 Designing WP8 ApplicationsOliver Scheer
 
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...confluent
 
SPS Vancouver 2018 - What is CDM and CDS
SPS Vancouver 2018 - What is CDM and CDSSPS Vancouver 2018 - What is CDM and CDS
SPS Vancouver 2018 - What is CDM and CDSNicolas Georgeault
 
Getting Started with Innoslate
Getting Started with InnoslateGetting Started with Innoslate
Getting Started with InnoslateElizabeth Steiner
 
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...confluent
 
Introduction to PowerApps-1.pptx
Introduction to PowerApps-1.pptxIntroduction to PowerApps-1.pptx
Introduction to PowerApps-1.pptxsahithisammeta
 
Model-driven apps & Common Data Service for Apps
Model-driven apps & Common Data Service for AppsModel-driven apps & Common Data Service for Apps
Model-driven apps & Common Data Service for AppsStefan Strube
 
IT7113 research project_group_4
IT7113 research project_group_4IT7113 research project_group_4
IT7113 research project_group_4ethanlchandler
 
power apps.pptx
power apps.pptxpower apps.pptx
power apps.pptxbhavya3zen
 
power apps (1).pdf
power apps (1).pdfpower apps (1).pdf
power apps (1).pdfbhavya3zen
 
SPS London 2017 - Building applications with PowerApps, Microsoft flow and Of...
SPS London 2017 - Building applications with PowerApps, Microsoft flow and Of...SPS London 2017 - Building applications with PowerApps, Microsoft flow and Of...
SPS London 2017 - Building applications with PowerApps, Microsoft flow and Of...Ahmad Najjar
 
A practical guidance of the enterprise machine learning
A practical guidance of the enterprise machine learning A practical guidance of the enterprise machine learning
A practical guidance of the enterprise machine learning Jesus Rodriguez
 
SharePoint and the User Interface with JavaScript
SharePoint and the User Interface with JavaScriptSharePoint and the User Interface with JavaScript
SharePoint and the User Interface with JavaScriptRegroove
 
SPSNYC2019 - What is Common Data Model and how to use it?
SPSNYC2019 - What is Common Data Model and how to use it?SPSNYC2019 - What is Common Data Model and how to use it?
SPSNYC2019 - What is Common Data Model and how to use it?Nicolas Georgeault
 
SPSChicagoBurbs 2019 - What is CDM and CDS?
SPSChicagoBurbs 2019 - What is CDM and CDS?SPSChicagoBurbs 2019 - What is CDM and CDS?
SPSChicagoBurbs 2019 - What is CDM and CDS?Nicolas Georgeault
 
Platform guidance for Microsoft .NET Technology
Platform guidance for Microsoft .NET TechnologyPlatform guidance for Microsoft .NET Technology
Platform guidance for Microsoft .NET TechnologyLohith Goudagere Nagaraj
 

Similar to Canvas Apps for the Model-driven mind (20)

Towards a common app platform #SPUGfi
Towards a common app platform #SPUGfiTowards a common app platform #SPUGfi
Towards a common app platform #SPUGfi
 
Dataverse meets Teams: low code app opportunities for everyone
Dataverse meets Teams: low code app opportunities for everyoneDataverse meets Teams: low code app opportunities for everyone
Dataverse meets Teams: low code app opportunities for everyone
 
Windows Phone 8 - 2 Designing WP8 Applications
Windows Phone 8 - 2 Designing WP8 ApplicationsWindows Phone 8 - 2 Designing WP8 Applications
Windows Phone 8 - 2 Designing WP8 Applications
 
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
 
D365 July 2017 Updates (Part 1)
D365 July 2017 Updates (Part 1)D365 July 2017 Updates (Part 1)
D365 July 2017 Updates (Part 1)
 
SPS Vancouver 2018 - What is CDM and CDS
SPS Vancouver 2018 - What is CDM and CDSSPS Vancouver 2018 - What is CDM and CDS
SPS Vancouver 2018 - What is CDM and CDS
 
Getting Started with Innoslate
Getting Started with InnoslateGetting Started with Innoslate
Getting Started with Innoslate
 
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
 
Introduction to PowerApps-1.pptx
Introduction to PowerApps-1.pptxIntroduction to PowerApps-1.pptx
Introduction to PowerApps-1.pptx
 
Model-driven apps & Common Data Service for Apps
Model-driven apps & Common Data Service for AppsModel-driven apps & Common Data Service for Apps
Model-driven apps & Common Data Service for Apps
 
IT7113 research project_group_4
IT7113 research project_group_4IT7113 research project_group_4
IT7113 research project_group_4
 
power apps.pptx
power apps.pptxpower apps.pptx
power apps.pptx
 
power apps (1).pdf
power apps (1).pdfpower apps (1).pdf
power apps (1).pdf
 
SPS London 2017 - Building applications with PowerApps, Microsoft flow and Of...
SPS London 2017 - Building applications with PowerApps, Microsoft flow and Of...SPS London 2017 - Building applications with PowerApps, Microsoft flow and Of...
SPS London 2017 - Building applications with PowerApps, Microsoft flow and Of...
 
A practical guidance of the enterprise machine learning
A practical guidance of the enterprise machine learning A practical guidance of the enterprise machine learning
A practical guidance of the enterprise machine learning
 
SharePoint and the User Interface with JavaScript
SharePoint and the User Interface with JavaScriptSharePoint and the User Interface with JavaScript
SharePoint and the User Interface with JavaScript
 
SPSNYC2019 - What is Common Data Model and how to use it?
SPSNYC2019 - What is Common Data Model and how to use it?SPSNYC2019 - What is Common Data Model and how to use it?
SPSNYC2019 - What is Common Data Model and how to use it?
 
SPSChicagoBurbs 2019 - What is CDM and CDS?
SPSChicagoBurbs 2019 - What is CDM and CDS?SPSChicagoBurbs 2019 - What is CDM and CDS?
SPSChicagoBurbs 2019 - What is CDM and CDS?
 
PowerApps.pptx
PowerApps.pptxPowerApps.pptx
PowerApps.pptx
 
Platform guidance for Microsoft .NET Technology
Platform guidance for Microsoft .NET TechnologyPlatform guidance for Microsoft .NET Technology
Platform guidance for Microsoft .NET Technology
 

More from Jukka Niiranen

Microsoft Business Applications Summit 2020: parhaat palat
Microsoft Business Applications Summit 2020: parhaat palatMicrosoft Business Applications Summit 2020: parhaat palat
Microsoft Business Applications Summit 2020: parhaat palatJukka Niiranen
 
Liiketoimintatietojen turvaaminen microsoftin pilvipalveluiden avulla
Liiketoimintatietojen turvaaminen microsoftin pilvipalveluiden avullaLiiketoimintatietojen turvaaminen microsoftin pilvipalveluiden avulla
Liiketoimintatietojen turvaaminen microsoftin pilvipalveluiden avullaJukka Niiranen
 
FDUG October 2019 Virtual Launch Event Highlights
FDUG October 2019 Virtual Launch Event HighlightsFDUG October 2019 Virtual Launch Event Highlights
FDUG October 2019 Virtual Launch Event HighlightsJukka Niiranen
 
Elisa webinaari: Mitä seuraava Microsoftin Business Applications -julkaisujun...
Elisa webinaari: Mitä seuraava Microsoftin Business Applications -julkaisujun...Elisa webinaari: Mitä seuraava Microsoftin Business Applications -julkaisujun...
Elisa webinaari: Mitä seuraava Microsoftin Business Applications -julkaisujun...Jukka Niiranen
 
Demystifying Dynamics 365 & Power Platform Licensing
Demystifying Dynamics 365 & Power Platform LicensingDemystifying Dynamics 365 & Power Platform Licensing
Demystifying Dynamics 365 & Power Platform LicensingJukka Niiranen
 
Elisa Dynamics 365 -webinaari 26.11.2018: tekoälyä ja analytiikkaa
Elisa Dynamics 365 -webinaari 26.11.2018: tekoälyä ja analytiikkaaElisa Dynamics 365 -webinaari 26.11.2018: tekoälyä ja analytiikkaa
Elisa Dynamics 365 -webinaari 26.11.2018: tekoälyä ja analytiikkaaJukka Niiranen
 
Microsoft Ignite 2018 in 30 Minutes
Microsoft Ignite 2018 in 30 MinutesMicrosoft Ignite 2018 in 30 Minutes
Microsoft Ignite 2018 in 30 MinutesJukka Niiranen
 
Microsoft Flow and Dynamics 365 - Jukka Niiranen at CRM Saturday Oslo, 2017-0...
Microsoft Flow and Dynamics 365 - Jukka Niiranen at CRM Saturday Oslo, 2017-0...Microsoft Flow and Dynamics 365 - Jukka Niiranen at CRM Saturday Oslo, 2017-0...
Microsoft Flow and Dynamics 365 - Jukka Niiranen at CRM Saturday Oslo, 2017-0...Jukka Niiranen
 
Dynamics CRM in 2010 - 5 year retrospective
Dynamics CRM in 2010 - 5 year retrospectiveDynamics CRM in 2010 - 5 year retrospective
Dynamics CRM in 2010 - 5 year retrospectiveJukka Niiranen
 
Using Microsoft Social Engagement Together with Dynamics CRM
Using Microsoft Social Engagement Together with Dynamics CRMUsing Microsoft Social Engagement Together with Dynamics CRM
Using Microsoft Social Engagement Together with Dynamics CRMJukka Niiranen
 
Smarter Sales Process in Dynamics CRM 2015 - Part 3: Pipeline Development
Smarter Sales Process in Dynamics CRM 2015 - Part 3: Pipeline DevelopmentSmarter Sales Process in Dynamics CRM 2015 - Part 3: Pipeline Development
Smarter Sales Process in Dynamics CRM 2015 - Part 3: Pipeline DevelopmentJukka Niiranen
 
Smarter Sales Process in Dynamics CRM 2015 - Part 2: Revenue Estimation
Smarter Sales Process in Dynamics CRM 2015 - Part 2: Revenue EstimationSmarter Sales Process in Dynamics CRM 2015 - Part 2: Revenue Estimation
Smarter Sales Process in Dynamics CRM 2015 - Part 2: Revenue EstimationJukka Niiranen
 
Smarter Sales Process in Dynamics CRM 2015 - Part 1: Lead Qualification
Smarter Sales Process in Dynamics CRM 2015 - Part 1: Lead QualificationSmarter Sales Process in Dynamics CRM 2015 - Part 1: Lead Qualification
Smarter Sales Process in Dynamics CRM 2015 - Part 1: Lead QualificationJukka Niiranen
 
Who is the customer in your CRM? #CRMRocks podcast
Who is the customer in your CRM? #CRMRocks podcastWho is the customer in your CRM? #CRMRocks podcast
Who is the customer in your CRM? #CRMRocks podcastJukka Niiranen
 
Control Outlook Synchronization Settings for Dynamics CRM users
Control Outlook Synchronization Settings for Dynamics CRM usersControl Outlook Synchronization Settings for Dynamics CRM users
Control Outlook Synchronization Settings for Dynamics CRM usersJukka Niiranen
 
Microsoft Dynamics CRM 2013 development server installation
Microsoft Dynamics CRM 2013 development server installationMicrosoft Dynamics CRM 2013 development server installation
Microsoft Dynamics CRM 2013 development server installationJukka Niiranen
 
Website image editing tutorial: WordPress, Paint.NET and PowerPoint(!)
Website image editing tutorial: WordPress, Paint.NET and PowerPoint(!)Website image editing tutorial: WordPress, Paint.NET and PowerPoint(!)
Website image editing tutorial: WordPress, Paint.NET and PowerPoint(!)Jukka Niiranen
 
Microsoft Dynamics CRM 2011 Walkthrough Part 2
Microsoft Dynamics CRM 2011 Walkthrough Part 2Microsoft Dynamics CRM 2011 Walkthrough Part 2
Microsoft Dynamics CRM 2011 Walkthrough Part 2Jukka Niiranen
 
Microsoft Dynamics CRM 2011 Walkthrough Part 1
Microsoft Dynamics CRM 2011 Walkthrough Part 1Microsoft Dynamics CRM 2011 Walkthrough Part 1
Microsoft Dynamics CRM 2011 Walkthrough Part 1Jukka Niiranen
 

More from Jukka Niiranen (20)

Microsoft Business Applications Summit 2020: parhaat palat
Microsoft Business Applications Summit 2020: parhaat palatMicrosoft Business Applications Summit 2020: parhaat palat
Microsoft Business Applications Summit 2020: parhaat palat
 
Liiketoimintatietojen turvaaminen microsoftin pilvipalveluiden avulla
Liiketoimintatietojen turvaaminen microsoftin pilvipalveluiden avullaLiiketoimintatietojen turvaaminen microsoftin pilvipalveluiden avulla
Liiketoimintatietojen turvaaminen microsoftin pilvipalveluiden avulla
 
FDUG October 2019 Virtual Launch Event Highlights
FDUG October 2019 Virtual Launch Event HighlightsFDUG October 2019 Virtual Launch Event Highlights
FDUG October 2019 Virtual Launch Event Highlights
 
Elisa webinaari: Mitä seuraava Microsoftin Business Applications -julkaisujun...
Elisa webinaari: Mitä seuraava Microsoftin Business Applications -julkaisujun...Elisa webinaari: Mitä seuraava Microsoftin Business Applications -julkaisujun...
Elisa webinaari: Mitä seuraava Microsoftin Business Applications -julkaisujun...
 
Demystifying Dynamics 365 & Power Platform Licensing
Demystifying Dynamics 365 & Power Platform LicensingDemystifying Dynamics 365 & Power Platform Licensing
Demystifying Dynamics 365 & Power Platform Licensing
 
Elisa Dynamics 365 -webinaari 26.11.2018: tekoälyä ja analytiikkaa
Elisa Dynamics 365 -webinaari 26.11.2018: tekoälyä ja analytiikkaaElisa Dynamics 365 -webinaari 26.11.2018: tekoälyä ja analytiikkaa
Elisa Dynamics 365 -webinaari 26.11.2018: tekoälyä ja analytiikkaa
 
Microsoft Ignite 2018 in 30 Minutes
Microsoft Ignite 2018 in 30 MinutesMicrosoft Ignite 2018 in 30 Minutes
Microsoft Ignite 2018 in 30 Minutes
 
Microsoft Flow and Dynamics 365 - Jukka Niiranen at CRM Saturday Oslo, 2017-0...
Microsoft Flow and Dynamics 365 - Jukka Niiranen at CRM Saturday Oslo, 2017-0...Microsoft Flow and Dynamics 365 - Jukka Niiranen at CRM Saturday Oslo, 2017-0...
Microsoft Flow and Dynamics 365 - Jukka Niiranen at CRM Saturday Oslo, 2017-0...
 
Dynamics CRM in 2010 - 5 year retrospective
Dynamics CRM in 2010 - 5 year retrospectiveDynamics CRM in 2010 - 5 year retrospective
Dynamics CRM in 2010 - 5 year retrospective
 
Using Microsoft Social Engagement Together with Dynamics CRM
Using Microsoft Social Engagement Together with Dynamics CRMUsing Microsoft Social Engagement Together with Dynamics CRM
Using Microsoft Social Engagement Together with Dynamics CRM
 
Smarter Sales Process in Dynamics CRM 2015 - Part 3: Pipeline Development
Smarter Sales Process in Dynamics CRM 2015 - Part 3: Pipeline DevelopmentSmarter Sales Process in Dynamics CRM 2015 - Part 3: Pipeline Development
Smarter Sales Process in Dynamics CRM 2015 - Part 3: Pipeline Development
 
Smarter Sales Process in Dynamics CRM 2015 - Part 2: Revenue Estimation
Smarter Sales Process in Dynamics CRM 2015 - Part 2: Revenue EstimationSmarter Sales Process in Dynamics CRM 2015 - Part 2: Revenue Estimation
Smarter Sales Process in Dynamics CRM 2015 - Part 2: Revenue Estimation
 
Smarter Sales Process in Dynamics CRM 2015 - Part 1: Lead Qualification
Smarter Sales Process in Dynamics CRM 2015 - Part 1: Lead QualificationSmarter Sales Process in Dynamics CRM 2015 - Part 1: Lead Qualification
Smarter Sales Process in Dynamics CRM 2015 - Part 1: Lead Qualification
 
Who is the customer in your CRM? #CRMRocks podcast
Who is the customer in your CRM? #CRMRocks podcastWho is the customer in your CRM? #CRMRocks podcast
Who is the customer in your CRM? #CRMRocks podcast
 
Control Outlook Synchronization Settings for Dynamics CRM users
Control Outlook Synchronization Settings for Dynamics CRM usersControl Outlook Synchronization Settings for Dynamics CRM users
Control Outlook Synchronization Settings for Dynamics CRM users
 
Microsoft Dynamics CRM 2013 development server installation
Microsoft Dynamics CRM 2013 development server installationMicrosoft Dynamics CRM 2013 development server installation
Microsoft Dynamics CRM 2013 development server installation
 
Website image editing tutorial: WordPress, Paint.NET and PowerPoint(!)
Website image editing tutorial: WordPress, Paint.NET and PowerPoint(!)Website image editing tutorial: WordPress, Paint.NET and PowerPoint(!)
Website image editing tutorial: WordPress, Paint.NET and PowerPoint(!)
 
#SFDC #DF11
#SFDC #DF11#SFDC #DF11
#SFDC #DF11
 
Microsoft Dynamics CRM 2011 Walkthrough Part 2
Microsoft Dynamics CRM 2011 Walkthrough Part 2Microsoft Dynamics CRM 2011 Walkthrough Part 2
Microsoft Dynamics CRM 2011 Walkthrough Part 2
 
Microsoft Dynamics CRM 2011 Walkthrough Part 1
Microsoft Dynamics CRM 2011 Walkthrough Part 1Microsoft Dynamics CRM 2011 Walkthrough Part 1
Microsoft Dynamics CRM 2011 Walkthrough Part 1
 

Recently uploaded

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 

Recently uploaded (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Canvas Apps for the Model-driven mind

  • 1. Canvas Apps for the Model-driven Mind Jukka Niiranen Power Platform Saturday Oslo 24.8.2019 Photo by Denny Luan on Unsplash
  • 2. Agenda • The PowerApps plan for world domination • Current reality: Canvas vs. Model-driven apps • Demo: what can a citizen developer build? • Tips for building Canvas apps on CDS • A platform for Makers or for Developers?
  • 3. Quick intro • From Helsinki, Finland • MS Business Applications Product Lead at Elisa • Finland’s largest telco & Office 365 partner • 400 professionals in IT Services • 30 in MS Business Applications • Microsoft MVP since 2013 • Blogging at survivingcrm.com • Tweeting at @jukkan • No-code XRM guy since 2005 • Started building Canvas apps 1 year ago
  • 4. The PowerApps plan for world domination
  • 5. The story so far • In the beginning there was MS CRM (2003) • Which grew into XRM with custom entities (2005) • And went into the cloud (2008) • It learned to deliver Solutions (2011) • Was branded as Dynamics 365 (2016) • Started migrating to Azure (2017) • Merged with PowerApps (2018)
  • 6. PowerApps today = aPaaS* PowerApps Entity Designer App Module Designer Form Designer View Designer Dashboard Designer Flow (workflow and business processes) Canvas Studio Common Data Service SolutionExplorer(advanced) Dynamics 365 applications Standalone canvas apps Customized Office 365 (e.g., SharePoint form) Standalone model-driven apps SharingandSecurity ISV apps *Application Platform as a Service
  • 7. …Or ”LCAP” (*Low-code Application Platform) • “Gartner names Microsoft a Leader in Enterprise Low- Code Application Platforms 2019 Magic Quadrant” • Link
  • 8. Yes, this is all just PowerApps. Trust us…
  • 9. The REAL Unified Client? “Artificial limitations in app features will be removed, so that choosing [File - New App] will give you model or canvas experiences and everything will work across both.” - Charles Lamanna https://www.nz365guy.com/power-platform-changes-and- answering-community-questions-with-charles-lamanna/
  • 10.
  • 11. 1 + 1 + Portals = …1? • With Dynamics Portals reimagined as PowerApps Portals, we have one more app type in our LCAP • Critical for the external app audience story, yet nothing like a public version of Canvas or Model-driven apps - today • In the fullness of time, also Portals need to adopt common technology like PowerApps Component Framework
  • 13. Current State: Canvas vs. Model Photo by Ralph Blvmberg on Unsplash
  • 14. • Design and build a business app from a canvas in Microsoft PowerApps without writing code in a traditional programming language such as C#. • Design the app by dragging and dropping elements onto a canvas, just as you would design a slide in PowerPoint. Create Excel- like expressions for specifying logic and working with data. • Build apps that integrate business data from a wide variety of Microsoft and third-party sources. • Share your app so that users can run it in a browser or on a mobile device, and embed your app so that users can run it in SharePoint, Power BI, or Teams. • If you don't need a custom design and your data is in Common Data Service, you can automatically generate a model- driven app from your business data and processes. • Model-driven app design is a component- focused approach to app development. Model-driven app design doesn’t require code and the apps you make can be simple or very complex. • Unlike canvas app development where the designer has complete control over app layout, with model-driven apps much of the layout is determined for you and largely designated by the components you add to the app.
  • 15. The Real shift in thinking Old world • Apps are an afterthought • Systems are defined primarily as a data model • Users are trained to understand how the system works New world • Apps are the sole purpose • Data flows in & out from various different sources • Apps are designed to fit the way how the users work
  • 16. App Designer: Model-driven world Microsoft Dynamics 365 FastTrack TechTalks: Solution Development App modules are used for restricting and organizing the components that are visible to the app’s target users. Constructing the visible & invisible components that make up the complete functioning app is done inside solutions.
  • 17. App Designer: Canvas world • Canvas app determines all of the client-side logic • Multiple data sources connected to the app can all introduce their own server- side logic • Screens contain controls • Controls bind to data sources • Control properties drive UI behavior • ...via functions supported by PowerApps Canvas apps
  • 18. Canvas Apps are like PowerPoint UI with Excel business logic
  • 19. Why Excel rules • Excel is the original Canvas for information workers to paint their data on • Structure without enforcement, logic without programming • Immediate recalculation of the whole app (workbook) to show the effect of your tweaks • Both Excel and PowerApps Canvas apps are “terrible”, but they support the problem solving thought process of most humans
  • 21. Tips for building Canvas apps on CDS data Photo by Fas Khan on Unsplash
  • 22. Don’t start from blank • When learning how to use CDS data in a Canvas app, first always generate the app from data • You get core plumbing that will feel a lot more approachable thank a blank canvas • You can add & delete anything you want • Whenever possible, avoid using Dynamics 365 connector and go for CDS
  • 23. App starting point: Model-driven vs. Canvas • ”Generate from data” gives you a nice single entity experience with basic CRUD capability • Anything you don’t see is for you to build: • Navigation • Filters • Actions (buttons) • Summaries (count) • EVERYTHING you see can be customized
  • 24. Galleries instead of views • Gallery is the most important control to master in Canvas apps • (There is also a control called Data Table, but you shouldn’t really ever use it) • Shows the contents of a single data source (CDS entity), just like a view would, but it’s not just a database view with columns • Presentation of data in the gallery item template is extremely flexible • Conditional display of fields, icons, strings, label styles, pictures • Append data from other sources, also other systems
  • 25. Filtering: the hard way & the easy way • Data sources will by default bring in the whole table • The lack of built-in view selector component means two things: • You’re free to design beautiful preset filter options for the user • You have to implement every condition, search term, sorting in your formula • ”Items” may well be the most scary looking formula in your whole Canvas app • Support for CDS views as the source for Gallery Items is now in preview!
  • 26. No context = everything is universally referenceable • The biggest conceptual difference to Model-driven apps is that you’re never “in” any entity or any record • Whichever control or variable you point to in your formula is the source of record context • AccountGallery.Selected, CurrentUser, First(LeadsCollection) • The whole app on every screen is recalculated after any change made by the user Photo by Varya Lapina on Unsplash
  • 27. Current CDS user: you’ve got email • Because CDS is just one of many data sources, there’s no concept of logged in CDS user in the app by default • Security is of course applied to data source, but further filtering down the data or prepopulating lookups needs additional work • You’ll need to pull in the Azure AD login info, then match it to User entity based on email field • You could just use User().Email, but do it like Shane Young does and use Office365Users connector instead
  • 28. Subgrids for related records: just ”dot” it! • Earlier you had to build cumbersome Filter formulas to match 1:N record with primary & foreign key fields (GUIDs) • Now that relational data support feature has graduated from Experimental stage, you can directly reference ”parent.children”
  • 29. Form vs. Form Model-driven • (Command Bar) • Header • “Main form” • Tabs • Sections • Fields • Controls • Footer • Navigation (related) Canvas • Form • Data Card • Control You don’t necessarily need forms for anything in a Canvas app • Labels to display data • Patch to update changes from input controls
  • 30. Conditional formatting • Compared to the static format of data inside Model-driven apps, the rich expressions of Canvas apps were born to highlight important data • Example: change background color based on status field • TemplateFill: If(Text(ThisItem.Status) <> "Open", RGBA(241, 244, 249, 1), RGBA(0, 0, 0, 0)) • Use switch case for showing different icons for different record values to make UI even more intuitive • Downside: you’ll also need to manually handle formats like DateTime and numbers (since Canvas app doesn’t follow any CDS user preferences)
  • 31. Search is great! (except…) • Instant filtering of gallery results once the user starts typing into the text input field • Can match the search string with multiple fields concurrently • Combine text search with filters set in other controls • Except: you can’t search from complex lookups like ”Customer” • Dirty hack: copy lookup values to shadow text fields on CDS side Photo by Anthony Martino on Unsplash
  • 32. XRM pain points that can be addressed in Canvas apps • Unaware of user’s context: every entity & command is shown all the time • Flat navigation structure: everything app area is seemingly of equal importance • Pain of reducing choices: hiding actions from the user is laborious • Lack of guidance: hard to take users through a predetermined path (RIP Dialogs) Photo by Francisco Gonzalez on Unsplash
  • 33. Price of pixel perfection • In Model-driven apps you could always blame the platform for not displaying things in the most usable way • With Canvas apps, every pixel imperfection and UX gap is now squarely YOUR fault👈 • Logical navigation experience is the first priority you need to deliver in your app • The more complex you make the UI, the more time it will take to polish Photo by Daniel Korpai on Unsplash
  • 34. Remember to play around with your apps • Use temporary labels, galleries to see your data change as your formulas evolve • Store stuff in variables, collections to reach your final composition • Use a tablet layout for more side-by-side screen estate, even if you’re targeting phone screens in final app • Keep a proper text editor like Notepad++ available at all times to copy & paste the pieces together • Have the PowerApps Formula Reference documentation page on a browser tab Photo by Taelynn Christopher on Unsplash
  • 35. A platform for Makers or for Developers? Photo by Austin Distel on Unsplash
  • 36. No-code or Low-code? Forrester’s take: • ”The vendors in this evaluation target professional developers as their primary customers and address other participants as secondary audiences.”
  • 37. No-code or Low-code? Gartner’s take: • ”A low-code application platform (LCAP) is an application platform that supports rapid application development, one-step deployment, execution and management using declarative, high-level programming abstractions, such as model-driven and metadata-based programming languages.” • “Gartner views “no-code” application platforms as part of the LCAP market. “No-code” is a marketing and positioning statement, implying that the platform requires text entry only for formulas or simple expressions, all other aspects of application development being enabled by visual modeling or configuration.”
  • 38. Low-code = more accessible way to write code This does look a little bit ”cody”, but it’s actually not that complicated when compared to doing it in ”classic code”. Scott Durow, Power Platform Unpacked #4 • Developers can go further with Canvas apps than functional consultants ever would try • …But first you have to get them to try, too • “Canvas apps are easy but not necessarily simple” • (Quote source)
  • 39. PCF = making UI extensions scalable • Every new control in PowerApps (Canvas or Model-driven) is already a component from MS • PowerApps Component Framework (PCF) components is what every developer should be creating • So that every maker with access to that component could put it into their application • For every user to interact with http://aka.ms/PCFdemos
  • 40. DevOps = shipping enterprise scale PowerApps 40
  • 41. We are all App Makers. Thanks for listening!