Course Overview

Developing with Power BI Embedding is a hands-on workshop designed to teach experienced developers how to embed Power BI reports and dashboard into their custom applications. This workshop uses a two-day, fast-paced format which includes lectures, instructor demos and hands-on lab exercises. By completing the lab exercises in this workshop, attendees will gain hands-on experience working with Power BI embedding in common development scenarios including ASP.NET MVC applications, single page applications (SPAs) created with React.js and SharePoint Framework Web Parts. The instructor demos and student lab exercises use a mixture of developing with Visual Studio 2017 and developing with Node.js and Visual Studio Code.

Key Learning Areas

  • Designing Queries in Power BI Desktop
  • Importing Data into a Star Schema
  • Building a Data Model using DAX
  • Designing Interactive Reports with Bookmarks
  • Designing Reports with Drillthrough Pages
  • Publishing PBIX Files to the Power BI Service
  • Power BI Service API Overview
  • Registering Applications with Azure Active Directory
  • Programming Authentication and Managing Access Tokens
  • Writing Code to Automate Publishing PBIX Project Files
  • Patching Datasource Credentials and Refreshing Datasets
  • Cloning Power BI Content across Workspaces
  • Overview of Power BI Embedding Features
  • Understanding Premium Capacities versus Embedded Capacities
  • Leveraging the Power BI Embedding Onboarding Experience
  • Retrieving Embedding Data using the Power BI Service API
  • Generating and Managing Embed Tokens
  • Writing JavaScript to Embed and Interact with Reports
  • Embedding Dashboards, Dashboard Tiles and the Q&A Experience
  • Embedding a New Report with Save-As Redirect Logic
  • Setting Report Filters, Interacting with Slicers and Applying Bookmarks
  • Embedding Reports using Phased Loading
  • Embedding Report Visuals using a Custom Layout
  • Extending an Embedded Report with Custom Menu Commands
  • Developing SPAs using React.js, Typescript and Webpack
  • Designing React Components to Create a User Experience
  • Authenticating in an SPA with Azure Active Directory
  • Using the React Fetch API to Retrieve Power BI Embedding Data
  • Installing the Power BI JavaScript API Package in an SPA Project
  • Implementing Power BI Embedding using Only Client-side Code
  • Creating SharePoint Framework Projects using the Yeoman Generator
  • Granting Tenant-level Permissions to Call to Power BI Service API
  • Calling the Power BI Service API using AadHttpClient
  • Installing the Power BI JavaScript API Package in an SPFx Project
  • Using Typescript to Embed Reports and Dashboards inside SPFx Web Parts
  • Adding Custom Web Part Properties to Customize the Embedding Experience
  • Understanding Row-Level Security (RLS) in Power BI
  • Adding RLS Roles to a Power BI Desktop Project
  • Designing for RLS when using the User-Owns-Data Model
  • Deigning and Configuring a Dynamic RLS Security Scheme
  • Designing for RLS when using the App-Owns-Data Model
  • Generating Embed Tokens with RLS Roles and EffectiveIdentity
  • Creating Custom Visual Projects using pbiviz
  • Understanding the Power BI Visuals API
  • Defining Visual Capabilities and Data Mappings
  • Programming D3-style Data Binding using Categorical Data
  • Extending a Visual with Custom Properties
  • Packaging and Distributing Custom Visuals

Course Outline

  • Power BI Desktop Primer for Professional Developers
  • Programming the Power BI Service API
  • Embedding Power BI Reports with ASP.NET MVC
  • Deep Dive into the Power BI JavaScript API
  • Developing SPAs using React.js and Power BI Embedding
  • Embedding Reports and Dashboards using SharePoint Framework
  • Securing Power BI Embedded Solutions using Row Level Security
  • Extending Power BI Embedding with Custom Visuals

Prerequisites

Students should have previous experience working with Power BI Desktop and the Power BI Service. It is also recommended (but not required) that students have previous experience working with Visual Studio, JavaScript, C#, ASP.NET MVC, Typescript, Node.js, and Visual Studio Code.