Cloud-based Development with Microsoft Azure and Office 365 – Online and In-Person

Date(s) - 12/11/2017 - 12/15/2017
8:00 am - 4:00 pm - Central timezone unless otherwise noted.

Tampa, FL

Cloud-based Development with Azure and Office 365 is an intensive five-day training course that teaches students how to develop custom software solutions using Microsoft Azure, Office 365 and SharePoint Online. Students will learn how to develop in the Azure environment by creating and configuring on-demand services such as web apps, virtual machines and Azure SQL databases. Students will also learn how to develop secure applications with Azure Active Directory by authenticating users, acquiring access tokens and executing authorized operations.

This course is designed to bring students up to speed on the latest industry trends in web development. Students will learn to program using TypeScript and to develop client-side web applications using TypeScript features such as modules, classes and an interface-based design. Students will also learn to develop software

projects using cutting-edge libraries and frameworks including Angular2, React.js and the SharePoint Framework.

This training course includes a rich set of hands-on lab exercises designed to build programming skills and to reinforce the concepts and development techniques discussed in the lectures. During the lab exercises, students will use Visual Studio 2017 to create projects using ASP.NET MVC, TypeScript and Angular. The lab exercises also teach students how to develop software projects using the Node.js platform and a configurable toolchain of cross-platform developer utilities such as Node Package Manager (npm), Gulp, Yeoman, WebPack and Visual Studio Code. At course completion, students will be able to use Node.js and Visual Studio Code to develop and test SharePoint Framework projects in the SharePoint Online environment.

The course prepares students for the following Microsoft certification exam:  70-532: Developing Microsoft Azure Solutions

Course Module Detailed Outline

Module 01: Developer Roadmap for Azure and Office 365

This module provides a developer-centric introduction to Microsoft Azure and Office 365. Students will learn how the Azure platform provides on-demand services such as web apps and virtual machines which represent the building blocks used to design, implement and deploy custom software solutions to the Microsoft cloud. The module provides an overview of the various approaches that can be used when developing for SharePoint Online. Students will learn the differences between developing projects using Visual Studio 2017 and developing project using the Node.js platform and Node Package Manager. The module concludes by demonstrating how to create a trial Office 365 tenant and an Azure trial subscription and walks students through installing the required software and developer utilities that will be used during lab exercises of this training course.

Topics Covered

  • Microsoft Azure Platform Overview
  • Extending SharePoint Online
  • Developing with Azure Active Directory
  • Developing with Visual Studio 2017
  • Developing with Node.JS & Visual Studio Code
  • Getting Started with Office 365 & Microsoft Azure


Module 02: Creating and Deploying Azure Web Apps

This module provides an examination of creating and configuring Azure web apps. Students will learn how to create app service plans and web apps first using the new Azure portal and then by using Windows PowerShell and Azure Resource Manager templates. The module examines best practices in web app deployment using deployment slots and continuous integration. Students will learn how to extend a custom solution using WebJobs to handle scenarios requiring the execution server-side code in an asynchronous or an on-demand fashion. The module also examines creating and configuring virtual machines and virtual networks and discusses scenarios where creating a dedicated virtual machine provides important advantages over creating a web app.

Topics Covered

  • Web Apps and App Service Plans
  • Deployment Slots
  • Continuous Deployment
  • Developing WebJobs
  • Virtual Machines & Virtual Networks


Module 03: Developing Web Apps using ASP.NET MVC

This module provides a quick primer on developing server-side applications in Visual Studio 2017 using ASP.NET MVC. The module demonstrates creating new MVC projects and extending the routing scheme by adding controllers and action methods. Students will also learn how to write razor views to generate a user interface using C# code mixed together with HTML.

The module explains the benefits on working with strongly-typed models and the common design pattern of decoupling MVC controllers from data access code by using interfaces and the principles of code injection. The module demonstrates designing HTML forms using ASP.NET MVC features to collect and validate user input data. The module concludes with a discussion of how to improve application scalability by using asynchronous controller classes.

Topics Covered

  • NET MVC Fundamentals
  • Controllers and Routing
  • Implementing Razor Views
  • Designing Strongly-typed Models
  • Adding MVC Forms and Validation
  • Asynchronous Controller Classes


Module 04: Programming Azure Storage and Azure SQL

This module explains the role of storage accounts in the Azure cloud and discusses the various ways that a custom application can store and retrieve documents and data using Azure storage. Students will learn to create and configure storage containers as well as how to write application code to store and retrieve files from Azure blob storage. Students will also learn how to use Azure storage to create a content delivery network (CDN). The module demonstrates creating Azure tables and Azure queues and then discusses how to write code that accesses the data in tables and queues. The module explains how the Azure platform provides SQL databases as an on-demand service and walks through creating a custom database in SQL Azure and integrating it into a Visual Studio 2017 development project using the Entity Framework.

Topics Covered

  • Azure Storage Accounts
  • Blob Storage and File Storage
  • Creating a CDN using Azure Storage
  • Azure Storage using Tables and Queues
  • Creating Azure SQL Databases
  • Developing with the Entity Framework


Module 05: Learning TypeScript with AngularJS 1.5

The module begins with a quick primer on the TypeScript programming language. Students will learn how to configure TypeScript support in Visual Studio 2017 as well as how to integrate TypeScript definition files into projects that use external JavaScript libraries such as jQuery. Next, the module introduces students to AngularJS (aka Angular 1) and teaches students how to get started designing AngularJS applications using routes, views and controllers. Students will also learn how to create custom AngularJS services to encapsulate custom business logic and to increase code reusability and maintainability. The module examines AngularJS features for creating HTML forms that use data binding and contain custom validation logic. The module also examines modern AngularJS features introduced in version 1.5 such as creating reusable AngularJS components and using controller-as syntax.

Topics Covered

  • Migrating from JavaScript to TypeScript
  • Introduction to AngularJS
  • Angular Routes, Views and Controllers
  • Creating a Custom AngularJS Service
  • Designing Forms using Data Binding and Custom Validation
  • Designing AngularJS Applications using Components


Module 06: Building Custom Web Services using Web API

This module examines using the Web API framework in ASP.NET to develop custom RESTful web services. Students will learn how to develop simple RESTful web services by implementing API controller classes. Students will also learn to develop RESTful web services that support the ODATA protocol by implementing ODATA controller classes.

The module explains the motivation and the steps required to add Cross Origin Resource Sharing (CORS) support to a custom web service. Along the way, students will learn how to design single page applications (SPAs) in which client-side TypeScript code and server-side C# code work together to provide a modern and responsive user experience.

Topics Covered

  • Introduction to Web API
  • Developing RESTful Web Services
  • Configuring Attribute-based Routing
  • Developing Web Services that support ODATA
  • Cross-Origin Resource Sharing (CORS)
  • Extending an AngularJS Application with Custom Web API


Module 07: Developing Custom Solutions for SharePoint Online

This module compares the various development strategies used to extend SharePoint Online including JavaScript Injection, Remote Provisioning, SharePoint add-ins and the emerging SharePoint Framework. The module also examines how modern pages, modern Team Sites and the new SharePoint user experience is affecting the future of SharePoint development. Students will learn how to program against the Client-side Object Model (CSOM) to automate remote provisioning tasks such as creating site columns, content types and customized lists in a target SharePoint site. Students will also learn how to mix JavaScript Injection techniques and remote provisioning with the SharePoint REST API to create customized pages in a SharePoint site which provide custom client-side business logic and a customized user experience.

Topics Covered

  • SharePoint Online Development Strategies
  • Understanding Modern Team Site and Modern Pages
  • Programming the Client-side Object Model (CSOM)
  • Using CSOM to Create Site Columns, Content Types and Lists
  • Getting Started with the SharePoint REST API
  • Developing with JavaScript Injection and Remote Provisioning


Module 08: Developing SharePoint Add-ins

This module provides an overview of the SharePoint add-in model and explains the differences between SharePoint-hosted add-ins and provider-hosted add-ins. The module also demonstrates how to implement a SharePoint-hosted add-in as a single page application (SPA) using AngularJS and the SharePoint REST API.

Students will learn about the SharePoint add-in security model and gain an understanding of why and when a SharePoint add-in must be configured to request extra permissions during installation. Along the way, students will learn how to write secure server-side C# code in a provided-hosted app to acquire access tokens from Azure Access Control Services (ACS) and to use access tokens to make authorized calls to CSOM and the SharePoint REST API.

Topics Covered

  • SharePoint Add-in Model Overview
  • SharePoint-hosted Add-ins vs Provider-hosted Add-ins
  • SharePoint Add-in Security
  • Extending a SharePoint Add-in with Permission Request
  • Acquiring and Managing Access Tokens


Module 09: Getting Started with Node.js and Node Package Manager

This module provides a fast & furious introduction to developing software projects using Node.js and Node Package Manger (NPM). Students will learn NPM fundamentals for managing software projects and for installing external Node.js packages. The module explains how to test and debug Node.js projects in the browser by installing a Node.js package which acts as a web server to serve up project files using the HTTP protocol. The module also introduces students to Visual Studio Code and explains why this new lightweight IDE provides a better development experience than Visual Studio 2017 when it comes to Node.js style development. Along the way, students will learn how to use essential Node.js developer utility packages such as Gulp to automate running build tasks and WebPack to bundle a project’s source files into a single file for distribution.

Topics Covered

  • Introduction to Node.JS and NPM
  • Developing with Visual Studio Code
  • Installing and Updating packages with NPM
  • Configuring a Project with Server-side Debugging Support
  • Using Gulp to Automate Running Development Tasks
  • Bundling the Source Files for a Web Application using WebPack


Module 10: Developing with the SharePoint Framework

This module introduces students to the SharePoint Framework (SPFx) and the new SharePoint user experience with modern pages. The module examines SharePoint Framework architecture and walks through how to create new SharePoint Framework projects with client-side web parts using the Yeoman template generator. Students will learn how to test and debug SharePoint Framework projects with the local SharePoint Workbench as well as with the SharePoint Workbench in SharePoint Online.

The module provides an overview of the SharePoint Framework object model and explains how to take advantage of site-relative context when writing code for a SharePoint Framework web part. The module also demonstrates how to create a SharePoint Framework web part that exposes customizable properties and that calls to the SharePoint REST API to read and modify items in a SharePoint list.

Topics Covered

  • SharePoint Framework Overview
  • Creating SPFx Projects using the Yeoman Generator
  • Testing and Debugging Web Parts in SharePoint Workbench
  • Programming with the SharePoint Framework Object Model
  • Extending a Client-side Web Part with Custom Properties
  • Programming SPFx Web Parts using the SharePoint REST API


Module 11: Developing for the SharePoint Framework using React.js

This module begins by introducing students to the React.js framework and its component-based development model. Students will learn how React.js employs a virtual DOM behind the scenes to provide developers with a simple event-driven programming model that performs efficiently even when used on busy web pages that contain hundreds of other HTML elements.

Students will learn how to design React components using properties and state. Students will also learn the fundamentals of authoring JSX files and TSX files to design React components with a fluid user experience. The module also examines using React.js to develop SharePoint Framework web parts and discusses essential development techniques such as passing web part properties to a React component.

Topics Covered

  • Getting Started with React.js
  • Working with JSX and TSX files
  • Understanding Component Properties vs. State
  • Developing SPFx Web Part using React.js
  • Passing Web Part Properties to a React Component


Module 12: Developing Web Applications using Angular 2

This module explains how Angular 2 (aka Angular) differs from Angular 1 (aka AngularJS) by introducing a component-based architecture and dynamic module loading to provide a feature-rich and performant platform for developing single page applications (SPAs). Students will learn to how to use the Angular CLI together with Node.js, NPM and Visual Studio Code to create and debug Angular projects.

Students will learn how to build out the user interface of an Angular application by creating top-level routing components together with a routing scheme which allows the user to navigate across multiple views. Along the way, students will learn many essential Angular development techniques including creating injectable Angular services, binding to DOM events, retrieving data from with observable objects and using pipes to format and transform data values.

Topics Covered

  • Understanding Angular Modules and Dynamic Module Loading
  • Creating New Angular Projects with Angular CLI
  • Developing in Angular with Components and Services
  • Configuring Angular Routing and Navigation
  • Working with Observables and Asynchronous Data Retrieval
  • Programming Angular Application with the SharePoint REST API


Module 13: Publishing and Installing Apps in SharePoint Online

This module examines the process of application lifecycle management (ALM) in SharePoint Online with SharePoint Framework projects and with SharePoint add-ins. The module introduces students to the App Catalog site in SharePoint Online and discusses its fundamental role in the SharePoint ALM story. Students will learn how to package SharePoint Framework projects and SharePoint add-ins for distribution as well as how to deploy SharePoint Framework project resources to a CDN.

Students will also learn how to publish SharePoint Framework projects and SharePoint Add-ins in the App Catalog and to install them for use within a SharePoint site. The module also explains the process of upgrading a SharePoint Framework project with updated code after the project has already been deployed to a production environment. The module concludes with a walkthrough demonstrating the steps involved with deploying a provider-hosted add-in in SharePoint Online using an Azure web app.

Topics Covered

  • Understanding the App Catalog in SharePoint Online
  • Packaging SharePoint Framework Projects
  • Packaging SharePoint Add-in Projects
  • Publishing and Installing Projects in a SharePoint Site
  • Upgrading Projects After They Have Been Deployed
  • Deploying Provider-hosted Add-ins using Azure Web Apps


Module 14: Developing Secure Applications using Azure Active Directory

This module begins with a primer on OAuth 2.0 and OpenID Connect and 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 new 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 (ADAL) together with the OWIN framework and OWIN middleware components. The module also explains how to secure client-side SPAs created Angular and AngularJS by 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
  • Understanding Application Permissions vs. Delegated Permissions
  • Creating & Configuring Azure AD Applications
  • Securing MVC Applications using ADAL and OWIN
  • Securing SPAs using ADAL.js and the Implicit Grant Flow


Module 15: Developing Applications using the Microsoft Graph API

This module introduces students to the Microsoft Graph API and explains how this powerful library abstracts away the divisions between Azure Active Directory, Exchange Online and SharePoint Online to create a single, unified API for general application development.

Students will learn how to program against the Microsoft Graph API using direct REST calls and also by using the .NET client library which abstracts away the low-level details of executing and managing REST calls across the network. The module demonstrates how to use the Microsoft Graph API to create and manage users and groups within the context of an Office 365 tenancy. Students will also learn to use the Microsoft Graph API to read, create and send email messages and calendar events and to upload files to the OneDrive site for the current user.

Topics Covered

  • Overview of the Microsoft Graph API
  • Developing with the Microsoft Graph API
  • Creating Users and Groups in Office 365
  • Programming Messages and Calendar Events
  • Managing Files and Documents in OneDrive


This class is fully booked. Please contact or view our schedule for upcoming dates.