Part 1: 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
- Getting JSOM loaded in your application
- Working with SP.SOD
- Basic operations with JSOM
- Performance and caching
- Embedding options
- Using promises and deferred execution
- The future of JSOM
Part 2: The Add-in Model
Introduction to the Add-in model
This model was introduced back in SharePoint 2013, it was called the App model, where the goal is to focus on developing your customizations outside of SharePoint and interacting with SharePoint using webservices.
- How did we get to the add-in model?
- How is the add-in model being used today?
SharePoint Hosted Add-ins
The SharePoint hosted add-in model will host your add-in entirely in SharePoint. Developers cannot make use of any server side code in this model and are restricted to code that runs in the browser. This module will illustrate you the fundamentals of building SharePoint hosted add-ins with Visual Studio. Participants will learn about the anatomy of the project and the add-in package.
- Introducing SharePoint Add-ins
- SharePoint add-in hosting options
- Visual Studio Project Templates
- The anatomy of the project
- SharePoint Add-in Package
This module will discuss the different SharePoint artifacts that can be provisioned declaratively in a SharePoint Add-in. It starts with list templates and instances, columns and content types and will finish with the custom actions and add-in parts.
- The SharePoint add-in web.
- Discovering SharePoint Content Management artifacts: Lists, Content Types, Columns...
- Extending the ribbon with Custom Actions
- Provisioning artifacts to the host web: Custom Actions & Add-in parts
Building Provider-hosted SharePoint Add-ins
With SharePoint Add-ins, custom server side code can no longer be deployed to SharePoint and will run on a remote website. This type of Add-in is called Provider-Hosted. This module will explain you the concepts and design considerations of Provider-hosted add-ins.
- SharePoint Provider-hosted add-ins
- Handling tenant isolation
- The Cross Domain Library
- Branding your SharePoint Add-in with the Chrome Control and the SharePoint Stylesheets
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 Authentication in SharePoint, based on claims
- Add-in Authentication in SharePoint
- Understanding 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
Remote Event Receivers
With the introduction of the Add-in model, Microsoft added a new way of responding to events that happen in SharePoint, called remote event receivers. Remote event receivers allow you to synchronously and asynchronously respond to something that happens in a SharePoint site. It can also be used for reacting when your add-in is being installed, upgraded or uninstalled somewhere.
- Remote Event Receivers scenarios
- Developing Remote Event Receivers
- Using Remote Event Receivers to deploy artifacts
- Upgrading add-ins for SharePoint with Remote Event Receivers
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 in on-premises
- Application registration in Office Store and your corporate add-in catalog
- Client IDs and Client Secrets
- Publishing the remote parts
- Publishing the SharePoint add-in package
Part 3: Remote Provisioning
Introduction to Remote Provisioning
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?
- Remote provisioning techniques
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
Remote Timer Jobs
Sometimes there will be need for building processes that run every once in a while and need to perform certain tasks on your SharePoint environment. Whether this is to validate, fix, provision, ... The options are endless...
- Why do we need something like remote timer jobs?
- Using the timer job framework from PnP
- Publishing your timer jobs
Remote provisioning model using PnP
An important component inside the PnP framework is the remote provisiong component. A component that will allow you to provide a declarative description of what you want to provision and he will do this for you.
- Introduction to the Remote Provisioning engine in PnP
- Using the PnP provisioning schema
- Creating and using PnP provisiong templates
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 application type.
- User authentication with Azure AD
- Azure AD Authentication Library for .NET
- Using the OWIN library
- Registration of applications in Azure AD
- Azure Active Directory v2.0
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
- Extending the Graph with extensions
Office 365 allows you to subscribe to events that happen in Outlook, OneDrive, SharePoint, ... and get notified asynchronously when those events happen.
- How to handle webhook subscriptions and event notifications
- Microsoft Graph Webhooks
- SharePoint Webhooks
- Debugging Webhooks
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 Azure WebJobs to do repetitive things
Part 5: SharePoint framework
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