Call Us: +32 2 466 00 16
Email: info@u2u.be
Follow Us:

Developing with the SharePoint Framework

5 days
USPFX
5 days

Upcoming Sessions

Date:

Format:

Price:

Location:

Book now

Date:

Format:

Price:

Location:

Book now

Interested in a private company training? Request it here.

Part 1 - Building SharePoint Framework Components

What is SharePoint Framework

In 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
  • Roadmap

Preparing your machine for the SharePoint Framework

Learn the esentials of each tool used with SPFx.

  • 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, update and maintain them using NPM.

  • 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 customise the proparty pane controls and how to build your own.

  • 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 SPFx

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.

  • Installing dependencies
  • Loading JavaScript libraries - i.e. 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 Fluent UI

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 Fluent UI (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
  • Fluent UI styles
  • Fluent UI Fabric components

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 Components

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 manipulate the results

  • Creating a Search Extension
  • Manipulating the search results

Office Add-Ins

Using the Office libraries we can build an Outlook plugin that shows up as a web part

  • Building an Outlook plugin
  • Interacting with e-mail content

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 / SPFx offers us the tools to build custom solutions for the modern SharePoint and Office 365 experience. In this deep-dive development course we will learn the way to efficiently work with Node.js, React and Typescript. Using this toolset we can build modern SharePoint web parts, Teams tabs and other UI extensions. We will see how to connect to various data sources like Microsoft Graph, Microsoft Identity Platform, Azure Functions, etc.

Participants ideally have a few years of development experience. No TypeScript or JavaScript experience is required, but recommended. Knowing how to use SharePoint is advised.

© 2020 U2U All rights reserved.