Les technologies riches

Fabien Deshayes

Depuis quelque temps, des technologies dites riches sont apparues. Elle permettent entre autres de développer des clients riches, des interfaces plus ergonomiques et de faciliter l'utilisabilité des applications. Voici un bref comparatif sur certaines de ces technologies pour vous y permettre d'y voir plus clair. ♪

- Titre : Les technologies riches

- Auteur : Fabien Deshayes

- Parution : 19 février 2007

- Mise à jour : 13 avril 2007

- Licence : Copyright ® 2006-2007 Fabien Deshayes. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- A. Adobe Flex 2

- A-1. Historique

- A-2. Présentation

- A-3. Le principe

- A-4. Les outils

- A-5. Les exemples

- A-6. Les points forts

- A-7. Liens, pour en savoir plus

- A-8. Récapitulatif

- B. OpenLaszlo

- B-1. Historique

- B-2. Présentation

- B-3. Le principe

- B-4. Les outils

- B-5. Les exemples

- B-6. Les points forts

- B-7. Liens, pour en savoir plus

- B-8. Récapitulatif

- C. XUL

- C-1. Présentation

- C-2. Le principe

- C-3. Les outils

- C-4. Exemples

- C-5. Les points forts

- C-6. Liens, pour en savoir plus

- C-7. Récapitulatif

- D. AJAX

- D-1. Présentation

- D-2. Le principe

- D-3. Les outils

- D-4. Exemples

- D-5. Les points forts

- D-6. Liens, pour en savoir plus

- D-7. Récapitulatif

- E. Windows Presentation Foundation

- E-1. Présentation

- E-2. Le principe

- E-3. Les outils

- E-4. Exemples

- E-5. Les points forts

- E-6. Liens, pour en savoir plus

- E-7. Récapitulatif

- F. Adobe Apollo

- F-1. Présentation

- F-2. Le principe

- F-3. Les outils

- F-4. Exemples

- F-5. Les points forts

- F-6. Liens, pour en savoir plus

- F-7. Récapitulatif

- G. Dekoh

- G-1. Présentation

- G-2. Le principe

- G-3. Les outils

- G-4. Exemples

- G-5. Les points forts

- G-6. Liens, pour en savoir plus

- G-7. Récapitulatif

- H. Récapitulatif

A - Adobe Flex 2

Débutons cet article sur les technologies riches par celle que je connais le mieux : Adobe Flex.

Adobe Flex 2

A-1 - Historique

Lancé par Macromedia en mars 2004, Flex a ensuite été porté jusqu'à la version 1.5 avant le rachat de Macromedia par Adobe (en décembre 2005). Sentant le fort potentiel de cette technologie, Adobe a poursuivi le développement et en juin 2006 est sortie la version 2.0 de Flex, version enfin mature et présentant de très nombreuses nouveautés ainsi qu'un nouveau langage : l'Action Script 3. De nombreux bugs ont été corrigés dans la version 2.0.1 sortie en janvier 2007, et déjà Flex 3 est annoncé pour l'année 2007 !

A-2 - Présentation

Qu'est-ce que Adobe Flex ? C'est un ensemble d'outils formant un framework de développement d'applications en Flash. Précision : tout ce qui est fait avec Flex peut être fait avec Flash, mais… en dix fois moins de temps. Au moins. Et c'est certainement là, la première valeur ajoutée d'Adobe Flex.

A-3 - Le principe

Flex est basé sur un langage XML de description : le MXML (pour Macromedia XML). Sur le mode design de Flex Builder (l'IDE d'Adobe pour le Flex), ce xml est construit automatiquement, mais une utilisation plus poussée nécessitera de toucher au code, notamment pour y inclure de l'actionscript. Le code est ensuite compilé et un swf est généré.

A-4 - Les outils

- Flex SDK : le compilateur, gratuit. Il est téléchargeable sur le site d'Adobe.

- Flex Builder : l'IDE : indispensable. Il en existe deux versions : la version stand-alone, et la version Eclipse. Cette dernière version s'intègre à l'environnement de développement J2EE, alors que la première reprend son interface, mais ne permet que de développer du Flex.

- Flex Charts : pour produire des graphiques.

- Flex Data Services : ensemble de briques fournissant divers services vers le serveur : binding Hibernate, queue JMS, etc.

Flex Builder, l'IDE de développement.

A-5 - Les exemples

Pour bien comprendre Adobe Flex, le mieux est de prendre des exemples :

- Le restaurant finder

- Exemple de boutique en ligne

- Yahoo! Maps

- Amazon

- Picnik : éditeur de photos en lignes

Flex Store, boutique en ligne faite en Flex.

A-6 - Les points forts

Adobe Flex est une solution pour développer des applications riches. Elle comporte de nombreux points forts : le développement est très rapide grâce à son IDE et son système WYSIWYG de drag&drop des composants Flash que l'on retrouve pour toute interface (boutons, liens, combo box, etc.). De nouveaux composants sont ajoutés, comme les accordéons ou les sliders, qui permettent d'enrichir les possibilités. De plus, Flex est maintenant doté du langage Action Script 3, langage objet à mi-chemin entre le Java et le C#. Ses possibilités sont très nombreuses et permettent une extension complète de l'ensemble des composants prédéfinis, permettant la création de composants avec une liberté totale, et donc une richesse. Les appels à des web Services sont très simplifiés, ce qui est un avantage à l'époque du web 2.0.

Il existe évidemment d'autres avantages comme la communauté autour du produit qui commence à prendre de l'ampleur. Pour plus d'informations, veuillez vous référer aux liens ci-dessous.

A-7 - Liens, pour en savoir plus

- Livre blanc de Flex 2 (pdf)

- Le centre de développement Adobe

- Flex.org, la référence

- Essayez Flex gratuitement !

A-8 - Récapitulatif

Flex est basé sur Flash et offre donc visuellement des composants beaux et riches. Les possibilités offertes par l'actionscript 3 sont énormes et font de cette technologie un véritable instrument puissant pour la création d'applications web, voire d'applications d'entreprises. Flex commence donc à faire de plus en plus parler de lui et l'arrivée d'Apollo offre à Flex un environnement pour s'exprimer pleinement.

B - OpenLaszlo

Suite de cet article sur les technologies riches avec la solution open source OpenLaszlo.

OpenLaszlo

B-1 - Historique

À l'automne 2001 est lancé le projet LPS (Laszlo Presentation Server) qui, dès 2002, aboutit sur une première version. En 2003, LPS se développe et apparait dans certaines applications (Yahoo, Earthlink). En 2004, le projet offre une seconde version et le projet devient open source. En 2005, le projet change de nom pour s'appeler OpenLaszlo et sort la troisième version de sa plateforme. Enfin, début 2007, OpenLaszlo sort en version 4, dernière à ce jour.

B-2 - Présentation

OpenLaszlo est une plateforme de développement d'applications riches. Projet open source, cette plateforme est présente depuis 6 ans et a donc une implantation plus grande que ses concurrents. Ses applications sont développées via une solution qui produit par la suite des applications lisibles avec Flash Player.

B-3 - Le principe

Comme de nombreuses technologies riches, le principe d'OpenLaszlo est de décrire des interfaces via un langage basé sur une grammaire XML, appelé le LZX, et un langage de script pour décrire les actions et événements, le JavaScript. Le serveur Laszlo peut être utilisé pour compiler directement le code et fournir une application dynamique. Ce serveur est basé sur la technologie Java, en l'occurrence une servlet. Tout ceci présente certains avantages, comme la non-dépendance à un système d'exploitation. Un autre moyen est de précompiler l'application vers un fichier swf : il ne sera alors plus possible d'interagir avec des web Services par exemple. Le choix de la technologie Flash s'est imposé au vu de la qualité des interfaces produites, mais ceci pourrait changer à l'avenir. Le principe du SDK est présenté ci-dessous : le code source est compilé, produit un binaire qui est interprété par la servlet d'OpenLaszlo qui envoie la réponse au requêteur.

Principe d'OpenLaszlo.

Il est à noter que depuis sa sortie en version 4, OpenLaszlo peut aussi générer la même application en DHTML (HTML, CSS et JavaScript) et ce sans modification du code !

B-4 - Les outils

Il n'existe pas réellement d'outils pour développer en LZX. Le code source peut être écrit avec votre éditeur de textes favori (NotePad ?) puis compilé avec le SDK d'OpenLaszlo disponible gratuitement.

B-5 - Les exemples

Voici quelques exemples d'applications développées avec OpenLaszlo :

- un jeu de BlackJack, simple à créer ;

- un calendrier, très beau et très pro ;

- la fameuse boutique en ligne, avec Amazon.

B-6 - Les points forts

De par son ancienneté (version 4), OpenLaszlo propose une architecture éprouvée. Open source et gratuit, il profite également d'autres avantages : multi plateformes et simple de prise en main grâce à une grammaire XML. Les applications créées ont une vraie richesse et l'on retrouve tous les nouveaux comportements : drag'n'drop, menus déroulants, effets, etc.

OpenLaszlo se pose donc comme une solution gratuite et open source de création d'applications riches. On peut aussi le considérer comme une alternative à Flex pour ce qui est de générer des fichiers Flash.

B-7 - Liens, pour en savoir plus

- OpenLaszlo.org, le site officiel.

- Showcase d'applications riches créées avec OpenLaszlo.

- Comment prendre en main OpenLaszlo en dix minutes.

B-8 - Récapitulatif

Solution open source de création d'applications riches, OpenLaszlo propose depuis longtemps une structure simple et gratuite. Mais on peut se poser la question de son évolution et de sa capacité face aux grosses écuries (Adobe, Microsoft).Depuis sa version 4, OpenLaszlo semblerait vouloir s'ouvrir vers d'autres plateformes comme les mobiles et en ne proposant pas forcément une compilation en Flash, mais aussi en DHTML.

C - XUL

Suite de cet article sur les technologies riches avec la solution XUL (prononcez zoul).

C-1 - Présentation

XUL est un langage de description d'interfaces graphiques. Bien évidemment, il est basé sur le XML. C'est un projet mené par la fondation Mozilla depuis longtemps (époque de Netspace 6).

C-2 - Le principe

XUL est donc un langage de description d'interface, et c'est celui utilisé par exemple pour décrire Mozilla et Firefox. En effet, Mozilla et Firefox intègrent le moteur de rendu Gecko, appelé maintenant NGLayout. Ce moteur est très respectueux des standards W3C, et l'on se doute bien que XUL l'est aussi. Le XUL est donc un fichier XML interprété par un moteur de rendu : XULRunner ; directement inclus dans Mozilla et Firefox, ce n'est pas le cas sur les autres navigateurs. On trouve donc d'autres applications spécialement conçues pour utiliser le XUL. Le langage d'interaction utilisé derrière XUL est le JavaScript.

Exemple d'interface réalisée avec XUL

C-3 - Les outils

Un simple éditeur de texte suffit à écrire les fichiers XUL qui ne sont que du XML. Pour afficher ensuite les interfaces, il vous faut un moteur de rendu, soit directement intégré dans un navigateur (Mozilla ou Firefox), soit avec XULRunner de la fondation Mozilla. Bien qu'il n'existe pas un IDE de référence pour développer du XUL, on trouve tout de même Xul Dev ou XulBooster. N'hésitez pas à vous rendre sur le site pour tout renseignement complémentaire. Il est à noter que tous ces logiciels sont gratuits.

C-4 - Exemples

Voici quelques exemples d'applications développées avec XUL (moteur de rendu XUL nécessaire !) :

- Des tonnes de jeux en XUL : modes deux joueurs inclus, etc. ;

- L'ensemble des composants XUL : avouez-le, ça vous fait penser à Firefox ! ;

- SongBird, un media-player sur votre bureau. Regardez la vidéo : c'est une tuerie ! On peut évidemment lire les mp3, mais aussi surfer sur le web, etc. ;

- Joost, la télévision haute qualité en peer-to-peer

Song Bird

C-5 - Les points forts

XUL a de très nombreux points forts : il est entièrement libre et gratuit, de même que tous les outils qui l'accompagnent. Respectueux des standards W3C, il produit des interfaces graphiques très complètes comme l'on peut le voir avec Firefox ou SongBird. Bien qu'il ne présente pas la richesse graphique de Flex ou de WPF, XUL reste une solution avec des composants variés. Axé sur du JavaScript, ses possibilités sont nombreuses. Un de ses plus gros avantages concerne également la gestion du format RDF pour gérer des gabarits par exemple et ce sans efforts.

C-6 - Liens, pour en savoir plus

- Le site du projet, hébergé chez Mozilla.

- xulfr.org, la communauté française autour de XUL.

- Description de la version 1.0 de XUL.

- Des tutoriels.

C-7 - Récapitulatif

Entièrement gratuit et soutenu par la fondation Mozilla, XUL permet de créer des clients riches déjà très utilisés (ne citons que Firefox). Il propose de nombreux avantages, mais soulève tout de même certaines interrogations : la richesse graphique de ses composants n'est elle pas limitée ? XUL arrivera-t-il à sortir son épingle du jeu chez Mozilla qui se concentre sur son produit phare : Firefox ? En voyant les applications XUL qui nous sont proposées, on peut en tout cas y croire très fortement !

D - AJAX

Bien qu'AJAX ne soit pas une technologie, je le classe dans cette catégorie pour faire le parallèle avec les autres.

D-1 - Présentation

AJAX signifie Asynchronous Javascript and XML et est en fait une méthode d'utilisation de plusieurs technologies ensemble : HTML, XML, l'objet XMLHttpRequest, le CSS et le JavaScript.

D-2 - Le principe

Une application web « traditionnelle » permet de suivre des liens ou de remplir des formulaires. À chaque page chargée, l'ensemble des composants de cette page est rechargé, ce qui provoque un temps de chargement bien plus conséquent et une navigation moins agréable. Grâce à l'utilisation d'AJAX, une seule partie de la page est rechargée, provoquant des conséquences avantageuses : une navigation plus fluide et un temps de réaction quasi-instantané, comparable à des interfaces lourdes (applications de bureau). Le traitement est en fait effectué par le navigateur, et les données envoyées au serveur et celles reçues sont bien moins nombreuses, ce qui accélère le processus. L'utilisation d'AJAX permet ainsi d'avoir de nouveaux composants et comportements : le glisser/déposer d'éléments, la validation à la volée de formulaires, etc.

GMail, une des applications qui ont fait parler d'AJAX

D-3 - Les outils

Il existe de très nombreux frameworks utilisés pour faciliter les développements en AJAX. Mais il faut savoir qu'on peut faire de l'AJAX à partir de rien si l'on connaît bien le JavaScript et l'objet XMLHttpRequest. Citons tout de même quelques frameworks (liste non-exhaustive) :

- Dojo de la Dojo Foundation.

- RIALTO : Rich Internet Application TOolkit.

- ASP.NET AJAX, anciennement Atlas, le framework de Microsoft pour l'asp.

- ATF pour AJAX Toolkit Framework, à suivre de près, car soutenu par l'ensemble des acteurs du marché (IBM, Google, Oracle, Red Hat, Eclipse, etc.).

- Google Web Toolkit pour développer en Java des applications s'appuyant sur AJAX.

- Script.aculo.us : le framework AJAX spécialisé dans les effets

D-4 - Exemples

Voici quelques exemples d'applications développées s'appuyant sur AJAX :

- Google Reader : le lecteur de news de Google.

- RIALTO DEMO, avec tout ce qui est réalisable avec RIALTO.

- ASP.NET AJAX Showcase, de même avec le framework de Microsoft.

- Netvibes qui utilise l'AJAX d'une manière très efficace.

- De très nombreuses autres applications, notamment poussées par Google : SpreadSheets and Docs, GMail, Google Maps, etc.

D-5 - Les points forts

Utiliser AJAX est gratuit, et bien qu'il soit compliqué de développer des applications sur ce modèle, il existe de plus en plus de frameworks qui assistent le travail et surtout se conforment à des normes et rendent le code compatible avec tous les navigateurs. De plus, on ne peut dissocier l'arrivée de la bulle web 2.0 en 2005 avec l'arrivée à maturité d'AJAX (qui date pourtant de 1999 – que faisait-on en attendant ?). Implanté dans de nombreux sites, AJAX est un gage d'ergonomie et cela est démontré par de très nombreux exemples. Que ce soit la fluidité de navigation ou les nouveaux composants, AJAX fait vraiment avancer le web vers un Internet riche.

Protopage montre bien l'étendue de la puissance d'une application AJAX

D-6 - Liens, pour en savoir plus

- Ajax sur Developpez.com

- AJAX : A new approach to Web Applications: très bon article introductif sur AJAX.

- ToutAjax, des tonnes de liens vers des tutoriels et des exemples : la bible d'AJAX.

- Article d'IBM pour tout comprendre à AJAX en profondeur.

D-7 - Récapitulatif

Propulsé grâce à Google au rang de méthode indispensable de conception d'applications web, l'AJAX est passé de l'inconnu à un bijou recherché. Mais le rush a connu quelques soucis : problèmes de compatibilité, etc. Bien que tout ceci s'arrange, notamment avec la mise en place de l'ATF, on peut se poser la question de l'avenir d'AJAX : quelles sont ses limites ? Quelles évolutions proposera AJAX ? Néanmoins, cette méthode reste encore la meilleure solution d'améliorer la navigation d'une application web html.

E - Windows Presentation Foundation

Avant-dernière technologie riche présentée, Windows Presentation Foundation de Microsoft.

Windows Presentation Foundation

E-1 - Présentation

Auparavant nommé « Avalon », Windows Presentation Foundation (WPF) est amené à devenir la couche présentation de Windows à travers le framework .NET 3.0. WPF est apparu début 2007, en même temps que le dernier système d'exploitation de Microsoft : Windows Vista. Déjà, Microsoft a proposé en téléchargement les outils nécessaires pour développer des applications WPF, avant une sortie plus large. Auparavant nommé WinFX, les couches du framework .NET 3.0 se découpent en 4 : Windows Communication Foundation, Windows Workflow Foundation, InfoCard et donc WPF. L'intérêt de WPF est de séparer toute la partie interface. Microsoft parle d'expérience utilisateur : proposer des outils simples à utiliser, mettant en relation la complexité des logiques métier et l'ergonomie désirée par les designers.

E-2 - Le principe

Étant partie intégrante de .NET 3.0, WPF nécessite ce framework pour fonctionner. Microsoft propose ainsi de créer des applications riches de bureau (RDA).

L'architecture de WPF

Regardons ensemble ce que propose WPF :

- Un service documentaire : notamment avec le format XPS, intégré à Vista.

- Des services d'interface utilisateur : des calques, des contrôles, du binding de données, etc.

- Toute une couche d'intégration de média (3D, vidéos, images, etc.), basé sur DirectX ! Ça fait mal.

- D'autres services liés comme un langage de description d'interface, le XAML.

Il en ressort donc que WPF parait extrêmement complet, que ce soit au niveau graphique avec la présence du dernier DirectX ou la partie back-office avec par derrière le choix du langage comme C# ou VB.NET.

E-3 - Les outils

On peut séparer en deux parties les outils proposés par Microsoft pour développer des applications riches :

- La gamme Microsoft Expression, concernant plutôt les designers.

- Visual Studio 2005 avec les extensions pour utiliser WPF : un mode design avec le code en dessous.

Et bien évidemment, le framework .NET 3.0.

E-4 - Exemples

Comme tout le monde n'a pas .NET 3.0, je vous propose quelques vidéos, tirées en partie du site de Benjamin Gauthey :

- Un petit Tron.

- Une petite démo avec un effet bien sympa de « tournage de page ».

- Et l'exemple complet, documenté d'une boutique en ligne.

E-5 - Les points forts

On le voit bien, les points forts de WPF sont nombreux. Arrivant en même temps que Vista, WPF profitera de la diffusion de cet OS pour se faire une part belle parmi les prochaines applications de bureau. Qui plus est, WPF bénéficie ainsi de la beauté graphique de DirectX, du framework .NET déjà très utilisé et du langage objet C# (entre autres), c'est-à-dire que du solide.

E-6 - Liens, pour en savoir plus

- La source d'information, avec de très nombreux exemples.

- Le blog de Guillaume André avec de bons posts sur l'actualité .NET 3.0/WinFX.

E-7 - Récapitulatif

Quand Microsoft débarque sur le terrain des interfaces riches, il faut s'attendre à du lourd. Porté par Vista et .NET 3.0, WPF risque de faire le bonheur des développeurs et des designers. On peut déjà promettre à WPF un bel avenir, et peut-être un affrontement rude sur le terrain des RDA avec Apollo.

F - Adobe Apollo

Dernière fiche de cette série « technologies riches », Apollo d'Adobe.

Adobe Apollo

F-1 - Présentation

Apollo est assez difficile à cerner à première vue. Techniquement, il s'agit d'un environnement d'exécution multiplateforme. Pour faire plus simple, il s'agit en fait d'un lecteur universel permettant donc de lire du Flash, du HTML et des documents PDF à travers une application exécutable sur Windows comme sur Mac ou autre. Encore en développement, Apollo est prédisponible sur le lab d'Adobe, pour une sortie programmée durant la seconde moitié de 2007.

F-2 - Le principe

Apollo est donc un environnement d'exécution, un peu comme pourrait l'être le player Flash déjà existant. Sa principale différence est que les applications Apollo ne sont pas lues à l'intérieur même d'un navigateur, mais directement sur votre bureau. Mais il conserve tout de même l'avantage d'être multiplateforme. On pourrait donc croire qu'Apollo est un nouveau navigateur, plus orienté sur Flash. Que nenni ! L'environnement d'exécution peut-être intégré à même l'application, et donc il n'y a pas d'autre chose à télécharger que l'application en elle-même, qui offrira également de nombreux autres avantages, au-delà que ceux que propose déjà Flash :

- Une interaction avec le file system (écriture et lecture de fichiers, etc.)

- L'intégration native au système d'exploitation (avec ses barres de navigation, la possibilité de réduire l'application dans la barre des tâches, etc.)

- La communication à des web services ou à tout autre service proposé déjà par Flex

- Le fait de pouvoir se servir de l'application connecté ou non

- L'intégration de fichiers PDF ou de HTML (et donc d'Ajax) au sein même des applications.

L'architecture d'Apollo

Au niveau du développement, les outils seront exactement les mêmes que ceux utilisés pour développer des applications Flex : une syntaxe MXML, le langage Action Script 3, etc. Les seuls ajouts seront donc des composants centrés sur les avantages cités ci-dessus et des extensions à Flex. La lecture du HTML se fera elle grâce au moteur de rendu de Safari : WebKit. Pourquoi ? Car il est très respectueux des standards, tout simplement. Au niveau du PDF, on retrouvera donc le Reader d'Adobe. Apollo met en place le système permettant de faire interagir ces trois technologies au sein d'une application de bureau.

F-3 - Les outils

Comme je l'ai précisé auparavant, les outils utilisés sont les mêmes que Flex. On retrouve donc le Flex Builder en stand alone ou en plug-in eclipse.

F-4 - Exemples

Voici quelques exemples, les premiers apparus avec Apollo :

- Quelques screenshots de diverses applications.

- Un client eBay !

- Du contenu multimédia dans une application.

- Les applications sélectionnées par Adobe

- Ma première application Apollo : un widget météo

F-5 - Les points forts

Le point fort d'Apollo est évidemment de décentraliser les applications riches hors du navigateur : une nouvelle génération est en train de naître et Apollo risque bien de devenir un acteur important avec WPF de ces nouvelles applications à très fort potentiel ! De plus, c'est le seul environnement proposant de mélanger Flash, HTML et PDF.

F-6 - Liens, pour en savoir plus

- Le labs d'Adobe : tous les bons liens.

- L'indispensable FAQ.

- Le blog de Ted Patrick, très fourni en informations.

- Le blog de Marco Casario.

F-7 - Récapitulatif

Adobe risque de frapper fort avec Apollo : mélanger Flash, HTML et PDF au sein d'applications bureau, cela semble la bonne formule pour réussir. Maintenant, il reste à voir deux points : quelle sera la puissance des nouveautés d'Apollo, et ne prendra-t-elle pas trop de retard vis-à-vis de WPF ? Stay tuned !

G - Dekoh

Suite de ce comparatif des technologies riches avec la présentation de Dekoh.

dekoh

G-1 - Présentation

Dekoh est une plateforme pour des applications tirant bénéfice du web et du bureau, développé par Pramati Technologies. On peut comparer cette technologie à Apollo : en effet, elle gère également des technologies telles que le HTML, le Flash, le PHP ou le Java ! Dekoh se veut aussi gratuit et open source. Une version privée est déjà sortie et une sortie bêta publique devrait apparaitre très bientôt.

G-2 - Le principe

Dekoh est une plateforme d'exécution multi OS. Il s'agit en fait plus exactement de trois briques ayant chacune une fonctionnalité précise :

- Dekoh Desktop : un petit applicatif à télécharger (< à 4Mo) qui se compose de trois couches : un serveur web (en Java), une couche de services et un framework 'portail'. Le serveur n'est pas open source, au contraire des deux autres couches. Il s'agit en fait de l'environnement d'exécution qui permettra aux applications de tourner sur votre bureau.

- Dekoh Applications : les applications Dekoh : réalisées avec des technologies variées, elles s'exécutent sur Dekoh Desktop et offrent la richesse des technologies sous jacentes : Ajax, Flex, DHTML, CSS, JavaScript entre autres.

- Dekoh Network : le lieu de partage des applications Dekoh. Bien que le concept soit encore assez flou, il semblerait que ce soit un espace personnel sur le site www.dekoh.net (par exemple, fdeshayes.dekoh.net) qui permettrait d'autoriser certaines personnes à partager ce que vous faites sur votre application. Un exemple : vous souhaitez partager vos photos de vacances : autorisez des utilisateurs qui viendront sur votre espace, téléchargerons l'application et aurons la possibilité de voir vos photos. Je trouve le concept intéressant, en proposant cette sorte de communauté, bien que pour le moment le tout soit un peu flou.

Au niveau de son architecture, Dekoh propose de très nombreux composants et technologies, comme vous pouvez le voir sur ce diagramme :

L'architecture dekoh

Bien évidemment, le tout est très orienté web, et se présenterait presque comme un conteneur agrémenté de nombreuses briques usuelles pour effectuer des mashups par exemple. À noter tout de même que toute la programmation au niveau de l'intégration des API (Application Programming Interface, par exemple la gestion des fichiers locaux) se fait exclusivement en Java, ce qui pourrait être handicapé pour ceux qui ne connaissent que mal ce langage.

G-3 - Les outils

Il n'y a pas d'outil particulier consacré à Dekoh, car il n'y a pas de langage particulier à Dekoh. En effet, on peut utiliser Flex Builder pour la partie Flex, Dreamweaver pour l'HTML, ou Eclipse pour le Java par exemple. En s'appuyant sur de l'existant, Dekoh saute donc l'étape de l'IDE.

G-4 - Exemples

Il existe pour le moment trois applications Dekoh proposées par Pramati :

- Dekoh photo, qui permet de partager vos photos, de les tagger et également d'interagir avec d'autres outils comme Flickr ou Photobucket.

- Dekoh music, pour organiser votre musique et la partager en streaming avec vos amis.

- Dekoh books pour gérer votre bibliothèque et donc organiser vos livres.

G-5 - Les points forts

Dekoh propose une solution originale qui part d'une base solide pour tenter de s'imposer. Les technologies gérées sont nombreuses (Flash, Flex, HTML, CSS; Java, PHP) et bien qu'on ne connaisse pas le degré d'interaction entre ces technologies, le tout semble alléchant. De plus l'outil est complètement gratuit et open source, ce qui fera plaisir à plus d'un. Là où Dekoh semble tout de même se démarquer le plus est cette brique Dekoh network : proposer un espace de partage privé pour faire communiquer vos applications avec celles de vos amis. Bien que le mériterait de plus amples explications, l'idée de base est séduisante, très dans la tendance 2.0 des communautés à thème.

G-6 - Liens, pour en savoir plus

- Le site de Dekoh.

- Le blog pour les développeurs.

- Un comparatif avec Apollo, qui bien qu'il soit erroné concernant Apollo, récapitule bien les fonctionnalités de Dekoh.

- Une présentation sur Techcrunch.

- Un pdf de présentation en profondeur pour les développeurs.

G-7 - Récapitulatif

Dekoh est une technologie pour créer et utiliser des Rich Desktop Applications. Dekoh se base sur une plateforme Java et est multiOS. De plus, c'est une solution Open source qui respecte de nombreux standards. On pourrait grossièrement le comparer à Apollo. Dekoh network reste pour moi une intrigante fonctionnalité, et j'attends également de voir la facilité de développement et d'intégration sur cette plateforme.

H - Récapitulatif

Après un tour d'horizon de six plateformes ou technologies permettant de créer des interfaces riches, je vous propose un petit récapitulatif. Petit rappel :

- Flex : par Adobe, plateforme de création d'interfaces riches basées sur Flash.

- Ajax : utilisation de XML et de JavaScript pour améliorer le dynamisme de pages HTML.

- OpenLaszlo : plateforme de création d'interfaces riches basées sur Flash.

- XUL : langage de description d'interface pour logiciels comme Firefox.

- WPF : par Microsoft, plateforme de création d'interfaces riches basées sur le framework .NET 3.

- Apollo : par Adobe, environnement d'exécution multisource : HTML, Flash et PDF.

Je vais donc résumer un peu tout ce que j'ai dit à l'intérieur d'un petit tableau, selon quelques critères techniques pour la plupart.

Technologies

Grammaire

Langage

Caractéristiques

Points forts

Points faibles

Flex

MXML

ActionScript 3

Compatibles tous OS, suite d'outils (certains payants)

Basé sur Flash

Puissance pour applications d'entreprises ?

OpenLaszlo

LZX

/

Gratuit

Gratuit, basé sur Flash

Peu puissant

XUL

XUL

JavaScript

Gratuit, soutenu par la fondation Mozilla

Puissant

Nécessite un moteur de rendu

AJAX

XML

JavaScript

Gratuit, nombreux frameworks

Simple à utiliser

Limité, compatibilité entre navigateurs

WPF

XAML

.NET 3

Vient avec la gamme Expression

Proposé par Microsoft, pour Vista

Compatibilité ?

Apollo

MXML

ActionScript 3

Comme Flex

Basé sur Flash, lit du HTML et PDF

Capacité à se faire connaître ?

On remarque tout de même que toutes les technologies sont basées sur un langage de description XML. D'un point de vue plus personnel, je pense que le futur des applications Internet riches se situe avec Flex et Ajax qui restera. Quant aux applications de bureau, je mettrais une pièce sur un petit duel WPF / Apollo. À vérifier dans un an !