Learn to convert your
Full Trust Solutions to the
SharePoint Framework (SPFx)
Brian Culver ● #SPSHOU ● April 28, 2018
Welcometothe9th Annual SharePointSaturday
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
About Brian Culver
 SharePoint Solutions Architect for Expert Point Solutions in
Houston, Texas.
 Microsoft Certified Master (MCM) in SharePoint
 Brian has worked in the Information Technology industry for
since 1998 and he has been working with SharePoint since
2005. His deep expertise includes Azure, Office365,
SharePoint, ASP.Net, SQL Server and Project Server. He
has been involved in many large SharePoint
implementations including Internet and Intranet sites, Partner
Portals, Enterprise Content Management and Governance,
and much custom application integration and development.
 Author, Speaker and Blogger
Email : brian.culver(at)expertpointsolutions.com
Twitter : @spbrianculver
LinkedIn : https://www.linkedin.com/in/bculver
Blog : http://blog.expertpointsolutions.com
Session Agenda
 What is the SharePoint Framework (SPFx)?
 Where does the SharePoint Framework fit?
 SharePoint Framework Toolchain
 JavaScript Frameworks
 SharePoint Framework Build Flow
 SharePoint Framework Developer Environment
What is the SharePoint Framework (SPFx)
 New client-side framework for building Modern UI
customizations
 https://docs.microsoft.com/en-
us/sharepoint/dev/spfx/enterprise-guidance
 Built on the well-known web stack
 Open model, not tied to Microsoft tools
 Works great on the cloud
 Available on-premises for SP2016 with Feature Pack 2 (
and newer)
 Enterprise-ready when used with back-end services
 REST API and micro-services, Azure Functions, etc.
 Build client-side Web Parts or client-side Extensions
 Some key features of the SharePoint Framework:
 Runs in the context of the current user and the connection in
the browser. No IFRAMEs for the customization (JavaScript is
embedded directly to the page).
 The controls are rendered within the page DOM.
 The controls are responsive, accessible and mobile friendly.
 Developers are able to access the page lifecycle fully, including
rendering, loading, serializing and deserializing, configuration
changes, and more.
 Framework-agnostic. Use any JavaScript framework: React,
Knockout, Angular, Bootstrap and more.
 The toolchain is based on common open source client
development tools such as npm, nvm, TypeScript, Yeoman,
Yarn, webpack, and gulp.
 Performance is reliable.
 End users can use SPFx client-side solutions that are approved
by the tenant administrators (or their delegates) on all sites,
including self-service team, group, or personal sites.
 SPFx web parts can be added to both classic and modern
pages. Modern pages can only use client-side web parts.
Where does the SharePoint Framework fit?
 Full Trust Solutions
 Server-side code
 Full server side API
 Only supported on-premise
 Visual Studio Only
 Farm Scoped
 Webparts, Timers Jobs, Event Receivers (Feature, Web, Site,
List, etc.)
 Sandbox Solutions
 Restricted Server-side code
 Declarative Solutions only supported in SPO
 Visual Studio Only
 Site Collection Scoped
 Features & Declarative Solutions
 Site columns, content types, Lists, List instances, File
Resources, etc.
 SharePoint Add-in / Apps
 Client-side or Server-side code
 Client-side API
 Execution context was externalized from SharePoint and
displayed via IFRAMEs
 Visual Studio Only
 Tenant and Site Scoped
 SharePoint Framework (SPFx)
 Client-side code only
 Client-sde web parts and extensions
 Execution context is in the page (yeah Baby!!)
 Open source and cross-platform tooling
 Tenant Scoped
 Only way to customize modern pages
 Responsive, accessible and mobile friendly
IIS Express
Project Templates
SharePoint Framework Toolchain
SharePoint server side
SharePoint client side
JavaScript Frameworks
SharePoint Framework Build Flow
SPFx Developer Environment
Office 365
• Existing Office 365 tenant
• Partner Program
• Office 365 Developer program
• Sign up: https://dev.office.com/devprogram
• Separate from Subscription but great source
of information
• After tenant subscription is created, create the
following:
• App Catalog site
• Developer Site
SPFx Developer Environment
Node.js
• Installing Node.js LTS
• https://nodejs.org/en/download
• Run install
• Node -v
• Npm -v
• You can use Homebrew and/or Chocolatey
• https://chocolatey.org/
• Choco install nvm
NPM
• Installed with Node.js
• https://www.npmjs.com/
• Used to install just about everything
SPFx Developer Environment
Gulp
• Make sure Node,js and npm are installed
• Install Gulp
• npm install --global gulp-cli
TypeScript
• Installed with Node.js
• Strongly typed Language
• Interpreted language that is a cross between C#
and JavaScript
• Generates clean JavaScript
SPFx Developer Environment
 Office 365 Tenant
 App Catalog
 Developer Site
 Azure
 Node.js (LTS – Long Term Support) - www.nodejs.org
 NPM v. 3
 npm install -g npm@3
 Yeoman or Yarn
 npm install -g yo
 npm install -g yarn
 Chocoletey
 yarn install v0.24.6
 Gulp
 npm install -g yo gulp
 Yeoman SharePoint Generator
 npm install -g @microsoft/generator-sharepoint
 Configure SSL for localhost testing environment
 gulp trust-dev-cert
 IDE of Choice
 Notepad or Notepad++
 Visual Studio Code
 Visual Studio 2015/2017
 https://marketplace.visualstudio.com/items?itemName=Share
PointPnP.SPFxProjectTemplate
 Atom
 Storm
 Sublime
 Etc.
 Webpack
SPFx Developer Environment
 Console for Node.js
 PowerShell
 CMDER for Windows - http://cmder.net/
 Etc.
 Code Editor
 Visual Studio Code
 https://code.visualstudio.com/docs?start=true
 Visual Studio 2015/2017
 https://marketplace.visualstudio.com/items?itemName=SharePointPnP.SPFxProjectTemplate
 Atom
 Storm
 Sublime
 Etc.
 Source control system and Project management
 GitHub
 VSTS
 Etc.
 Additional tooling
 Fiddler - http://www.telerik.com/fiddler
 Postman - https://www.getpostman.com/
Code Editors
 Open source code editor
 Windows, Mac and Linux
 Built-in support for JavaScript,
TypeScript and Node.js
 Powered by rich ecosystem of
extensions for Visual Studio Code
 Extensions for other languages
 Debugger extensions
 Source code repository extensions
 And more…
•
•
•
•

Community-driven SPFx extensionPreferred SPFx code editor
Debugging code
Browsers
Developer Console
Visual Studio Code
Chrome Debugger Extension
Edge Debugger Extension
Work in progress
Support for:
Breakpoints
Watch variables
Step into/over
Writing conditional code
Global constants
Uses Webpack DefinePlugin
Different behaviors between
development and release builds
Available constants
DEBUG
UNIT_TEST
..and more internal constants
Custom gulp tasks
Define custom gulp tasks in gulpfile.js: build.subtask and build.task
let helloWorldSubtask = build.subTask('log-hello-world-subtask',
function(gulp, buildOptions, done) {
return gulp.src('images/*.png')
.pipe(gulp.dest('public'));
})
let helloWorldTask = build.task('hello-world', helloWorldSubtask);
gulp hello-world
Extend webpack configuration
Define your webpack loaders in gulpfile.js
npm i --save markdown-loader
build.configureWebpack.mergeConfig({
additionalConfiguration: (generatedConfiguration) => {
generatedConfiguration.module.loaders.push([
{ test: /.md$/, loader: "html!markdown" }
]);
return generatedConfiguration;
}
});
Component bundles
Components into a single .js file
Loaded on demand by SharePoint
Choose between:
One bundle per component
One bundle multiple
components
Dependencies are optional
Do not include dependencies in your bundle. Keep it small and simple!
Resources Useful
 http://dev.office.com/sharepoint
 https://dev.office.com/devprogram
 https://docs.microsoft.com/en-us/sharepoint/dev/spfx/sharepoint-framework-overview
 https://github.com/SharePoint/sp-dev-docs/wiki
 https://github.com/SharePoint/sp-dev-docs
 https://github.com/SharePoint/sp-dev-fx-webparts
 https://github.com/SharePoint/PnP-JS-Core
 https://dev.office.com/sharepoint/docs/spfx/web-parts/get-started/build-a-hello-world-web-part
 https://www.youtube.com/playlist?list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq
 https://chocolatey.org/
 https://developer.microsoft.com/en-us/office/events

Questions
??
?
?
Constructive Feedback Is Appreciated
Great information,
but would like to
have learned more
about [Insert Topic]Brian – Your
presentation
was …
Good
Demos!
Thanks!
Thank you!
Brian Culver, MCM
Twitter:
@spbrianculver
E-mail:
brian.culver(at)expertpointsolutions.com
Blog:
http://blog.expertpointsolutions.com/
Slides:
http://www.slideshare.net/bculver

More Related Content

PPTX
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
PDF
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
PPTX
ASP.NET Core 2.1: The Future of Web Apps
PPTX
ASP.NET Core 2.0: The Future of Web Apps
PPTX
Overview of SharePoint Framework (SPFx)
PPTX
Future of SharePoint Dev SPFx Extensions
PPTX
Capture the Cloud with Azure
PPTX
CCI 2017 - Introduzione a SharePoint Framework (SPFx) - Fabio Franzini
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
ASP.NET Core 2.1: The Future of Web Apps
ASP.NET Core 2.0: The Future of Web Apps
Overview of SharePoint Framework (SPFx)
Future of SharePoint Dev SPFx Extensions
Capture the Cloud with Azure
CCI 2017 - Introduzione a SharePoint Framework (SPFx) - Fabio Franzini

What's hot (20)

PPTX
Introduction to SharePoint Framework
PDF
Amir Zuker: Building web apps with web assembly and blazor - Architecture Nex...
PPTX
Meetup Comunidad TESH: My SPFx slides
PDF
Salesforce1 dev week UYSDUG 2014 - the force canvas spark
PPTX
ASP.NET Core 1.0 Overview: Post-RC2
PDF
Apache cordova
PPTX
Typescript 102 angular and type script
PPTX
ASP.NET Core 1.0 Overview: Pre-RC2
PPTX
Building ext js apps with ES2015 using sencha visual studio code plugin
PDF
Cross-platform development frameworks
PPTX
Staying connected: An Overview of Announcements from Microsoft’s Connect();
PPTX
Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?
PPTX
Visual Studio 2017 Release Notes
PDF
Apache Cordova
PPTX
ASP.NET Core MVC + Web API with Overview (Post RC2)
PPTX
Introduction to Apache Cordova (Phonegap)
PPTX
JavaScript in Universal Windows Platform apps
PPTX
WebMatrix
PDF
Salesforce CLI
PPTX
Cross-Platform Mobile Development using Visual Studio and Xamarin
Introduction to SharePoint Framework
Amir Zuker: Building web apps with web assembly and blazor - Architecture Nex...
Meetup Comunidad TESH: My SPFx slides
Salesforce1 dev week UYSDUG 2014 - the force canvas spark
ASP.NET Core 1.0 Overview: Post-RC2
Apache cordova
Typescript 102 angular and type script
ASP.NET Core 1.0 Overview: Pre-RC2
Building ext js apps with ES2015 using sencha visual studio code plugin
Cross-platform development frameworks
Staying connected: An Overview of Announcements from Microsoft’s Connect();
Vitali zaidman Do You Need Server Side Rendering? What Are The Alternatives?
Visual Studio 2017 Release Notes
Apache Cordova
ASP.NET Core MVC + Web API with Overview (Post RC2)
Introduction to Apache Cordova (Phonegap)
JavaScript in Universal Windows Platform apps
WebMatrix
Salesforce CLI
Cross-Platform Mobile Development using Visual Studio and Xamarin
Ad

Similar to Convert your Full Trust Solutions to the SharePoint Framework (SPFx) (20)

PDF
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
PDF
Real World SharePoint Framework and Azure Services
PDF
Real World SharePoint Framework and Azure Services
PDF
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
PPTX
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
PDF
SPUnite17 Building Great Client Side Web Parts with SPFx
PPTX
Introducción al SharePoint Framework SPFx
PPTX
Introduction to development using the share point framework mv ps
PDF
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
PPTX
M365 global developer bootcamp 2019 Intro to SPFx Version
PPTX
Real World Add-in Development for Office365
PPTX
Building share point framework solutions
PPTX
Introduction to SharePoint Framework (SPFx)
PPTX
SharePoint Framework SPFx
PDF
Rongde Qiu-DDsmile-2015.1.25
PPTX
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
PDF
Free Online SharePoint Framework Webinar
DOCX
resume
PPTX
Uncovering the Latest in SharePoint Development
PPTX
Getting started with spfx
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure Services
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
SharePoint Framework -The future of SharePoint/ Office 365 developer ecosystem.
SPUnite17 Building Great Client Side Web Parts with SPFx
Introducción al SharePoint Framework SPFx
Introduction to development using the share point framework mv ps
ecs19 - Bill Ayers - RE-USE YOUR SHAREPOINT FRAMEWORK SKILLZ TO BUILD OFFICE ...
M365 global developer bootcamp 2019 Intro to SPFx Version
Real World Add-in Development for Office365
Building share point framework solutions
Introduction to SharePoint Framework (SPFx)
SharePoint Framework SPFx
Rongde Qiu-DDsmile-2015.1.25
Webinar by ZNetLive & Plesk- Winning the Game for WebOps and DevOps
Free Online SharePoint Framework Webinar
resume
Uncovering the Latest in SharePoint Development
Getting started with spfx
Ad

More from Brian Culver (20)

PDF
Share Upgrading and Migrating to SharePoint 2016 Like a Pro
PDF
Houston TechFest 2017- Migrate and Upgrade to 2016 Succesfully
PDF
Building SharePoint 2016 Hybrid the right way
PDF
SPSHOU - Upgrading and Migrating to SharePoint 2016 like a Pro
PDF
HSPUG Loving one drive for business as a productivity tool
PDF
SPT 104 Unlock your big data with analytics and BI on Office 365
PDF
Spt 101 Loving Onedrive for business as a productivity tool
PDF
SPS Utah 2016 - Unlock your big data with analytics and BI on Office 365
PDF
Loving OneDrive for Business as a Productivity Tool
PDF
Unlock your Big Data with Analytics and BI on Office 365
PDF
SharePoint 2013 Search Driven Sites - SPSHOU
PDF
Unlock your Big Data with Analytics and BI on Office 365 - OFF103
PDF
Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC
PPTX
SharePoint Saturday DFW 2015 - Build a SharePoint 2013 Search Driven Application
PPTX
SharePoint Saturday Utah 2015 - SP2013 Search Driven Sites
PDF
SharePoint Saturday Kansas City 2015 - Build scalable SharePoint 2013 Workflows
PDF
SharePoint Saturday Kansas 2015 - Building Killer Office365 Public Sites
PDF
SRC 204 - Build a SharePoint 2013 Search Driven Application!
PDF
OFF 103 - Build a Public Website on Office 365
PDF
SPSUtah 2014 SharePoint 2013 Performance (Admin)
Share Upgrading and Migrating to SharePoint 2016 Like a Pro
Houston TechFest 2017- Migrate and Upgrade to 2016 Succesfully
Building SharePoint 2016 Hybrid the right way
SPSHOU - Upgrading and Migrating to SharePoint 2016 like a Pro
HSPUG Loving one drive for business as a productivity tool
SPT 104 Unlock your big data with analytics and BI on Office 365
Spt 101 Loving Onedrive for business as a productivity tool
SPS Utah 2016 - Unlock your big data with analytics and BI on Office 365
Loving OneDrive for Business as a Productivity Tool
Unlock your Big Data with Analytics and BI on Office 365
SharePoint 2013 Search Driven Sites - SPSHOU
Unlock your Big Data with Analytics and BI on Office 365 - OFF103
Building Scalable SharePoint 2013 Workflows - WF101 - SPFestDC
SharePoint Saturday DFW 2015 - Build a SharePoint 2013 Search Driven Application
SharePoint Saturday Utah 2015 - SP2013 Search Driven Sites
SharePoint Saturday Kansas City 2015 - Build scalable SharePoint 2013 Workflows
SharePoint Saturday Kansas 2015 - Building Killer Office365 Public Sites
SRC 204 - Build a SharePoint 2013 Search Driven Application!
OFF 103 - Build a Public Website on Office 365
SPSUtah 2014 SharePoint 2013 Performance (Admin)

Recently uploaded (20)

PDF
Accessing-Finance-in-Jordan-MENA 2024 2025.pdf
PDF
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
PDF
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
PDF
EIS-Webinar-Regulated-Industries-2025-08.pdf
PDF
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
PDF
Rapid Prototyping: A lecture on prototyping techniques for interface design
PDF
“The Future of Visual AI: Efficient Multimodal Intelligence,” a Keynote Prese...
PDF
A symptom-driven medical diagnosis support model based on machine learning te...
PDF
Introduction to MCP and A2A Protocols: Enabling Agent Communication
PDF
Aug23rd - Mulesoft Community Workshop - Hyd, India.pdf
PPTX
future_of_ai_comprehensive_20250822032121.pptx
PDF
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
PDF
Early detection and classification of bone marrow changes in lumbar vertebrae...
PDF
giants, standing on the shoulders of - by Daniel Stenberg
PDF
4 layer Arch & Reference Arch of IoT.pdf
PDF
Convolutional neural network based encoder-decoder for efficient real-time ob...
PPTX
SGT Report The Beast Plan and Cyberphysical Systems of Control
PDF
INTERSPEECH 2025 「Recent Advances and Future Directions in Voice Conversion」
PDF
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
PDF
Co-training pseudo-labeling for text classification with support vector machi...
Accessing-Finance-in-Jordan-MENA 2024 2025.pdf
The-2025-Engineering-Revolution-AI-Quality-and-DevOps-Convergence.pdf
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
EIS-Webinar-Regulated-Industries-2025-08.pdf
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
Rapid Prototyping: A lecture on prototyping techniques for interface design
“The Future of Visual AI: Efficient Multimodal Intelligence,” a Keynote Prese...
A symptom-driven medical diagnosis support model based on machine learning te...
Introduction to MCP and A2A Protocols: Enabling Agent Communication
Aug23rd - Mulesoft Community Workshop - Hyd, India.pdf
future_of_ai_comprehensive_20250822032121.pptx
Transform-Quality-Engineering-with-AI-A-60-Day-Blueprint-for-Digital-Success.pdf
Early detection and classification of bone marrow changes in lumbar vertebrae...
giants, standing on the shoulders of - by Daniel Stenberg
4 layer Arch & Reference Arch of IoT.pdf
Convolutional neural network based encoder-decoder for efficient real-time ob...
SGT Report The Beast Plan and Cyberphysical Systems of Control
INTERSPEECH 2025 「Recent Advances and Future Directions in Voice Conversion」
Transform-Your-Streaming-Platform-with-AI-Driven-Quality-Engineering.pdf
Co-training pseudo-labeling for text classification with support vector machi...

Convert your Full Trust Solutions to the SharePoint Framework (SPFx)

  • 1. Learn to convert your Full Trust Solutions to the SharePoint Framework (SPFx) Brian Culver ● #SPSHOU ● April 28, 2018
  • 4. About Brian Culver  SharePoint Solutions Architect for Expert Point Solutions in Houston, Texas.  Microsoft Certified Master (MCM) in SharePoint  Brian has worked in the Information Technology industry for since 1998 and he has been working with SharePoint since 2005. His deep expertise includes Azure, Office365, SharePoint, ASP.Net, SQL Server and Project Server. He has been involved in many large SharePoint implementations including Internet and Intranet sites, Partner Portals, Enterprise Content Management and Governance, and much custom application integration and development.  Author, Speaker and Blogger Email : brian.culver(at)expertpointsolutions.com Twitter : @spbrianculver LinkedIn : https://www.linkedin.com/in/bculver Blog : http://blog.expertpointsolutions.com
  • 5. Session Agenda  What is the SharePoint Framework (SPFx)?  Where does the SharePoint Framework fit?  SharePoint Framework Toolchain  JavaScript Frameworks  SharePoint Framework Build Flow  SharePoint Framework Developer Environment
  • 6. What is the SharePoint Framework (SPFx)  New client-side framework for building Modern UI customizations  https://docs.microsoft.com/en- us/sharepoint/dev/spfx/enterprise-guidance  Built on the well-known web stack  Open model, not tied to Microsoft tools  Works great on the cloud  Available on-premises for SP2016 with Feature Pack 2 ( and newer)  Enterprise-ready when used with back-end services  REST API and micro-services, Azure Functions, etc.  Build client-side Web Parts or client-side Extensions  Some key features of the SharePoint Framework:  Runs in the context of the current user and the connection in the browser. No IFRAMEs for the customization (JavaScript is embedded directly to the page).  The controls are rendered within the page DOM.  The controls are responsive, accessible and mobile friendly.  Developers are able to access the page lifecycle fully, including rendering, loading, serializing and deserializing, configuration changes, and more.  Framework-agnostic. Use any JavaScript framework: React, Knockout, Angular, Bootstrap and more.  The toolchain is based on common open source client development tools such as npm, nvm, TypeScript, Yeoman, Yarn, webpack, and gulp.  Performance is reliable.  End users can use SPFx client-side solutions that are approved by the tenant administrators (or their delegates) on all sites, including self-service team, group, or personal sites.  SPFx web parts can be added to both classic and modern pages. Modern pages can only use client-side web parts.
  • 7. Where does the SharePoint Framework fit?  Full Trust Solutions  Server-side code  Full server side API  Only supported on-premise  Visual Studio Only  Farm Scoped  Webparts, Timers Jobs, Event Receivers (Feature, Web, Site, List, etc.)  Sandbox Solutions  Restricted Server-side code  Declarative Solutions only supported in SPO  Visual Studio Only  Site Collection Scoped  Features & Declarative Solutions  Site columns, content types, Lists, List instances, File Resources, etc.  SharePoint Add-in / Apps  Client-side or Server-side code  Client-side API  Execution context was externalized from SharePoint and displayed via IFRAMEs  Visual Studio Only  Tenant and Site Scoped  SharePoint Framework (SPFx)  Client-side code only  Client-sde web parts and extensions  Execution context is in the page (yeah Baby!!)  Open source and cross-platform tooling  Tenant Scoped  Only way to customize modern pages  Responsive, accessible and mobile friendly
  • 8. IIS Express Project Templates SharePoint Framework Toolchain SharePoint server side SharePoint client side
  • 11. SPFx Developer Environment Office 365 • Existing Office 365 tenant • Partner Program • Office 365 Developer program • Sign up: https://dev.office.com/devprogram • Separate from Subscription but great source of information • After tenant subscription is created, create the following: • App Catalog site • Developer Site
  • 12. SPFx Developer Environment Node.js • Installing Node.js LTS • https://nodejs.org/en/download • Run install • Node -v • Npm -v • You can use Homebrew and/or Chocolatey • https://chocolatey.org/ • Choco install nvm NPM • Installed with Node.js • https://www.npmjs.com/ • Used to install just about everything
  • 13. SPFx Developer Environment Gulp • Make sure Node,js and npm are installed • Install Gulp • npm install --global gulp-cli TypeScript • Installed with Node.js • Strongly typed Language • Interpreted language that is a cross between C# and JavaScript • Generates clean JavaScript
  • 14. SPFx Developer Environment  Office 365 Tenant  App Catalog  Developer Site  Azure  Node.js (LTS – Long Term Support) - www.nodejs.org  NPM v. 3  npm install -g npm@3  Yeoman or Yarn  npm install -g yo  npm install -g yarn  Chocoletey  yarn install v0.24.6  Gulp  npm install -g yo gulp  Yeoman SharePoint Generator  npm install -g @microsoft/generator-sharepoint  Configure SSL for localhost testing environment  gulp trust-dev-cert  IDE of Choice  Notepad or Notepad++  Visual Studio Code  Visual Studio 2015/2017  https://marketplace.visualstudio.com/items?itemName=Share PointPnP.SPFxProjectTemplate  Atom  Storm  Sublime  Etc.  Webpack
  • 15. SPFx Developer Environment  Console for Node.js  PowerShell  CMDER for Windows - http://cmder.net/  Etc.  Code Editor  Visual Studio Code  https://code.visualstudio.com/docs?start=true  Visual Studio 2015/2017  https://marketplace.visualstudio.com/items?itemName=SharePointPnP.SPFxProjectTemplate  Atom  Storm  Sublime  Etc.  Source control system and Project management  GitHub  VSTS  Etc.  Additional tooling  Fiddler - http://www.telerik.com/fiddler  Postman - https://www.getpostman.com/
  • 16. Code Editors  Open source code editor  Windows, Mac and Linux  Built-in support for JavaScript, TypeScript and Node.js  Powered by rich ecosystem of extensions for Visual Studio Code  Extensions for other languages  Debugger extensions  Source code repository extensions  And more… • • • •  Community-driven SPFx extensionPreferred SPFx code editor
  • 17. Debugging code Browsers Developer Console Visual Studio Code Chrome Debugger Extension Edge Debugger Extension Work in progress Support for: Breakpoints Watch variables Step into/over
  • 18. Writing conditional code Global constants Uses Webpack DefinePlugin Different behaviors between development and release builds Available constants DEBUG UNIT_TEST ..and more internal constants
  • 19. Custom gulp tasks Define custom gulp tasks in gulpfile.js: build.subtask and build.task let helloWorldSubtask = build.subTask('log-hello-world-subtask', function(gulp, buildOptions, done) { return gulp.src('images/*.png') .pipe(gulp.dest('public')); }) let helloWorldTask = build.task('hello-world', helloWorldSubtask); gulp hello-world
  • 20. Extend webpack configuration Define your webpack loaders in gulpfile.js npm i --save markdown-loader build.configureWebpack.mergeConfig({ additionalConfiguration: (generatedConfiguration) => { generatedConfiguration.module.loaders.push([ { test: /.md$/, loader: "html!markdown" } ]); return generatedConfiguration; } });
  • 21. Component bundles Components into a single .js file Loaded on demand by SharePoint Choose between: One bundle per component One bundle multiple components Dependencies are optional Do not include dependencies in your bundle. Keep it small and simple!
  • 22. Resources Useful  http://dev.office.com/sharepoint  https://dev.office.com/devprogram  https://docs.microsoft.com/en-us/sharepoint/dev/spfx/sharepoint-framework-overview  https://github.com/SharePoint/sp-dev-docs/wiki  https://github.com/SharePoint/sp-dev-docs  https://github.com/SharePoint/sp-dev-fx-webparts  https://github.com/SharePoint/PnP-JS-Core  https://dev.office.com/sharepoint/docs/spfx/web-parts/get-started/build-a-hello-world-web-part  https://www.youtube.com/playlist?list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq  https://chocolatey.org/  https://developer.microsoft.com/en-us/office/events 
  • 24. Constructive Feedback Is Appreciated Great information, but would like to have learned more about [Insert Topic]Brian – Your presentation was … Good Demos! Thanks!
  • 25. Thank you! Brian Culver, MCM Twitter: @spbrianculver E-mail: brian.culver(at)expertpointsolutions.com Blog: http://blog.expertpointsolutions.com/ Slides: http://www.slideshare.net/bculver