SlideShare a Scribd company logo
The happy developer:
SharePoint Framework,
React, and Mindfulness
Olli Jääskeläinen
SPS Bremen 2020
THANK YOU, SPONSORS!
SHAREPOINT SATURDAY BREMEN 2020
#spsbre
Olli Jääskeläinen
Architect at Sulava
Microsoft MVP, MCM, MCT
An organizer for
Office 365 & SharePoint User Group
Finland
SharePoint Saturday Helsinki
A novice at mindfulness
Bouldering, writing code, trying out the
very boring acts of meditation
”Can you guys at least
pretend this is
dangerous?”
Photo credit: @katjajokisalo – Check her Microsoft 365 blog at katjajokisalo.com
Flow of the session
Introduction to
SharePoint
Framework
React and React
components in
SharePoint
Framework
Available ready-
made controls
+ a few bits about mindfulness
Introduction to SharePoint
Framework
Why this stuff is
important?
SharePoint Framework in a
nutshell
Modern way to create user interfaces
Builds on open-source development
tools
You can use React and other
JavaScript frameworks and libraries
SharePoint Framework building
blocks
SharePoint Web Part / Teams Tab
SPFx for Teams personal app and mobile app
support (SPFx 1.10)
SharePoint Extensions
Header, footer, custom button on a list,
field customizer
Single part app pages in SharePoint
What’s coming
SPFx for Office (SPFx 1.10 developer preview)
Extending beyond SharePoint – “M365
Framework?”
Demo
SharePoint Framework customizations
What is mindfulness?
Living the moment
Being aware
Being acceptive
React
Mix JavaScript and XML?
The easy way
out
What is React?
Declarative
Component based  Reusable
Stateful
Declarative nature of React
JSX
XML/HTML like syntax used by
React
Extends the script so that code
and HTML can co-exist
TSX
TypeScript equivalent of JSX
Demo
TSX in React components
Props and State in React
Properties are constant parameters
given to React component
State contains variables that present the
current state of React component
When the data is loaded
When the user interacts
 The component re-renders when state
changes
Props and State in React
Definition
of props
Definition
of state
State can
only be
directly set
in
constructor
State
change is
initiated via
setState
State
values can
be
referenced
Class components vs. functional
components
Class components is the
traditional way to create complex
stateful components
Functional components are simple
Since React 16.8 Hooks
update functional components
can be stateful
Functional React is simple BUT…
Rules of Hooks!  https://reactjs.org/docs/hooks-rules.html
Only call Hooks at Top Level
Don’t call Hooks inside loops, conditions, or nested functions.
React relies on the order in which the hooks are called!
Only call Hooks from React functions
Not from regular JavaScript functions
But I need to fetch data, how can I set the state?
https://www.robinwieruch.de/react-hooks-fetch-data
https://www.npmjs.com/package/use-async-effect
Demo
Class component vs. functional component
Ready-made controls and
components
Don’t reinvent
the wheel
Office UI Fabric React
Office UI Fabric React
Builds on Office UI Fabric
controls making them React
components
Essential components for
Office 365 development
Use them to make your solutions
fit to the suite
https://github.com/OfficeDev/office-ui-fabric-react
Demo
Using Office UI Fabric React components
Icons: https://uifabricicons.azurewebsites.net/
PnP SharePoint Framework Property
Controls
Elio <3
PnP SharePoint Framework Property
Controls
Code Editor
Collection Data
Color Picker
Datetime Picker
Term Picker
People Picker
List Picker
Multiselect
Number
Order
…
https://sharepoint.github.io/sp-dev-fx-property-controls/#getting-started
Demo
PnP SharePoint Framework Property Controls
How to practice mindfulness?
Read/listen/watch mindfulness stuff
Find a way that suits you
Meditation (learning how to keep focus)
Sports (yoga, bouldering, ice hockey,
running)
Key takeaways
SPFx is the most powerful way to customize modern SharePoint
SPFx is extending beyond SP
React is used by SharePoint and Office 365 – why should not you use it as
well?
Build on Office UI Fabric and PnP components and controls
Be mindful – aware of what you are doing and acceptive towards yourself
and others
THANK YOU, SPONSORS!
SHAREPOINT SATURDAY BREMEN 2020
#spsbre

More Related Content

What's hot

Practical Business Intelligence in SharePoint 2013 - Honolulu
Practical Business Intelligence in SharePoint 2013 - HonoluluPractical Business Intelligence in SharePoint 2013 - Honolulu
Practical Business Intelligence in SharePoint 2013 - Honolulu
Ivan Sanders
 
RPA with UIPath and Flaui
RPA with UIPath and FlauiRPA with UIPath and Flaui
RPA with UIPath and Flaui
Agusto Sipahutar
 
SharePoint Framework - Developer Preview
SharePoint Framework - Developer PreviewSharePoint Framework - Developer Preview
SharePoint Framework - Developer Preview
Sean McLellan
 
Webhooks in Microsoft SharePoint Online
Webhooks in Microsoft SharePoint OnlineWebhooks in Microsoft SharePoint Online
Webhooks in Microsoft SharePoint Online
Netwoven Inc.
 
Activate bots within SharePoint Framework
Activate bots within SharePoint FrameworkActivate bots within SharePoint Framework
Activate bots within SharePoint Framework
Kushan Lahiru Perera
 
SharePoint Framework
SharePoint FrameworkSharePoint Framework
SharePoint Framework
Vitaly Zhukov
 
O365 DEVCamp Los Angeles June 16, 2015 Module 04 Hook into Office 365 APIs
O365 DEVCamp Los Angeles June 16, 2015 Module 04 Hook into Office 365 APIsO365 DEVCamp Los Angeles June 16, 2015 Module 04 Hook into Office 365 APIs
O365 DEVCamp Los Angeles June 16, 2015 Module 04 Hook into Office 365 APIs
Ivan Sanders
 
Oracle APEX plugins - AUSOUG Connect 2016
Oracle APEX plugins - AUSOUG Connect 2016Oracle APEX plugins - AUSOUG Connect 2016
Oracle APEX plugins - AUSOUG Connect 2016
Lino Schildenfeld
 
Application innovation & Developer Productivity
Application innovation & Developer ProductivityApplication innovation & Developer Productivity
Application innovation & Developer Productivity
Kushan Lahiru Perera
 
How to create custom connector for Microsoft Flow - SPSNL18
How to create custom connector for Microsoft Flow - SPSNL18How to create custom connector for Microsoft Flow - SPSNL18
How to create custom connector for Microsoft Flow - SPSNL18
Dragan Panjkov
 
SP2010 Developer Tools
SP2010 Developer ToolsSP2010 Developer Tools
SP2010 Developer Tools
Mohamed Yehia Abdul Kader
 
SharePoint 2013 Workflows
SharePoint 2013 WorkflowsSharePoint 2013 Workflows
SharePoint 2013 Workflows
David J Rosenthal
 
Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...
Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...
Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...
Corey Roth
 
What's New for SP2010 Devs
What's New for SP2010 DevsWhat's New for SP2010 Devs
What's New for SP2010 Devs
Mohamed Yehia Abdul Kader
 
How to: Create a custom connector for Microsoft Flow
How to: Create a custom connector for Microsoft FlowHow to: Create a custom connector for Microsoft Flow
How to: Create a custom connector for Microsoft Flow
Dragan Panjkov
 
Access SharePoint Remotely
Access SharePoint RemotelyAccess SharePoint Remotely
Access SharePoint Remotely
Mohamed Yehia Abdul Kader
 
Testing SharePoint solutions overview
Testing SharePoint solutions overviewTesting SharePoint solutions overview
Testing SharePoint solutions overview
Spiffy
 
How to create custom Connector for Microsoft Flow
How to create custom Connector for Microsoft FlowHow to create custom Connector for Microsoft Flow
How to create custom Connector for Microsoft Flow
Dragan Panjkov
 
O365con14 - the new sharepoint online apps - napa in action
O365con14 - the new sharepoint online apps - napa in actionO365con14 - the new sharepoint online apps - napa in action
O365con14 - the new sharepoint online apps - napa in action
NCCOMMS
 
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan SchoutenSharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
Ryan Schouten
 

What's hot (20)

Practical Business Intelligence in SharePoint 2013 - Honolulu
Practical Business Intelligence in SharePoint 2013 - HonoluluPractical Business Intelligence in SharePoint 2013 - Honolulu
Practical Business Intelligence in SharePoint 2013 - Honolulu
 
RPA with UIPath and Flaui
RPA with UIPath and FlauiRPA with UIPath and Flaui
RPA with UIPath and Flaui
 
SharePoint Framework - Developer Preview
SharePoint Framework - Developer PreviewSharePoint Framework - Developer Preview
SharePoint Framework - Developer Preview
 
Webhooks in Microsoft SharePoint Online
Webhooks in Microsoft SharePoint OnlineWebhooks in Microsoft SharePoint Online
Webhooks in Microsoft SharePoint Online
 
Activate bots within SharePoint Framework
Activate bots within SharePoint FrameworkActivate bots within SharePoint Framework
Activate bots within SharePoint Framework
 
SharePoint Framework
SharePoint FrameworkSharePoint Framework
SharePoint Framework
 
O365 DEVCamp Los Angeles June 16, 2015 Module 04 Hook into Office 365 APIs
O365 DEVCamp Los Angeles June 16, 2015 Module 04 Hook into Office 365 APIsO365 DEVCamp Los Angeles June 16, 2015 Module 04 Hook into Office 365 APIs
O365 DEVCamp Los Angeles June 16, 2015 Module 04 Hook into Office 365 APIs
 
Oracle APEX plugins - AUSOUG Connect 2016
Oracle APEX plugins - AUSOUG Connect 2016Oracle APEX plugins - AUSOUG Connect 2016
Oracle APEX plugins - AUSOUG Connect 2016
 
Application innovation & Developer Productivity
Application innovation & Developer ProductivityApplication innovation & Developer Productivity
Application innovation & Developer Productivity
 
How to create custom connector for Microsoft Flow - SPSNL18
How to create custom connector for Microsoft Flow - SPSNL18How to create custom connector for Microsoft Flow - SPSNL18
How to create custom connector for Microsoft Flow - SPSNL18
 
SP2010 Developer Tools
SP2010 Developer ToolsSP2010 Developer Tools
SP2010 Developer Tools
 
SharePoint 2013 Workflows
SharePoint 2013 WorkflowsSharePoint 2013 Workflows
SharePoint 2013 Workflows
 
Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...
Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...
Office 365 - Introduction to SharePoint Online Development - SharePoint Conne...
 
What's New for SP2010 Devs
What's New for SP2010 DevsWhat's New for SP2010 Devs
What's New for SP2010 Devs
 
How to: Create a custom connector for Microsoft Flow
How to: Create a custom connector for Microsoft FlowHow to: Create a custom connector for Microsoft Flow
How to: Create a custom connector for Microsoft Flow
 
Access SharePoint Remotely
Access SharePoint RemotelyAccess SharePoint Remotely
Access SharePoint Remotely
 
Testing SharePoint solutions overview
Testing SharePoint solutions overviewTesting SharePoint solutions overview
Testing SharePoint solutions overview
 
How to create custom Connector for Microsoft Flow
How to create custom Connector for Microsoft FlowHow to create custom Connector for Microsoft Flow
How to create custom Connector for Microsoft Flow
 
O365con14 - the new sharepoint online apps - napa in action
O365con14 - the new sharepoint online apps - napa in actionO365con14 - the new sharepoint online apps - napa in action
O365con14 - the new sharepoint online apps - napa in action
 
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan SchoutenSharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
SharePoint Saturday Silicon Valley - SharePoint Apps - Ryan Schouten
 

Similar to SPS Bremen 2020 The happy developer - SharePoint Framework - React - Mindfulness

M365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx VersionM365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx Version
Thomas Daly
 
Creating Custom SharePoint Web Parts A Step-By-Step Guide.pdf
Creating Custom SharePoint Web Parts A Step-By-Step Guide.pdfCreating Custom SharePoint Web Parts A Step-By-Step Guide.pdf
Creating Custom SharePoint Web Parts A Step-By-Step Guide.pdf
Alpha BOLD
 
The happy developer - SharePoint Framework React and Mindfulness
The happy developer - SharePoint Framework React and MindfulnessThe happy developer - SharePoint Framework React and Mindfulness
The happy developer - SharePoint Framework React and Mindfulness
Olli Jääskeläinen
 
React-JS.pptx
React-JS.pptxReact-JS.pptx
React-JS.pptx
AnmolPandita7
 
O365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialO365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - Material
Thomas Daly
 
M365 global developer bootcamp 2019 PA
M365 global developer bootcamp 2019  PAM365 global developer bootcamp 2019  PA
M365 global developer bootcamp 2019 PA
Thomas Daly
 
M365 global developer bootcamp 2019
M365 global developer bootcamp 2019M365 global developer bootcamp 2019
M365 global developer bootcamp 2019
Thomas Daly
 
AUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.comAUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.com
Jeremy Thake
 
Lightning components ver1.0
Lightning components ver1.0Lightning components ver1.0
Lightning components ver1.0
Akhil Anil ☁
 
Sps Boston The Share Point Beast
Sps Boston   The Share Point BeastSps Boston   The Share Point Beast
Sps Boston The Share Point Beast
gueste918732
 
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration Platform
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration PlatformWebinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration Platform
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration Platform
Edureka!
 
Bringing Zest to SharePoint Sites Using Out-of-the-Box Technology
Bringing Zest to SharePoint Sites Using Out-of-the-Box TechnologyBringing Zest to SharePoint Sites Using Out-of-the-Box Technology
Bringing Zest to SharePoint Sites Using Out-of-the-Box Technology
joelsef
 
Best React Developer Tools to Increase Your Productivity.pdf
Best React Developer Tools to Increase Your Productivity.pdfBest React Developer Tools to Increase Your Productivity.pdf
Best React Developer Tools to Increase Your Productivity.pdf
FuGenx Technologies
 
Deep dive into the new features of share point online &amp; onedrive for busi...
Deep dive into the new features of share point online &amp; onedrive for busi...Deep dive into the new features of share point online &amp; onedrive for busi...
Deep dive into the new features of share point online &amp; onedrive for busi...
Jayanthi P
 
Webinar Oracle adf12c EN
Webinar Oracle adf12c ENWebinar Oracle adf12c EN
Webinar Oracle adf12c EN
atSistemas
 
CVNUG - Share Point Development
CVNUG - Share Point DevelopmentCVNUG - Share Point Development
CVNUG - Share Point Development
ryanaoliveira
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-end
Jordi Anguela
 
Real World Add-in Development for Office365
Real World Add-in Development for Office365Real World Add-in Development for Office365
Real World Add-in Development for Office365
Brian Culver
 
Introduction to React Language (1).pptx
Introduction to React Language  (1).pptxIntroduction to React Language  (1).pptx
Introduction to React Language (1).pptx
AleksandrosHodo
 
React Native Components Building Blocks for Dynamic Apps.pdf
React Native Components Building Blocks for Dynamic Apps.pdfReact Native Components Building Blocks for Dynamic Apps.pdf
React Native Components Building Blocks for Dynamic Apps.pdf
Gargi Raghav
 

Similar to SPS Bremen 2020 The happy developer - SharePoint Framework - React - Mindfulness (20)

M365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx VersionM365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx Version
 
Creating Custom SharePoint Web Parts A Step-By-Step Guide.pdf
Creating Custom SharePoint Web Parts A Step-By-Step Guide.pdfCreating Custom SharePoint Web Parts A Step-By-Step Guide.pdf
Creating Custom SharePoint Web Parts A Step-By-Step Guide.pdf
 
The happy developer - SharePoint Framework React and Mindfulness
The happy developer - SharePoint Framework React and MindfulnessThe happy developer - SharePoint Framework React and Mindfulness
The happy developer - SharePoint Framework React and Mindfulness
 
React-JS.pptx
React-JS.pptxReact-JS.pptx
React-JS.pptx
 
O365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - MaterialO365 Developer Bootcamp NJ 2018 - Material
O365 Developer Bootcamp NJ 2018 - Material
 
M365 global developer bootcamp 2019 PA
M365 global developer bootcamp 2019  PAM365 global developer bootcamp 2019  PA
M365 global developer bootcamp 2019 PA
 
M365 global developer bootcamp 2019
M365 global developer bootcamp 2019M365 global developer bootcamp 2019
M365 global developer bootcamp 2019
 
AUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.comAUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.com
 
Lightning components ver1.0
Lightning components ver1.0Lightning components ver1.0
Lightning components ver1.0
 
Sps Boston The Share Point Beast
Sps Boston   The Share Point BeastSps Boston   The Share Point Beast
Sps Boston The Share Point Beast
 
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration Platform
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration PlatformWebinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration Platform
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration Platform
 
Bringing Zest to SharePoint Sites Using Out-of-the-Box Technology
Bringing Zest to SharePoint Sites Using Out-of-the-Box TechnologyBringing Zest to SharePoint Sites Using Out-of-the-Box Technology
Bringing Zest to SharePoint Sites Using Out-of-the-Box Technology
 
Best React Developer Tools to Increase Your Productivity.pdf
Best React Developer Tools to Increase Your Productivity.pdfBest React Developer Tools to Increase Your Productivity.pdf
Best React Developer Tools to Increase Your Productivity.pdf
 
Deep dive into the new features of share point online &amp; onedrive for busi...
Deep dive into the new features of share point online &amp; onedrive for busi...Deep dive into the new features of share point online &amp; onedrive for busi...
Deep dive into the new features of share point online &amp; onedrive for busi...
 
Webinar Oracle adf12c EN
Webinar Oracle adf12c ENWebinar Oracle adf12c EN
Webinar Oracle adf12c EN
 
CVNUG - Share Point Development
CVNUG - Share Point DevelopmentCVNUG - Share Point Development
CVNUG - Share Point Development
 
Professionalizing the Front-end
Professionalizing the Front-endProfessionalizing the Front-end
Professionalizing the Front-end
 
Real World Add-in Development for Office365
Real World Add-in Development for Office365Real World Add-in Development for Office365
Real World Add-in Development for Office365
 
Introduction to React Language (1).pptx
Introduction to React Language  (1).pptxIntroduction to React Language  (1).pptx
Introduction to React Language (1).pptx
 
React Native Components Building Blocks for Dynamic Apps.pdf
React Native Components Building Blocks for Dynamic Apps.pdfReact Native Components Building Blocks for Dynamic Apps.pdf
React Native Components Building Blocks for Dynamic Apps.pdf
 

More from Olli Jääskeläinen

Customizing Microsoft Teams Provisioning and-Governance
Customizing Microsoft Teams Provisioning and-GovernanceCustomizing Microsoft Teams Provisioning and-Governance
Customizing Microsoft Teams Provisioning and-Governance
Olli Jääskeläinen
 
The Happy Developer - SharePoint Framework, React, and Mindfulness
The Happy Developer - SharePoint Framework, React, and MindfulnessThe Happy Developer - SharePoint Framework, React, and Mindfulness
The Happy Developer - SharePoint Framework, React, and Mindfulness
Olli Jääskeläinen
 
Office 365 & SharePoint User Group Finland online marraskuu 2019
Office 365 & SharePoint User Group Finland online marraskuu 2019Office 365 & SharePoint User Group Finland online marraskuu 2019
Office 365 & SharePoint User Group Finland online marraskuu 2019
Olli Jääskeläinen
 
Lokakuun 2019 SPUG-tapaaminen - Teams tiimien luonnin ja hallinnan räätälöinti
Lokakuun 2019 SPUG-tapaaminen - Teams tiimien luonnin ja hallinnan räätälöintiLokakuun 2019 SPUG-tapaaminen - Teams tiimien luonnin ja hallinnan räätälöinti
Lokakuun 2019 SPUG-tapaaminen - Teams tiimien luonnin ja hallinnan räätälöinti
Olli Jääskeläinen
 
Start developing Microsoft Teams tabs and SharePoint webparts with SharePoint...
Start developing Microsoft Teams tabs and SharePoint webparts with SharePoint...Start developing Microsoft Teams tabs and SharePoint webparts with SharePoint...
Start developing Microsoft Teams tabs and SharePoint webparts with SharePoint...
Olli Jääskeläinen
 
Customizing Microsoft Teams provisioning and governance - Olli Jääskeläinen
Customizing Microsoft Teams provisioning and governance - Olli JääskeläinenCustomizing Microsoft Teams provisioning and governance - Olli Jääskeläinen
Customizing Microsoft Teams provisioning and governance - Olli Jääskeläinen
Olli Jääskeläinen
 
New era of customizing site provisioning
New era of customizing site provisioningNew era of customizing site provisioning
New era of customizing site provisioning
Olli Jääskeläinen
 
Customizing SharePoint and Microsoft Teams with SharePoint Framework web parts
Customizing SharePoint and Microsoft Teams with SharePoint Framework web partsCustomizing SharePoint and Microsoft Teams with SharePoint Framework web parts
Customizing SharePoint and Microsoft Teams with SharePoint Framework web parts
Olli Jääskeläinen
 
Practical Microsoft Bot Framework for Office 365 developers
Practical Microsoft Bot Framework for Office 365 developersPractical Microsoft Bot Framework for Office 365 developers
Practical Microsoft Bot Framework for Office 365 developers
Olli Jääskeläinen
 
SPSBE18: New era of customizing site provisioning
SPSBE18: New era of customizing site provisioningSPSBE18: New era of customizing site provisioning
SPSBE18: New era of customizing site provisioning
Olli Jääskeläinen
 
SPSNL18 New era of customizing site provisioning - Olli Jääskeläinen
SPSNL18 New era of customizing site provisioning - Olli JääskeläinenSPSNL18 New era of customizing site provisioning - Olli Jääskeläinen
SPSNL18 New era of customizing site provisioning - Olli Jääskeläinen
Olli Jääskeläinen
 

More from Olli Jääskeläinen (11)

Customizing Microsoft Teams Provisioning and-Governance
Customizing Microsoft Teams Provisioning and-GovernanceCustomizing Microsoft Teams Provisioning and-Governance
Customizing Microsoft Teams Provisioning and-Governance
 
The Happy Developer - SharePoint Framework, React, and Mindfulness
The Happy Developer - SharePoint Framework, React, and MindfulnessThe Happy Developer - SharePoint Framework, React, and Mindfulness
The Happy Developer - SharePoint Framework, React, and Mindfulness
 
Office 365 & SharePoint User Group Finland online marraskuu 2019
Office 365 & SharePoint User Group Finland online marraskuu 2019Office 365 & SharePoint User Group Finland online marraskuu 2019
Office 365 & SharePoint User Group Finland online marraskuu 2019
 
Lokakuun 2019 SPUG-tapaaminen - Teams tiimien luonnin ja hallinnan räätälöinti
Lokakuun 2019 SPUG-tapaaminen - Teams tiimien luonnin ja hallinnan räätälöintiLokakuun 2019 SPUG-tapaaminen - Teams tiimien luonnin ja hallinnan räätälöinti
Lokakuun 2019 SPUG-tapaaminen - Teams tiimien luonnin ja hallinnan räätälöinti
 
Start developing Microsoft Teams tabs and SharePoint webparts with SharePoint...
Start developing Microsoft Teams tabs and SharePoint webparts with SharePoint...Start developing Microsoft Teams tabs and SharePoint webparts with SharePoint...
Start developing Microsoft Teams tabs and SharePoint webparts with SharePoint...
 
Customizing Microsoft Teams provisioning and governance - Olli Jääskeläinen
Customizing Microsoft Teams provisioning and governance - Olli JääskeläinenCustomizing Microsoft Teams provisioning and governance - Olli Jääskeläinen
Customizing Microsoft Teams provisioning and governance - Olli Jääskeläinen
 
New era of customizing site provisioning
New era of customizing site provisioningNew era of customizing site provisioning
New era of customizing site provisioning
 
Customizing SharePoint and Microsoft Teams with SharePoint Framework web parts
Customizing SharePoint and Microsoft Teams with SharePoint Framework web partsCustomizing SharePoint and Microsoft Teams with SharePoint Framework web parts
Customizing SharePoint and Microsoft Teams with SharePoint Framework web parts
 
Practical Microsoft Bot Framework for Office 365 developers
Practical Microsoft Bot Framework for Office 365 developersPractical Microsoft Bot Framework for Office 365 developers
Practical Microsoft Bot Framework for Office 365 developers
 
SPSBE18: New era of customizing site provisioning
SPSBE18: New era of customizing site provisioningSPSBE18: New era of customizing site provisioning
SPSBE18: New era of customizing site provisioning
 
SPSNL18 New era of customizing site provisioning - Olli Jääskeläinen
SPSNL18 New era of customizing site provisioning - Olli JääskeläinenSPSNL18 New era of customizing site provisioning - Olli Jääskeläinen
SPSNL18 New era of customizing site provisioning - Olli Jääskeläinen
 

Recently uploaded

GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 

Recently uploaded (20)

GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 

SPS Bremen 2020 The happy developer - SharePoint Framework - React - Mindfulness

  • 1. The happy developer: SharePoint Framework, React, and Mindfulness Olli Jääskeläinen SPS Bremen 2020
  • 2. THANK YOU, SPONSORS! SHAREPOINT SATURDAY BREMEN 2020 #spsbre
  • 3. Olli Jääskeläinen Architect at Sulava Microsoft MVP, MCM, MCT An organizer for Office 365 & SharePoint User Group Finland SharePoint Saturday Helsinki A novice at mindfulness Bouldering, writing code, trying out the very boring acts of meditation
  • 4. ”Can you guys at least pretend this is dangerous?” Photo credit: @katjajokisalo – Check her Microsoft 365 blog at katjajokisalo.com
  • 5. Flow of the session Introduction to SharePoint Framework React and React components in SharePoint Framework Available ready- made controls + a few bits about mindfulness
  • 6. Introduction to SharePoint Framework Why this stuff is important?
  • 7. SharePoint Framework in a nutshell Modern way to create user interfaces Builds on open-source development tools You can use React and other JavaScript frameworks and libraries
  • 8. SharePoint Framework building blocks SharePoint Web Part / Teams Tab SPFx for Teams personal app and mobile app support (SPFx 1.10) SharePoint Extensions Header, footer, custom button on a list, field customizer Single part app pages in SharePoint What’s coming SPFx for Office (SPFx 1.10 developer preview) Extending beyond SharePoint – “M365 Framework?”
  • 10. What is mindfulness? Living the moment Being aware Being acceptive
  • 13. What is React? Declarative Component based  Reusable Stateful
  • 14. Declarative nature of React JSX XML/HTML like syntax used by React Extends the script so that code and HTML can co-exist TSX TypeScript equivalent of JSX
  • 15. Demo TSX in React components
  • 16. Props and State in React Properties are constant parameters given to React component State contains variables that present the current state of React component When the data is loaded When the user interacts  The component re-renders when state changes
  • 17. Props and State in React Definition of props Definition of state State can only be directly set in constructor State change is initiated via setState State values can be referenced
  • 18. Class components vs. functional components Class components is the traditional way to create complex stateful components Functional components are simple Since React 16.8 Hooks update functional components can be stateful
  • 19. Functional React is simple BUT… Rules of Hooks!  https://reactjs.org/docs/hooks-rules.html Only call Hooks at Top Level Don’t call Hooks inside loops, conditions, or nested functions. React relies on the order in which the hooks are called! Only call Hooks from React functions Not from regular JavaScript functions But I need to fetch data, how can I set the state? https://www.robinwieruch.de/react-hooks-fetch-data https://www.npmjs.com/package/use-async-effect
  • 20. Demo Class component vs. functional component
  • 23. Office UI Fabric React Builds on Office UI Fabric controls making them React components Essential components for Office 365 development Use them to make your solutions fit to the suite https://github.com/OfficeDev/office-ui-fabric-react
  • 24. Demo Using Office UI Fabric React components Icons: https://uifabricicons.azurewebsites.net/
  • 25. PnP SharePoint Framework Property Controls Elio <3
  • 26. PnP SharePoint Framework Property Controls Code Editor Collection Data Color Picker Datetime Picker Term Picker People Picker List Picker Multiselect Number Order … https://sharepoint.github.io/sp-dev-fx-property-controls/#getting-started
  • 27. Demo PnP SharePoint Framework Property Controls
  • 28. How to practice mindfulness? Read/listen/watch mindfulness stuff Find a way that suits you Meditation (learning how to keep focus) Sports (yoga, bouldering, ice hockey, running)
  • 29. Key takeaways SPFx is the most powerful way to customize modern SharePoint SPFx is extending beyond SP React is used by SharePoint and Office 365 – why should not you use it as well? Build on Office UI Fabric and PnP components and controls Be mindful – aware of what you are doing and acceptive towards yourself and others
  • 30. THANK YOU, SPONSORS! SHAREPOINT SATURDAY BREMEN 2020 #spsbre

Editor's Notes

  1. https://opax.sharepoint.com/sites/HappyDeveloper Web part, web part properties Extension https://teams.microsoft.com/_#/tab::0cb2943d-e348-4bed-b334-da42f341d15b/General?threadId=19:5e324d50f9504e2d85c9dffd7a3e5ea2@thread.skype&ctx=channel Team information Frame source
  2. Living in the moment – right now. Being aware of your inner state and the world. Being acceptive towards others and yourself.
  3. HelloFunctionalReact.tsx – 1. render() 2. ClassBasedCounter
  4. HelloFunctionalReact.tsx and https://opax.sharepoint.com/sites/HappyDeveloper FunctionalSPComponents.aspx
  5. TeamsChatLink.tsx
  6. OpenTeamsChatWebPart - PropertyFieldPoplePicker