Part 1: Office 365 Development
Introduction to SharePoint Online 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.
- Office 365 overview: SharePoint Online, Exchange Online, Microsoft Teams...
- The modern development environment: Visual Studio, Visual Studio Code, Node.js...
- Lab: Setting up the development environment
SharePoint Online Client Side Object Model (CSOM)
This module will teach you how to do client side development in .NET using the SharePoint Online Client Side Object Model (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
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
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
Part 2: The SharePoint Framework
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: Developing for Microsoft Teams
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
- Visual Studio Code Extensions
- App elements: Tabs, Bots, Connectors, Message Extensions
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