Academy Training
Ted Pattison, MVP
Developer, Instructor and Microsoft MVP
Critical Path Training
Power BI Developer Bootcamp is an intensive 4-day hands-on training course designed to teach professional developers and data scientists how to develop custom software solutions for Power BI. This course assumes that students already have experience with Power BI Desktop and the Power BI Service and are looking for ways to move beyond what’s possible with just Power BI Desktop alone.
This course explains how to use the new developer-oriented features in Power BI for building dataflows and developing Template Apps. Students will learn how to program the Power BI Service API to automate common task such as creating app workspaces, publishing PBIX files and cloning content across workspaces. Student will get hands-on experience developing with Power BI embedding and creating streaming datasets used to update real-time dashboards. The course also teaches students how to get started with custom visuals development using Typescript, Visual Studio Code, Node.js and version 3 of the Power BI developer tools.
This course provides a wealth of hands-on lab exercises in which students will write the code for Power BI solutions using a variety of languages including DAX, M, C#, PowerShell, JavaScript, TypeScript, R and Python. The course also includes coverage of Power BI Artificial Intelligence (AI) features and explains how to integrate machine learning models from Cognitive Services and from Azure Machine Learning (ML).
Audience: Professional Developers
Student Prerequisites: Students should have previous experience working with Power BI Desktop and the Power BI Service. Students should also have previous experience programming with JavaScript and C# in Visual Studio.
Course Modules
1. Building PBIX Projects with Power BI Desktop
2. Designing and Building Dataflows
3. Developing Template Apps
4. Developing with the Power BI Service API
5. Developing with Power BI Embedding
6. Securing Embedded Reports using Row Level Security (RLS)
7. Developing Push Datasets and Real-time Dashboards
8. Developing Custom Visuals for Power BI
9. Developing Custom Connectors for Power BI
10. Extending Power BI Solutions using R
11. Extending Power BI Solutions using Python
12. Building Power BI Solution with Artificial Intelligence (AI)
Module 01: Building PBIX Projects with Power BI Desktop
This module provides a fast-paced primer on Power BI Desktop and reviews the phases of building PBIX projects including designing queries, building data models and designing reports. The module examines the PBIX project file format and explains how PBIX files provide the foundation to developers for deploying and updating datasets and reports in a custom solution. Students will learn how to design queries to clean up, transform and reshape data during the import process. The module discusses DAX coding conventions and guidelines for writing measures and calculated columns that are more readable and maintainable. The module also examines how DAX expressions are affected by the evaluation contexts well as using the CALCULATE function. Students will learn how to write DAX expressions to create a dynamic calendar table and to leverage the DAX time intelligence functions.
Topics Covered
• Creating a Development Environment for Power BI
• Designing Data Models using a Star Schema
• Writing Function Queries using the M Programming Language
• Using DAX to Create Calculated Columns, Measures and Tables
• Working with the Calculate Function, Calendar Tables and Time Intelligence
Hands-on Lab: Extracting Data using Function Queries
• Exercise 1: Create a Power BI Development Environment
• Exercise 2: Build a Query to Extract Data from an Unstructured Text File
• Exercise 3: Designing a Function Query to Extract Data from Multiple Files
• Exercise 4: Build a Data Model to Track Actual Expenses Against Pre-defined Budgets
• Exercise 5: Build a Report which Compares Actual Expenses to Expense Budgets
Module 02: Designing and Building Dataflows
This module introduces students to the concepts and techniques required to design and implement dataflows in the Power BI environment. The module examines the underlying dataflow architecture and explains the role of Azure Data Lake Storage Gen2, the Common Data Model (CDM) and CDM folders. Student will learn how to build dataflows by adding new entities in the dataflow editor. The module also examine scenarios where it makes sense to create dataflows using standard CDM entities. Students will learn how to schedule dataflow refreshes as well as how to access a dataflow from Power BI Desktop. Along the way, students will learn advanced techniques including building dataflows with computed entities and linked entities and adding dataflow support for incremental refresh.
Topics Covered
• Understanding Dataflow Architecture
• Creating Dataflows and Working with the Dataflow Editor
• Connecting to Dataflows from Power BI Desktop
• Designing Dataflows with Computed Entities and Linked Entities
• Implementing Dataflows with Incremental Refresh
Hands-on Lab: Building and Consuming Dataflows
• Exercise 1: Create a New Dataflow
• Exercise 2: Build a Dataflow using Standard CDM Entities
• Exercise 3: Refresh a Dataflow using a Schedule
• Exercise 4: Access a Dataflow from Power BI Desktop
Module 03: Developing Template Apps
This module begins by explaining how to publish and install organizational apps to share Power BI content with consumers within a single Azure AD tenant. The module then introduces Power BI Template Apps and examines how they can be used to build, test and publish custom Power BI solutions across organizational boundaries. Students will learn the process for developing Template Apps starting with templatizing a Power BI Desktop project with query parameters and building a data model. The module examines how to build and test Template Apps using experimental data. Students will also learn how to promote a Template App from the pre-production phase to production. Along the way students will learn how to install and update Template Apps in a production environment as well as learn the steps required to publish a Template App to AppSource.
Topics Covered
• Understanding Power BI Template Apps
• Templatizing a Power BI Desktop Project using Parameters
• Creating a New Template App and Adding Experimental Content
• Testing and Promoting Template Apps to Production
• Installing Template Apps in a Production Environment
• Publishing Template Apps to AppSource
Hands-on Lab: Developing, Testing and Installing Template Apps
• Exercise 1: Create a Template App
• Exercise 2: Test a Template App in Pre-production
• Exercise 3: Promote a Template App to Production
• Exercise 4: Install and Update a Template App
Module 04: Developing with the Power BI Service API
This module examines the essential concepts and programming techniques involved when developing with the Power BI Service API. The modules explains how to authenticate with Azure AD and how to acquire and manage access tokens. The modules demonstrates security programming with the Azure Active Directory Authentication Library (ADAL) and compares it to security programming with the newly-released Microsoft Authentication Library (MSAL). Along the way, students will learn to program using the Power BI .NET SDK, to call the Power BI Admin API and to take advantage of the new support in the Power BI Service API for app-only authentication.
Topics Covered
• Power BI Service API Overview
• Understanding Authentication with Azure AD
• Programming with the Power BI .NET SDK
• Acquiring Access Tokens using MSAL
• Calling to Power BI using App-only Tokens
Hands-on Lab: Developing with the Power BI Service API
• Exercise 1: Register a New Azure AD Application in the Azure Portal
• Exercise 2: Call the Power BI Service API using ADAL and the Power BI .NET SDK
• Exercise 3: Write C# Code to Create an App Workspace and Upload a PBIX Project File
• Exercise 4: Write C# Code to Clone Power BI Content Across Workspaces
• Exercise 5: Authenticate using the Microsoft Authentication Library (MSAL)
• Exercise 6: Call the Power BI Service API using an App-only Access Token
Module 05: Developing with Power BI Embedding
This module examines the architecture of Power BI embedding and demonstrates how to embed Power BI reports in a custom web application created using Visual Studio and ASP.NET MVC. The module explains the differences in application design between developing with the User-Owns-Data model versus the App-Owns-Data model. The module demonstrates how to program using embed tokens and app-only authentication when developing with the App-Owns-Data model . The module will demonstrate developing custom web applications with a variety of Azure AD authentication flows including the Authorization Code Flow and Implicit Flow. Students will also learn how to get started writing client-side code with the Power BI JavaScript API to embed reports on a web page and to provide an interactive user experience.
Topics Covered
• Power BI Embedding Overview
• Embedding with the App-Owns-Data Model
• Caching Access Tokens using OWIN Middleware
• Embedding with the User-Owns-Data Model
• Developing with the Power BI JavaScript API
Hands-on Lab: Embedding Power BI Reports and Dashboards
• Exercise 1: Create a new Confidential Client Application in Azure AD
• Exercise 2: Create a new MVC Application using Visual Studio 2017
• Exercise 3: Embedding Your First Power BI Report
• Exercise 4: Adding a Toolbar for Embedded Reports
• Exercise 5: Embedding a Dashboard
• Exercise 6: Embedding the Power BI Q&A Experience
• Exercise 7: Embedding a New Report
Module 06: Securing Embedded Reports using Row Level Security (RLS)
This module builds upon the previous module to teach students how to leverage Row Level Security (RLS) when developing custom applications which use Power BI embedding. The module demonstrates how to implement RLS within a Power BI Desktop project by creating security roles and writing DAX table filter expressions. The module then explains how designing an application with RLS differs depending on whether you are using the User-Owns-Data model versus the App-Owns-Data model. Students will learn how to design an RLS security scheme for the user-owns-data model by using the USERNAME function in DAX and a custom table that associates users with the data they are allows to access. Students will also learn to use RLS when developing with the App-Owns-Data model where your code must generate embed tokens that are restricted by RLS roles.
Topics Covered
• Understanding User Authentication and Identity in Power BI
• Administrating a Power BI Tenant
• Understanding Power BI Data Security
• Configuring RLS Roles in Power BI Desktop
• Designing Solutions using Dynamic Row Level Security
• Generating Embed Tokens with Effective identity and RLS Roles
Hands-on Lab: Implementing Row Level Security (RLS)
• Exercise 1: Configure Security Roles to Enabled Row-level Security (RLS)
• Exercise 2: Publish the PBIX File and Configure Row-level Security (RLS)
• Exercise 3: Publish the Wingtip Sales RLS App Workspace as a Power BI App
• Exercise 4: Test the RLS Configuration using a Secondary User Account
Module 07: Developing Push Datasets and Real-time Dashboards
This module teaches students how to create push datasets and to build real-time dashboards in Power BI. The module examines differences between streaming datasets, push datasets and hybrid datasets and explains how to choose between them for a specific scenario. Students will learn how to use the Power BI Service API to create streaming datasets and to push in rows of data in real time from across the Internet. Students will also learn how to build a real-time dashboards on top of a streaming dataset using streaming data tiles. The module also demonstrates how create push datasets with multiple tables and measures containing DAX expressions. The module concludes with an examination of creating push datasets and explores the extra design features they make available that are not supported in streaming datasets or hybrid datasets.
Topics Covered
• Introduction to Push Datasets and Real-time Dashboards
• Creating a Streaming Dataset with the Power BI Service API
• Designing Dashboards with Streaming Data Tiles
• Creating Push Datasets with Measures containing DAX Expressions
Hands-on Lab: Developing Solutions using Realtime Dashboards
• Exercise 1: Create a Hybrid Dataset using the Power BI Service API
• Exercise 2: Create a Realtime Dashboard using the Hybrid Dataset
• Exercise 3: Create and Populate a Push Dataset with Campaign Contribution Data
Module 08: Developing Custom Visuals for Power BI
This module examines developing custom visuals for Power BI and walks through setting up a development environment with Node.js, Visual Studio Code and the newly-released version 3 of the Power BI developer tools (PBIVIZ). The module introduces students to the Power BI Visuals API and explains the core differences between version 2 and version 3 of the Power BI Developer Tools. Students will learn how to define the capabilities and data mappings for a custom visual and how to program D3-style data binding using categorical data from a Power BI dataset. The module demonstrates how to extend a visual with custom properties as well as how to take advantage of the powerful utility classes that are included along with the Power BI Visuals API. The module demonstrates how to package a custom visual as a PBIVIZ file for distribution and walks through adding custom visuals to Power BI Desktop projects and publishing custom visuals at an organizational level.
Topics Covered
• Getting Started with the Power BI Developer Tools (PBIVIZ)
• Creating and testing Your First Custom Visual
• Defining Data Roles and Data Mappings
• Extending a Visual with Custom Properties
• Migrating to Version 3 of the Power BI Developer Tools
Hands-on Lab: Developing Custom Visuals for Power BI
• Exercise 1: Prepare Your Developer Workstation for Custom Visual Development
• Exercise 2: Create and Debug a Simple Custom Visual
• Exercise 3: Create a Custom Visual using D3 version 5
• Exercise 4: Create a Custom Visual with Categorical Data Mapping
• Exercise 5: Create a Custom Visual with Custom Properties
Module 09: Developing Custom Connectors for Power BI
This module provides an introduction to programming in M and developing custom data connectors using the Power Query SDK. The module walks through how to create custom data connector projects in Visual Studio using the Power Query SDK. Students will learn how to write shared functions in M that are accessible to queries created in Power BI Desktop. The module explains how to package and sign a custom data connector as well as how to test custom connectors using Power BI Desktop. Along the way, students will learn to develop a custom connector that authenticates the current user with Azure Active Directory and extracts data by executing queries using the Microsoft Graph API.
Topics Covered
• Understanding Power Query Mashup Engine
• Learning M Programming Fundamentals
• Working with the Power Query SDK
• Creating a Custom Connector Project in Visual Studio
• Testing Custom Connectors in Power BI Desktop
• Preparing a Custom Connector for Distribution
Hands-on Lab: Creating a Custom Connector with Visual Studio 2017
• Exercise 1: Install the Power Query SDK
• Exercise 2: Create a Custom Connector Project in Visual Studio
• Exercise 3: Write M Code to Retrieve Data from a Web Service
• Exercise 4: Test the Custom Connector in Power BI Desktop
• Exercise 5: Package and Sign the Custom Connector for Distribution
Module 10: Extending Power BI Solutions using R
This module provides a fast and furious introduction to R as one of the world’s most popular platforms for advanced data analytics and data visualization. Students will learn how to get up and running with the R platform by installing the Microsoft Open R Client and a trial version of RStudio. The module introduces students to R language syntax fundamentals and explains how to import and consume R packages in a custom solution. Students will get hands-on experience writing and executing R scripts in RStudio. After that, the module demonstrates how to take advantage of the R integration with Power BI Desktop which makes it possible to create and execute R scripts to generate custom visuals using powerful library packages that have been made so popular by the world-wide R community.
Topics Covered
• Understanding R as an Analytics Platform
• Installing Microsoft R Open and RStudio
• Writing R Code in RStudio
• Integrating R with Power BI Desktop
Hands-on Lab: Getting Up and Running with R in Power BI
• Exercise 1: Install Microsoft R Open and RStudio
• Exercise 2: Create and Execute R Scripts in R-Studio
• Exercise 3: Create a Query in Power BI Desktop using an R Script
• Exercise 4: Write R Code to Generate Charts using the R Visual
Module 11: Extending Power BI Solutions using Python
This module provides a primer on Python programming by introducing students to Python language syntax and explaining how import and consume Python packages in a custom solution. Students will learn how to configure Visual Studio Code for Python development as well as how to get started writing and testing Python scripts in the Visual Studio Code IDE. After that, the module demonstrates how to take advantage of the Python integration support in Power BI Desktop which makes it possible to integrate Python scripts to enhance Power BI query logic and to generate custom visuals using popular Python packages.
Topics Covered
• Understanding Python as an Analytics Platform
• Writing and executing Python Code in Visual Studio Code
• Integrating Python Code into Power BI Queries
• Using Python to Generate Custom Visualizations in Power BI Desktop
Hands-on Lab: Getting Up and Running with Python in Power BI
• Exercise 1: Configure Visual Studio Code with Python Support
• Exercise 2: Write and Test Python Scripts in Visual Studio Code
• Exercise 3: Create a Power BI Query using a Python Script
• Exercise 4: Write Python Code to Generate Visuals using the Python Visual
Module 12: Building Power BI Solutions with Artificial Intelligence (AI)
This module introduces students to the Artificial Intelligence (AI) features in Power BI and explains how to leverage machine learning models to provide rich insights in Power BI reports and dashboards. The module provides a quick primer on AI and machine learning models and explains the role of Azure Machine Learning and Cognitive Services in making machine learning models accessible to Power BI. Students will learn how to use Power Query together with Cognitive Services to create dataflows which include sentiment analysis, key phrase extraction and image detection. Students will also learn to work with Azure Machine Learning models which can be used to create predictions, classifications, regression and forecasting. The module also discusses Power BI Premium features for AI including working with Automated Machine Learning (AutoML) for Dataflows.
Topics Covered
• Overview of AI Features in Power BI
• Understanding Machine Learning Models
• Building Insights into Dataflows using Cognitive Services
• Integrating Azure Machine Learning Models using Power Query
• Using Automated Machine Learning (AutoML) for Dataflows
Hands-on Lab: Building Power BI Solutions with Artificial Intelligence
• Exercise 1: Configure Cognitive Services in Microsoft Azure
• Exercise 2: Access Cognitive Services Models from Power Query
• Exercise 3: Access Azure Machine Learning Models from Power Query
• Exercise 4: Work with Automated Machine Learning (AutoML) for Dataflows