Part 1: Remote SharePoint development
Introduction to SharePoint and Office 365 development
Office 365 delivers Software 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 2013 vs SharePoint 2016 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), a
library that makes your life easier when communicating with SharePoint.
- Getting started with CSOM
- Authentication with CSOM
- Consuming SharePoint
- Code efficiency with CSOM
- Additional libraries in CSOM
- Administering your tenant with CSOM
Next to a nice library, like CSOM, 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 language 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 Add-ins
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 or
hosted. SharePoint hosted add-ins are entirely hosted in SharePoint and developers are restricted to code that runs
in the browser. Provider hosted add-ins are hosted outside SharePoint and developers are not restricted in their
choice of technology. This module will illustrate the fundamentals of building SharePoint and Provider hosted
- 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
Part 3: SharePoint development extras
Office UI Fabric
Making sure your applications share the same look and feel as SharePoint Online can be a challenge. Luckily there
is a UI framework, called Office UI Fabric, that can help you to apply the same look and feel, as in SharePoint, to your
- Branding your applications with Office UI Fabric
- Office UI Fabric styles
- Office UI Fabric components
Introduction to PnP
Since the introduction of the SharePoint Add-in model, it has sometimes become difficult to translate your old
code to this new model. Because of this, 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
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.
- Why do we need (remote) provisioning?
- Using JSON site design
- PnP provisioning engine
SharePoint allows you to subscribe to events that happen within lists and get notified asynchronously when those
- How to handle webhook subscriptions and event notifications
- SharePoint Webhooks
- Debugging Webhooks
Introduction to SharePoint Framework
In this module, participants will get introduced to the SharePoint Framework and where it fits into the
SharePoint development options you have. This model is not a replacement for the add-in model, it can perfectly
be used next to the add-in model.
- SharePoint Framework overview
- SharePoint Framework tools
- Client Web Parts
Part 4: Office 365 development
With Azure Active Directory, 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
- User authentication with Azure AD
- Application authentication with Azure AD
- Azure Active Directory Authentication Libraries (ADAL)
- Azure Active Directory v2.0
- Microsoft Authentication Libraries (MSAL)
Using Azure AD for SharePoint authentication
Remote code that wants to talk to the SharePoint webservices will have to pass by authentication. If the code was
installed by means of an add-in, then add-in authentication could be applied. If there is no related add-in, then
Azure AD can be used to retrieve access token in order to communicate with SharePoint.
- Azure AD app registration for SharePoint
- Delegated versus app-only authentication
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
Apps for Microsoft Teams
Since its introduction, Microsoft Teams has gained popularity in the workplace as the number one chat-based
collaboration platform. Developers can extend Teams with their own customizations, like tabs, bots, ... . This
module will introduce you to Teams Development.
- Introduction to Teams development
- Using App Studio
- Apps for Teams capabilities
- Using the Teams SDK
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
- Using Logic Apps