Call Us: +32 2 466 00 16
Follow Us:

Developing with the SharePoint Framework

Webinar code

Upcoming sessions

This webinar is currently not scheduled

Subscribe to waiting list

Part 1 - Building SharePoint Framework Components

What is SharePoint Framework

During this introduction we will talk about the development options we have in SharePoint. We will take a look at the toolchain of SharePoint Framework and how it fits into the modern SharePoint development story.

  • SharePoint Framework overview
  • SharePoint Framework tools
  • On-Prem vs Online

Preparing your machine for the SharePoint Framework

In this module we will talk about the SharePoint Framework development process and how each of the tools fits into that process.

  • Visual Studio Code
  • Node.js/NPM - local hosting and module management
  • Yeoman - project scaffolding
  • Gulp - task runner
  • Webpack - bundling tool

Node modules

In this chapter you will learn about project dependencies and how to install them.

  • Npm modules
  • Versioning
  • Dependencies and types
  • Typescript intellisense with declaration files

Building Client-Side Web Parts

The SharePoint Framework allows us to build modern client-side web parts. We will use the Yeoman generator to create a web part project. During this module, we will explore the project structure and make some basic changes to our first web part.

  • Client-side web parts fundamentals
  • Web Part Project Structure
  • Adding multiple web parts to a project
  • Full Page Apps

Strongly typed JavaScript with TypeScript

By using TypeScript we improve the way we write client-side code. We can use all the latest ECMAScript features, while still supporting all browsers. TypeScript adds type annotations and code compilation to your development process so that you write better code. TypeScript is used by default in all SPFx generated projects. In this module, we will talk about the TypeScript language and how it can help you in building your enterprise scale applications.

  • Overview of the TypeScript language
  • The ECMAScript standard
  • Why use TypeScript as a SharePoint developer?
  • Typescript transpilation and configuration
  • Variables, Objects, Interfaces, Classes and more
  • Base classes and inheritance features
  • Namespaces and Modules

Web part properties

Just like with classic web parts, we have a property pane that can be customized. In this chapter you will learn how to do just that

  • Extending the web part property pane with property controls
  • Validating web part properties
  • Using custom controls in the property pane
  • Property pane life cycle
  • Storing web part data

Loading SharePoint data in SharePoint Framework

When loading data from client-side code, we use REST. SharePoint has REST services. This module will teach you how to use the Framework HTTP clients to consume these services.

  • Working with OData REST Services
  • Discovering the SharePoint REST endpoints
  • Using the built-in sharepoint client to get data
  • Adding or updating data from client-side code
  • Using PNP/JS to fetch data
  • Using list subscriptions to receive updates from a list/library (webhooks)

Loading other frameworks

You will learn how to integrate other packages into your SharePoint framework project, but also what the impact is on your JavaScript code bundles. We will see how you can efficiently reference external frameworks.

  • Loading jQuery and plugins
  • Using Angular and Angular Elements
  • Loading packages from a CDN
  • Bundling and Externals

SPFx Project Architecture

In this chapter we will discuss general project structure strategy. How do you handle shared code? How do you build your own packages?

  • General project structure strategies
  • Shared code using the library component
  • Creating your own npm packages

Deployment Overview

SPFx solutions need to be deployed through a SharePoint app catalog. In this chapter we will learn what the advanced options are when deploying. What about versioning? Where do we deploy our JavaScript? How do we deploy to Teams? etc.

  • What is an app catalog and how do we create it?
  • Deploying your bundle and package
  • Versioning in SPFx
  • Deploying SharePoint Assets like Lists, Content Types and more
  • Deploying Extensions
  • Tenant-wide, Site Collection or Site specific deployments
  • Deploying to Microsoft Teams as shared or personal apps

Part 2 - Working with React and other Libraries

Using and building React components for the SharePoint Framework

During this module we will cover the basics of React and how it's component system works.

First of all, we'll get started by looking at how React is integrated into SPFx. Then we'll learn about JSX. This module talks about the how, which and when of expressions in a React application. We'll explore what Babel does, how html tags and components are combined and how a JavaScript expression gets evaluated.

  • React App Structure
  • What is JSX
  • JavaScript Expressions
  • JSX Tips and Tricks
  • Building your first component

React Components Deep-Dive

To be able to reuse and split our application into logical parts, we need components. These components are what we'll use to create interactivity in the application. Interactivity however, can only work if we keep track of the state of the application. This chapter explores the data flow of a React application and how React components communicate with each other.

  • Working with multiple components
  • Transferring Props
  • Dynamic data with component state
  • Form Components
  • Component Lifecycle
  • Loading Data into a component
  • React's Virtual DOM

Brand your client web parts with SASS and Office-UI-Fabric

In this module you will learn how to make your SharePoint Framework projects look good. We will talk about SASS, which is a CSS pre-compiler. Also, you will learn about Office UI Fabric which offers you styles and components that match the Office365 look.

  • SASS, the dynamic stylesheet language
  • SASS Variables, Mixins, Nesting, functions, ...
  • SASS Preprocessing
  • Office UI Fabric styles
  • Office UI Fabric components
  • Fluid Framework preview

Connecting to Microsoft Graph

Microsoft Graph is a unified API for getting data from the entire Office 365 platform. We can also use the native client and permission system to access this data.

  • Microsoft Graph API
  • The Graph API Client
  • Consuming Microsoft Graph
  • Registering and approving permissions to access Microsoft Graph
  • Domain Isolated Web Parts

Consuming AzureAD protected API's

For Azure AD protected API's, other than SharePoint or Graph - think Azure Functions, your own API, ... - we can use another built-in client to get to the data.

  • Using the AadHttpClient
  • Azure AD applications
  • Setting permissions
  • Calling Azure AD protected resources

Call SharePoint through your own API

One restriction of using client side code, is that we do not have control over the code running - it could be manipulated - and that we are restricted by the permissions of the user running the code. We can solve this by using code on another platform that makes (app-only) API calls to SharePoint.

  • Make secure calls into SharePoint using your own API
  • Elevated privileges with App Only calls
  • Pick a technology: .NET/JAVA/Azure Funtions/...

Part 3 - SharePoint Framework Extensions

Application Customizer

Using an application customizer extension, we can run JavaScript on any modern page, while leveraging some of the tools provided to us by SharePoint

  • Creating an application customizer
  • Using dialogs and alerts
  • Injecting controls into modern page placeholders

Field Customizer

Similar to JSLink in classic SharePoint development, a Field Customizer allows us to override part of the render process

  • Creating a Field Customizer
  • Using field data
  • Injecting React controls into your field customizer

Command Set

Just like the Custom Actions we built in the past, a Command Set will extend the interface with extra buttons.

  • Creating a Command Set
  • Executing scripts when a button is clicked
  • Show your button conditionally based on item selection, location, etc.

Search Extension - PREVIEW

With search extensions we can modify a search query before it is executed and minupulate the results

  • Creating a Search Extension
  • Manipulating the search results

Part 4 - Advanced Development

Dynamic Data

Dynamic Data allows you to connect components and share data between them

  • Writing a data provider
  • Writing a data consumer
  • Data serialization
  • Handling data updates

Unit Testing

In this chapter, we will take a look at some of the debugging and testing options we have available for SharePoint Framework.

  • Creating unit tests for your typescript code using Enzyme, Sinon, Chai, ...
  • Running tests using Karma
  • Running tests with Jest

Tips and Tricks

Now that we know all about SharePoint Framework development, it's time to look at some things that will make your life easier while developing!

  • Debugging with Visual Studio Code
  • Logging with Azure Application Insights
  • Extending the build process with your own Gulp tasks
  • Taking control over your bundles with WebPack configuration

SharePoint Framework or SPFx is a client-side development model that allows us to create modern SharePoint experiences using modern web parts and UI extensions. SPFx is available for SharePoint Online, 2019 and 2016. Typescript and Reacts are essential JavaScript frameworks you will need to master. Development is done through open-source tools and using common web development techniques making it easier for web developers to start developing for SharePoint.

This course will teach you all the skills you need to start customizing the modern SharePoint experience. We will have a look at all the required libraries and tools to start developing with SharePoint Framework: nodejs, npm, Yeoman, Gulp, WebPack, etc. You will learn about TypeScript features and transpilation, how to build React Components, harness Office UI Fabric and how to deploy to your SharePoint sites or Microsoft Teams.

Participants in this training ideally have a few years of development experience. No TypeScript or JavaScript experience is required. Knowing how to use SharePoint is advised.

© 2020 U2U All rights reserved.