Inovia Blog

L’actualité des technologies innovantes

Ample SDK, un framework RIA à suivre

Par Kadda SAHNINE

Publié le | 4 janvier 2010 |

Ample SDKPour une raison assez obscure, l’annonce de la distribution sous licence libre du framework RIA Ample SDK est passée quasiment inaperçue.
Obscure en effet car il nous semble que Ample SDK propose une approche de développement de clients riches très innovante car totalement ouverte sur les standards, ce qui est en soit une performance sur le segment déjà bien encombré des frameworks RIA.

Un framework résolument tourné vers les standards

Ample SDK est un framework RIA entièrement écrit en Javascript, ce qui le rend agnostique vis-à-vis de la plateforme technologique côté serveur.

Les principes de développement d’une application résident dans la séparation des trois ressources constitutives d’un écran :

  • l’interface utilisateur
  • la logique applicative
  • la décoration graphique

L’interface utilisateur

Elle est décrite par approche déclarative orientée XML. Contrairement aux frameworks privilégiant cette approche, Ample SDK n’impose pas un langage de description particulier mais propose un choix parmi les standards du développement web :

  • XUL (XML User Interface Language), le langage de description d’interface promu par Mozilla
  • HTML5
  • SVG 1.1
  • XHTML 1.1
  • XForms 1.1

On verra plus loin que cette liste n’est pas limitative.
Ce qui est particulièrement remarquable, c’est que l’ensemble de ces technologies sont à la portée d’une grande variété de navigateurs, dont Internet Explorer 5.5 ! Ample SDK, tel un chaînon manquant, généralise le déploiement de standards (XUL, HTML5, etc.) sur la quasi intégralité des navigateurs du marché.

Voici un exemple d’implémentation en XUL :

<script type=’application/ample+xml’ xmlns:xul=’http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul’>
 <xul:tabbox xmlns:xul=’http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul’>
    <xul:tabs>
        <xul:tab label=’checkbox’ />
        <xul:tab label=’textbox’ />
        <xul:tab label=’datepicker’ />
    </xul:tabs>
    <xul:tabpanels>
        <xul:tabpanel>
            <xul:checkbox />
        </xul:tabpanel>
       &nbsp<xul:tabpanel>
            <xul:textbox />
        </xul:tabpanel>
        <xul:tabpanel>
            <xul:datpicker />
        </xul:tabpanel>
    </xul:tabpanels>
 </xul:tabbox>
</script>

La logique applicative

Elle est implémentée en Javascript. Le SDK expose un objet implicite (ample) facilitant l’exploration et la manipulation de l’arbre DOM de l’interface. L’enregistrement des évènements peut se faire dynamiquement en Javascript ou en ligne dans le document décrivant l’interface via l’attribut on{event} (ex: onclick, onchange, etc.).

La décoration graphique

Elle s’opère par application de styles CSS (attribut type="text/ample+css"). Le support CSS n’est pas celui du navigateur mais celui du SDK, lequel supporte les namespaces ainsi qu’un plus grand nombre de sélecteurs.

Voici un exemple d’implémentation :

<style type=’text/ample+css’>
@namespace xul ‘http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul’;

.hilight {
    background-color: yellow;
}

xul|listitem:selected {
    background-color: blue;
    color: white;
}
</style>

Architecture

Le SDK est constitué d’un noyau (runtime) d’une part et de l’implémentation des langages de description d’interface d’autre part. Les implémentations sont indépendantes les unes des autres. Il est tout à fait possible de développer un langage de description d’interface propriétaire pour les besoins d’un projet et/ou dans le cadre d’une industrialisation des développements.

Conclusion

Ample SDK est toujours en cours de développement et il est important de noter que le support de HTML5 n’est toujours pas finalisé, ce qui rend son utilisation en production prématuré.
Toutefois, Ample SDK montre bien que l’obsolescence d’un navigateur n’est plus un obstacle significatif au déploiement des standards émergeants du web : SVG, XUL et HTML5 pour ne citer que les plus significatifs.
Cette perspective n’est devenue envisageable qu’avec la montée en puissance des librairies Javascript comme nous l’expliquions dans cet article, en citant notamment l’exemple d’implémentation jQuery de la spécification CSS3 Template Layout, un standard en devenir non encore supporté par les navigateurs de dernière génération.

Pour aller plus loin

Quelques démonstrations peuvent être évaluées depuis la page d’exemples, en particulier les démos XUL et SVG ont retenu notre attention (sous IE 5.5, il va sans dire !).
Outre l’espace de téléchargement et quelques tutoriels, on recommandera la lecture de quelques articles techniques actuellement publiés.

Abonnez vous !
  • RSS
  • Yahoo
  • Netvibes

Suivez l'auteur sur Twitter !
  • Suivre sur Twitter

A propos de l'auteur

Kadda SAHNINE
Architecte technique Java EE
#JavaEE #Linux #vim addict #OpenSoftware #OpenHardware
Voir le profil de Kadda Sahnine sur LinkedIn

Flux RSS

Rechercher

Administration