Modern SharePoint and Office 365 Development is an intensive five-day training course designed to teach professional developers and architects how to create custom solutions for SharePoint Online and Office 365 using modern developer tools and today’s best practice techniques. This course provides deep coverage of the SharePoint Framework, but it first spends the time to teach the prerequisites including TypeScript, Node.js, NPM, Gulp, Webpack, Visual Studio Code and the ever-popular React.js library. This course is well suited for experienced SharePoint developers looking to move beyond legacy development models such as SharePoint Farm Solutions and SharePoint Add-ins.
In addition to learning to develop with the SharePoint Framework, this course teaches students how to secure custom applications with Azure Active Directory and how to write code to authenticate users, acquire access tokens and execute authorized web service calls against commonly-used Microsoft APIs including the SharePoint Rest API, the Microsoft Graph API and the Power BI Service API.
- Visual Studio and C#
Desirable additional skills:
- SharePoint customisation
- Understanding SharePoint Development Strategies
- Programming the Client-side Object Model (CSOM)
- Understanding Azure as a Development Platform
- Using Azure to create Web Apps and SQL Databases
- Developing with TypeScript and Interfaces
- Developing Client-side with Strongly-typed Programming
- Introduction to Node.JS and NPM
- Installing and Updating Packages in Visual Studio Code
- Adding TypeScript Support to a Node.js Project
- Configuring Node.js with Server-side Debugging Support
- Using Gulp to Automate Running Development Tasks
- Developing Projects using Webpac
- Creating SPAs using React.js and TypeScript
- Designing a React Component Hierarchy
- Using JSX/TSX Syntax to Generate HTML
- Understanding the React Component Lifecycle Methods
- Calling Across the Network using the Fetch API
- Extending a React Project with the React Router
- Creating SPFX Projects using the Yeoman Generator
- Testing & Debugging Projects in SharePoint Workbench
- Creating Application Customizers
- Creating Field Customizers and Command Sets.
- Creating a Web Part with Custom Properties
- Managing Styles using SCSS Files and CSS Modules
- Designing and Developing React Web Parts
- Web Part Properties versus React Component State
- Leveraging the Office UI Fabric React Library
- Developing Web Parts using the SharePoint REST API
- Designing Web Parts to Manage SharePoint Lists
- Displaying a Loading Indicator When Retrieving Data
- Creating the App Catalog Site in SharePoint Online
- Packaging SPFX Solutions for Production
- Customizing SPFX Builds with Gulp and Webpack
- Publishing and Updating SPFX Solutions
- Installing an SPFX Solution in a SharePoint Site
- Overview of Microsoft Graph API
- Programming with AadHttpClient and MSGraphClient
- Configuring SPFX API Permission Requests
- Granting API Permissions in SharePoint Admin Center
- Creating Users and Groups in Azure AD
- Programming Email Messages and Calendar Events
- Introducing Power BI and the Power BI Service API
- Calling the Power BI Service API using AadHttpClient
- Overview of the Embedding Features in Power BI
- Retrieving Embedding Data with the Power BI Service API
- Writing Code to Interact with an Embedded Report
- Understanding OAuth 2.0 and OpenID Connect
- The Role of Azure Active Directory
- Creating & Configuring Azure AD Applications
- Securing MVC Applications using ADAL and OWIN
- Securing SPAs using ADAL.js & Implicit Grant Flow
- Understanding the Teams Service, Teams and Channels
- Developing Team Apps with Tabs, Bots and Connectors
- Developing a Teams App using App Studio
- Developing a Teams App using Visual Studio and C#
- Developing a Teams App using Node.js
- Packaging and Publishing a Microsoft Teams App
- Introduction to Developing with Azure Functions
- Creating and Testing Azure Functions in the Azure Portal
- Using Azure Functions to Create a Custom Web API
- Configuring Security and Cross-Origin Resource Sharing
- Calling Azure Functions from SPFX Web Parts
- Developing Azure Function in Visual Studio using C#
- Understanding Webhooks Architecture
- Creating SharePoint Webhooks using Azure Functions
- Registering Webhooks on a SharePoint List
- Programming using the Webhooks Callback Protocol
- Registering Webhooks using the Microsoft Graph API
- Using Webhooks to Detect Changes to Users, Groups, Messages and Events
This module examines SharePoint Online development strategies and discusses the evolution of modern pages and Microsoft Teams into the SharePoint user experience. Students will learn to program using the Client-side Object Model (CSOM) using C# to automate remote provisioning tasks such as creating SharePoint sites and customized lists. Next, the module provides an overview of Microsoft Azure as a cloud-based development platform and demonstrates how to create essential on-demand services such as Azure Web Apps and Azure SQL databases. The module concludes with a TypeScript primer where students will learn to develop with TypeScript in Visual Studio 2017 to write client-side code using interfaces and strongly-typed programming.
This module introduces students to React.js and examines how React.js uses a component-based architecture and a virtual DOM to optimize performance. Students will learn to create and configure new Node.js projects as a Single Page Application (SPA) using React.js together with TypeScript and Webpack. The module walks through how to design an SPA by creating a hierarchy of React components which define properties, state and event handlers. The module introduces JSX and teaches students the essential concepts and syntax for writing TypeScript code in a TSX file to generate the HTML for a React component. Along the way, students will learn how to integrate the React Router into an SPA project to provide navigation across multiple views.
This module introduces students to the SharePoint Framework (SPFX) and the extensive API it provides for client-side development. Students will learn to create new SPFX projects using the Yeoman generator and to develop SPFX projects using Visual Studio Code. The module examines the different types of components that can be created with SPFX including Web Parts, Application Customizers, Field Customizers and Command Sets. Students will learn how to extend a Web Part with custom properties that can be viewed and edited by users in the Web Part Properties Pane. The module also teaches best practices for managing CSS styles in an SPFX project using SCSS files and CSS modules. Students will learn how to test and debug SPFX projects in the local SharePoint Workbench as well as in the hosted SharePoint Workbench running inside a test site in SharePoint Online.
This module moves beyond SPFX fundamentals to examine the process of developing SPFX Web Parts for real-world scenarios. The module explains how to develop React Web Parts with a design that coordinates the movement of data between the Web Part class which defines persistent properties and the React component class which defines state. The module also teaches students how to leverage the Office UI Fabric React library to create a user interface using standard React components such as PrimaryButton, TextField and DetailsList. The module demonstrates how to develop Web Parts which use the SharePoint REST API to create new SharePoint lists and to update and query SharePoint list items. Along the way, students will learn essential SPFX programming techniques for executing calls asynchronously and for updating the user interface with a loading indicator whenever the user is waiting for a call to return from across the network
This module introduces the Microsoft Graph API and explains how this powerful library abstracts away the divisions between Azure Active Directory, Exchange Online, SharePoint Online and OneDrive to create a single, unified API for general application development. Students will learn how to program against the Microsoft Graph API in an SPFX Web Part using both the AadHttpClient class and the MSGraphClient class. The module also explains why it’s necessary to add API permission request into the package-solution.json file for an SPFX solution and how to grant tenant-level API permissions in the SharePoint Admin Center. Along the way, students will learn how to program the Microsoft Graph API to view and create users in Azure Active Directory and to read and send email messages and calendar events using an Exchange inbox.
This module begins with a primer on OAuth 2.0 and OpenID Connect and an overview of the Azure Active Directory security model which provides support for user authentication, application authentication and an authorization scheme based on configurable permissions. Students will learn about the differences between application permissions and delegated permissions as well as how to create and configure Azure AD applications in the new Azure portal. Students will learn programming techniques for developing secure applications which implement common authentication flows such as user credentials flow, authorization grant flow, and client credentials flow. The module examines developing secure ASP.NET MVC application by using the Active Directory Authentication Library (ADAL) together with the OWIN framework and OWIN middleware components. The module also explains how to secure client-side SPAs created Angular and AngularJS by using the ADAL.js library and the implicit grant flow to acquire access tokens.
This module examines developing with Azure Functions to execute asynchronous server-side processing jobs and to provide a quick and efficient way to create a custom Web API accessible to Single Page Applications (SPAs) and SharePoint Framework Web Parts. Students will learn the fundamentals of creating, testing and debugging Azure Functions in the Azure Portal. The module also explains the options for configuring security for an Azure Function App and for supporting Cross-Origin Resource Sharing (CORS) to ensure your Azure Functions can be called from your client-side application code. The module teaches students how to create and publish Azure Function Apps using Visual Studio 2017 and C# as well as how to call Azure Functions from the client-side TypeScript code written in a SPA or a SharePoint Framework Web Part.
This module examines developing with webhooks and explains how webhooks can be used to execute code with custom logic in response to events that occur in SharePoint Online, Microsoft Teams, OneDrive and Outlook. Students will learn about the benefits and disadvantages of SharePoint webhooks in comparison to classic SharePoint event receivers and remote event receivers. Students will also learn the steps to create an Azure Function using C# and to register it as a webhook with SharePoint Online to execute custom code in response to changes to items in a SharePoint list or changes to a document in a document library. The module explains the webhook coding requirements including returning validation tokens and executing processing asynchronously
Microsoft 365 learning pathways
This course features in the following learning path:
Frequently asked questionsSee all of our FAQs
How can I create an account on myQA.com?
There are a number of ways to create an account. If you are a self-funder, simply select the "Create account" option on the login page.
If you have been booked onto a course by your company, you will receive a confirmation email. From this email, select "Sign into myQA" and you will be taken to the "Create account" page. Complete all of the details and select "Create account".
If you have the booking number you can also go here and select the "I have a booking number" option. Enter the booking reference and your surname. If the details match, you will be taken to the "Create account" page from where you can enter your details and confirm your account.
Find more answers to frequently asked questions in our FAQs: Bookings & Cancellations page.
How do QA’s virtual classroom courses work?
Our virtual classroom courses allow you to access award-winning classroom training, without leaving your home or office. Our learning professionals are specially trained on how to interact with remote attendees and our remote labs ensure all participants can take part in hands-on exercises wherever they are.
We use the WebEx video conferencing platform by Cisco. Before you book, check that you meet the WebEx system requirements and run a test meeting (more details in the link below) to ensure the software is compatible with your firewall settings. If it doesn’t work, try adjusting your settings or contact your IT department about permitting the website.
Learn more about our Virtual Classrooms.
How do QA’s online courses work?
QA online courses, also commonly known as distance learning courses or elearning courses, take the form of interactive software designed for individual learning, but you will also have access to full support from our subject-matter experts for the duration of your course. When you book a QA online learning course you will receive immediate access to it through our e-learning platform and you can start to learn straight away, from any compatible device. Access to the online learning platform is valid for one year from the booking date.
All courses are built around case studies and presented in an engaging format, which includes storytelling elements, video, audio and humour. Every case study is supported by sample documents and a collection of Knowledge Nuggets that provide more in-depth detail on the wider processes.
Learn more about QA’s online courses.
When will I receive my joining instructions?
Joining instructions for QA courses are sent two weeks prior to the course start date, or immediately if the booking is confirmed within this timeframe. For course bookings made via QA but delivered by a third-party supplier, joining instructions are sent to attendees prior to the training course, but timescales vary depending on each supplier’s terms. Read more FAQs.
When will I receive my certificate?
Certificates of Achievement are issued at the end the course, either as a hard copy or via email. Read more here.