Part 1: SharePoint API
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
- LAB: Setting up the development environment
Client Side Development using CSOM
This module will teach you how to do client side development in .NET using the Client Side Object Model (CSOM).
- Getting started with CSOM
- Authentication with CSOM
- Consuming SharePoint data
- Code efficiency with CSOM
- Additional libraries
- Administering your tenant with CSOM
- 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 modern webplatform.
- Getting started with the SharePoint REST APIs
- Authentication with REST APIs
- OData querying syntax
- Batch processing
- The need for digest tokens
If you want to build
- Using the REST APIs
- The Cross-domain library
- The PnPJS library
Part 2: SharePoint Development
Introduction to SharePoint Add-ins
The SharePoint add-in model is a development model where custom code is executed remotely. This gives us two hosting options to choose from: SharePoint hosted add-ins which are
This module will learn you how to build these add-ins.
- SharePoint add-in hosting options
- Visual Studio Project Templates for Add-ins
- The anatomy of the project
- SharePoint Add-in Packages
- Declaritively provisioning artifacts
- Creating Custom Actions & Add-in parts
- LAB: Building a SharePoint hosted Add-in
SharePoint add-in Authentication
SharePoint authenticates and authorizes add-ins using the OAuth 2.0 protocol. This module will
explain you the details of the OAuth protocol and will explain you the differences between OAuth and the Server
to Server Authentication, which is used in on-premises farms.
- User versus add-in authentication in SharePoint
- OAuth 2.0 and the SharePoint authentication flow: Context Tokens, Refresh Tokens and Access Tokens
- Server to Server High Trust Authentication
- Requesting and granting permissions
- Delegated versus app-only authentication
- LAB: Creating the Photo Room App (Provider-hosted)
Deploying your SharePoint Add-ins
Once an add-in is developed, tested and approved, it is time to publish it. This module will discuss
what you have to take into account when deploying your SharePoint add-in.
- Application registration
- Corporate App Catalog
- Client IDs and Client Secrets
- Publishing the remote parts
- Publishing the SharePoint add-in package
- LAB: Deploying your Add-in
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
Introduction to PnP
Microsoft accomodates the Office 365 Patterns and
Practices (PnP) initiative, offering guidance and solutions on how to tackle certain problems when creating functionalities for
Office 365. PnP provides us with extensive documentation, tools, libraries and samples
- What is PnP and how can it help me?
- Using the PnP Core in your applications
- Simplifying authentication using the PnP IdentityModel
- Reusable solutions for SharePoint On-Prem and Online with the Partner Pack
- Using the PnP PowerShell CmdLets
Remote Provisioning and remote timerjobs
The add-in model is about running code remotely, so Office 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?
- Using JSON site designs
- The PnP provisioning engine
- Building remote timerjobs
- LAB: Remote Provisioning and Site Designs
- LAB: Remote timerjob
SharePoint and Office 365 Webhooks
You would like to respond to the adding or updating an item in a SharePoint list, or to the arrival of an email in Outlook Online ?
Both SharePoint and Office 365 offers webhooks, a common HTTP callback method for responding to events. This module will show you
the details and differences between SharePoint and Office 365 webhooks, and how to use them.
- How to handle webhook subscriptions and event notifications
- Using SharePoint Webhooks
- Using Office 365 Webhooks
- Debugging Webhooks
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
Part 3: Office 365 Development
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
Office 365 provides you with one single endpoint allowing you to communicate with all Office 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, Mail, Teams,...
- The Microsoft Graph SDK
- Graph webhooks
- Extending the Graph with extensions
- Lab: Fetching mails with Graph
Azure comes with a lot of features that can help you when developing against Office 365. In this module,
participants will learn which features from Azure can help them building their Office 365 customizations.
- Relaying messages with Azure Queue-storage
- Delegate functionalities to Azure Functions
- Application Insights
- Lab: Follow up on SP tasks with Azure Functions
Part 4: Microsoft Teams Development
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
- Using existing App Templates
- 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
Building rich Teams conversations with Bots
Conversational bots allow users to interact with your apps through text, interactive cards, and task modules.
In this module, you’ll learn how to create and add bots to custom Microsoft Teams apps.
- Creating a bot compatible web service
- Debugging your bot with the bot Emulator
- Turns, Messages and Activities
- Conversations and Channels
- Registering your bot with Microsoft Azure's Bot Framework
- Building a simple bot using the Power Virtual Agent tools
Enrich messages with Messaging Extensions
Messaging extensions allow us to extend the content of a chat or conversation message in Teams.
These extensions come in three flavours, allowing us to take action, search for content or unfurl a URL based on the user's input.
- Request user input with Action Commands and Tasks
- Provide search results based on Search Commands
- Enrich URL rendering with Link Unfurling
- Lab: Teams Tabs and Messaging Extensions
Teams administration options
Learn what options you have for administering Teams and Apps and how Teams administration can be automated.
- Teams admin center
- Configuring App Setup Policies
- Configuring Settings for Apps, bots & Connectors
- Managing Teams with PowerShell
- Managing Teams with the Office365 CLI