Skip to content
Fabien GAUTREAULT edited this page Jul 9, 2021 · 66 revisions

Legend: βœ‹ - Major Release πŸ‘€ - Main Feature πŸ’» - Demonstrated on the project 🚧 - Work in progress

Angular (commonly referred to as "Angular 2+" or "Angular v2 and above") is a TypeScript-based open-source web application framework led by the Angular Team at Google and by a community of individuals and corporations. Angular is a complete rewrite from the same team that built AngularJS.

History

AngularJS

AngularJS was originally developed in 2009 by MiΕ‘ko Hevery at Brat Tech LLC as a software for easy-to-make applications for the enterprise. In 2010 they abandonned the project and released Angular as an open-source library. First version was released in 2010, written in JavaScript. Google took the project from there and rewrite it into a complete new framework known at the time as Angular2. AngularJS is now in its version 1.8.2, still maintained by Google.

https://angularjs.org/ & https://en.wikipedia.org/wiki/AngularJS

Angular

Originally, the rewrite of AngularJS was called "Angular 2", but this led to confusion among developers. To clarify, the Team announced that separate terms should be used for each framework with "AngularJS" referring to the 1.X versions and "Angular" without the "JS" referring to versions 2 and up.

https://www.ngdevelop.tech/angular-js-vs-angular-2

Versions

Change logs:

https://angular.io/guide/releases
https://github.com/angular/angular/blob/master/CHANGELOG.md
https://gist.github.com/LayZeeDK/c822cc812f75bb07b7c55d07ba2719b3

To easily update:

https://update.angular.io/

Deprecation Guide:

https://angular.io/guide/deprecations

Angular 2 - Core Framework βœ‹

Angular 2 is a complete rewrite from AngularJS.

Angular Concepts

  • Released in september 2016
  • Typescript, modern, faster, and highly scalable framework
  • Language available ES5, ES6, TypeScript or Dart
  • Web components based architecture
  • Decorator & Metadata
  • Module, Directive/Pipe, Service, Template, Provider
  • Databinding
  • Root Component/Module & bootstrapping
  • Dependency Injection
  • View Engine
  • Lyfecycle & Detect change
  • Router & Navigation, Guard, Resolver, Lazy-loading
  • Reactive Forms
  • HttpClient & Interceptors
  • Observables & RxJS
  • Internationalization
  • AOT/JIT
  • Zone
  • Material UI optional
  • ViewChild/ViewChildren

Angular 3 - Version was skipped

Angular 3 was skipped. Reason behind this is that version mismatch between @angular/core, @angular/compiler and @angular/router libraries.

Angular 4 - Increase of performance and stability

No major changes, objective was to increase performance and bug fix.

Angular 5 - Increase performance πŸ’»

No major improvements rather than increase performance of the overall framework

  • Released in Nov 2017
  • Build Optimizer, Zone & Compiler improvements
  • Universal State Transfer API and DOM Support
  • Internationalized Pipes
  • AOT by default
  • Progressive WEB Apps & Service Workers πŸ‘€

Angular 6 - Major release βœ‹

Angular 6 is a key version with a lot of content added like the use of Elements to build reusable web component, Schematics, Material CDK, etc.

  • Released in May 2018
  • Two new angular cli commands added : ng update and ng add
  • Angular Elements πŸ‘€
  • Component Dev Kit (CDK) πŸ‘€
  • Angular Material Starter Components
  • CLI Workspaces
  • Schematics πŸ‘€
  • Library Support πŸ‘€
  • Tree Shakable Providers
  • Animations Performance Improvements
  • RxJS v6 πŸ‘€
  • Ivy introduction

Angular 7 - Ease of use

No major updates here.

  • Released in Oct 2018
  • Typescript 3
  • Bundle budgets in CLI.
  • Angular Material & CDK: Virtual Scrolling & Drag and Drop πŸ‘€
  • Content Projection support in Angular Elements
  • Better error handling

Angular 8 - Slim fit & stability

Smaller, better, faster, stronger!

  • Released in May 2019
  • Differential Loading by Default
  • Route Configurations use Dynamic Imports
  • Builder & Workspace APIs in CLI.
  • ng deploy is added in Angular CLI 8.3.0
  • WEB Workers πŸ‘€
  • Switch to Ivy possible
  • Deprecation guide

https://angular.io/guide/deprecations

Angular 9 - Ivy Compiler βœ‹

It is the synchronized major release with Angular CLI 9 and Angular Material 9 and came up with the most awaited Ivy compiler.

  • Released in Feb 2020
  • Ivy compiler by default πŸ‘€
  • New Options for providedIn property in @Injectable Decorator
  • Component harnesses πŸ‘€
  • Angular Material New Component Google Maps & Youtube
  • Stability & performance
  • Testing πŸ‘€
  • Better Server Side Rendering
  • Type-Safe changes
  • Lazy Load component with Ivy πŸ‘€

Angular 10

Small release because short and v9 was a major one.

  • Released in June 2020
  • New Angular Material Component Date Range Picker
  • Typescript 4
  • Warnings about CommonJS imports for performance
  • Optional Stricter Settings
  • NGCC & Async Locking Timeout

Angular 11 🚧
Angular 12 🚧

Release Recap

Timeline

Angular Timeline

https://www.bootstrapdash.com/angular-release-date/

Best Practices

https://itnext.io/clean-code-checklist-in-angular-%EF%B8%8F-10d4db877f74?s=03

Security

Specific topics

  • Framework vs Library
  • MVC vs Component tree
  • Two way vs One way binding
  • Regular DOM vs Virtual DOM

Clone this wiki locally