Part 1: SharePoint API
Introduction to SharePoint and Office 365 Development
Sharepoint is a collaboration and communication platform that can be extended with development.
Office 365 delivers Software - including SharePoint - as a Service (SaaS).
It provides multiple services that a customer can chose from like Exchange Online, SharePoint Online, OneDrive for Business, …
This module will give you a developer's overview on Office 365 and SharePoint.
- Office 365 services: SharePoint Online, Exchange Online, Skype for Business...
- SharePoint On-Premise 2013/16/19 vs SharePoint Online development options
- Development environment and options
Client Side Development using CSOM
This module will introduce you to 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 in CSOM
- Administering your tenant with CSOM
REST and OData
SharePoint also provides REST/OData endpoints to communicate with. These
endpoints support the same operations as CSOM does. One of the advantages of using the REST/OData APIs is that
you are not tied to using .NET as a development language. You are free to chose whatever webtechnology you want, as
long as it can make calls to a webservice.
- Getting started with the REST APIs
- Authentication with REST APIs
- OData querying syntax
- Batch processing
- The need for digest tokens
- Using the REST APIs
- Cross-domain library
- PnPJS library
Part 2: SharePoint Development
Introduction to SharePoint Add-ins
The SharePoint add-in model does not allow you to run custom server site code on SharePoint; custom code has to be
executed remotely. The add-in model provides two hosting options that you can choose from: SharePoint hosted add-ins which are
entirely hosted in SharePoint or Provider-hosted add-ins which are hosted outside SharePoint.
This module will illustrate the fundamentals of building these add-ins.
- SharePoint add-in hosting options
- Visual Studio Project Templates
- The anatomy of the project
- SharePoint Add-in Package
- Declaritively provisioning artifacts
- Custom Actions & Add-in parts
SharePoint add-in Authentication
The SharePoint add-in model introduced a new way of thinking about security. SharePoint authenticates and
authorizes components, developed according to the add-in model, 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 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
Deploying your SharePoint Add-ins
Once an add-in is completely 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
Fluent UI Framework
Making sure your applications share the same look and feel as SharePoint Online can be a challenge. Luckily there
is a UI framework, called Fluent UI, that can help you to apply the same look and feel to your
- Branding your applications with Fluent UI Framework
- Using the Fluent UI styles
- Integrating Fluent UI components
Introduction to PnP
How can you translate your old applications to this new model? Microsoft took the initiative to start SharePoint Patterns and
Practices (PnP), offering techniques and solutions on how to tackle certain problems when transforming your
solutions to the add-in model. Today, SharePoint PnP has grown so much that it now offers techniques, reusable
and demo solutions on SharePoint and Office 365 development.
- 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
When developing SharePoint customizations, often you will need to deploy new sites, lists, contenttypes, themes,
files, ... . This process is referred to as Provisioning SharePoint Artifacts. With the remote
development model, this now becomes Remote Provisioning. The same applies to timerjobs which can no longer run
on server-side, but need to run remotely.
- Why do we need (remote) provisioning?
- Using JSON site design
- PnP provisioning engine
- Building remote timerjobs
SharePoint and Office 365 Webhooks
SharePoint and some other parts of Office 365 allows you to subscribe to events that might happen and get notified asynchronously when those
- How to handle webhook subscriptions and event notifications
- SharePoint Webhooks
- Office 365 Webhooks
- Debugging Webhooks
Introduction to 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
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
- Client-side web parts fundamentals
- Web Part Project Structure
- Adding multiple web parts to a project
- Full Page Apps
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
- App Registrations
- OAuth authentication flows
- User authentication with Microsoft Identity Platform
- Application authentication with Microsoft Identity Platform
- Microsoft Authentication Libraries (MSAL)
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.
- Microsoft Graph API
- Discovering the different APIs: Mail, Contacts, Calendar, People, Mail...
- Microsoft Graph SDK
- Graph webhooks
- Extending the Graph with extensions
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.
- Using the Azure Queue
- Delegate functionalities to Azure Functions
- Application Insights
Part 4: Microsoft Teams Development
Microsoft Teams Development Overview
This module will introduce you to the different options and platforms to pick from when starting with Microsoft Teams development.
You will learn about the extensibility points of Teams and the way you can use them to enrich the user experience.
- Teams Development introduction
- Creating Microsoft Teams Apps with Node and .NET
- Using existing App Templates
- Yeoman Generator for Microsoft Teams
- Visual Studio Code Extensions
- App elements: Tabs, Bots, Connectors, Message Extensions
Building rich conversations with Bots
Conversational bots allow users to interact with your web service 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
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