Frameworks§

1

Principe§

2

Définition du terme§

Traduction directe : structure, cadre, système, canevas

En informatique, un framework permet de fournir un cadre logiciel qui facilite la programmation du développeur d'applications.

3

Framework ou bibliothèque ?§

Une bibliothèque implémente certains traitements complexes, pour éviter au développeur d'avoir à le faire lui même.

Cette complexité peut-être due :

4

Framework ou bibliothèque ? (2)§

Ex: création robuste d'un objet XMLHTTPRequest en Javascript "brut"

var request;
try {
        request = new XMLHttpRequest();
} catch(err1) {
        try {
                request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(err2) {
                try {
                        request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch(err3) {
                        request = false;
                }
        }
}
5

Framework ou bibliothèque ? (3)§

Création d'un objet XMLHTTPRequest en JQuery :

var request = $.ajax();
6

Framework ou bibliothèque ? (4)§

Un framework permet, en plus :

Cependant, cette différence peut être subjective, et la frontière est parfois floue.

Note

En ce qui concerne la différence floue, JQuery est parfois considéré comme un framework, car il "transforme" effectivement le langage de manière assez importante (du code JQuery ressemble assez peu à du code Javascript classique).

7

Frameworks Javascript (et autres)§

_images/ohno.png
8

TP étude comparative de framework§

Pour un des frameworks de la liste précédente, préparez une présentation de 5 minutes présentant

  • ses origines (qui l'a créé, depuis quand)
  • ses spécificités (framework ou bibliothèque),
  • ses points forts (ce qui vous pousserait à l'utiliser)
  • ses points faibles (ce qui vous découragerait de l'utiliser)

Avertissement

Ne pas reprendre des points forts/points faibles inhérents à Javascript !! Trouvez des arguments spécifiques au framework étudié

9

Autres sujets possibles§

  • Node, Phantom JS
  • CoffeeScript, TypeScript, Processing.JS
  • ES6
10