SlideShare a Scribd company logo
Gosia Borzecka
About me
@gosiaborzecka
Agenda
SharePoint Framework
Deployment
What next?
SharePoint Development options
Add-Ins
•Decoupling customizations from SharePoint
•Provides security model for the customization permissions
•Limited web part experience as add-in part
•Additional operational and maintenance requirements
External Apps/SPAs
•Decouples customizations from SharePoint
•Bring your own technology stack
•Provides security model for customization permissions
•Requires custom implementation of user interface
SharePoint Framework
•Customization runs as part of the SharePoint page
•Flexible web part experience
•Runs under permissions of current user
•Industry standard development model
SharePoint Framework
Modern Client Site Development
Lightweight web and mobile
Powers our own experience
Backward compatible
Supports open source tools and JavaScript Web Frameworks
SharePoint Framework Tooling
Tooling
• Node.js
• Yeoman
• Gulp
• TypeScipt
• Visual Studio Code
Frameworks:
• React
• Angular.js
• Knockout
• etc
https://www.voitanos.io/
Client-side Web Part Build Flow
Build SPFx solution
Package your webpart:
• Use bundle gulp task to build, localize, and bundle the
project
• Use the package-solution gulp task to package the
project into a .sppkg file
• The ship parameter build task created a minified version
of the bundle and copies all of the webpart assets
Workbench
Local
• Runs on https://localhost:4321/temp/workbench.html
• Has no SharePoint Context
• Use Mock Data
• Available offline
SharePoint
• Runs on SharePoint Site https://<YOUR-SHAREPOINT-
SITE>/_layouts/15/workbench.aspx
• Has SharePoint Context
• Use SharePoint Data
Debugging code
Browser
•Developer Console
Visual Studio Code
•Chrome Debugger Extension
Property Pane
PropertyPaneTextField
PropertyPaneButton
PropertyPaneCheckbox
PropertyPaneChoiseGroup
PropertyPaneDropdown
PropertyPaneLabel
PropertyPaneLink
PropertyPaneSlider
PropertyPaneToggle
Environment
import { Environment, EnvironmentType } from
'@microsoft/sp-core-library’;
Values:
• EnvironmentType.Tests
• EnvironmentType.Local
• EnvironmentType.SharePoint
• EnvironmentType.ClassicSharePoint
Rest API
•Provides shared functionality across all pnp librariescommon
•Provides a way to manage configuration within your applicationconfig-store
•Provides a fluent api for working with Microsoft Graphgraph
•Light-weight, subscribable logging frameworklogging
•Provides functionality enabling the @pnp libraries within nodejsnodejs
•Provides shared odata functionality and base classesodata
•Rollup library of core functionality (mimics sp-pnp-js)pnpjs
•Provides a fluent api for working with SharePoint RESTsp
•Provides functionality for working within SharePoint add-inssp-addinhelpers
•Provides based classes used to create a fluent api for working with SharePoint Managed
Metadatasp-clientsvc
•Provides a fluent api for working with SharePoint Managed Metadatasp-taxonomy
Rest API
•Alias Parameters •ALM api •Attachments •Client-side Pages
•Features •Fields •Files •List Items
•Navigation
Service
•Permissions •Related Items •Search
•Sharing •Social •SP.Utilities.Utility •Tenant Properties
•Views •Webs
•Comments and
Likes
https://pnp.github.io/pnpjs/sp/index.html
Office Fabric
https://developer.microsoft.com/en-us/fabric
Microsoft Graph
Deploy to Office 365 Public CDN
• Connect-SPOService -Url https://contoso-admin.sharepoint.com
• Get-SPOTenantCdnEnabled -CdnType Public
• Get-SPOTenantCdnOrigins -CdnType Public
• Get-SPOTenantCdnPolicies -CdnType Public
• Set-SPOTenantCdnEnabled -CdnType Public
Deploy to Office 365 Public CDN
Deploy to Azure CDN
https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get-started/deploy-web-
part-to-cdn
Deploy to Azure CDN
deploy-azure-
storage.json {
"$schema": "https://developer.microsoft.com/json-
schemas/spfx-build/deploy-azure-storage.schema.json",
"workingDir": "./temp/deploy/",
"account": “accountName",
"container": "azurehosted-webpart",
"accessKey": “accessKey“
}
Deploy to Azure CDN
write-
manifest.json {
"$schema":
"https://developer.microsoft.com/json-
schemas/spfx-build/write-
manifests.schema.json",
"cdnBasePath":
"https://XXX.azureedge.net/xxx/“
}
DEMO
SPFx Extensions
•Application
Customizers
• Adds scripts to the
page, and accesses
well-known HTML
element placeholders
and extends them
with custom
renderings.
•Field Customizers
• Provides modified
views to data for
fields within a list.
•Command Sets
• Extends the
SharePoint command
surfaces to add new
actions, and provides
client-side code that
you can use to
implement
behaviours.
SPFx Extensions
SPFx Extensions: Application Customizer
?loadSPFX=true&debugManifestsFile=https://localhost:4321/temp/manifests.js&customActions={"e5625e23-
5c5a-4007-a335-
e6c2c3afa485":{"location":"ClientSideExtension.ApplicationCustomizer","properties":{"testMessage":"Hello as
property!"}}}
SPFx Extension: Field Customizer
?loadSPFX=true&debugManifestsFile=https://localhost:4321/temp/manifests.js&fieldCustomizers={"Percent":{"
id":"45a1d299-990d-4917-ba62-7cb67158be16","properties":{"sampleText":"Hello!"}}}
SPFx Extension: ListView Command Set
?loadSpfx=true&debugManifestsFile=https://localhost:4321/temp/manifests.js&customActions={"a8047e2
f-30d5-40fc-b880-
b2890c7c16d6":{"location":"ClientSideExtension.ListViewCommandSet.CommandBar","properties":{"sampl
eTextOne":"One item is selected in the list.","sampleTextTwo":"This command is always visible."}}}
Update SPFx version
Find outdated packages
• npm outdated
Update specific package
• npm install mypackage@newversion –save
Clean old build artifacts
• Gulp clean
Any problems?
• Delete node_modules and execute npm install
Update SPFx version - Yeoman
Find outdated Yeoman generator (installed
globally)
• npm outdated –g
Update
• npm install @microsoft/generator-sharepoint@latest -g
Open source Starter Kit
Automated provisioning of simple demo content within a
communication site
Automated provisioning of the whole solution to any tenant within
minutes
Automated configuration of Site Scripts and Site Designs at the
tenant level using the PnP Remote Provisioning engine
Implementation of different customizations for SharePoint Online
Usage of Office UI Fabric and reusable PnP SPFx controls within the
customizations
The Greatest Introduction to SharePoint Framework (SPFx) on earth!
https://developer.microsoft.com/en-us/office/dev-program
Just few days ago..
Sharing is caring!
• Use hashtags:
• #Office365Dev
• #MicrosoftGraph
• #SPFx
• Log issues & questions on GitHub Repos
Thank you!
#SPSLeicester
Thank You To All Of Our Sponsors!
#spsleicester

More Related Content

PDF
All about SPFx
PPTX
Introduction to SharePoint Framework
PPTX
Introduction to SharePoint Framework (SPFx)
PDF
Use the PnP SharePoint Starter Kit to create your intranet in a box
PDF
All about Office UI Fabric
PPTX
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
PPTX
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
PPTX
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap
All about SPFx
Introduction to SharePoint Framework
Introduction to SharePoint Framework (SPFx)
Use the PnP SharePoint Starter Kit to create your intranet in a box
All about Office UI Fabric
ECS19 - Vesa Juvonen - SharePoint and Office 365 Development PowerClass
ECS19 - Nik Charlebois - Automate the Deployment & Monitoring of SharePoint w...
ECS19 - Vesa Juvonen - Getting Started With SharePoint Framework - Roadmap

What's hot (19)

PPTX
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
PPTX
Deep dive into share point framework webparts
PPTX
SharePoint Framework 101 (SPFx)
PDF
SPUnite17 Introduction to the Office Dev PnP Core Libraries
PDF
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
PPTX
SharePoint Framework - Developer Preview
PDF
SPUnite17 SPFx Extensions
PPTX
[Jansen] Transforming your classic team sites into modern group connected tea...
PPTX
SharePoint Framework, React and Office UI SPS Paris 2016 - d01
PPTX
Chris O'Brien - Introduction to the SharePoint Framework for developers
PPTX
Overview of SharePoint Framework (SPFx)
PDF
SPUnite17 Timer Jobs Event Handlers
PPTX
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
PDF
Introduction To Form Services In Mos22007 Csug
PDF
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
PDF
Developing with SharePoint Framework (SPFx) on-premises
PDF
SPUnite17 Migrating your Customizations from On-prem to SharePoint Online
PPTX
O365: Attack of the Clones
PPTX
Modern SharePoint, the Good, the Bad, and the Ugly
D2 - Automate Custom Solutions Deployment on Office 365 and Azure - Paolo Pia...
Deep dive into share point framework webparts
SharePoint Framework 101 (SPFx)
SPUnite17 Introduction to the Office Dev PnP Core Libraries
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SharePoint Framework - Developer Preview
SPUnite17 SPFx Extensions
[Jansen] Transforming your classic team sites into modern group connected tea...
SharePoint Framework, React and Office UI SPS Paris 2016 - d01
Chris O'Brien - Introduction to the SharePoint Framework for developers
Overview of SharePoint Framework (SPFx)
SPUnite17 Timer Jobs Event Handlers
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
Introduction To Form Services In Mos22007 Csug
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
Developing with SharePoint Framework (SPFx) on-premises
SPUnite17 Migrating your Customizations from On-prem to SharePoint Online
O365: Attack of the Clones
Modern SharePoint, the Good, the Bad, and the Ugly
Ad

Similar to The Greatest Introduction to SharePoint Framework (SPFx) on earth! (20)

PDF
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
PPTX
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
PPTX
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
PPTX
SharePoint Server 2013: to app or not to app?
PDF
Real World SharePoint Framework and Azure Services
PDF
Come riprogettare le attuali farm solution di share point con il nuovo modell...
PPTX
Web app job and functions - TUGAIT 2017
PPTX
SPSCasablanca - SPFx Deployment
PPTX
Custom Development in SharePoint – What are my options now?
PPTX
Developing SharePoint Framework Solutions for the Enterprise - SEF 2019
PDF
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
PPTX
MSDN - SharePoint 2013 to app or not to app
PPTX
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
PPTX
What's new for Developers in SharePoint 2013
PDF
SPUnite17 Building Great Client Side Web Parts with SPFx
PPTX
SharePoint 2013 App or Not to App
PDF
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
PPTX
Developing a Provider Hosted SharePoint app
PPTX
Developing Apps for SharePoint 2013
PDF
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
SharePoint Server 2013: to app or not to app?
Real World SharePoint Framework and Azure Services
Come riprogettare le attuali farm solution di share point con il nuovo modell...
Web app job and functions - TUGAIT 2017
SPSCasablanca - SPFx Deployment
Custom Development in SharePoint – What are my options now?
Developing SharePoint Framework Solutions for the Enterprise - SEF 2019
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
MSDN - SharePoint 2013 to app or not to app
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
What's new for Developers in SharePoint 2013
SPUnite17 Building Great Client Side Web Parts with SPFx
SharePoint 2013 App or Not to App
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Developing a Provider Hosted SharePoint app
Developing Apps for SharePoint 2013
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Ad

More from Małgorzata Borzęcka (20)

PPTX
Add more Speech API to your bot
PPTX
Cognitive Services Extravaganza #DDDNorth
PPTX
Cognitive Services Extravaganza
PPTX
Cognitive Services Extravaganza
PPTX
Cognitive Services Extravaganza
PPTX
Introduction to Cognitive Services
PPTX
Cognitive Services
PPTX
Cognitive Services
PPTX
SPFx (SharePoint Framework)
PDF
Introduction to asp.net Wroclaw
PDF
ASP.NET MVC Workshop for Women in Technology
PPTX
Introduction to .NET Framework
PPT
Project Siena
PPTX
Balans życia
PPTX
Global Windows Azure Bootcamp
PPTX
1 spotkanie Women in Technology na Śląsku
ODP
10 spotkanie Women in Technology we Wrocław
PPT
Technologiczna pigułka 2014 123
PDF
Technologiczna pigułka 2012/2013
PPT
Women in Technology.. Twitter.. Damn! (Łódzka Grupa DotNet)
Add more Speech API to your bot
Cognitive Services Extravaganza #DDDNorth
Cognitive Services Extravaganza
Cognitive Services Extravaganza
Cognitive Services Extravaganza
Introduction to Cognitive Services
Cognitive Services
Cognitive Services
SPFx (SharePoint Framework)
Introduction to asp.net Wroclaw
ASP.NET MVC Workshop for Women in Technology
Introduction to .NET Framework
Project Siena
Balans życia
Global Windows Azure Bootcamp
1 spotkanie Women in Technology na Śląsku
10 spotkanie Women in Technology we Wrocław
Technologiczna pigułka 2014 123
Technologiczna pigułka 2012/2013
Women in Technology.. Twitter.. Damn! (Łódzka Grupa DotNet)

Recently uploaded (20)

PDF
Approach and Philosophy of On baking technology
PPTX
Big Data Technologies - Introduction.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPT
Teaching material agriculture food technology
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Electronic commerce courselecture one. Pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Unlocking AI with Model Context Protocol (MCP)
Approach and Philosophy of On baking technology
Big Data Technologies - Introduction.pptx
NewMind AI Weekly Chronicles - August'25 Week I
The AUB Centre for AI in Media Proposal.docx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Teaching material agriculture food technology
Dropbox Q2 2025 Financial Results & Investor Presentation
20250228 LYD VKU AI Blended-Learning.pptx
Electronic commerce courselecture one. Pdf
Understanding_Digital_Forensics_Presentation.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
Review of recent advances in non-invasive hemoglobin estimation
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Network Security Unit 5.pdf for BCA BBA.
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Unlocking AI with Model Context Protocol (MCP)

The Greatest Introduction to SharePoint Framework (SPFx) on earth!

  • 4. SharePoint Development options Add-Ins •Decoupling customizations from SharePoint •Provides security model for the customization permissions •Limited web part experience as add-in part •Additional operational and maintenance requirements External Apps/SPAs •Decouples customizations from SharePoint •Bring your own technology stack •Provides security model for customization permissions •Requires custom implementation of user interface SharePoint Framework •Customization runs as part of the SharePoint page •Flexible web part experience •Runs under permissions of current user •Industry standard development model
  • 5. SharePoint Framework Modern Client Site Development Lightweight web and mobile Powers our own experience Backward compatible Supports open source tools and JavaScript Web Frameworks
  • 6. SharePoint Framework Tooling Tooling • Node.js • Yeoman • Gulp • TypeScipt • Visual Studio Code Frameworks: • React • Angular.js • Knockout • etc
  • 8. Client-side Web Part Build Flow
  • 9. Build SPFx solution Package your webpart: • Use bundle gulp task to build, localize, and bundle the project • Use the package-solution gulp task to package the project into a .sppkg file • The ship parameter build task created a minified version of the bundle and copies all of the webpart assets
  • 10. Workbench Local • Runs on https://localhost:4321/temp/workbench.html • Has no SharePoint Context • Use Mock Data • Available offline SharePoint • Runs on SharePoint Site https://<YOUR-SHAREPOINT- SITE>/_layouts/15/workbench.aspx • Has SharePoint Context • Use SharePoint Data
  • 11. Debugging code Browser •Developer Console Visual Studio Code •Chrome Debugger Extension
  • 13. Environment import { Environment, EnvironmentType } from '@microsoft/sp-core-library’; Values: • EnvironmentType.Tests • EnvironmentType.Local • EnvironmentType.SharePoint • EnvironmentType.ClassicSharePoint
  • 14. Rest API •Provides shared functionality across all pnp librariescommon •Provides a way to manage configuration within your applicationconfig-store •Provides a fluent api for working with Microsoft Graphgraph •Light-weight, subscribable logging frameworklogging •Provides functionality enabling the @pnp libraries within nodejsnodejs •Provides shared odata functionality and base classesodata •Rollup library of core functionality (mimics sp-pnp-js)pnpjs •Provides a fluent api for working with SharePoint RESTsp •Provides functionality for working within SharePoint add-inssp-addinhelpers •Provides based classes used to create a fluent api for working with SharePoint Managed Metadatasp-clientsvc •Provides a fluent api for working with SharePoint Managed Metadatasp-taxonomy
  • 15. Rest API •Alias Parameters •ALM api •Attachments •Client-side Pages •Features •Fields •Files •List Items •Navigation Service •Permissions •Related Items •Search •Sharing •Social •SP.Utilities.Utility •Tenant Properties •Views •Webs •Comments and Likes https://pnp.github.io/pnpjs/sp/index.html
  • 18. Deploy to Office 365 Public CDN • Connect-SPOService -Url https://contoso-admin.sharepoint.com • Get-SPOTenantCdnEnabled -CdnType Public • Get-SPOTenantCdnOrigins -CdnType Public • Get-SPOTenantCdnPolicies -CdnType Public • Set-SPOTenantCdnEnabled -CdnType Public
  • 19. Deploy to Office 365 Public CDN
  • 20. Deploy to Azure CDN https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get-started/deploy-web- part-to-cdn
  • 21. Deploy to Azure CDN deploy-azure- storage.json { "$schema": "https://developer.microsoft.com/json- schemas/spfx-build/deploy-azure-storage.schema.json", "workingDir": "./temp/deploy/", "account": “accountName", "container": "azurehosted-webpart", "accessKey": “accessKey“ }
  • 22. Deploy to Azure CDN write- manifest.json { "$schema": "https://developer.microsoft.com/json- schemas/spfx-build/write- manifests.schema.json", "cdnBasePath": "https://XXX.azureedge.net/xxx/“ }
  • 23. DEMO
  • 24. SPFx Extensions •Application Customizers • Adds scripts to the page, and accesses well-known HTML element placeholders and extends them with custom renderings. •Field Customizers • Provides modified views to data for fields within a list. •Command Sets • Extends the SharePoint command surfaces to add new actions, and provides client-side code that you can use to implement behaviours.
  • 26. SPFx Extensions: Application Customizer ?loadSPFX=true&debugManifestsFile=https://localhost:4321/temp/manifests.js&customActions={"e5625e23- 5c5a-4007-a335- e6c2c3afa485":{"location":"ClientSideExtension.ApplicationCustomizer","properties":{"testMessage":"Hello as property!"}}}
  • 27. SPFx Extension: Field Customizer ?loadSPFX=true&debugManifestsFile=https://localhost:4321/temp/manifests.js&fieldCustomizers={"Percent":{" id":"45a1d299-990d-4917-ba62-7cb67158be16","properties":{"sampleText":"Hello!"}}}
  • 28. SPFx Extension: ListView Command Set ?loadSpfx=true&debugManifestsFile=https://localhost:4321/temp/manifests.js&customActions={"a8047e2 f-30d5-40fc-b880- b2890c7c16d6":{"location":"ClientSideExtension.ListViewCommandSet.CommandBar","properties":{"sampl eTextOne":"One item is selected in the list.","sampleTextTwo":"This command is always visible."}}}
  • 29. Update SPFx version Find outdated packages • npm outdated Update specific package • npm install mypackage@newversion –save Clean old build artifacts • Gulp clean Any problems? • Delete node_modules and execute npm install
  • 30. Update SPFx version - Yeoman Find outdated Yeoman generator (installed globally) • npm outdated –g Update • npm install @microsoft/generator-sharepoint@latest -g
  • 31. Open source Starter Kit Automated provisioning of simple demo content within a communication site Automated provisioning of the whole solution to any tenant within minutes Automated configuration of Site Scripts and Site Designs at the tenant level using the PnP Remote Provisioning engine Implementation of different customizations for SharePoint Online Usage of Office UI Fabric and reusable PnP SPFx controls within the customizations
  • 34. Just few days ago..
  • 35. Sharing is caring! • Use hashtags: • #Office365Dev • #MicrosoftGraph • #SPFx • Log issues & questions on GitHub Repos
  • 36. Thank you! #SPSLeicester Thank You To All Of Our Sponsors! #spsleicester