Part 1: SharePoint API
Introduction to SharePoint Development
This module will give you an overview of the different parts Sharepoint and how these integrate together, for getting the bigger picture. Furthermore, the Office 365 ecosystem will be introduced.
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, Office 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
SharePoint and 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