8340  Reviews star_rate star_rate star_rate star_rate star_half

Comprehensive Angular

Angular allows developers to easily build dynamic, responsive single-page web applications that dynamically rewrite portions of the current page rather than having to generate a new page in response...

Read More
Duration 5 days
Course Code ANG-174
Available Formats Classroom

Overview

Angular allows developers to easily build dynamic, responsive single-page web applications that dynamically rewrite portions of the current page rather than having to generate a new page in response to every request.

Ascendient Learning's Angular training teaches attendees how to build applications using ES6, TypeScript, and modern front-end tools, including npm and Webpack. Students also gain an understanding of application architecture and design best practices in Angular, as well as learn how to authenticate, unit test, and manage application state in an Angular application.

Note: This course is taught in the current version of Angular at the time of teaching.

Skills Gained

  • Understand how single-page web application architectures are different than traditional web application architectures
  • Use new JavaScript (ES6) language features including Classes, Modules, and Arrow Functions
  • Use new TypeScript language features including Types, Decorators, Interfaces, and Generics
  • Learn Angular coding and architecture best practices including project layout and using container and presentation components
  • Understand and use Angular model-driven forms, observables, dependency injection, and routing
  • Communicate with a backend server using Angular’s HttpClient to load and save data
  • Configure the router and navigate between components
  • Unit test all parts of an application including Components, Services, and Pipes
  • Implement Authentication and Authorization in an Angular Application
  • Optimize Angular Performance by changing Change Detection Strategies
  • Setup new projects from scratch using the Angular CLI
  • Scaffold modules, components, services, models, routes, and unit tests in accordance with best practices using the Angular CLI
  • Write End-to-End Tests (optional; taught only if this applies to your group)
  • Upgrade an existing application from AngularJS to the current Angular version (optional; taught only if this applies to your group)

Prerequisites

Students must have object-oriented programming experience. Some experience with JavaScript is helpful; the new language features of JavaScript and TypeScript are covered/reviewed in class.

Course Details

Training Materials

All Angular training attendees receive comprehensive courseware.

Software Requirements

  • Google Chrome
  • Other modern browsers as desired
  • IDE/development environment of your choice
  • Other free software and lab files that Ascendient Learning would specify

Outline

  • Introduction
  • TypeScript and ECMAScript 6 (ES6) Fundamentals
    • TypeScript Installation, Configuration & Compilation
    • Type Annotations
    • Classes
    • Scoping using let, var, and const Keywords
    • Arrow Functions
    • ES Modules
    • Decorators
    • Template Literals
    • Spread Syntax and Rest Parameters
    • Destructuring
  • Angular Overview
    • Benefits of Building using Angular
    • Understanding Angular Versions
    • Single-page Web Application Architectures vs. Traditional Server-side Web Application Architectures
    • Angular Style Guide
    • Angular Architecture
    • Angular Compared to Other JavaScript Libraries and Frameworks (React, VueJS, etc…)
    • Your First Angular Application
  • Components
    • Understanding Components
    • Component Properties & Methods
    • Templates: Inline, Multi-line, and External with Component-relative Paths
  • Angular Modules (NgModule)
    • Angular Modules vs. ES Modules
    • Organizing your code into Feature Modules
  • Project Set-Up (Using the Angular CLI)
    • Angular CLI Features
    • Creating a New Project (with new CLI Prompts)
    • Generating Code
    • Customizing the Angular CLI
  • Data Binding
    • Interpolation
    • Property binding
    • Event binding
    • Two-way data binding
  • Directives
    • Structural: ngFor, ngIf, ngSwitch
    • Attribute: ngClass, ngStyle
  • Pipes
    • Built-in Pipes: Using, Passing Parameters, Chaining
  • Advanced Components
    • Component Communication using @Input, @Output
    • Component Architecture
    • Component Styles
    • Component Lifecycle Hooks
    • Evaluating UI Component Frameworks & Libraries
  • Services & Dependency Injection
    • Using a service to access data
    • Using a service to encapsulate business logic
    • Understanding the scope of services
  • Dependency Injection
    • Understanding Dependency Injection
    • Angular’s Dependency Injection System
    • Registering
    • Injecting
  • Model-driven Forms (Reactive Forms)
    • Importing the ReactiveFormsModule
    • FormControl, FormGroup, and AbstractControl
    • Binding DOM Elements to FormGroups and FormControls
    • Validation Rules, Messages, and Styles
    • Refactoring Reactive Forms for Reuse
    • Custom Validators
  • Communicating with the Server using the HttpClient Service
    • Deciding between Promises or Observables (RxJS)
    • Making an HTTP GET Request
    • Sending data to the server using Http POST and PUT Requests
    • Issuing an HTTP DELETE Request
    • Intercepting Requests and Responses
  • Router
    • Importing the RouterModule
    • Configuring Routes
    • Displaying Components using a RouterOutlet
    • Navigating declaratively with RouterLink
    • Navigating with code using the Router
    • Accessing parameters using ActivatedRoute
  • Deploying an Angular Application to Production
    • Building an application using the Angular CLI
    • Differential loading: creating a modern build (ES2015) and a legacy build (ES5)
    • Deploying to a web server
  • Upgrading to the latest version of Angular from earlier versions
    • 2.x and above
    • Update Guide
    • Deprecation Guide
    • Patching Dependencies: npm audit fix
    • Looking for AngularJS to Angular upgrades? See optional topics below.
  • Roadmap to the future Angular
    • Getting Started with Standalone Components
    • Understanding Signals
    • Built-in control flow
    • Angular Beta Documentation (Angular.dev)
  • RxJS and Observables
    • What is an Observable?
    • Creating Observables
    • What is an Observer?
    • Observer Example
    • Operators: map, switchMap, debounceTime, distinctUntilChanged
    • Practical Application of using RxJS
    • Subscriptions
    • Unsubscribing from Observables in Angular (unsubscribe, Async Pipe, takeUntil)
    • Subject
    • Subject Example
    • Subject Variants (AsyncSubject,BehaviorSubject, ReplaySubject)
    • EventEmitter or Observable
    • RxJS Operators and HTTP
  • Unit Testing
    • Tools: Jasmine, Karma
    • Jasmine Syntax: describe, it, beforeEach, afterEach, matchers
    • Setup and your First Test
    • Testing Terminology: Mock, Stub, Spy, Fakes
    • Angular Testing Terminology: TestBed, ComponentFixture, debugElement, async, fakeAsync, tick, inject
    • Simple Component Test
    • Detecting Component Changes
    • Testing a Component with properties (inputs) and events (outputs)
    • Testing a Component that uses the Router
    • Testing a Component that depends on a Service
    • Testing a Service and Mocking its HTTP requests
    • Testing a Pipe
  • Security
    • Best Practices
    • Preventing Cross-site Scripting (XSS)
    • Trusting values with the DOMSanitizer
    • HTTP Attacks (CSRF and CSSI)
    • Authentication using JSON Web Tokens (JWT)
    • Authorization: Router Guards
  • Change Detection
    • Understanding Zone.js and Change Detection
    • Change Detection Strategies Default and OnPush
  • Advanced Angular CLI
    • Customizing a build using Builder APIs in the CLI
    • Generating web workers
  • Advanced Routing
    • Lazy-loading Angular Modules (using Dynamic Imports)
    • Nested or Child Routes
  • Advanced Dependency Injection
    • Providers
    • Hierarchical Injection
    • providedIn options: root, module, platform, any
  • Pipes
    • Creating a custom Pipe using PipeTransform
    • Understanding Pure and Impure Pipes
  • Conclusion
  • Choose any two additional topics. If desired, the course can be customized to include more than two of these topics if other topics are scaled back or removed.
    • npm QuickStart
      • Installing Dependencies
      • Understanding package.json and package-lock.json
      • Using npm as a Build Tool
    • Managing Shared Application State using ngrx and Redux
      • Benefits Overview
      • Three Principles of Redux: Single Source of Truth, State is Read-Only, Pure Functions
      • Examples of Pure Functions
      • Reducers
      • Simple ngrx Example
      • Time-traveling with Redux Devtools
      • Full ngrx Example Application
    • Upgrade Strategies from AngularJS
      • High-level Approaches
      • Concept Mapping AngularJS to Angular
      • UpgradeAdapter
      • What can be Upgraded or Downgraded
      • What cannot be Upgraded or Downgraded
      • UpgradeAdapter and Dependency Injection
    • End-to-End Testing
      • What is Protractor?
      • Why Protractor?
      • Using Locators
      • Page Objects
      • Debugging E2E Tests

Schedule

FAQ

Does the course schedule include a Lunchbreak?

Classes typically include a 1-hour lunch break around midday. However, the exact break times and duration can vary depending on the specific class. Your instructor will provide detailed information at the start of the course.

What languages are used to deliver training?

Most courses are conducted in English, unless otherwise specified. Some courses will have the word "FRENCH" marked in red beside the scheduled date(s) indicating the language of instruction.

What does GTR stand for?

GTR stands for Guaranteed to Run; if you see a course with this status, it means this event is confirmed to run. View our GTR page to see our full list of Guaranteed to Run courses.

Does Ascendient Learning deliver group training?

Yes, we provide training for groups, individuals and private on sites. View our group training page for more information.

What does vendor-authorized training mean?

As a vendor-authorized training partner, we offer a curriculum that our partners have vetted. We use the same course materials and facilitate the same labs as our vendor-delivered training. These courses are considered the gold standard and, as such, are priced accordingly.

Is the training too basic, or will you go deep into technology?

It depends on your requirements, your role in your company, and your depth of knowledge. The good news about many of our learning paths, you can start from the fundamentals to highly specialized training.

How up-to-date are your courses and support materials?

We continuously work with our vendors to evaluate and refresh course material to reflect the latest training courses and best practices.

Are your instructors seasoned trainers who have deep knowledge of the training topic?

Ascendient Learning instructors have an average of 27 years of practical IT experience and have also served as consultants for an average of 15 years. To stay current, instructors spend at least 25 percent of their time learning new, emerging technologies and courses.

Do you provide hands-on training and exercises in an actual lab environment?

Lab access is dependent on the vendor and the type of training you sign up for. However, many of our top vendors will provide lab access to students to test and practice. The course description will specify lab access.

Will you customize the training for our company’s specific needs and goals?

We will work with you to identify training needs and areas of growth.  We offer a variety of training methods, such as private group training, on-site of your choice, and virtually. We provide courses and certifications that are aligned with your business goals.

How do I get started with certification?

Getting started on a certification pathway depends on your goals and the vendor you choose to get certified in. Many vendors offer entry-level IT certification to advanced IT certification that can boost your career. To get access to certification vouchers and discounts, please contact info@ascendientlearning.com.

Will I get access to content after I complete a course?

You will get access to the PDF of course books and guides, but access to the recording and slides will depend on the vendor and type of training you receive.

How do I request a W9 for Ascendient Learning?

View our filing status and how to request a W9.

Reviews

Course was great and the instructor had an answer for anything that was asked during the course.

the class/lecture was amazing and very easy to understand and was in detail.

Easy to work with. Learning material pdfs were able to be printed out in color which was very nice to write on.

This course gave me a clearer understanding of the AWS cloud architecture.

Concise and good to follow along. Although it is a lot to take in under a short period of time.