This course is currently under maintenance. We're updating content and labs. Enrollment is paused; check back soon.
AI Instructor Live Labs Included

Build the Halcyon Analytics Dashboard with Blazor Server + Copilot

Build a cross-filter Blazor Server analytics dashboard against a star-schema warehouse with Copilot as collaborator.

Intermediate
8h 34m
6 Lessons
SMU-VSCOP-6

About This Course

Evolve the Halcyon Sales Portal's dashboard into a production-shape analytics surface. Learn the star-schema read model that powers fast aggregates, the query-performance patterns that keep server-rendered charts responsive, and the cross-filter interaction that turns individual charts into a connected analytics tool. You will ship a Blazor Server dashboard with cross-filtered territory + time-series charts, scheduled background refresh, and CSV + Excel export all authored with GitHub Copilot across Chat, Edits, and Agent modes.

Course Curriculum

6 Lessons
01
AI Lesson
AI Lesson

Reading the AdventureWorksDW star schema

1h 0m

Learn how a star-schema data warehouse models sales data for fast aggregates: the central Fact table carrying one row per order line, the surrounding Dimension tables for Customer, Product, Date, and Territory, the surrogate-key relationships that let the warehouse evolve without breaking reports, and the grain decision that determines what every chart can ask. By the end of this lesson you will be able to read an AdventureWorksDW schema diagram, trace a chart's aggregate back to the fact + dimension joins, and judge when a report needs a new dimension vs a new measure column.

02
Lab Exercise
Lab Exercise

Scaffold the Analytics Dashboard shell + swap in a star-schema read context - Lab Exercises

1h 31m 5 Exercises

Note: This lab pre-provisions a Windows VM and the Halcyon.Adventure.AnalyticsDashboard starter files at start — allow up to 10 minutes for the environment to become ready before beginning the exercises.

Start the Analytics Dashboard course by scaffolding a dedicated Blazor Server app wired to a read-only AdventureWorksDW context. You will learn to split a report-oriented data layer from the write-path context from the prior course, register a Scoped read context against the DW database, confirm the star-schema joins compile correctly, and sign the ghdev identity into GitHub Enterprise + VS 2026 Copilot. By the end you will be able to open a fresh Analytics Dashboard solution, prove the DW connection works, and open a feature branch ready for chart work.

03
AI Lesson
AI Lesson

Query performance patterns for star-schema aggregates

1h 0m

Learn the four query patterns that keep star-schema reports responsive: dimension-first filtering (shrink the join set before the fact table scan), projection shaping (return only the columns the chart binds), covering indexes on the fact table (make the aggregate scan an index-only scan), and materialized aggregates (precompute what the dashboard asks for most). By the end of this lesson you will be able to read an execution plan for a slow aggregate, decide which of the four patterns best fits the symptom, and justify the choice against the dashboard's refresh cadence.

04
Lab Exercise
Lab Exercise

Build the Sales-by-Territory chart with cross-filter wiring - Lab Exercises

1h 43m 5 Exercises

Note: This lab pre-provisions a Windows VM and the Halcyon.Adventure.AnalyticsDashboard starter files at start — allow up to 10 minutes for the environment to become ready before beginning the exercises.

Build the first chart on the Analytics Dashboard — a Sales-by-Territory bar chart that filters the rest of the dashboard when the student clicks a bar. You will learn to lift chart state into a shared DashboardFilterState service injected across chart components, wire click handlers on MudChart bars, apply the filter to the underlying DW aggregate query, and persist the active filter in the URL so a shared link reproduces the view. By the end you will be able to click a territory and see every other chart on the page re-aggregate against that filter.

05
Lab Exercise
Lab Exercise

Add the Monthly Revenue time-series chart via Copilot Agent mode - Lab Exercises

1h 35m 5 Exercises

Note: This lab pre-provisions a Windows VM and the Halcyon.Adventure.AnalyticsDashboard starter files at start — allow up to 10 minutes for the environment to become ready before beginning the exercises.

Add a second cross-filtered chart to the dashboard — a monthly revenue time-series that reacts to the territory selection from the first chart. You will learn to prompt Copilot Agent mode with the shape of the aggregation + the cross-filter contract from Lab 4, review the generated DW query against the Lesson 3 performance patterns, catch any missed pattern via Review Selection, and verify the two charts update together on a single circuit refresh. By the end you will be able to extend the dashboard by one more cross-filtered chart in the same session an engineer would reach for Copilot Agent.

06
Lab Exercise
Lab Exercise

Scheduled background refresh + CSV / Excel export + ship-it - Lab Exercises

1h 45m 5 Exercises

Note: This lab pre-provisions a Windows VM and the Halcyon.Adventure.AnalyticsDashboard starter files at start — allow up to 10 minutes for the environment to become ready before beginning the exercises.

Close out the Analytics Dashboard course with the two features that take a dashboard from demo to production: a scheduled background refresh that pre-warms the aggregate cache every 15 minutes via BackgroundService, and a dual-format export that streams CSV for lightweight sharing + XLSX via ClosedXML for formatted reports. You will learn to register IHostedService in a Blazor Server app without starving the SignalR circuit thread pool, pattern the export around async streaming, write the operations runbook, and ship-it with Copilot PR review green. By the end you will have a production-shape analytics dashboard ready for Halcyon's reps.

Under Maintenance

This course is currently being updated. Check back soon!

This course includes:

  • 24/7 AI Instructor Support
  • Live Lab Environments
  • 4 Hands-on Lessons
Skill Level Intermediate
Total Duration 8h 34m