Updated June 2026 21 hours of live training delivered over 3 days Development teams, tech leads, and architects responsible for large, long-lived Angular codebases - typically written between Angular 8 and Angular 16 - who need to bring them to current Angular without stopping feature delivery. Ideal for organizations planning a structured modernization program across multiple applications and teams, and for engineering managers who need realistic estimates, sequencing, and risk management for the migration. Teams that want a deeper grounding in the modern, signal-first idioms they are migrating toward can pair this with Mastering Angular. Angular has changed more in the last four major versions than in the previous eight: Angular 21 (November 2025, in long-term support) made zoneless change detection the default, and Angular 22 (June 2026) shipped stable Signal Forms, stable All students receive comprehensive courseware covering all topics in the course. Courseware is distributed via GitHub in the form of documentation and extensive code samples. Students practice the topics covered through challenging hands-on lab exercises against a realistic legacy Angular codebase. Students will need a free, personal GitHub account to access the courseware. Students will need permission to install Node.js and Visual Studio Code on their computers. Also, students will need permission to install NPM Packages and Visual Studio Code Extensions. If students are unable to configure a local environment, a cloud-based environment can be provided.Modernizing Legacy Angular Applications
Class Duration
Student Prerequisites
Target Audience
Description
resource()/httpResource() APIs, OnPush-by-default components, and Vitest as the default test runner. This course teaches teams how to carry a legacy Angular codebase across that gap deliberately and incrementally. Participants learn the supported upgrade path (ng update, one major version at a time, guided by the official update tool) and then work through each modernization layer with the schematics Angular provides: NgModules to standalone components, *ngIf/*ngFor/*ngSwitch to the built-in control flow (@if/@for/@switch) via ng generate migrations, zone.js to zoneless change detection, and constructor injection to inject(). The state-management section addresses the hardest judgment calls: migrating RxJS-heavy services and component state to signals (signal, computed, effect, toSignal, and the now-stable resource APIs) while recognizing where RxJS remains the right tool. Forms get the same treatment (untyped to typed reactive forms, then a pragmatic adoption path for stable Signal Forms with ControlValueAccessor interop), and testing migration covers Karma/Jasmine to Vitest using the official migrate-karma-to-vitest and refactor-jasmine-vitest schematics, plus replacing Protractor remnants with Playwright. Throughout, the course teaches incremental strategies for large codebases and how to use AI coding agents, the Angular CLI MCP server, and the official Angular agent skills to accelerate mechanical migration work safely.Learning Outcomes
ng update, one major at a time, handling breaking changes and third-party library constraints.@if, @for, @switch, @defer) with the official schematics and ng generate migrations, cleaning up what the codemods cannot do.signal(), computed(), effect(), toSignal(), and the stable resource()/httpResource() APIs - and articulate where RxJS remains the right choice.ControlValueAccessor compatibility.Training Materials
Software Requirements
Training Topics
The Modern Angular Baseline
Assessment and Planning
Version Upgrades with
ng updateng update schematics: what they fix automaticallyNgModules to Standalone
bootstrapApplication and app.config.tsprovideRouter, lazy loadComponentControl Flow Migration
*ngIf / *ngFor / *ngSwitch to @if / @for / @switchng generate control-flow migration and its limitstrack expressions replacing trackBy@defer for lazy template blocksstrictTemplates (default in v22) and fixing what it surfacesZone.js to Zoneless
detectChangesinject()RxJS to Signals
signal(), computed(), effect(), linkedSignal()toSignal() and toObservable()resource() and httpResource() (stable in v22)async pipe + BehaviorSubject state pattern safelyForms Modernization
form(), validatorsControlValueAccessor compatibility and FormValueControlTesting Migration
migrate-karma-to-vitest schematicrefactor-jasmine-vitest (including --fake-async)zone.js/plugins/vitest-patch) as a bridgeIncremental Strategies at Scale
main releasable throughoutAI-Accelerated Migration