SlideShare a Scribd company logo
SharePoint Saturday Belgium 2016 • October 15 • Brussels Track: Developer | Level: 300
Deep Dive building solutions
on the SharePoint Framework
Waldek Mastykarz
Office Development MVP | Rencore
PlatinumGoldSilver
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Working with
SharePoint Framework
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Store project dependencies
$ npm install angular --save
package.json
{
dependencies: {
"angular": "^1.5.8"
}
}
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Don’t bundle frameworks. Load from URL
instead
config/config.json
{
externals: {
"angular": {
"path": "https://cdn.com/…/angular.min.js",
"globalName": "angular"
}
}
}
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Don’t guess the JavaScript
framework format
http://rc-scripttype.azurewebsites.net/
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Non-AMD scripts in web parts
• Isolated within web part
• Each web part uses its own version
• Version loaded by one web part doesn’t affect the version loaded by another
web part
• Exposed in the global scope
• Last version loaded overwrites any version loaded previously in the global
scope
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Avoid using non-AMD scripts
whenever possible
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Clean old project build files
$ gulp nuke
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Use one-time bootstrap
MyWebPart.ts
export default class ToDoWebPartWebPart extends
BaseClientSideWebPart<IToDoWebPartWebPartProps> {
public render(): void {
if (this.renderedOnce === false) {
// one-time bootstrap
}
}
}
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Use non-reactive pane with external data
MyWebPart.ts
export default class ToDoWebPartWebPart extends
BaseClientSideWebPart<IToDoWebPartWebPartProps> {
protected get disableReactivePropertyChanges():
boolean {
return true;
}
}
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Validate web part properties values
MyWebPart.ts
PropertyPaneTextField('description', {
label: strings.DescriptionFieldLabel,
onGetErrorMessage: this.validateDescription.bind(this)
})
private validateDescription(description: string): string {
if (description && description.length > 20) {
return 'Description shouldn't be longer than 20 characters';
}
else {
return '';
}
}
Next steps
1. Get SPFx
http://wldk.nl/spfx-setup
2. Check out docs
http://wldk.nl/spfx-docs
3. Check out samples
http://wldk.nl/spfx-samples
4. Latest SPFx content
http://wldk.nl/waldek-blog
Waldek Mastykarz
Office Development MVP
Rencore
http://www.rencore.com
https://blog.mastykarz.nl
@waldekm
SharePoint Saturday Belgium 2016 • October 15 • Brussels
Thank You!
Feedback
http://spsbe.be

More Related Content

PPTX
Building solutions with the SharePoint Framework - introduction
PPTX
Building solutions with the SharePoint Framework - deep-dive
PPTX
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
PPTX
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...
PPTX
Deep-dive building solutions on the SharePoint Framework
PPTX
What’s right & wrong with WCF-WebHTTP Adapter?
PPTX
Setting up development environment for building SharePoint Framework solution...
PPTX
How to automate the SharePoint Provisioning
Building solutions with the SharePoint Framework - introduction
Building solutions with the SharePoint Framework - deep-dive
SPSNL16 - Building Office 365 and SharePoint solutions using modern developer...
Rencore Webinar: SharePoint Customizations - the most overlooked road block t...
Deep-dive building solutions on the SharePoint Framework
What’s right & wrong with WCF-WebHTTP Adapter?
Setting up development environment for building SharePoint Framework solution...
How to automate the SharePoint Provisioning

What's hot (20)

PDF
Jayway Web Tech Radar 2015
PPTX
Create a modern(ish) BAM portal in (roughly) one hour!
PPTX
Introduction presentation
PPTX
ASP.NET 5
PPTX
Office script labs
PPTX
Host, deploy & scale Blazor Server Apps
PPTX
ASP.NET MVC 4
PPTX
Mvc razor and working with data
PPTX
Going Serverless with Azure Functions
PPTX
Logic Apps – Deployments
PDF
ColdFusion in Transit action
PDF
[DevDay 2017] Serverless Architecture - Speaker: Trung Huynh - Software Engin...
PPTX
Conf 2018 Track 2 - Custom Web Elements with Stencil
PPTX
Build a SharePoint website in 60 minutes
PPTX
Web forms Overview Presentation
PPTX
Azure Web Jobs
PPTX
Building high scale, highly available websites in SharePoint 2010
PDF
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
PPTX
Vincent biret azure functions and flow (ottawa)
PPTX
Vincent biret azure functions and flow (toronto)
Jayway Web Tech Radar 2015
Create a modern(ish) BAM portal in (roughly) one hour!
Introduction presentation
ASP.NET 5
Office script labs
Host, deploy & scale Blazor Server Apps
ASP.NET MVC 4
Mvc razor and working with data
Going Serverless with Azure Functions
Logic Apps – Deployments
ColdFusion in Transit action
[DevDay 2017] Serverless Architecture - Speaker: Trung Huynh - Software Engin...
Conf 2018 Track 2 - Custom Web Elements with Stencil
Build a SharePoint website in 60 minutes
Web forms Overview Presentation
Azure Web Jobs
Building high scale, highly available websites in SharePoint 2010
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (toronto)
Ad

Viewers also liked (20)

PPTX
Building productivity solutions with Microsoft Graph
PPTX
SharePoint Online
PPTX
Azure Web Apps - Deep Dive
PPTX
How to Break the Zombification of the Enterprise!
PPTX
Office add ins 0-60
PPTX
SharePoint Framework do's and don'ts
PPTX
Where Form Meets Function: Understanding Collaboration's Cultural Fit
PPTX
Microsoft graph api deep dive
PDF
Project and Portfolio Management with Project Online
PPT
.NET Framework Overview
PPTX
Wykładzina vol. 15 ClickMeeting - make your Webinar click!
PDF
GMO'less Software Development Practices
PDF
Understanding the bible through koranic messages
PDF
How to land a Great Job In Videogames
PDF
Alfresco the clojure way -- Slides from the Alfresco DevCon2011
PDF
Simulador y emulador
PPTX
Catrina Meakins 3D CV
PDF
PRywatki na Wykładzinie - Briefly
PDF
Break the rules - The FOG
PDF
Adapting HTML and CSS Templates to XOOPS
Building productivity solutions with Microsoft Graph
SharePoint Online
Azure Web Apps - Deep Dive
How to Break the Zombification of the Enterprise!
Office add ins 0-60
SharePoint Framework do's and don'ts
Where Form Meets Function: Understanding Collaboration's Cultural Fit
Microsoft graph api deep dive
Project and Portfolio Management with Project Online
.NET Framework Overview
Wykładzina vol. 15 ClickMeeting - make your Webinar click!
GMO'less Software Development Practices
Understanding the bible through koranic messages
How to land a Great Job In Videogames
Alfresco the clojure way -- Slides from the Alfresco DevCon2011
Simulador y emulador
Catrina Meakins 3D CV
PRywatki na Wykładzinie - Briefly
Break the rules - The FOG
Adapting HTML and CSS Templates to XOOPS
Ad

Similar to Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016 (20)

PPTX
SharePoint Saturday Belgium 2016
PDF
Extending Teams & Groups
PPTX
Spsbe2016 extend your office 365 environement to cross-platform apps
PDF
Forge - DevCon 2016: From Desktop to the Cloud with Forge
PPTX
Introducción al SharePoint Framework SPFx
PPTX
From desktop to the cloud with forge
PPTX
Custom Development for SharePoint
PPTX
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
PPTX
#spsbe Get Typing with Typescript
PPTX
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
PPTX
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
PPTX
Building API in the cloud using Azure Functions
PPSX
Pipeline de deploy com ASP.NET Core e VSTS
PPTX
Node.js Development with Apache NetBeans
PPTX
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"
PDF
Write Serverless Applications with PowerShell and Azure Functions
PDF
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
PDF
Is Your Developer's Head in the Cloud? May 7 Webinar
PPTX
ASP .Net Core SPA Templates
PPTX
aOS Canadian Tour - Quebec - From SharePoint to Office 365 Development
SharePoint Saturday Belgium 2016
Extending Teams & Groups
Spsbe2016 extend your office 365 environement to cross-platform apps
Forge - DevCon 2016: From Desktop to the Cloud with Forge
Introducción al SharePoint Framework SPFx
From desktop to the cloud with forge
Custom Development for SharePoint
SPCA2013 - Developing SharePoint 2013 Apps with Visual Studio 2012
#spsbe Get Typing with Typescript
Developing SharePoint 2013 apps with Visual Studio 2012 - SharePoint Connecti...
Heading to the Cloud : Introduction to deploying a Provider-Hosted App in Azure
Building API in the cloud using Azure Functions
Pipeline de deploy com ASP.NET Core e VSTS
Node.js Development with Apache NetBeans
Oleksandr Skachkov "Running С# in your Web Browser with WebAssembly"
Write Serverless Applications with PowerShell and Azure Functions
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Is Your Developer's Head in the Cloud? May 7 Webinar
ASP .Net Core SPA Templates
aOS Canadian Tour - Quebec - From SharePoint to Office 365 Development

More from Waldek Mastykarz (17)

PPTX
Building Office 365 solutions with React
PPTX
Building contextual experiences with the Office Graph
PPTX
NextGen Portal for Your Organization
PPTX
NextGen Portal for Your Organization
PPTX
Building solutions with the Office Graph (Unity Connect Amsterdam 2015)
PPTX
Building contextual experiences with the Office Graph (SPSMUC 15)
PPTX
Building solutions with the Office Graph
PPTX
Optimizing SharePoint 2013 public-facing websites for Internet search engines
PPTX
Building rich search experiences Apps for SharePoint
PPTX
Building solutions with Office Graph
PDF
Building solutions with Office Graph - SharePoint Connect 2014 Amsterdam
PPTX
SharePoint Connections Amsterdam 2013: Real-life building public-facing websi...
PPTX
SPSNL13 - Building intelligent websites with SharePoint 2013
PPT
P&M307 Building intelligent websites with SharePoint 2013
PPT
P&M302 Real-life building public-facing websites with SharePoint 2013
PDF
BIWUG - What’s new in SharePoint 2013 for public-facing websites
PPTX
SharePoint 2010 Web Content Management - The Developer Story
Building Office 365 solutions with React
Building contextual experiences with the Office Graph
NextGen Portal for Your Organization
NextGen Portal for Your Organization
Building solutions with the Office Graph (Unity Connect Amsterdam 2015)
Building contextual experiences with the Office Graph (SPSMUC 15)
Building solutions with the Office Graph
Optimizing SharePoint 2013 public-facing websites for Internet search engines
Building rich search experiences Apps for SharePoint
Building solutions with Office Graph
Building solutions with Office Graph - SharePoint Connect 2014 Amsterdam
SharePoint Connections Amsterdam 2013: Real-life building public-facing websi...
SPSNL13 - Building intelligent websites with SharePoint 2013
P&M307 Building intelligent websites with SharePoint 2013
P&M302 Real-life building public-facing websites with SharePoint 2013
BIWUG - What’s new in SharePoint 2013 for public-facing websites
SharePoint 2010 Web Content Management - The Developer Story

Recently uploaded (20)

PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
MYSQL Presentation for SQL database connectivity
PDF
GamePlan Trading System Review: Professional Trader's Honest Take
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
PPTX
Cloud computing and distributed systems.
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Advanced IT Governance
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Network Security Unit 5.pdf for BCA BBA.
NewMind AI Weekly Chronicles - August'25 Week I
“AI and Expert System Decision Support & Business Intelligence Systems”
MYSQL Presentation for SQL database connectivity
GamePlan Trading System Review: Professional Trader's Honest Take
Mobile App Security Testing_ A Comprehensive Guide.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Dropbox Q2 2025 Financial Results & Investor Presentation
NewMind AI Monthly Chronicles - July 2025
[발표본] 너의 과제는 클라우드에 있어_KTDS_김동현_20250524.pdf
Cloud computing and distributed systems.
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Spectral efficient network and resource selection model in 5G networks
Advanced IT Governance
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Review of recent advances in non-invasive hemoglobin estimation
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf

Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016

  • 1. SharePoint Saturday Belgium 2016 • October 15 • Brussels Track: Developer | Level: 300 Deep Dive building solutions on the SharePoint Framework Waldek Mastykarz Office Development MVP | Rencore
  • 3. SharePoint Saturday Belgium 2016 • October 15 • Brussels Working with SharePoint Framework
  • 4. SharePoint Saturday Belgium 2016 • October 15 • Brussels Store project dependencies $ npm install angular --save package.json { dependencies: { "angular": "^1.5.8" } }
  • 5. SharePoint Saturday Belgium 2016 • October 15 • Brussels Don’t bundle frameworks. Load from URL instead config/config.json { externals: { "angular": { "path": "https://cdn.com/…/angular.min.js", "globalName": "angular" } } }
  • 6. SharePoint Saturday Belgium 2016 • October 15 • Brussels Don’t guess the JavaScript framework format http://rc-scripttype.azurewebsites.net/
  • 7. SharePoint Saturday Belgium 2016 • October 15 • Brussels Non-AMD scripts in web parts • Isolated within web part • Each web part uses its own version • Version loaded by one web part doesn’t affect the version loaded by another web part • Exposed in the global scope • Last version loaded overwrites any version loaded previously in the global scope
  • 8. SharePoint Saturday Belgium 2016 • October 15 • Brussels Avoid using non-AMD scripts whenever possible
  • 9. SharePoint Saturday Belgium 2016 • October 15 • Brussels Clean old project build files $ gulp nuke
  • 10. SharePoint Saturday Belgium 2016 • October 15 • Brussels Use one-time bootstrap MyWebPart.ts export default class ToDoWebPartWebPart extends BaseClientSideWebPart<IToDoWebPartWebPartProps> { public render(): void { if (this.renderedOnce === false) { // one-time bootstrap } } }
  • 11. SharePoint Saturday Belgium 2016 • October 15 • Brussels Use non-reactive pane with external data MyWebPart.ts export default class ToDoWebPartWebPart extends BaseClientSideWebPart<IToDoWebPartWebPartProps> { protected get disableReactivePropertyChanges(): boolean { return true; } }
  • 12. SharePoint Saturday Belgium 2016 • October 15 • Brussels Validate web part properties values MyWebPart.ts PropertyPaneTextField('description', { label: strings.DescriptionFieldLabel, onGetErrorMessage: this.validateDescription.bind(this) }) private validateDescription(description: string): string { if (description && description.length > 20) { return 'Description shouldn't be longer than 20 characters'; } else { return ''; } }
  • 13. Next steps 1. Get SPFx http://wldk.nl/spfx-setup 2. Check out docs http://wldk.nl/spfx-docs 3. Check out samples http://wldk.nl/spfx-samples 4. Latest SPFx content http://wldk.nl/waldek-blog
  • 14. Waldek Mastykarz Office Development MVP Rencore http://www.rencore.com https://blog.mastykarz.nl @waldekm
  • 15. SharePoint Saturday Belgium 2016 • October 15 • Brussels Thank You!