SlideShare a Scribd company logo
1 of 32
Download to read offline
Understanding SharePoint
Framework Extensions
Paolo Pialorsi | @PaoloPia
SharePoint Saturday Belgium 2018
#SPSBE
Platinum
Gold
Silver
SharePint
Community
Thanks to our sponsors!
Patrick Tisseghem
Founding father of BIWUG & true SharePoint master
17/10/1968 - 3/9/2008
Special Tribute Edition #SPSBE
About me
• Project Manager, Consultant, Trainer
• About 50 Microsoft certification exams
passed
• MCSM – Charter SharePoint
• MVP Office Apps and Services
• Office 365 Dev PnP Core Team Member
• Focused on SharePoint and Office 365 since
the beginning
• Author of many books about XML, SOAP,
.NET, LINQ, SharePoint, and Office 365
• Speaker at main IT conferences
Agenda
• Understanding the role of SharePoint Framework
• SharePoint Framework Extensions
• Application Customizer
• List View Command Set
• Field Customizer
• SPFx Extensions Deployment
• Q&A
Understanding the role of
SharePoint Framework
Web Parts Extensions
Client side
Tools
SP APIs
Package
Deployment
Experiences
Development
Building out the User Experience
CSOM
Add-ins
MS Graph
SharePoint Framework (SPFx)
• New framework to build Modern UI customizations
• Built on the well-known web stack
• Open model, not only for .NET/Microsoft-oriented developers
• Works well on the cloud
• It is available on-premises, too (SP2016 + FP2 or later)
• Enterprise-ready when used with back-end services
• Microsoft Graph, REST API and micro-services, Azure Functions, etc.
• Not a new model, but an additional model to build UI elements for
the Modern UI
• We can build client-side Web Parts or client-side Extensions
SharePoint Framework
Extensions
Client-Side Extensions
• Application Customizer
• Command Set
• Field Customizer
DEMO
SPFx Extensions Overview
Extensions Execution Logic
SharePoint Service
Extensions Execution Logic
SharePoint Service
Extensions Execution Logic
SharePoint Service
Application Customizer
• Build custom UI elements when onInit() fires
• Or when placeholders change
• Use this.context.placeholderProvider to read available placeholders
• Available placeholders (so far):
• Top
• Bottom
• Debug integrated with Visual Studio Code and SPFx generator
scaffolding
• Config serve.json + gulp serve --config=configName
Application Customizer Provisioning
• Reference the elements.xml file in package-solution.json
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction
Title="SPFxApplicationCustomizer"
Location="ClientSideExtension.ApplicationCustomizer"
ClientSideComponentId="46606aa6-5dd8-4792-b017-1555ec0a43a4"
ClientSideComponentProperties="{&quot;Top&quot;:&quot;Top area of the page&quot;,&quot;Bottom&quot;:
&quot;Bottom area in the page&quot;}">
</CustomAction>
</Elements>
DEMO
Developing Application Customizers
Command Set
• Enable/Disable commands by overriding onListViewUpdated(event)
method
• Override onExecute(event) method and switch based on
event.commandId
• Available locations:
• ClientSideExtension.ListViewCommandSet.ContextMenu: ECB
• ClientSideExtension.ListViewCommandSet.CommandBar: Top menu
• ClientSideExtension.ListViewCommandSet: Both
• Debug integrated with Visual Studio Code and SPFx generator
scaffolding
• Config serve.json + gulp serve --config=configName
Command Set Provisioning
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction
Title="SPFxListViewCommandSet"
RegistrationId="100"
RegistrationType="List"
Location="ClientSideExtension.ListViewCommandSet.CommandBar"
ClientSideComponentId="5fc73e12-8085-4a4b-8743-f6d02ffe1240"
ClientSideComponentProperties="{&quot;sampleTextOne&quot;:&quot;One item is selected in the list.&quot;,
&quot;sampleTextTwo&quot;:&quot;This command is always visible.&quot;}">
</CustomAction>
</Elements>
• Reference the elements.xml file in package-solution.json
DEMO
Developing List View Command Sets
Field Customizer
• Override onRenderCell(event) method
• Play with event.domElement to replace/update the HTML of the cell
• Debug integrated with Visual Studio Code and SPFx generator
scaffolding
• Config serve.json + gulp serve --config=configName
• Override onDisposeCell(event) method
• To free any resources that you don’t need anymore
Field Customizer Provisioning
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Field ID="{060E50AC-E9C1-3D3C-B1F9-DE0BCAC200F6}"
Name="SPFxPercentage"
DisplayName="Percentage"
Type="Number"
Min="0"
Required="FALSE"
Group="SPFx Columns"
ClientSideComponentId="7e7a4262-d02b-49bf-bfcb-e6ef1716aaef">
</Field>
</Elements>
• Reference the elements.xml file in package-solution.json
DEMO
Developing Field Customizers
SPFx Extensions Deployment
SPFx Extensions Deployment
• Relies on SharePoint Feature Framework for deployment
• <CustomAction /> or <Field /> elements
• Tenant-wide deployment doesn’t apply Feature Framework XML
• But there is the <ClientSideComponentInstance /> element for tenant-wide
extensions (SPFx 1.6)
• Thus, to deploy SPFx Extensions you have two options
• Use non-tenant-wide deployed packages
• Use tenant-wide packages and
• Tenant-wide extensions (since SPFx v. 1.6)
• PowerShell
• CSOM
• PnP
What are tenant-wide extensions?
• Extensions available across the whole tenant
• Available starting from SPFx v. 1.6
• Supported for
• Application Customizer
• List View Command Set
• Can be filtered based on target
• Web template
• List definition
Main steps
• Create a new SPFx 1.6 project
• Scaffolding will generate sample files to activate tenant-wide deployment
• You can always remove them
• Enable Tenant Wide Deployment (i.e. skipFeatureDeployment: true)
• Develop your extensions
• Deploy the .sppkg on the tenant App Catalog
• Register them in the Tenant Wide Extensions list in the tenant App
Catalog
• Eventually filter by target WebTemplateId or ListTemplateId
DEMO
Tenant-wide Extensions with SPFx 1.6
Q&A
Some shameless marketing 
• Follow me on Twitter:
• https://www.twitter.com/PaoloPia
• Subscribe to the “PiaSys Tech Bites” YouTube channel:
• https://piasys.com/TechBites
• Don’t miss the upcoming trainings
• https://piasys.com/shop/ (New schedule for 2019 is coming soon …)
• And the upcoming events:
• https://piasys.com/events/
#SPSBE
http://spsbe.be
Please rate this session!
SharePoint Saturday Belgium 2018
#SPSBE

More Related Content

What's hot

What's hot (20)

Getting started with the PnP Provisioning Engine
Getting started with the PnP Provisioning EngineGetting started with the PnP Provisioning Engine
Getting started with the PnP Provisioning Engine
 
Workflow Best Practices:Five (or More) "Do"s and "Don't"s
Workflow Best Practices:Five (or More) "Do"s and "Don't"sWorkflow Best Practices:Five (or More) "Do"s and "Don't"s
Workflow Best Practices:Five (or More) "Do"s and "Don't"s
 
Why you shouldn't probably care about Machine Learning
Why you shouldn't probably care about Machine LearningWhy you shouldn't probably care about Machine Learning
Why you shouldn't probably care about Machine Learning
 
Transforming your classic team sites in group connected team sites
Transforming your classic team sites in group connected team sitesTransforming your classic team sites in group connected team sites
Transforming your classic team sites in group connected team sites
 
Model Driven PowerApps
Model Driven PowerAppsModel Driven PowerApps
Model Driven PowerApps
 
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
O365Con18 - Site Templates, Site Life Cycle Management and Modern SharePoint ...
 
What's in SharePoint land 2016 for the end user
What's in SharePoint land 2016 for the end userWhat's in SharePoint land 2016 for the end user
What's in SharePoint land 2016 for the end user
 
Connect SharePoint Framework solutions to APIs secured with Azure AD
Connect SharePoint Framework solutions to APIs secured with Azure ADConnect SharePoint Framework solutions to APIs secured with Azure AD
Connect SharePoint Framework solutions to APIs secured with Azure AD
 
O365Con18 - Microsoft Graph, a Walk-through - Adis Jugo
O365Con18 - Microsoft Graph, a Walk-through - Adis JugoO365Con18 - Microsoft Graph, a Walk-through - Adis Jugo
O365Con18 - Microsoft Graph, a Walk-through - Adis Jugo
 
Integrating SaaS application using Microsoft’s Azure App Service Platform
Integrating SaaS application using Microsoft’s Azure App Service PlatformIntegrating SaaS application using Microsoft’s Azure App Service Platform
Integrating SaaS application using Microsoft’s Azure App Service Platform
 
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
 
O365Con18 - Modern News Publishing with SharePoint - Maarten Eekels
O365Con18 - Modern News Publishing with SharePoint - Maarten EekelsO365Con18 - Modern News Publishing with SharePoint - Maarten Eekels
O365Con18 - Modern News Publishing with SharePoint - Maarten Eekels
 
Don't simply deploy, transform! Build your digital workplace in Office 365
Don't simply deploy, transform! Build your digital workplace in Office 365Don't simply deploy, transform! Build your digital workplace in Office 365
Don't simply deploy, transform! Build your digital workplace in Office 365
 
SharePoint wizards - no magic needed, just use Microsoft Flow
SharePoint wizards - no magic needed, just use Microsoft FlowSharePoint wizards - no magic needed, just use Microsoft Flow
SharePoint wizards - no magic needed, just use Microsoft Flow
 
[White/Himmelstein] Bridge the Cloud Divide with Hybrid Business Intelligence
[White/Himmelstein] Bridge the Cloud Divide with Hybrid Business Intelligence[White/Himmelstein] Bridge the Cloud Divide with Hybrid Business Intelligence
[White/Himmelstein] Bridge the Cloud Divide with Hybrid Business Intelligence
 
[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClass
[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClass[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClass
[Vochten/Harbar] SharePoint Server On Premises & Hybrid PowerClass
 
Serverless Architecture - Azure Logic apps
Serverless Architecture - Azure Logic appsServerless Architecture - Azure Logic apps
Serverless Architecture - Azure Logic apps
 
Design and Implement Azure Web Apps
Design and Implement Azure Web AppsDesign and Implement Azure Web Apps
Design and Implement Azure Web Apps
 
Connect the Impossible with Azure Logic App
Connect the Impossible with Azure Logic AppConnect the Impossible with Azure Logic App
Connect the Impossible with Azure Logic App
 
O365Con18 - Bridge Over O365 Gaps and Enhance User Satisfaction - Nimrod Geva
O365Con18 - Bridge Over O365 Gaps and Enhance User Satisfaction - Nimrod GevaO365Con18 - Bridge Over O365 Gaps and Enhance User Satisfaction - Nimrod Geva
O365Con18 - Bridge Over O365 Gaps and Enhance User Satisfaction - Nimrod Geva
 

Similar to Understanding SharePoint Framework Extensions

Similar to Understanding SharePoint Framework Extensions (20)

Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JSCross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
 
Cross Site Collection Navigation
Cross Site Collection NavigationCross Site Collection Navigation
Cross Site Collection Navigation
 
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
Matthias Einig from Rencore - Transforming SharePoint farm solutions to the A...
 
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
Transforming your full-trust solutions to the Add-in model / SharePoint Frame...
 
Cross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UI
Cross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UICross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UI
Cross Site Collection Navigation with SPFX, PowerShell PnP, PnP-JS, Office UI
 
An introduction to the office devpnp community initiative
An introduction to the office devpnp community initiativeAn introduction to the office devpnp community initiative
An introduction to the office devpnp community initiative
 
SPSCasablanca - SPFx Deployment
SPSCasablanca - SPFx DeploymentSPSCasablanca - SPFx Deployment
SPSCasablanca - SPFx Deployment
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
 
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the EnterpriseOSH01 - Developing SharePoint Framework Solutions for the Enterprise
OSH01 - Developing SharePoint Framework Solutions for the Enterprise
 
Building share point framework solutions
Building share point framework solutionsBuilding share point framework solutions
Building share point framework solutions
 
SharePoint development 2017 wrap-up
SharePoint development   2017 wrap-upSharePoint development   2017 wrap-up
SharePoint development 2017 wrap-up
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?
 
I5 - Bring yourself up to speed with power shell
I5 -  Bring yourself up to speed with power shellI5 -  Bring yourself up to speed with power shell
I5 - Bring yourself up to speed with power shell
 
Introduction to SharePoint Framework
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint Framework
 
The Greatest Introduction to SharePoint Framework (SPFx) on earth!
The Greatest Introduction to SharePoint Framework (SPFx) on earth!The Greatest Introduction to SharePoint Framework (SPFx) on earth!
The Greatest Introduction to SharePoint Framework (SPFx) on earth!
 
SPUnite17 Building Great Client Side Web Parts with SPFx
SPUnite17 Building Great Client Side Web Parts with SPFxSPUnite17 Building Great Client Side Web Parts with SPFx
SPUnite17 Building Great Client Side Web Parts with SPFx
 
Learn from my Mistakes - Building Better Solutions in SPFx
Learn from my  Mistakes - Building Better Solutions in SPFxLearn from my  Mistakes - Building Better Solutions in SPFx
Learn from my Mistakes - Building Better Solutions in SPFx
 
Spsnyc transforming share point farm solutions to the add-in model and shar...
Spsnyc   transforming share point farm solutions to the add-in model and shar...Spsnyc   transforming share point farm solutions to the add-in model and shar...
Spsnyc transforming share point farm solutions to the add-in model and shar...
 
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
 
Envision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT - Application Lifecycle Management for SharePoint in the EnterpriseEnvision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT - Application Lifecycle Management for SharePoint in the Enterprise
 

More from BIWUG

The business and end user guide into the new and modern SharePoint
The business and end user guide into the new and modern SharePointThe business and end user guide into the new and modern SharePoint
The business and end user guide into the new and modern SharePoint
BIWUG
 
Extend your development skills set using MS Graph
Extend your development skills set using MS GraphExtend your development skills set using MS Graph
Extend your development skills set using MS Graph
BIWUG
 
Introduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure FunctionsIntroduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure Functions
BIWUG
 
Best practices for managing and operating your SharePoint farms
Best practices for managing and operating your SharePoint farmsBest practices for managing and operating your SharePoint farms
Best practices for managing and operating your SharePoint farms
BIWUG
 
Rethinking Document Management in Office 365
Rethinking Document Management in Office 365Rethinking Document Management in Office 365
Rethinking Document Management in Office 365
BIWUG
 
Upgrading from Full Trust Code to Add-In Model and SharePoint Framework
Upgrading from Full Trust Code to Add-In Model and SharePoint FrameworkUpgrading from Full Trust Code to Add-In Model and SharePoint Framework
Upgrading from Full Trust Code to Add-In Model and SharePoint Framework
BIWUG
 

More from BIWUG (19)

Biwug20190425
Biwug20190425Biwug20190425
Biwug20190425
 
Working with PowerShell, Visual Studio Code and Github for the reluctant IT Pro
Working with PowerShell, Visual Studio Code and Github for the reluctant IT ProWorking with PowerShell, Visual Studio Code and Github for the reluctant IT Pro
Working with PowerShell, Visual Studio Code and Github for the reluctant IT Pro
 
Global Office 365 Developer Bootcamp
Global Office 365 Developer BootcampGlobal Office 365 Developer Bootcamp
Global Office 365 Developer Bootcamp
 
Deep dive into advanced teams development
Deep dive into advanced teams developmentDeep dive into advanced teams development
Deep dive into advanced teams development
 
Make IT Pro's great again: Microsoft Azure for the SharePoint professional
Make IT Pro's great again: Microsoft Azure for the SharePoint professionalMake IT Pro's great again: Microsoft Azure for the SharePoint professional
Make IT Pro's great again: Microsoft Azure for the SharePoint professional
 
Modern collaboration in teams and projects with Microsoft 365
Modern collaboration in teams and projects with Microsoft 365Modern collaboration in teams and projects with Microsoft 365
Modern collaboration in teams and projects with Microsoft 365
 
Mining SharePoint data with PowerBI
Mining SharePoint data with PowerBIMining SharePoint data with PowerBI
Mining SharePoint data with PowerBI
 
Cloud First. Be Prepared
Cloud First. Be PreparedCloud First. Be Prepared
Cloud First. Be Prepared
 
New era of customizing site provisioning
New era of customizing site provisioningNew era of customizing site provisioning
New era of customizing site provisioning
 
Microsoft Stream - Your enterprise video portal unleashed
Microsoft Stream - Your enterprise video portal unleashedMicrosoft Stream - Your enterprise video portal unleashed
Microsoft Stream - Your enterprise video portal unleashed
 
Teams - There's no place like home
Teams - There's no place like homeTeams - There's no place like home
Teams - There's no place like home
 
The Future State of Document Management, Taxonomies and Metadata in the Cloud
The Future State of Document Management, Taxonomies and Metadata in the CloudThe Future State of Document Management, Taxonomies and Metadata in the Cloud
The Future State of Document Management, Taxonomies and Metadata in the Cloud
 
Microsoft Flow advanced: tips, pitfalls, problems and warnings to be known be...
Microsoft Flow advanced: tips, pitfalls, problems and warnings to be known be...Microsoft Flow advanced: tips, pitfalls, problems and warnings to be known be...
Microsoft Flow advanced: tips, pitfalls, problems and warnings to be known be...
 
The business and end user guide into the new and modern SharePoint
The business and end user guide into the new and modern SharePointThe business and end user guide into the new and modern SharePoint
The business and end user guide into the new and modern SharePoint
 
Extend your development skills set using MS Graph
Extend your development skills set using MS GraphExtend your development skills set using MS Graph
Extend your development skills set using MS Graph
 
Introduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure FunctionsIntroduction to Microsoft Flow and Azure Functions
Introduction to Microsoft Flow and Azure Functions
 
Best practices for managing and operating your SharePoint farms
Best practices for managing and operating your SharePoint farmsBest practices for managing and operating your SharePoint farms
Best practices for managing and operating your SharePoint farms
 
Rethinking Document Management in Office 365
Rethinking Document Management in Office 365Rethinking Document Management in Office 365
Rethinking Document Management in Office 365
 
Upgrading from Full Trust Code to Add-In Model and SharePoint Framework
Upgrading from Full Trust Code to Add-In Model and SharePoint FrameworkUpgrading from Full Trust Code to Add-In Model and SharePoint Framework
Upgrading from Full Trust Code to Add-In Model and SharePoint Framework
 

Recently uploaded

在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
ydyuyu
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
ydyuyu
 
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsRussian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Monica Sydney
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
gajnagarg
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Monica Sydney
 
75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx
Asmae Rabhi
 
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
ydyuyu
 

Recently uploaded (20)

"Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency""Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
 
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
best call girls in Hyderabad Finest Escorts Service 📞 9352988975 📞 Available ...
 
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查在线制作约克大学毕业证(yu毕业证)在读证明认证可查
在线制作约克大学毕业证(yu毕业证)在读证明认证可查
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
 
Best SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency DallasBest SEO Services Company in Dallas | Best SEO Agency Dallas
Best SEO Services Company in Dallas | Best SEO Agency Dallas
 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf
 
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsRussian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
 
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime NagercoilNagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
Nagercoil Escorts Service Girl ^ 9332606886, WhatsApp Anytime Nagercoil
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
 
Microsoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck MicrosoftMicrosoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck Microsoft
 
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
APNIC Policy Roundup, presented by Sunny Chendi at the 5th ICANN APAC-TWNIC E...
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 
75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx
 
Trump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts SweatshirtTrump Diapers Over Dems t shirts Sweatshirt
Trump Diapers Over Dems t shirts Sweatshirt
 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
 
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac RoomVip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
 
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
 
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
哪里办理美国迈阿密大学毕业证(本硕)umiami在读证明存档可查
 

Understanding SharePoint Framework Extensions

  • 1. Understanding SharePoint Framework Extensions Paolo Pialorsi | @PaoloPia SharePoint Saturday Belgium 2018 #SPSBE
  • 3. Patrick Tisseghem Founding father of BIWUG & true SharePoint master 17/10/1968 - 3/9/2008 Special Tribute Edition #SPSBE
  • 4. About me • Project Manager, Consultant, Trainer • About 50 Microsoft certification exams passed • MCSM – Charter SharePoint • MVP Office Apps and Services • Office 365 Dev PnP Core Team Member • Focused on SharePoint and Office 365 since the beginning • Author of many books about XML, SOAP, .NET, LINQ, SharePoint, and Office 365 • Speaker at main IT conferences
  • 5. Agenda • Understanding the role of SharePoint Framework • SharePoint Framework Extensions • Application Customizer • List View Command Set • Field Customizer • SPFx Extensions Deployment • Q&A
  • 6. Understanding the role of SharePoint Framework
  • 7. Web Parts Extensions Client side Tools SP APIs Package Deployment Experiences Development Building out the User Experience CSOM Add-ins MS Graph
  • 8. SharePoint Framework (SPFx) • New framework to build Modern UI customizations • Built on the well-known web stack • Open model, not only for .NET/Microsoft-oriented developers • Works well on the cloud • It is available on-premises, too (SP2016 + FP2 or later) • Enterprise-ready when used with back-end services • Microsoft Graph, REST API and micro-services, Azure Functions, etc. • Not a new model, but an additional model to build UI elements for the Modern UI • We can build client-side Web Parts or client-side Extensions
  • 10. Client-Side Extensions • Application Customizer • Command Set • Field Customizer
  • 15. Application Customizer • Build custom UI elements when onInit() fires • Or when placeholders change • Use this.context.placeholderProvider to read available placeholders • Available placeholders (so far): • Top • Bottom • Debug integrated with Visual Studio Code and SPFx generator scaffolding • Config serve.json + gulp serve --config=configName
  • 16. Application Customizer Provisioning • Reference the elements.xml file in package-solution.json <?xml version="1.0" encoding="utf-8"?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <CustomAction Title="SPFxApplicationCustomizer" Location="ClientSideExtension.ApplicationCustomizer" ClientSideComponentId="46606aa6-5dd8-4792-b017-1555ec0a43a4" ClientSideComponentProperties="{&quot;Top&quot;:&quot;Top area of the page&quot;,&quot;Bottom&quot;: &quot;Bottom area in the page&quot;}"> </CustomAction> </Elements>
  • 18. Command Set • Enable/Disable commands by overriding onListViewUpdated(event) method • Override onExecute(event) method and switch based on event.commandId • Available locations: • ClientSideExtension.ListViewCommandSet.ContextMenu: ECB • ClientSideExtension.ListViewCommandSet.CommandBar: Top menu • ClientSideExtension.ListViewCommandSet: Both • Debug integrated with Visual Studio Code and SPFx generator scaffolding • Config serve.json + gulp serve --config=configName
  • 19. Command Set Provisioning <?xml version="1.0" encoding="utf-8"?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <CustomAction Title="SPFxListViewCommandSet" RegistrationId="100" RegistrationType="List" Location="ClientSideExtension.ListViewCommandSet.CommandBar" ClientSideComponentId="5fc73e12-8085-4a4b-8743-f6d02ffe1240" ClientSideComponentProperties="{&quot;sampleTextOne&quot;:&quot;One item is selected in the list.&quot;, &quot;sampleTextTwo&quot;:&quot;This command is always visible.&quot;}"> </CustomAction> </Elements> • Reference the elements.xml file in package-solution.json
  • 21. Field Customizer • Override onRenderCell(event) method • Play with event.domElement to replace/update the HTML of the cell • Debug integrated with Visual Studio Code and SPFx generator scaffolding • Config serve.json + gulp serve --config=configName • Override onDisposeCell(event) method • To free any resources that you don’t need anymore
  • 22. Field Customizer Provisioning <?xml version="1.0" encoding="utf-8"?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <Field ID="{060E50AC-E9C1-3D3C-B1F9-DE0BCAC200F6}" Name="SPFxPercentage" DisplayName="Percentage" Type="Number" Min="0" Required="FALSE" Group="SPFx Columns" ClientSideComponentId="7e7a4262-d02b-49bf-bfcb-e6ef1716aaef"> </Field> </Elements> • Reference the elements.xml file in package-solution.json
  • 25. SPFx Extensions Deployment • Relies on SharePoint Feature Framework for deployment • <CustomAction /> or <Field /> elements • Tenant-wide deployment doesn’t apply Feature Framework XML • But there is the <ClientSideComponentInstance /> element for tenant-wide extensions (SPFx 1.6) • Thus, to deploy SPFx Extensions you have two options • Use non-tenant-wide deployed packages • Use tenant-wide packages and • Tenant-wide extensions (since SPFx v. 1.6) • PowerShell • CSOM • PnP
  • 26. What are tenant-wide extensions? • Extensions available across the whole tenant • Available starting from SPFx v. 1.6 • Supported for • Application Customizer • List View Command Set • Can be filtered based on target • Web template • List definition
  • 27. Main steps • Create a new SPFx 1.6 project • Scaffolding will generate sample files to activate tenant-wide deployment • You can always remove them • Enable Tenant Wide Deployment (i.e. skipFeatureDeployment: true) • Develop your extensions • Deploy the .sppkg on the tenant App Catalog • Register them in the Tenant Wide Extensions list in the tenant App Catalog • Eventually filter by target WebTemplateId or ListTemplateId
  • 29. Q&A
  • 30. Some shameless marketing  • Follow me on Twitter: • https://www.twitter.com/PaoloPia • Subscribe to the “PiaSys Tech Bites” YouTube channel: • https://piasys.com/TechBites • Don’t miss the upcoming trainings • https://piasys.com/shop/ (New schedule for 2019 is coming soon …) • And the upcoming events: • https://piasys.com/events/