Cloud-based Development with Microsoft Azure and Office 365 is an intensive five-day course that teaches students how to develop and deploy custom software solutions to the Microsoft cloud using Microsoft Azure, Office 365 and SharePoint Online. The course examines developing with Microsoft Azure services, extending SharePoint Online and leveraging the authentication services provided through Azure Active Directory. Along the way. students will be exposed to cutting edge topics such as programming with the Microsoft Graph API and developing client-side web parts using the SharePoint Framework.
While this training course covers many different topics, the overall course agenda has been designed as a single, cohesive story to bring software developers up to speed with industry trends and best practices as of the year 2017. For client-side development, this course emphasizes using the single page application (SPA) model, TypeScript and the AngularJS framework. For server-side development, this course emphasizes developing web applications using ASP.NET MVC and Web API.
While this course examines the classic style of development with Visual Studio, it also covers a second style of development which is growing in popularity in the Microsoft developer community. More specifically, the course examines developing software projects using the Node.js platform and a configurable toolchain of cross-platform developer utilities such as Node Package Manager (npm), Bower, Gulp, Yeoman and Visual Studio Code. After taking this course, students will be comfortable with both styles of development and will know which style to choose when starting new software projects.
Developers who want to learn to develop solutions for the Microsoft cloud using Microsoft Azure, Office 365 and SharePoint Online.
Module 01: Developer Roadmap for Azure and Office 365
- Microsoft Azure Platform Overview
- Extending SharePoint Online
- Developing with Azure Active Directory
- Developing with the Visual Studio Full Stack
- Developing with Node.JS & Visual Studio Code
- Getting Started with Office 365 & Microsoft Azure
Module 02: Working with Azure Web Apps and VMs
This module provides an in-depth examination of creating and configuring Azure web apps. Students will learn how to create app service plans, web apps and deployment slots using the Azure portal and also by using Windows PowerShell and Azure Resource Manager Templates. The module examines deployment using continuous integration and development using WebJobs for 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. Students will learn about scenarios where creating dedicated virtual machines provides important advantages over creating web apps.
- Web Apps and App Service Plans
- Deployment Slots
- Continuous Deployment
- Developing WebJobs
- Virtual Machines and Virtual Networks
Module 03: Developing Web Apps using MVC
The module provides a quick primer to ensure that all students are comfortable developing server-side applications in Visual Studio 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 concludes with a demonstration of adding MVC forms to an MVC application to collect and validate user input data.
- ASP.NET MVC Fundamentals
- Controllers and Routing
- Implementing Razor Views
- Designing Strongly-typed Models
- Adding MVC Forms and Validation
Module 04: Developing Web Apps with AngularJS
- Introduction to AngularJS
- Angular Routes, Views and Controllers
- Creating a Custom Angular Service
- Migrating from Angular 1.0 to Angular 2.0
Module 05: Programming Azure Storage and Azure SQL
This module explains the role of Azure storage accounts and discusses the various ways that data and content can be persisted in the Microsoft cloud. Students will learn to create and configure storage containers as well as how to write code to store and retrieve files from blob storage. Students will also learn how to use Azure storage to create a content delivery network (CDN). The module demonstrates writing code to persist data into Azure tables and Azure queues and discusses how tables and queues can be integrated into general application development. The modules explains how the Azure platform provides on-demand SQL Databases as a service and walks through creating an Azure SQL database and integrating it into a development project using the Entity Framework.
- 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 06: Developing Custom Web Services using Web API
This module examines developing custom web services using the Web API framework in ASP.NET. Students will learn how to implement RESTful web services using API controllers as well as how to call RESTful web services from client-side code running in the browser. The module demonstrates how to create web services with custom routing schemes by using attribute routing. The module also examines the ODATA protocol and how Web API make it relatively simple to create ODATA web services that support ODATA query options such as filtering, sorting and inline count. The module concludes with a discussion of cross-origin resource sharing (CORS) and a walkthrough of using Web API to add CORS support to a custom web service.
- Introduction to Web API
- Developing RESTful Web Services
- Configuring Attribute-based Routing
- Developing Web Services that support ODATA
- Cross-Origin Resource Sharing (CORS)
Module 07: Creating SharePoint-hosted Add-ins
This module introduces the SharePoint add-in model and explains the architectural differences between SharePoint-hosted add-ins and provider-hosted add-ins. Students will learn about the security model for SharePoint add-ins and gain an understanding of why add-ins must request and be granted permissions to complete certain types of operations. The second half of the module focuses on developing SharePoint-hosted add-ins using TypeScript and the AngularJS framework to take advantage of Angular application features such as routes, controllers and views. The module also explains how SharePoint add-ins can be used to extend the user interface of a SharePoint site using client-side App Parts and Custom User Actions.
- SharePoint Add-in Model Overview
- SharePoint Add-in Security and Permissions
- Using TypeScript with SharePoint-hosted Add-ins
- Using AngularJS with SharePoint-hosted Add-ins
- Developing Add-ins with Client-side App Parts
- Extending SharePoint sites with Custom User Actions
Module 08: Programming the SharePoint REST API
This module examines the fundamentals of REST and the OData protocol and explains the architecture and purpose of the SharePoint REST API. 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 AngularJS framework. 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.
- Understanding REST and ODATA
- The SharePoint REST API
- Programming the SharePoint REST API
- Paging SharePoint List Items
- Modifying SharePoint List Items
Module 09: Creating Provider-hosted Add-ins
- Architecture of a Provider-hosted Add-in
- Creating Provider-hosted Add-ins using MVC
- Acquiring and Managing Access Tokens
- Working with the Cross Domain Library
- Implementing Remote Event Receivers
Module 10: Programming the Client-side Object Model (CSOM)
This module examines how to program against SharePoint sites using the Client-side Object Model (CSOM). The module demonstrates using CSOM in common scenarios including the development of Windows Console applications, PowerShell scripts and provider-hosted add-ins. Student will learn about common CSOM programming techniques to authenticate the user and to authenticate the SharePoint add-in itself. The module explains how to write more efficient CSOM code to optimize the amount of data sent across the wire. Students will also be introduced to concepts of remote provisioning and will learn best practice techniques for using CSOM to create site columns, content types and custom lists in a SharePoint site.
- Understanding CSOM Architecture
- Writing Code to Authenticate Users and Add-ins
- Optimizing CSOM Code
- Remote Exception Handling
- Creating Site Columns, Content Types and Lists
Module 11: Publishing and Installing SharePoint Add-ins
This module examines how to manage the lifecycle of SharePoint add-ins in the SharePoint Online environment. Students will learn how to package SharePoint add-ins as well as how to publish them using an App Catalog site in SharePoint Online. The module explains the differences between installing a SharePoint add-in at site scope versus tenancy scope. Students will also learn how to upgrade SharePoint-hosted add-ins using feature upgrade techniques to replace files in the app web with updates versions. The module concludes by discussing the steps involved with deploying a provider-hosted add-in in the SharePoint Online environment which involves creating a new Azure web app and configuring it to host the remote web in the Microsoft cloud.
- The App Catalog Site in SharePoint Online
- Packaging and Publishing SharePoint Add-ins
- Installing SharePoint Add-ins
- Upgrading SharePoint-hosted Add-ins
- Deploying Provider-hosted Add-ins
- Enabling Scripting in SharePoint Online
- JSOM Programming
- Remote Provisioning using CSOM
- JSLink and Client-side Rendering
Module 13: Developing with the SharePoint Framework
- SharePoint Framework Overview
- Embracing the Cross-platform Toolchain
- Developing Projects using Visual Studio Code
- Running Projects in the SharePoint Workbench
- Programming SharePoint Framework APIs
- Developing Client-side Web Parts using React.js
Module 14: Authenticating with Azure Active Directory
This module begins with a quick primer on OAuth 2.0 and OpenID Connect and then moves on to discuss the Azure Active Directory security model which involves user authentication, application authentication and an authorization scheme based on configurable permissions. The module teaches students how to create and configure Azure AD applications in the Azure portal as well as how to configure support for common OAuth 2.0 authentication flows using authorization codes, client credentials and implicit flows. Along the way, students will learn best practices for programming authentication against Azure Active Directory in server-side MVC web apps as well as in client-side web apps built using AngularJS.
- Understanding OAuth 2.0 and OpenID Connect
- The Role of Azure Active Directory
- Creating & Configuring Azure AD Applications
- Programming Authentication with MVC
- Programming Authentication with AngularJS
Module 15: Programming 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, 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 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 Exchange objects for the current user such as email messages and calendar events. Along the way, the module demonstrates writing code to upload files and documents to the OneDrive site for the current user.
- •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
Module 16: Designing Scalable Azure Applications
This module examines common design patterns used to achieve scale and resilience in Microsoft Azure. Students will learn how to implement transient fault handling and how to disable application request routing affinity. The module explains how Azure Service Bus makes it possible to implement an advanced communications strategy to improve application scale and availability. Students will learn to work with Service Bus objects such as relays, queues, topics, subscriptions, event hubs and notification hubs. The module concludes by explaining how to leverage the Azure Redis Cache to scale a multitier application.
- Design Patterns for Scale and Resilience
- Implementing a Communications Strategy
- Service Bus Relays and Queues
- Service Bus Topics and Subscriptions
- Event Hubs and Notification Hubs
- Working with the Azure Redis Cache