Speakers
Andrew Ly (MVP)
Associate Director
KPMG
365lyf.com
Aung Khaing
Solutions Architect / CRM Lead
Datacom (NZ)
blog.dynamicscode.net
What is PCF?
The Problem with UI Customisation in
Dynamics / Power Platform
JavaScript Form
Customisations
Web Resources
PowerApp
Controls
Introducing PowerApps Component
Framework (PCF)
Build reusable components
• Deployable across model and canvas
(future)
• Updated tooling (Command Line
Interface – CLI) + Test Harness
• Modern web design patterns
8
• Market Opportunities
• Better support across devices
• Reusability
OPPORTUNITIES
• Better than Web Resources
PCF GALLERY
Guido Preite
https://pcf.gallery/
Progress Bar
1
Andrew Ly
(KPMG)
https://github.com/365lyf/PCFControls
Dataset Control
1
Aung Khaing
(Datacom)
https://github.com/dynamicscode
Tree Relationships
1
Alex Shlega MVP
Attachment Gallery Preview
1
Oleksandr Olashyn
(3Shape)
Attachments Grid
1
Ben Bartle
(KPMG)
Josh Hetherington
(KPMG)
Timeline Control
Manny Grewal
(Veritec)
Q and A Maker Control
Dhina Gajavarathan
(KPMG)
Getting Started with PCF
• Pre-Reqs
• Knowledge of HTML5,
JavaScript + TypeScript
• A Computer 
• With Node.JS or NPM
• Visual Studio 2017 or later or
Visual Studio Code
• PowerApps CLI
1
https://docs.microsoft.com/en-us/powerapps/developer/component-framework/create-custom-controls-using-pcf
Walkthrough – build a control
1
https://github.com/365lyf/PCFControls
Andrew Ly
(KPMG)
Pulsing Notifications
Demo
Structure of a PCF Control
1
STYLE SHEET
PREVIEW IMAGE
MANIFEST
CONTROL
Manifest file
2
CONTROL PROPERTIES
INPUT FIELDS
RESOURCES (e.g. Code,
CSS, Images etc)
Control file (INIT CLASS)
2
OUTER DIV
INNER DIV (Animated Pulse)
ANCHOR (TEXT)
Control file (UPDATE VIEW)
2
SET VALUE
GET INPUT (BOUND FIELD)
1
2
3
4
CSS file
2
INNER DIV (ANIMATED PULSE CLASS)
2
3
PACKAGING & DEPLOYMENT
2
PACKAGING pac solution add-reference --path <path or relative path
of your PowerApps component framework project on disk>
GENERATE A SOLUTION FILE msbuild /t restore
msbuild
IMPORT SOLUTION FILE IN CRM
USAGE WITHIN DYNAMICS 365
(MODEL) FORM
2
ADD CONTROL
RUN ON WEB, PHONE, TABLET
26
WALKTHROUGH – BUILD A CONTROL
https://github.com/365lyf/PCFControls
Andrew Ly
(KPMG)
Pulsing Notifications
Demo
Advanced PCF
Intro to React (Why React?)
• JavaScript library for building user interfaces
• A view library allowing to build single page applications
• Developed by Facebook
React Essentials
• Designed for “top-down” or “unidirectional” data flow
• 3 main principles
• Components – independent, reusable elements
• Props – immutable and read-only
• State – local or encapsulated within a component
Component
Component Props
Props
State
Application Data
React in PCF
React
Example
React
Example
Dataset
Example
Dataset
Example
Dataset
Example
Benefits of React
• Build smaller components
• Achieve clean code and declarative
• Thousands of react packages on npm
One suggestion with npm
Future Roadmap
• Public preview on canvas app - September
• GA - October
• Enhancement to React bundling
• Visual Studio Extension
Considerations
• Always look at out-of-the-box features
• Embedded canvas app as alternative
• Extremely powerful, so use with extra
care
• Complication with Automated UI
Testing (EasyRepro)
Where to find out more
Getting started
https://aka.ms/PCFBlog
Documentation
https://aka.ms/PCFDocs
Community Forum
https://aka.ms/PCFForum
Feature Ideas
https://aka.ms/PCFIdeas
Community components
https://aka.ms/PCFDemos
4
Hemant Gaur
Senior Product Manager Microsoft
4
Shout Outs
Microsoft – Hemant Gaur, Frank
Chen, Peter Vaynerman, Alex
Chin, Nadiya Klymenko,
FooShen Wu, Charles Lamanna
Q&A
Summit Australia 2019 - PowerApps Component Framework (PCF) - Andrew Ly & Aung Khaing

Summit Australia 2019 - PowerApps Component Framework (PCF) - Andrew Ly & Aung Khaing