Angular

Un article de Wikipédia, l'encyclopédie libre.
Angular
Description de l'image Angular_full_color_logo.svg.

Informations
Développé par Google et la communauté Angular.
Première version
Dernière version 17.3.5 ()[1]Voir et modifier les données sur Wikidata
Dépôt github.com/angular/angularVoir et modifier les données sur Wikidata
Assurance qualité Intégration continueVoir et modifier les données sur Wikidata
Écrit en TypeScript, JavaScript
Système d'exploitation MultiplateformeVoir et modifier les données sur Wikidata
Type Framework JavaScript
Licence Licence MITVoir et modifier les données sur Wikidata
Site web angular.io et angular.devVoir et modifier les données sur Wikidata

Chronologie des versions

Angular (communément appelé « Angular 2+ » ou « Angular v2 et plus »)[2],[3] est un framework pour clients, open source, basé sur TypeScript et codirigé par l'équipe du projet « Angular » chez Google ainsi que par une communauté de particuliers et de sociétés. Angular est une réécriture complète d'AngularJS, cadriciel construit par la même équipe. Il permet la création d’applications Web et plus particulièrement d'applications Web monopages : des applications Web accessibles via une page Web unique qui permet de fluidifier l’expérience utilisateur et d’éviter les chargements de pages à chaque nouvelle action. Le framework est basé sur une architecture du type MVC et permet donc de séparer les données, le visuel et les actions pour une meilleure gestion des responsabilités. Un type d’architecture qui a largement fait ses preuves et qui permet une forte maintenabilité et une amélioration du travail collaboratif.

Différences avec AngularJS[modifier | modifier le code]

L'Architecture de l'Angulaire de l'application. Les principaux blocs de construction sont des modules, des composants, des modèles, des métadonnées, la liaison de données, des directives, des services et de l'injection de dépendance.
  • Angular n'a pas de notion de « portée » (scope) ou de contrôleurs ; au lieu de cela, il utilise une hiérarchie de composants comme principale caractéristique architecturale[4]
  • Angular a une syntaxe d'expression différente, en se concentrant sur les "[ ]" pour la liaison des propriétés, et les "( )" pour la liaison des évènements[5]
  • Modularité – beaucoup de fonctionnalités de base ont été déplacées vers des modules
  • Angular recommande l'utilisation du langage TypeScript, créé par Microsoft, qui présente les caractéristiques suivantes :
  • TypeScript est un sur-ensemble d'ECMAScript 6 (ES6) et est rétrocompatible avec ECMAScript 5 (c'est-à-dire JavaScript). Angular comprend également les principes d'ES6 suivants :
  • Le chargement dynamique
  • La compilation asynchrone des modèles
  • Les rappels itératif fournis par RxJS. RxJS limite l'état de visibilité et de débogage mais ces problèmes peuvent être résolus avec add-ons réactifs comme ngReact ou ngrx.

Historique[modifier | modifier le code]

Nom[modifier | modifier le code]

À l'origine, la réécriture d'AngularJS avait été appelée « Angular 2 » par l'équipe mais cela avait conduit à des confusions entre les développeurs. Pour clarifier, l'équipe a annoncé que des termes différents allaient être utilisés pour chaque framework. « AngularJS », se référant aux versions 1.X, et « Angular » (sans le « JS »), en référence aux versions 2 et plus[6].

Version 2.0.0[modifier | modifier le code]

Angular 2.0 est annoncé à la conférence ng-europe 2014, qui s'est déroulée les 22 et de cette même année[7],[8]. Les changements drastiques dans la version 2.0 ont créé beaucoup de controverses parmi les développeurs[9]. Le , les développeurs d'Angular annoncent que la version 2 passe de la version alpha à la version d'essai pour les développeurs[10]. Angular 2 passe en version bêta en [11] et la première version candidate à la production est publiée en [12]. La version finale est publiée le .

Version 4.0.0[modifier | modifier le code]

Le , Angular 4 a été annoncé ; le saut de la version 3 étant fait pour éviter une confusion en raison de l'absence d'alignement de la version du routeur qui avait déjà été distribuée en v3.3.0[13]. La version finale a été publiée le [14]. Angular 4 est compatible avec Angular 2[15].

Angular 4.3 est une version mineure, ce qui signifie qu'il ne contient pas de modifications importantes et que c'est un remplacement direct pour les versions 4.x.x.

Fonctionnalités de la version 4.3 :

  • Introduction de HttpClient, bibliothèque plus petite, plus facile à utiliser et plus puissante pour faire des requêtes HTTP ;
  • Nouveaux évènements du cycle de vie du routeur pour les Gardes et les Résolveurs. Quatre nouveaux évènements : GuardsCheckStart, GuardsCheckEnd, ResolveStart, ResolveEnd rejoignent l'ensemble des évènements de cycle de vie tels que NavigationStart ;
  • Désactivation conditionnelle des animations.

Version 5.0.0[modifier | modifier le code]

Angular 5 est sorti le [16]. Des améliorations-clés dans Angular 5 incluent le soutien des applications web progressives, un optimiseur de production et des améliorations liées à Material Design[17].

Version 6.0.0[modifier | modifier le code]

Angular 6 est sorti le [18]. C'est une version majeure permettant de moins mettre l'accent sur le cadre sous-jacent, de plus en plus sur la suite d'outils et de rendre plus facile le passage à Angular dans le futur, avec :

  • ng update,
  • ng add,
  • Angular Elements,
  • Angular Material + CDK Components,
  • Angular Material Starter Components,
  • CLI Workspaces,
  • Library Support,
  • Tree Shakable Providers,
  • Animations Performance Improvements,
  • RxJS v6.

Version 7.0.0[modifier | modifier le code]

Angular 7 est sorti le [19].

Version 8.0.0[modifier | modifier le code]

Angular 8 est sorti le [20].

Version 9.0.0[modifier | modifier le code]

Angular 9 est sorti le [21].

  • Mise en place du moteur de rendu Ivy.

Version 10.0.0[modifier | modifier le code]

Angular 10 est sorti le [22].

Version 11.0.0[modifier | modifier le code]

Angular 11 est sorti le [23].

Version 12.0.0[modifier | modifier le code]

Angular 12 est sorti le [24].

Version 13.0.0[modifier | modifier le code]

Angular 13 est sorti le [25].

  • Suppression du support d'IE 11.
  • View Engine a été supprimé du mode de compilation au profit d'Ivy. Un avertissement est affiché pour les bibliothèques encore sous View Engine (Angular 12 et moins).

Version 14.0.0[modifier | modifier le code]

Angular 14 est sorti le .

  • Amélioration du support des micro-frontends
  • Mise en place des composants autonomes sans ngModule.
  • La validation des formulaires est maintenant typable.

Version 15.0.0[modifier | modifier le code]

Angular 15 est sorti le .

Version 16.0.0[modifier | modifier le code]

Angular 16 est sorti le .

Version 17.0.0[modifier | modifier le code]

Angular 17 a été publiée le .

  • Cette version introduit un mécanisme de flux de contrôle déclaratif.
  • On notera par ailleurs que la construction des exécutables (build) a été améliorée : elle se déroule plus rapidement et apporte des gains de performance[26]
  • De plus, la documentation a été revue.
  • Mise en place d'une nouvelle syntaxe pour les templates. Par exemple :
    <ng-container *ngFor="let item of list">
      <div *ngIf="condition; else elseTemplate">
        A
      </div>
      <ng-template #elseTemplate>
        <div>
          B
        </div>
      </ng-template>
    </ng-container>
    
    et remplacé par :
    @for (item of list; track item) {
      @if (condition) {
        <div>A</div>
      } @else {
        <div>B</div>
      }
    }
    

Politique d'évolution[modifier | modifier le code]

Chaque version est prévue pour être compatible avec la version antérieure. Google a promis de faire des mises à jour deux fois par année.

Politique de support[modifier | modifier le code]

Toutes les versions majeures bénéficient d'une assistance pendant 18 mois. Il s'agit de 6 mois de support actif, au cours desquels des mises à jour et des correctifs sont publiés à intervalles réguliers. Elle est suivie de 12 mois de support à long terme (LTS), au cours desquels seuls les correctifs critiques et les correctifs de sécurité sont publiés[27].

Notes et références[modifier | modifier le code]

  1. « Release 17.3.5 », (consulté le )
  2. (en) « Angular (2+) • r/Angular2 », sur reddit (consulté le ).
  3. Manjunath M, « AngularJS and Angular 2+ : a Detailed Comparison — SitePoint », sur Sitepoint.com, (consulté le ).
  4. (en) « Angular », sur angular.io (consulté le ).
  5. « What’s the difference between AngularJS and Angular? », sur gorrion.io, (consulté le )
  6. « Angular: Branding Guidelines for AngularJS » (consulté le )
  7. Coman Hamilton, « A sneak peek at the radically new Angular 2.0 » (consulté le )
  8. « Ng-Europe schedule »
  9. Coman Hamilton, « Angular 2.0 announcement backfires » (consulté le )
  10. angularjs, « Angular 2 moves from Alpha to Developer Preview! Dev guide and API docs now available at ... angular.io/docs/js/latest », sur Twitter, (consulté le )
  11. « Angular: Angular 2 Beta », sur angularjs.blogspot.it (consulté le )
  12. « angular/angular », sur GitHub (consulté le )
  13. « Ok... let me explain: it's going to be Angular 4.0 », sur angularjs.blogspot.kr (consulté le )
  14. « Angular 4.0.0 Now Available », sur angularjs.blogspot.ca (consulté le )
  15. « Angular 4 coming in 2017, to be backwards compatible with Angular 2 », sur react-etc.net (consulté le )
  16. Stephen Fluin, « Version 5.0.0 of Angular Now Available » (consulté le )
  17. « Angular 5 JavaScript framework delayed »
  18. « Version 6.0.0 of Angular Now Available » (consulté le )
  19. « Version 7 of Angular — CLI Prompts, Virtual Scroll, Drag and Drop and more » (consulté le )
  20. « Version 8 of Angular — Smaller bundles, CLI APIs, and alignment with the ecosystem » (consulté le )
  21. (en) Stephen Fluin, « Version 9 of Angular Now Available— Project Ivy has arrived! », sur Medium, (consulté le )
  22. (en) Krill Paul, « What’s new in Angular 10 », sur InfoWorld, (consulté le )
  23. (en) Mark Thompson (@marktechson), « Version 11 of Angular Now Available », sur Medium, (consulté le )
  24. (en) Mark Thompson (@marktechson), « Angular v12 is now available », sur Medium, (consulté le )
  25. (en) Mark Thompson (@marktechson), « Angular v13 is now Available », sur Medium, (consulté le )
  26. https://blog.angular.io/introducing-angular-v17-4d7033312e4b
  27. « Angular », sur angular.io (consulté le )

Annexes[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]