Introduction to SharePoint and Office 365 Development
This module will give you an overview of the different parts of Office 365 and how these integrate together, for getting the bigger picture.
You will also get a broad view of the different development options you have, starting from the classic Farm Solutions to the modern SharePoint Framework.
- Office 365 overview: SharePoint Online, Exchange Online, Microsoft 365 Groups, Teams...
- SharePoint On-Premise vs SharePoint Online development options
- The modern development environment
- Overview of Microsoft 365 APIs
- LAB: Setting up the development environment
Microsoft Identity Platform
With Microsoft Identity Platform, Azure Active Directory for developers, authentication has been simplified for developers by providing identity as a
service, using industry-standard protocols like OAuth 2.0 and OpenID Connect. Participants will learn about user
authentication in Azure AD, how to register applications and how to authenticate applications depending on the
- Microsoft Identity Platform overview
- Registering your apps
- OAuth authentication flows
- User authentication with Microsoft Identity Platform
- Application authentication with Microsoft Identity Platform
- Microsoft Authentication Libraries (MSAL)
- Lab: Microsoft Identity Platform
Microsoft 365 provides you with one single endpoint allowing you to communicate with all Microsoft 365 services. This
API is known as the Microsoft Graph and allows developers to access data, intelligence and insights
coming from the Microsoft cloud.
- The Microsoft Graph API
- Discovering the different APIs: Mail, Contacts, Calendar, People, Teams, ...
- The Microsoft Graph SDK
- Extending the Graph with extensions
- Responding to events using Graph webhooks
- Lab: Fetching mails with Graph
Client Side Development using CSOM
- Getting started with CSOM
- Authentication with CSOM
- Consuming SharePoint data
- Code efficiency with CSOM
- Additional libraries
- LAB: Creating a SharePoint Explorer using CSOM
REST and OData
SharePoint provides REST/OData endpoints to communicate with,which expose the same operations as CSOM does.
One of the advantages of using the REST/OData APIs is that you are no longer tied to the .NET platform for development, but have
the choice of any webtechnology, server- or client-side.
- Getting started with the SharePoint REST APIs
- Authentication with REST APIs
- OData querying syntax
- Batch processing
- The need for digest tokens
Introduction to SharePoint Framework
The SharePoint Framework (SPFX) is the most recent development technology which fits into the modern SharePoint development story,
providing support for client-side SharePoint and O365 development, and easy integration with SharePoint and O365 data.
This module introduces the SharePoint Framework and discusses the possibilities and the open-source toolset used.
- SharePoint Framework overview
- The SharePoint Framework toolset: Yeoman, npm, gulp, Typescript and React
- On-Prem vs Online
- SPFX Roadmap
Building Client-Side Web Parts
The SharePoint Framework allows us to build modern client-side web parts.
During this module, we will create basic webparts and will explore the structure of the webparts and the SPFX projects.
- Client-side web part fundamentals
- SPFX Project Structure
- Adding multiple web parts to a project
- Full Page Apps
- LAB: Creating an SPFX webpart
SPFx solutions need to be deployed through a SharePoint app catalog. In this chapter we will learn what the options are when deploying.
- What is an app catalog and how do we create it?
- Deploying your bundle and package
- Tenant-wide, Site Collection or Site specific deployments
- LAB - Deploying SPFx Projects
The Fluent UI Framework
Making sure your applications share the same look and feel as microsoft 365 can be a challenge. Luckily there
is a UI framework, called Fluent UI, which allows you to apply the same look and feel to your
applications,so they blend with their environment.
- Branding your applications with Fluent UI Framework
- Using the Fluent UI styles
- Integrating Fluent UI components
Styling your SharePoint Sites
With the modern UI comes modern ways to change the design of your sites, columns, lists and libraries. Gone are the days of saving sites as templates
- Creating Site Templates
- Extracting Site Templates with PowerShell
- Formatting List and Library Columns
- Formatting List and Library Views
- LAB: Creating a Site Template
You would like to respond to the adding or updating an item in a SharePoint list or library ?
Sharepoint allows you to use webhooks, a common HTTP callback method for responding to events. This module will show you
how to create Sharepoint webhook subscriptions and how to get information about the changes on SharePoint.
- How to handle webhook subscriptions and event notifications
- Using SharePoint Webhooks
- Getting change details
- Debugging Webhooks
Microsoft 365 Patterns and Practices - PnP
Microsoft accomodates the Microsoft 365 Patterns and
Practices (PnP) initiative, offering guidance and solutions on how to tackle certain problems when creating functionalities for
Microsoft 365. PnP provides us with extensive documentation, tools, libraries and samples
- The PnP initiative
- Using PnP Core in your applications
- Simplifying authentication using the PnP IdentityModel
- Using the PnP PowerShell CmdLets
Remote Provisioning and remote timerjobs with PnP
Modern Microsoft 365 development is about running code remotely, so Microsoft 365 Patterns and Practices came up with a few recipes for doing remote functionality.
The remote provisioning-model is for creating SharePoint artifacts like sites, lists and libraries, columns, content types and more. The remote
timerjob model allows running remote functionality on a schedule. This module will explain these two remote models in detail.
- Why do we need (remote) provisioning?
- The PnP provisioning engine
- Building remote timerjobs
- LAB: Remote Provisioning
- LAB: Remote timerjob
Azure comes with a lot of features that can help you when developing against Microsoft 365. In this module,
participants will learn which features from Azure can help them building their Microsoft 365 customizations.
- Asynchronous processing with Azure Queue-storage
- Delegate functionalities to Azure Functions
- Application Insights
- Lab: Follow up on SP tasks with Azure Functions
Microsoft Teams Development Overview
Microsoft Teams has quickly been adopted as the tool for collaboration. Providing us with functionalities for doing
our team-work, it is also very extensible. It comes out-of-the box with different options for adding tabs, bots for conversations,
connectors to get external data, and message extension for enriching our conversations. With the increased interest
in Teams there is also an increased interest in adding custom functionalities to Teams. This module will lay out the different
options for Teams development.
- Teams Development introduction
- Creating Microsoft Teams Apps with Node and .NET
- Yeoman Generator for Microsoft Teams
- Microsoft Teams Toolkit for Visual Studio Code
- App elements: Tabs, Bots, Connectors, Message Extensions
- LAB: Creating a Teams Tab app
No-code App Development with Power Apps
Development is mostly fun, but also takes a lot of time and effort. Power Apps gives us a quick and powerfull way of creating mobile-friendly applications
that can be used in SharePoint, in Teams, but also as stand-alone applications that run in the browser or on your laptop, tablet or phone. In this module we will see
how to start using them, and how to expose them to Sharepoint and Teams
- Auto-generating apps from your data
- Using Power Apps Studio
- Working with data connections
- Adding screens and controls
- Introduction to Edit- and Detail-forms
- Using Power Apps in SharePoint
- Using Power Apps in Teams
- LAB: Building a power app
Automating business processes with Power Automate
Power Automate allows you to create automatic processes, called flows. A process can start automatically when something happens - for instance 'a new mail arrives' - but also at the click of a button or on a schedule. We can use the context information from that trigger to perform one or more actions, connecting to any data source we would like - Outlook, SharePoint, Twitter, Dynamics 365, ...). All this can be done without having to write a single line of code.
- Start a flow with automatic triggers
- Start a flow for a selected list or library item
- Start a flow on a schedule
- Flow action connection basics
- Adding conditions
- Monitoring flows
- LAB: process mail attachments with Power Automate
What are Office Add-ins
This module will illustrate the different types of Office add-ins, and how they behave behind the scenes, both in Office desktop version and Office Online.
- Introduction to Office Add-ins
- Supported applications
- User experience with task pane, content, mail add-ins and custom ribbon buttons
- The Office API