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

Date/Time
Date(s) - 05/01/2017 - 05/05/2017
8:00 am - 4:00 pm - Central timezone unless otherwise noted.

Location
Tampa, FL


Cloud-based Development with Microsoft Azure and Office 365 is an intensive five-day training course that teaches students how to create custom software solutions in the Microsoft cloud using Microsoft Azure, Office 365 and SharePoint Online. Students will learn how to develop and deploy Azure applications, Office add-ins, SharePoint-hosted add-ins, provider-hosted add-ins as well as custom software solutions for SharePoint Online using JavaScript Injection and Remote Provisioning.

This course examines developing client-side solutions using the single page application (SPA) model and emphasizes best practices such as using JavaScript, jQuery and the AngularJS framework. The course also examines developing server-side applications using ASP.NET MVC and Web API 2. Students will learn how authenticate and make calls to important APIs such as the SharePoint REST API, Client-side Object Model (CSOM), the Azure Graph API, the Microsoft Graph API and many more.

Each student will require either a paid subscription or a trial subscription to Microsoft Azure. By going through the lab exercises of this course, students will learn to work in the Microsoft Azure environment to develop and deploy custom solutions using websites, cloud services, service bus namespaces and each of the available Azure storage strategies. Students will also learn how to develop custom solutions using essential Azure services such as Azure Active Directory to authenticate and authorize users and applications.

The course is designed to prepare students for the following Microsoft certification exam:

  • 70-532: Developing Microsoft Azure Solutions

Course Outline

Module 01: Developer Roadmap for Microsoft Azure and Office 365

This module provides an introduction to Microsoft Azure as a cloud-based development platform and discusses the different approaches that can be used to develop custom software solutions in Microsoft Azure for Office 365 and SharePoint Online. The module provides an overview of the SharePoint add-in model and then discusses the types of solutions that can be created using them. The module also discusses alternatives approaches for Office 365 development including the use of JavaScript injection and remote provisioning and developing applications that program against the Office 365 APIs. The module walks through setting up an Azure and Office 365 development environment which includes an Azure subscription, an Office 365 Developer site, an Office 365 tenancy and a directory in Azure Active Directory (AAD). The module also explains how to obtain a Windows Azure subscription which makes it possible to deploy ASP.NET applications to the Azure cloud and to create and configure AAD applications using the Windows Azure Management Portal.

Topics Covered

  • Microsoft Azure Development Platform Overview
  • The SharePoint Add-in Model
  • JavaScript Injection and Embedded Scripts
  • Development using the Office 365 APIs
  • Understanding Office 365 Tenancies and Azure AD Directories

Hands-on Lab: Getting Started with SharePoint Add-in Development

  • Exercise 1: Creating a New Office 365 Developer Site
  • Exercise 2: Getting Around in an Office 365 Tenancy
  • Exercise 3: Creating and Debugging a Simple SharePoint-hosted Add-in
  • Exercise 4: Accessing a Directory in AAD using the Windows Azure Management Portal
Module 02: Developing with Azure Websites

This module examines how to create and configure Azure websites.

Topics Covered

  • Understanding hosting plans and deployment slots
  • Configuring Azure Websites
  • Diagnostics, Monitoring and Analytics
  • Implementing Webjobs
  • Configure Websites for Scale and Resilience

Hands-on Lab: Developing with Azure Websites

  • Exercise 1: Creating a New Azure Website
  • Exercise 2: Working with Deployment Slots
  • Exercise 3: Creating and Executing a Webjob
Module 03: Designing and Impementing Azure Cloud Services

This module examines how to create and configure Azure websites.

Topics Covered

  • Understanding hosting plans and deployment slots
  • Configuring Azure Websites
  • Diagnostics, Monitoring and Analytics
  • Implementing Webjobs
  • Configure Websites for Scale and Resilience

Hands-on Lab: Developing with Azure Websites

  • Exercise 1: Creating a New Azure Website
  • Exercise 2: Working with Deployment Slots
  • Exercise 3: Creating and Executing a Webjob
Module 04: Working with Azure Storage
Module 05: Developing SharePoint-hosted Add-ins

This module begins by examining the architecture of a SharePoint-hosted add-in and discussing the role of the add-in web (formerly known as the app web). Students will learn why SharePoint Online creates a new add-in web within its own isolated DNS domain each time a SharePoint-hosted add-in is installed. Students will learn about the default permission set granted to a SharePoint add-in as well as how to elevate to higher levels of permissions by including permissions requests in the add-in manifest. The module also examines user interface design issues with SharePoint-hosted add-ins such as whether to create pages using ASPX files versus using HTML files and whether to design a SharePoint-hosted add-in project as a multipage application or a single page application (SPA). The module also demonstrates how to extend the user interface of the host web with a SharePoint-hosted add-in by creating custom add-in parts (formerly app parts) and user custom actions.

Topics Covered

  • SharePoint-hosted Add-in Architecture
  • Understanding the Add-in Web and the Isolated Add-in Web Domain
  • Add-in Permissions and Permission Request
  • User Interface Design for SharePoint-hosted Add-ins
  • Adding Add-in Parts to a SharePoint-hosted Add-in Project
  • Adding User Custom Actions to a SharePoint-hosted Add-in Project

Hands-on Lab: Developing Add-in Parts in a SharePoint-hosted Add-in

  • Exercise 1: Creating a SharePoint-hosted Add-in as an SPA
  • Exercise 2: Creating and Testing a Simple Add-in Part
  • Exercise 3: Extending an Add-in Part with Custom Properties
  • Exercise 4: Using User Custom Actions to create ECB Menus Items and Ribbon Button
Module 06: Programming the SharePoint REST API

This module begins with a quick primer on the fundamentals of REST and the OData protocol. Next, the module examines the architecture and the functionality of the SharePoint REST API provided by SharePoint Online. Students will learn how to formulate REST URIs which target SharePoint objects such as sites, lists and list items and how to execute asynchronous REST API calls using the jQuery library. The module steps through how to use the SharePoint REST API to implement the full range of CRUD behavior in a SharePoint-hosted add-in by creating, reading, updating and deleting items in a SharePoint list. The module demonstrates how to implement paging with SharePoint list items using skip tokens returned by the SharePoint REST API. Students will also learn advanced OData programming techniques in SharePoint Online for dealing with the request digest and using verbose metadata and eTags to implement optimistic concurrency when performing updates.

Topics Covered

  • Introduction to the SharePoint REST API
  • Creating REST URIs to Target SharePoint Objects
  • Consuming OData Results from the SharePoint REST API
  • Paging SharePoint List Items using $skiptoken
  • Adding and Updating Items using the SharePoint Rest API

Hands-on Lab: Programming with the SharePoint REST API

  • Exercise 1: Getting the SharePointCRM Starter Project Up and Running
  • Exercise 2: Querying Items in a SharePoint List using the SharePoint REST API
  • Exercise 3: Adding and Deleting List Items with the SharePoint REST API
  • Exercise 4: Updating Existing List Items using Optimistic Concurrency
Module 07: Developing SharePoint Add-ins with AngularJS

This module provides a quick and intensive introduction to development using the AngularJS framework. Students will learn how to use AngularJS to develop a SharePoint-hosted add-in that is designed as a single page applications (SPA). The module explains what features the AngularJS framework provides as well as in which scenarios it makes sense to use them. Students will learn essential AngularJS concepts and techniques such as creating a custom Angular routing scheme using custom controllers and custom views. Students will also learn the AngularJS best practice of separating data access code which calls to the SharePoint REST API by creating a custom AngularJS service. The module concludes by discussing the forthcoming releases of AngularJS 2.0 and ECMAScript 6.0 and what developers can expect when migrating development projects created using AngularJS 1.0.

Topics Covered

  • Introduction to AngularJS
  • Understanding Angular Modules and Code Injection
  • Working with Angular Routes, Views and Controllers
  • Programming with the Built-in Angular Services
  • Creating a Custom Angular Service to Access the SharePoint REST API
  • What’s Coming Next with AngularJS 2.0 and ECMAScript 6

Hands-on Lab: Creating a SharePoint-hosted Add-in using Bootstrap and AngularJS

  • Exercise 1: Creating a SharePoint-hosted Add-in using Bootstrap and AngularJS
  • Exercise 2: Implementing AngularJS Views, Controllers and Routing
  • Exercise 3: Adding a Custom Service to Call the SharePoint REST API
  • Exercise 4: Creating, Updating and Deleting SharePoint List Items
Module 08: Getting Started with Provider-hosted Add-ins

The module begins by examining the architecture of a provider-hosted add-in and describing the details of how SharePoint Online launches a provider-hosted add-in by redirecting the user to a start page in the remote web. Students will learn how to decide between Web Forms and the MVC framework when creating a new provider-hosted add-in project as well as when to leverage the SharePoint Chrome Control when designing the user interface experience. The module also discusses how to design and implement a provider-hosted add-in as a single page application (SPA) which deploys client-side JavaScript code to the remote web which is able to program against the host web using the Cross Domain Library. The module also explains how provider-hosted add-ins with server-side code rely on external authentication using the OAuth 2.0 protocol. Students will learn how to write server-side code using the SharePointContext class and the TokenHelper class to acquire and manage access tokens.

Topics Covered

  • Architecture of a Provider-hosted Add-in
  • Choosing Between Web Forms and the MVC Framework
  • Creating a Provider-hosted Add-in as a Single Page Application (SPA)
  • Knowing When and How to use the Cross Domain Library
  • Implementing OAuth 2.0 Security using SharePointContext and TokenHelper

Hands-on Lab: Developing and Debugging a Provider-hosted Add-in

  • Exercise 1: Creating a Provider-Hosted Add-in that uses Web Forms
  • Exercise 2: Creating a User Interface using a Master Page and the Chrome Control
  • Exercise 3: Writing Server-side Code to Acquire and Manage Access Tokens
  • Exercise 4: Creating an SPA that uses the Cross Domain Library
Module 09: Programming the Client-side Object Model (CSOM)

This module introduces students to programming with the Client-side Object Model (CSOM) in SharePoint Online. Emphasis will be placed on using CSOM when writing server-side C# code to implement the remote web of a provider-hosted add-in. Student will learn the various ways in which CSOM can be used to authenticate the user and to authenticate the SharePoint add-in itself. Students will learn CSOM programming techniques for provisioning site columns, content types, lists and document libraries in the host web. Along the way, students will also learn how to optimize CSOM calls across the network and how to utilize CSOM’s support for remote exception handling when executing CSOM commands in batches.

Topics Covered

  • Understanding CSOM Architecture
  • Writing Code to Authenticate Users and Add-ins
  • Optimizing CSOM Communications Across the Network
  • Writing CSOM Code using Remote Exception Handling
  • Using CSOM to Create Site Columns, Content Types and Lists

Hands-on Lab: Programming a Provider-hosted Add-in using the CSOM

  • Exercise 1: Creating a Provider-hosted Add-in that Uses CSOM
  • Exercise 2: Programing CSOM to Query the Set of Lists in the Host Web
  • Exercise 3: Programing CSOM to Create a List in the Host Web
  • Exercise 4: Programing CSOM to Create Site Columns and Content Types
Module 10: Publishing and Installing Add-ins in the Office 365 Environment

This module discusses when and how to use remote event receivers in the design of a provider-hosted add-in. The module discusses the architectural differences between “before events” which are modeled as two-way events and “after events” which are modeled as one-way events. Students will learn how to configure and implement an App-Installed event handler which can be used to provision lists, document libraries and other types of assets in the host web during the installation of a provider-hosted add-in. Students will learn how to configure debugging support for remote event receivers in the SharePoint Online environment by registering an Azure service bus endpoint and integrating that service bus endpoint with a Visual Studio project. The module also demonstrates a CSOM programming technique which can be used to register a remote event receiver dynamically so it’s possible to wire up remote event handlers to lists and document libraries in the host web.

Topics Covered

  • Understanding the Remote Event Receiver Architecture
  • Creating a Remote Event Receiver for the App-Installed Event
  • Configuring Debugging Support with an Azure Service Bus Endpoint
  • Registering Remote Event Receivers in the Host Web using CSOM
  • Creating a Remote Event Receiver for List Item events

Hands-on Lab: Extending a Provider-hosted Add-in with Remote Event Receivers

  • Exercise 1: Implementing an App-Installed Event Handler in a Provider-hosted Add-in
  • Exercise 2: Configuring Debugging Support with an Azure Service Bus Endpoint
  • Exercise 3: Registering a Remote Event Receiver in the Host Web using CSOM
  • Exercise 4: Creating a Remote Event Receiver to Validate List Item Updates
Module 11: Extending SharePoint Online using JavaScript Injection

The module begins by explaining the central concept of JavaScript injection where scripts containing custom JavaScript code are uploaded to SharePoint Online and executed using the permissions of the current user. Students will learn to get started with JavaScript injection using the Script Editor Web Part. Next, students will learn how to extend a SharePoint site by adding new pages and custom JavaScript code which makes use of the JavaScript Object Model (JSOM) and the SharePoint REST API. The module explains how to design an effective approach for loading JavaScript library dependencies as well as how to execute custom JavaScript code with user custom actions such as ribbon buttons, ECB menu items and ScriptLinks. The module concludes by demonstrating how to use JavaScript injection in a custom solution to provision lists and document libraries in SharePoint Online and to customize list views using client-side rendering with JSLink and custom display templates.

Topics Covered

  • Understanding How JavaScript Injection Works in SharePoint Online
  • Programming the JavaScript Object Model (JSOM)
  • Loading JavaScript Library Dependencies
  • Executing Custom JavaScript Logic with User Custom Actions
  • Provisioning Lists and Document Libraries in SharePoint Online
  • Customizing SharePoint List Views using JSLink and Display Templates

Hands-on Lab: Developing and Debugging a Provider-hosted Add-in

  • Exercise 1: Getting Started with the Script Editor Web Part
  • Exercise 2: Programming the JavaScript Object Model (JSOM)
  • Exercise 3: Executing Custom JavaScript Logic with User Custom Actions
  • Exercise 4: Creating a Custom Solution to Provisioning SharePoint Lists
  • Exercise 5: Customizing SharePoint List Views using JSLink and Display Templates
Module 12: Authenticating with Azure Active Directory and OAuth 2.0

This module begins with an overview of the Azure Active Directory (AAD) security model which involves user authentication, application authentication and an authorization scheme based on configurable permissions. The module explains the differences between application permissions and delegated permissions as well as how permissions are granted to an application using the Common Consent framework. The module discusses when to use single-tenant applications versus multitenant applications and demonstrates how to configure AAD applications to support common OAuth 2.0 authentication flows using authorization codes, client credentials and implicit flows. The module examines the low-level details of authentication with AAD and then shows how to abstract away these low-level details by authenticating users and acquiring access tokens with the Active Directory Authentication Library for .NET (ADAL-NET) and the OWIN framework.

Topics Covered

  • Understanding How Authentication Works with Azure Active Directory
  • Understanding Application Permissions versus Delegated Permissions
  • Granting Permissions to Applications using the Common Consent Framework
  • Understanding Single-tenant Applications versus Multitenant Applications
  • Acquiring and Caching Access Tokens using the Active Directory Authentication Library
  • Implementing Cookie-based Authentication and OpenID Connect using OWIN Middleware

Hands-on Lab: Developing Provider-hosted Apps with Azure and O365

  • Exercise 1: Implementing the Authorization Code Grant Flow without ADAL-NET
  • Exercise 2: Implementing the Authorization Code Grant Flow with ADAL-NET
  • Exercise 3: Configuring an AAD Application with a Client Credentials Certificate
  • Exercise 4: Implementing the Client Credentials Grant Flow with ADAL-NET
Module 13: Developing with the Office 365 APIs and the Microsoft Graph API

This module provides an introduction to software development using the Office 365 APIs. Students will learn how Microsoft’s use of open standards makes the Office 365 APIs accessible to a wide range of development platforms, developer tools and programming languages. The module also explains the set of service endpoints currently available in the Office 365 APIs and how they can be used by developers to access content and features in the Office 365 environment. The module also focuses on the Microsoft Graph API and explains how it abstracts away the divisions between Azure Active Directory, Exchange and SharePoint Online. Students will learn how to execute REST calls against the Microsoft Graph API to get information about the current user and to program against messages and calendar events in the current user’s Exchange mailbox. The module concludes by demonstrating how the Office 365 Unified API Client Library can increase developer productivity by automatically executing REST calls and handling ODATA results behind the scenes.

Topics Covered

  • Understanding the Office 365 APIs Support for Open Standards
  • Accessing the Office 365 APIs from Windows and non-Windows Platforms
  • Examining the Services and Functionality of the Office 365 APIs
  • Understanding the Role of the Microsoft Graph API
  • Programing against the Microsoft Graph API using REST Calls
  • Programing against the Microsoft Graph API using the .NET Client Library

Hands-on Lab: Developing a Native Desktop Application which uses the Office 365 Unified API

  • Exercise 1: Creating a Native Desktop Application which uses the Office 365 Unified API
  • Exercise 2: Acquiring Access Tokens using the Active Directory Authentication Library
  • Exercise 3: Calling to the Office 365 Unified API using REST Calls
  • Exercise 3: Programming with the Office 365 Unified API Client Library
Module 14: Developing Custom Web Services using Web API 2

This module teaches students how to create, test and debug custom web services using Web API 2. Students will learn how to implement a RESTful web service using an API controller as well as how to call this RESTful service from JavaScript code running in the browser. Students will learn how to use attribute routing to create a web service with a custom routing schemes. After discussing API controllers, the module then moves on to cover ODATA controllers and how they can be used to implement the ODATA protocol and to add support for ODATA query options such as filtering, sorting and inline count. Student will learn how to leverage the Visual Studio scaffolding support to quickly create a strongly-typed ODATA controller from an entity model created using Entity Framework. The module concludes with an examination of Cross-Origin Resource Sharing (CORS) and a demonstration of how to add CORS support to web services created with Web API 2 to allow cross-domain calls from client-side JavaScript code running in a browser.

Topics Covered

  • Understanding API Controllers and Call Routing
  • Creating a RESTful Web Service using an API Controller
  • Designing a Custom Routing Scheme using Attribute Routing
  • Creating an OData Web Service using an OData Controller
  • Adding Support for Cross-Origin Resource Sharing (CORS)

Hands-on Lab: Developing Custom RESTful and ODATA Services using Web API 2

  • Exercise 1: Creating and Calling a RESTful Web API
  • Exercise 2: Creating and Calling an OData Web API
  • Exercise 3: Creating an OData Web API using a Strongly-typed API Controller Class
  • Exercise 4: Adding Support for Cross-Origin Resource Sharing (CORS)


This class is fully booked. Please contact sales@mindsharp.com or view our schedule for upcoming dates.