Le « DataBinding » en JavaScript

Lier des données de nos jours est indispensable, surtout lorsqu’on développe des applications Web orientés client (Des applications Mobile par exemple). Les développeurs expérimentés utilisant des Framework comme ASP.NET, Silverlight, ou autres, pouvaient aisément lier des données de l’interface utilisateur à un model objet, car ces technologies ont été conçus pour cela à l’origine.

Lorsqu’on a migré vers le développement d’application Web orienté client, cette faculté de liaison des données a disparu.

En effet, ni HTML ni JavaScript ne supportent nativement la liaison de données. Cela signifie que si vous souhaitez récupérer des données de l’interface utilisateur pour les transférer vers un objet de Contrôle, vous devez tout coder à la main. Ce qui est fastidieux et n’est certainement pas la meilleur façon de faire, concernant l'entretien et de la réutilisation du code.

Au cours des dernières années, on a vu apparaître plusieurs bibliothèques de scripts proposant des processus de liaison de données pour les contrôles HTML. Cela s’appelle le «DataBinding».
Ces bibliothèques respectent le modèle MVC et MVVM, certain ont même intégré le Framework «Node.js».

Qu’est-ce que le « DataBinding » et à quoi ça sert ?

Le « DataBinding » se traduit en français par « liaison de données ». Il s’agit de la possibilité de lier un contrôle Web à des données. Le principe consiste à indiquer au contrôle où il peut trouver sa valeur et celui-ci se débrouille pour l’afficher. Cela permet d’établir un lien facile entre votre interface web (page HTML) et votre backend (base de données MySQL par exemple).

Le binding est là pour faciliter tout ce qui peut être automatisable et risque d’erreurs. De plus, si la source de données change, il est possible de faire en sorte que le contrôle soit automatiquement mis à jour. Inversement, si des modifications sont faites depuis l’interface, alors on peut être notifié automatiquement des changements. Cet échange de données peut donc se faire dans les 2 sens.
Certains contrôles web associent le binding à une seule valeur (comme le TextBox), d'autres à plusieurs valeurs (comme une DropDownList).

Pourquoi un Framework JavaScript ?

Premièrement, JavaScript est de nos jours un langage « quasi-universel » puisqu’il s’exécute dans les navigateurs, les mobiles et même sur les bureaux. Il sert également à l’élaboration d’applications multiplateforme grâce aux Framework comme « PhoneGap / Cordova » par exemple.

Ensuite, le fait d’utiliser un Framework nous permet d’avoir un code structuré et nous évite de réécrire ce que des ingénieurs en JavaScript conçoivent et améliorent tous les jours pour nous.

Enfin, on constate que les développeurs s’appuient de plus en plus sur des API Json pour renvoyer des données pour structurer leurs pages, et non des pages entières pour le rendu dans le navigateur. Cela à pour effet de réduire le débit d’information transmise.

Quel Framework en JavaScript ?

Voici une liste rapide de quelques-unes des bibliothèques qui prennent en charge le DataBinding :

AngularJs

AngularJS

Framework MVC pour la liaison de données (il respecte aussi le modèle MVVM).

Bacbone.js

knockout

Framework basé sur le modèle MVC avec assistance pour la création de  modèles,  de liaison clé-valeur,  d'événements personnalisés, et plus encore.

Derby

derby

Fournit un environnement en temps réel qui s'exécute dans le navigateur dans par le biais de Node.js. La bibliothèque prend en charge la liaison de données et de modèles.

Ember

ember

Fournit une assistance pour la création de modèles qui mettent à jour automatiquement les données lors d'une modification.

Knockout

knockoutjs1

Fournit également une assistance à la création de modèles se mettant automatiquement à jour.

En somme, l'utilisation d'un Framework Js est indispensable lorsqu’on développe des applications coté client optimisé pour les mobiles. Tous les Framework présentés se valent, mais Angular.js semble être un peu plus populaire que les autres. Si vous  connaissez d’autre Framework JavaScript, n’hésitez pas à poster leurs noms et votre avis dessus.

 

Laisser un commentaire