Modern SharePoint and Office 365 Development – 4 days

Date/Time
Date(s) - 02/18/2019 - 02/21/2019
9:00 am - 5:00 pm - Central timezone unless otherwise noted.


Modern SharePoint and Office 365 Development is an intensive four-day training course designed to teach professional developers and architects how to create custom solutions for SharePoint Online and Office 365 using modern developer tools and today’s best practice techniques. This course provides deep coverage of the SharePoint Framework, but it first spends the time to the prerequisites including TypeScript, Node.js, NPM, Gulp, Webpack, Visual Studio Code and the ever-popular React.js library. This course is well suited for experienced SharePoint developers looking to move beyond legacy development models such as SharePoint Farm Solutions and SharePoint Add-ins.

In addition to learning to develop with the SharePoint Framework, this course teaches students how to secure custom applications with Azure Active Directory and how to write code to authenticate users, acquire access tokens and execute authorized web service calls against commonly-used Microsoft APIs including the SharePoint Rest API, the Microsoft Graph API and the Power BI Service API.

If you compare this training course to 55249A: Developing with the SharePoint Framework from Microsoft, you will find that this course covers significantly more content by including coverage of Power BI Embedding, Microsoft Teams, Azure Functions and SharePoint Webhooks. Also keep in mind that this is a 4-day course while Microsoft’s 55249 course lasts 5 days

Overview

Each attendee requires their own Windows PC to complete lab exercises. Attendees should be in good health and should have professional development experience with Visual Studio, JavaScript, C#, the .NET Framework and ASP.NET.

Module List

  • Introduction to Modern Software Development
  • Developing with Node.js and Visual Studio Code
  • Developing SPAs with React and JSX/TSX
  • Introduction to the SharePoint Framework
  • Developing React Web Parts
  • Packaging and Deploying SharePoint Framework Solutions
  • Programming with the Microsoft Graph API
  • Embedding Power BI Report using SPFX Web Parts
  • Developing Secure Applications with Azure Active Directory
  • Developing for Microsoft Teams
  • Developing with Azure Functions
  • Developing Webhooks for SharePoint Online

 

Module 1: Introduction to Modern Software Development

This module examines SharePoint Online development strategies and discusses the evolution of modern pages and Microsoft Teams into the SharePoint user experience. Students will learn to program using the Client-side Object Model (CSOM) using C# to automate remote provisioning tasks such as creating SharePoint sites and customized lists. Next, the module provides an overview of Microsoft Azure as a cloud-based development platform and demonstrates how to create essential on-demand services such as Azure Web Apps and Azure SQL databases. The module concludes with a TypeScript primer where students will learn to develop with TypeScript in Visual Studio 2017 to write client-side code using interfaces and strongly-typed programming.

Topics Covered

  • Understanding SharePoint Online Development Strategies
  • Programming the Client-side Object Model (CSOM)
  • Understanding Microsoft Azure as a Development Platform
  • Using Microsoft Azure to create Web Apps and SQL Databases
  • Developing with TypeScript and Interfaces in Visual Studio 2017
  • Client-side Development using Interfaces and Strongly-typed Programming

 

Module 2: Developing with Node.js and Visual Studio Code

This module introduces students to developing software projects using Node.js and Node Package Manger (npm). Students will learn to use npm together with Visual Studio Code to manage software projects and to install external packages. The module explains how to configure a new project with support for TypeScript and how to add the packages for typed definition files for popular JavaScript libraries such as jQuery. The module demonstrates configuring a project with a local web server to test and debug project files using the HTTP protocol. The module introduces students to Gulp and demonstrates how to write and run Gulp tasks to automate developer tasks such as compiling TypeScript into JavaScript and starting up a debugging session. The module concludes by examining Webpack and teaching students how to use Webpack to bundle a project’s source files into a single file for distribution.

Topics Covered

  • Introduction to Node.JS and NPM
  • Installing and Updating Packages in Visual Studio Code
  • Adding TypeScript Support to a Node.js Project
  • Configuring a Node.js Project with Server-side Debugging Support
  • Using Gulp to Automate Running Development Tasks
  • Developing Projects using Webpack

 

Module 3: Developing SPAs with React and JSX/TSX

This module introduces students to React.js and examines how React.js uses a component-based architecture and a virtual DOM to optimize performance. Students will learn to create and configure new Node.js projects as a Single Page Application (SPA) using React.js together with TypeScript and Webpack. The module walks through how to design an SPA by creating a hierarchy of React components which define properties, state and event handlers. The module introduces JSX and teaches students the essential concepts and syntax for writing TypeScript code in a TSX file to generate the HTML for a React component. Along the way, students will learn how to integrate the React Router into an SPA project to provide navigation across multiple views.

Topics Covered

  • Creating a Single Page Application using React.js, TypeScript and Webpack
  • Designing a React Component Hierarchy using Properties and State
  • Using JSX/TSX Syntax in a React Component to Generate HTML
  • Understanding the Lifecycle Methods of a React Component
  • Calling Across the Network from a React Component using the Fetch API
  • Extending a React Project with the React Router and Multiple Views

 

Module 4: Introduction to the SharePoint Framework

This module introduces students to the SharePoint Framework (SPFX) and the extensive API it provides for client-side development. Students will learn to create new SPFX projects using the Yeoman generator and to develop SPFX projects using Visual Studio Code. The module examines the different types of components that can be created with SPFX including Web Parts, Application Customizers, Field Customizers and Command Sets. Students will learn how to extend a Web Part with custom properties that can be viewed and edited by users in the Web Part Properties Pane. The module also teaches best practices for managing CSS styles in an SPFX project using SCSS files and CSS modules. Students will learn how to test and debug SPFX projects in the local SharePoint Workbench as well as in the hosted SharePoint Workbench running inside a test site in SharePoint Online.

Topics Covered

  • Creating SPFX Projects using the Yeoman Generator
  • Testing and Debugging Projects in the local SharePoint Workbench
  • Creating Application Customizers, Field Customizers and Command Sets.
  • Creating a Web Part with Custom Properties
  • Managing Styles using SCSS Files and CSS Modules
  • Testing and Debugging Projects in the hosted SharePoint Workbench

 

Module 5: Developing React Web Parts

This module moves beyond SPFX fundamentals to examine the process of developing SPFX Web Parts for real-world scenarios. The module explains how to develop React Web Parts with a design that coordinates the movement of data between the Web Part class which defines persistent properties and the React component class which defines state. The module also teaches students how to leverage the Office UI Fabric React library to create a user interface using standard React components such as PrimaryButton, TextField and DetailsList. The module demonstrates how to develop Web Parts which use the SharePoint REST API to create new SharePoint lists and to update and query SharePoint list items. Along the way, students will learn essential SPFX programming techniques for executing calls asynchronously and for updating the user interface with a loading indicator whenever the user is waiting for a call to return from across the network.

 

Topics Covered

  • Designing and Developing React Web Parts
  • Synchronizing Web Part Properties with React Component State
  • Leveraging Standard UI Components from the Office UI Fabric React Library
  • Developing Web Parts using the SharePoint REST API
  • Designing Web Parts to Create and Manage SharePoint Lists
  • Displaying a Loading Indicator When Calling Across the Network

Module 6: Packaging and Deploying SharePoint Framework Solutions

This module examines the process of application lifecycle management (ALM) with SharePoint Framework solutions. The module explains the role of the App Catalog and walks through how to create a new App Catalog site for a SharePoint Online tenant. Students will learn how to bundle and package a SPFX solution for distribution and to optimize SPFX builds for a production environment. The module explains how to package third-party JavaScript libraries as external references and how to deploy SharePoint Framework solution resources to the Office 365 CDN. Students will also learn how to publish SharePoint Framework solution packages in the App Catalog as well as how to install a SPFX solution in a SharePoint site. The module also explains the process of upgrading an SPFX solution after it’s has already been deployed to a production environment.

Topics Covered

  • Creating the App Catalog Site in SharePoint Online
  • Packaging SPFX Solutions for Production
  • Packaging Third-Party JavaScript Libraries as External References
  • Customizing the SPFX Build Process with Gulp and Webpack
  • Publishing and Updating SPFX Solutions in the App Catalog
  • Installing an SPFX Solution in a SharePoint Site

 

Module 7: Programming the Power BI Service API

This module introduces the Microsoft Graph API and explains how this powerful library abstracts away the divisions between Azure Active Directory, Exchange Online, SharePoint Online and OneDrive to create a single, unified API for general application development. Students will learn how to program against the Microsoft Graph API in an SPFX Web Part using both the AadHttpClient class and the MSGraphClient class. The module also explains why it’s necessary to add API permission request into the package-solution.json file for an SPFX solution and how to grant tenant-level API permissions in the SharePoint Admin Center. Along the way, students will learn how to program the Microsoft Graph API to view and create users in Azure Active Directory and to read and send email messages and calendar events using an Exchange inbox.

Topics Covered

  • Overview of Microsoft Graph API
  • Programming with AadHttpClient and MSGraphClient
  • Configuring an SPFX Solution with API Permission Requests
  • Granting API Permissions in the SharePoint Admin Center
  • Creating Users and Groups in Azure AD
  • Programming Messages and Calendar Events in Exchange Online

 

Module 8: Embedding Power BI Report using SPFX Web Parts

This module teaches students how to embed Power BI reports and dashboards into custom web applications. The module explains the differences between the two primary development models (user-owns-data versus app-own-data) and discusses when to use Power BI Premium versus when to use the Power BI Embedded service in Microsoft Azure. Students will learn to program with the Power BI Service API to retrieve the data required for embedding reports and dashboard. The module explains when to embed reports using Azure AD access tokens versus when to embed reports using embed tokens generated by the Power BI Service API. Students will learn to write client-side code using the Power BI JavaScript API to embed and interact with reports and dashboards.

Topics Covered

  • Introducing Power BI and the Power BI Service API
  • Calling the Power BI Service API using AadHttpClient
  • Overview of the Embedding Features in Power BI
  • Retrieving Embedding Data using the Power BI Service API
  • Using the Power BI JavaScript API to Embed Reports and Dashboards
  • Writing Client-side Code to Interact with an Embedded Report

Module 9: Developing Secure Applications with Azure Active Directory

This module begins with a quick primer on OAuth 2.0 and OpenID Connect. The module then provides an overview of the Azure Active Directory security model which provides support for user authentication, application authentication and an authorization scheme based on configurable permissions. Students will learn about the differences between application permissions and delegated permissions as well as how to create and configure Azure AD applications in the Azure portal. Students will learn programming techniques for developing secure applications which implement common authentication flows such as user credentials flow, authorization code grant flow, and client credentials flow. The module examines developing secure ASP.NET MVC application by using the Active Directory Authentication Library for .NET (ADAL.NET) together with the OWIN framework and OWIN middleware components. The module also explains how to secure an SPA created with React.js using the ADAL.js library and the implicit grant flow to acquire access tokens.

Topics Covered

  • Understanding OAuth 2.0 and OpenID Connect
  • The Role of Azure Active Directory
  • Creating and Configuring Azure AD Applications
  • Understanding Application Permissions vs. Delegated Permissions
  • Programming Authentication Flows for Azure Active Directory
  • Securing MVC Applications using ADAL.NET and OWIN
  • Securing SPAs using ADAL.js and the Implicit Grant Flow

 

Module 10: Developing for Microsoft Teams

This module introduces the Microsoft Teams service and explains the why and the how of creating Teams and Channels when rolling out Microsoft Teams in an Office 365 organization. The module also examines the Microsoft Teams developer platform and explains how to develop Microsoft Teams apps with custom tabs, bots, connectors and messaging extensions. Students will learn how to develop and test an app for Microsoft Teams using App Studio. Students will also learn to develop Microsoft Team apps using Visual Studio 2017 and C# as well as with Node.js, Visual Studio Code and the Microsoft Teams JavaScript Client SDK. Along the way, students will learn advanced development techniques with Microsoft Teams including developing custom messaging extensions and posting dynamic content to an activity feed.

Topics Covered

  • Understanding the Microsoft Teams Service, Teams and Channels
  • Developing Microsoft Team Apps with Tabs, Bots and Connectors
  • Developing a Teams App using App Studio
  • Developing a Teams App using Visual Studio and C#
  • Developing a Teams App using Node.js and the Microsoft Teams JavaScript Client SDK
  • Packaging and Publishing a Microsoft Teams App

Module 11: Developing with Azure Functions

This module examines developing with Azure Functions to execute asynchronous server-side processing jobs and to provide a quick and efficient way to create a custom Web API accessible to Single Page Applications (SPAs) and SharePoint Framework Web Parts. Students will learn the fundamentals of creating, testing and debugging Azure Functions in the Azure Portal. The module also explains the options for configuring security for an Azure Function App and for supporting Cross-Origin Resource Sharing (CORS) to ensure your Azure Functions can be called from your client-side application code. The module teaches students how to create and publish Azure Function Apps using Visual Studio 2017 and C# as well as how to call Azure Functions from the client-side TypeScript code written in a SPA or a SharePoint Framework Web Part.

Topics Covered

  • Introduction to Developing with Azure Functions
  • Creating and Testing Azure Functions in the Azure Portal
  • Using Azure Functions to Create a Custom Web API
  • Configuring Security and Cross-Origin Resource Sharing (CORS)
  • Calling Azure Functions from SharePoint Framework Web Parts
  • Developing Azure Function using Visual Studio, C# and the SharePoint CSOM

Module 12: Developing Webhooks for SharePoint Online and Microsoft Teams

This module examines developing with webhooks and explains how webhooks can be used to execute code with custom logic in response to events that occur in SharePoint Online, Microsoft Teams, OneDrive and Outlook. Students will learn about the benefits and disadvantages of SharePoint webhooks in comparison to classic SharePoint event receivers and remote event receivers. Students will also learn the steps to create an Azure Function using C# and to register it as a webhook with SharePoint Online to execute custom code in response to changes to items in a SharePoint list or changes to a document in a document library. The module explains the webhook coding requirements including returning validation tokens and executing processing asynchronously.

Topics Covered

  • Understanding Webhooks Architecture
  • Creating Azure Functions to Serve as SharePoint Webhooks
  • Registering Azure Function Webhooks on a SharePoint List
  • Programming Azure Functions using the Webhook Callback Protocol
  • Registering Webhooks using the Microsoft Graph API
  • Using Webhooks to Detect Changes to Users, Groups, Messages and Events

Download course syllabus. pdf


$2,495.00

Pay offline via wire transfer.