Les applications web d’entreprises et les navigateurs, quelles stratégies de développement choisir?

Les applications web sont, depuis une dizaine d’années, incontournables dans le monde de l’entreprise. Notamment, depuis la multiplications des frameworks web qui offrent la possibilité d’avoir une plateforme générique prête à l’emploi, où les développements deviennent nécessaires uniquement pour réaliser des fonctionnalités très spécifiques ou peu communes. Pourquoi privilégier les applications web aux applications du type client lourd?

La raison principale est tout simplement la facilité du déploiement. Tout ordinateur en entreprise est équipé d’un navigateur web au moins, et l’accès à l’application web se fait à travers l’URL du serveur hébergeant celle-ci.

Cependant, il reste une problématique difficile à traiter. Selon netmarketshare, plus de 81% des entreprises utilisent Internet Explorer 7 (Vista-XP) / 8 (Vista-XP)/ Internet Explorer 9 (Seven), tolèrent Firefox pour le développement et interdisent l’utilisation d’autres navigateurs. Le schéma ci-dessous représente la part de marché des navigateurs en entreprise :


69% utilisent IE8. Or, sa technologie ActiveX est viellissante et est nettement à la traîne face aux moteurs de rendu des autres navigateurs, Gecko de Mozilla, webkit utilisé par Apple ou Blink, le nouveau moteur de rendu de Google. Ainsi l’utilisation de technologies innovantes nécessite très souvent des développements d’adaptation en JavaScript et CSS car tous ces moteurs interprètent différemment le CSS et le JavaScript.

Bien qu’Internet Explorer domine encore largement les débats, le choix des technologies pour réaliser une application web reste large, mais peut réserver des surprises en matière d’intégration.

Comment choisir la technologie web?

Le choix des technologies pour un client se fait aussi en fonction de plusieurs paramètres, dont deux fondamentaux: les systèmes du SI, du web basé sur du Apache ou du IIS, et surtout la proportion des compétences disponibles sur le marché pour subvenir au besoin.

Différentes études exposent les évolutions des technologies, afin de mieux orienter les formations de futurs informaticiens. Cependant, il y a souvent un petit décalage entre la croissance en part de marché d’une technologie, et la croissance des compétences associées à cette technologie. Le schéma suivant reflète les dernières tendances des technologies selon tiobe.com

Comme l’indique le tableau ci-dessus, Le C/C++ domine les débats, et il est suivit du Java, qui est certainement de loin le langage le plus utilisé pour le web. Cependant, le java est aussi utilisé pour les technologies mobiles, telles que Android, BlackBerry ou encore Symbian, ce qui explique l’importance de la part de marché de ce langage. Voici le graphe des évolutions sur les 10 dernières années :

Dans les technologies qui offrent la possibilité de coder des pages web dans un langage objet, la suprématie du monde Java est incontestable depuis une dizaine d’année. Même si d’autres technologies croissent très rapidement, telles que Objective-C (principalement dû à l’explosion des ventes des terminaux mobiles Apple), ou encore le C# qui progresse peu à peu, le Java ne risque pas d’être abandonné. L’importance de la contribution de sa communauté est la clé du succès des différents frameworks orientés web, notamment la fondation Apache qui propose une multitude de solutions et projet open source. Les interfaces de ses applications restes développées en HTML/JS/CSS et les problèmes des navigateurs reviennent à la surface lorsque des pages en JSP ou ASP exécutent une grande quantité de requêtes en AJAX. Ainsi la limite de s’arrête très souvent aux performances des navigateurs.

 

Cas d’utilisation

Nous considérons une application web développée en GWT chez un de nos clients, au sein de l’équipe risque de marché. L’avantage de cette technologie, c’est l’unification du langage de programmation en Java. Les interfaces, les interactions ainsi que les événements sont écrits en Java, qui sont ensuite traduits en HTML, JavaScript et CSS lors de la compilation.

GWT est compatible avec tous les navigateurs, mais la performance n’est pas au rendez vous pour IE 8 et Firefox 3.x. Même si l’on forçait le paramètre du SDK GWT « user agent » à IE, les popups du type « arrêtez le script » finissent par apparaître à chaque interaction. Google, par sa force de proposition d’outils gratuits, propose une surcouche à ajouter à IE, le « Google Chrome Frame », afin d’avoir quasiment les mêmes performances que Chrome (la petite différence se fait au niveau de la gestion de la RAM). Cette technique est très simple à mettre en place, nécessite aucun développement, mais doit encore convaincre les administrateurs systèmes afin qu’ils acceptent son installation.

Il reste une solution, la plus originale et la plus technique à la fois: recompiler chromium, le code source des moteurs de rendu webkit, et développer sa propre interface de navigateur. Chez ce client, l’installation de Chrome Frame pour IE n’a pas été validé par les administrateurs, car cela nécessitait un packaging spécifique, ainsi qu’une étude sur la sécurité de l’outil au préalable. Quelles technologies utiliser afin que l’application soit performante dans ce cas là? Le choix des technologies embarquées dans l’application web devient alors un véritable casse tête pour les développeurs.

La seule possibilité était alors la recompilation de chromium et réaliser une interface native en interne. J’ai fait le choix de développer la fenêtre en WPF, et d’embarquer les moteurs de rendu et moteur de javascript dans cette fenêtre. Awesomium.Net fournit un SDK très riche afin de réaliser un navigateur en .Net avec Chromium embarqué, ceci facilite les tâches de développements tout en diminuant le « time to market ». A l’aide de cette recette simple et rapide, la réalisation d’un navigateur interne embarquant un moteur de rendu très performant ainsi qu’un moteur JS ultra rapide devient alors très facile. Cette solution nécessite peu d’évolution, car il ne s’agit pas d’avoir un navigateur web proposant un panel de fonctionnalités, mais un « web displayer », sans avoir la possibilité de saisir une URL ou changer de configurations, packagé par des développeurs pour des fins de production.

Il existe bien plusieurs moyens techniques pour conduire et réaliser un projet web, mais le plus important est de pouvoir offrir aux utilisateurs une application riche et performante. Les aventures technologiques sont certainement drôles, et permettent de découvrir des choses nouvelles, mais lorsqu’un budget limite le temps de réalisation, il vaut mieux s’appuyer sur ses acquis et prendre le moins de risques possible sur les choix des technologies afin d’atteindre le but final.

One thought on “Les applications web d’entreprises et les navigateurs, quelles stratégies de développement choisir?”

  1. Erwan says:

    Concernant les parts de marché des navigateurs en entreprises.
    Je pense que ce camembert ne sera pas le même suivant la taille de l’entreprise.
    Connaissez vous cette répartition ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *