This document summarizes an introduction to the SharePoint Framework (SPFx) presented by Fabio Franzini. The agenda includes an introduction to SPFx, the SPFx toolchain, building an SPFx web part, and deploying an SPFx web part. SPFx is a page and web part model for building client-side SharePoint solutions using modern web technologies. It allows developers to build responsive and accessible web parts that can be added to classic and modern SharePoint pages. The SPFx toolchain is based on open source tools like Node.js, Yeoman, and Gulp. Developers can create their first web part, then package and deploy it to an app catalog to add to
SharePoint – Evolvingacross versions 2013 APP/ADD-IN MODEL 2010 SANDBOX & CSOM <= 2007 FULL TRUST 2016 CLOUD FRIENDLY SPFx
8.
WHAT IS THESPFx? Is a page and web part model with full support for client-side SharePoint development using modern web technology and tools • Runs in the context of the current user and connection in the browser • The controls are rendered in the normal page DOM, NO iFrames! • The controls are responsive and accessible by nature • It's framework agnostic • The toolchain is based on common open source client development tools • Component types: • Client Web Part • Extensions • Application Customizer • Field Customizer • Command Sets • SPFx web parts can be added to both classic and modern pages • Available in the Cloud and On-Prem (SP 2016 Feature Pack 2)
9.
SPFx principles • New/Moderntoolchain • Client-side rendering • No iFrame needed • No JavaScript Injection needed • No server side-code needed • IDE/Development platform agnostic
CREATE YOUR FIRSTSPFx WEBPART 1. C:> md helloworld-webpart 2. C:> cd helloworld-webpart 3. C:> yo @microsoft/sharepoint • Working on it… • You can execute yo command again to add more webparts to project 4. C:> gulp serve 5. Check out your first WebPart! 1. May also load in SPO workbench: “../_layouts/15/workbench.aspx”
16.
SPFx PROJECT FOLDEROVERVIEW Get to know your Webpart folder structure • src: primary webpart TypeScript source code • config: json configuration files for build process • typings: TypeScript typings for JS libs – legacy • lib: Build files (TS compiled JS) ready for bundle • dist: Final web ready code for distribution • sharepoint: .spapp file for App Catalog • node_modules: NodeJS modules (JS) for toolchain
PACKAGE YOUR WEBPARTFOR DEPLOYMENT 1. Set deployment configuration • config/package-solution.json – general settings and package name • write-manifests.json – CDN / bundle location – for dev, can serve locally: gulp serve --nobrowser 2. C:> gulp clean (cleans sharepoint and temp folders) 3. C:> gulp build (Rebuilds the solution) 4. C:> gulp bundle (Creates the solution bundles) 5. C:> gulp package-solution (Creates /sharepoint/”webpart”.spapp) 6. C:> gulp –ship (minifies bundle and reads in CDN info from config/write- manifests.json) 7. C:> gulp package-solution --ship (Recreates /sharepoint/”webpart”.spapp with CDN info)
20.
PACKAGE YOUR WEBPARTFOR DEPLOYMENT 1. After solution created, can then add to SharePoint 2. Add .spapp to app catalog 3. Add Add-In to SharePoint site 4. Add WebPart in site to content page 5. Configure CDN • Office 365 CDN: https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get- started/hosting-webpart-from-office-365-cdn • Azure CDN: https://dev.office.com/sharepoint/docs/spfx/web-parts/get-started/deploy-web-part-to- cdn 6. Or manually deploy solution bundle and config write-manifests.json
#9 Context of the current user Real DOM, no iFrame It’s Responsive Open source tools and libraries WebParts Extensions Modern Pages & Classic Pages Both in Cloud and On-Prem
#12 NodeJS = IIS (Express) Npm = Package Manager Gulp = MSBuild YeoMan = project scafolding in VS TypeScript= typed superset of JavaScript
#16 Create our first SPFx webpart md helloworld-webpart cd helloworld-webpart yo @microsoft/sharepoint gulp serve ../_layouts/15/workbench.aspx Now open workbench in dev tenant, while local gulp is running