<?xml version="1.0" encoding="UTF-8"?>
<document>
   <header>
      <authors>
         <author>
            <name>Raphaël Semeteys</name>
            <email>raphael.semeteys@atossorigin.com</email>
         </author>
      </authors>
      <dates>
         <creation></creation>
         <validation></validation>
      </dates>
      <language>fr</language>
      <appname>Dojo Toolkit</appname>
      <release>1.2.3</release>
      <licenseid>33</licenseid>
      <licensedesc>BSD</licensedesc>
      <url>http://dojotoolkit.org</url>
      <desc>Dojo Toolkit est un moteur AJAX très complet, composé de Dojo Core (composants de bases), Dijit (composants graphiques) et DojoX (greffons)</desc>
      <demourl>http://demos.dojotoolkit.org/demos/</demourl>
      <qsosformat>1.6</qsosformat>
      <qsosappfamily>Moteur AJAX</qsosappfamily>
      <qsosspecificformat>1.0</qsosspecificformat>
      <qsosappname></qsosappname>
   </header>
   <section name="generic" title="Section générique">
      <desc>Les critères génériques de l'évaluation Presto de QSOS</desc>
      <element name="intrinsicdurability" title="Pérennité">
         <desc>Pérennité</desc>
         <element name="maturite" title="Maturité">
            <desc></desc>
            <desc0>Logiciel provenant d'un fork ou avec une forte probabilité de fork dans un futur proche.</desc0>
            <desc1>Projet jeune (moins de 3 ans) ou connaissant des difficultés à stabiliser les versions de développement.</desc1>
            <desc2>Projet stable ou ayant un bon historique de gestion de crise. Les nouvelles versions apportent de façon prépondérante de nouvelles fonctionnalités.</desc2>
            <score>2</score>
            <comment></comment>
         </element>
         <element name="adoption1" title="Adoption">
            <desc></desc>
            <desc0>Usage détectable sur Internet sans véritable activité communautaire</desc0>
            <desc1>Utilisation communautaire prépondérante</desc1>
            <desc2>Nombreuse références industrielles</desc2>
            <score>2</score>
            <comment>http://dojotoolkit.org/DojoUsers</comment>
         </element>
         <element name="developpement" title="Développement">
            <desc></desc>
            <desc0>Deux ou moins de deux développeurs clairement identifiés.</desc0>
            <desc1>Équipe de développement réduite avec un turn-over important ou sans équipe de direction identifiée.</desc1>
            <desc2>Équipe de développement structurée comportant plus de 5 développeurs actifs.</desc2>
            <score>1</score>
            <comment>http://dojotoolkit.org/dojo-contributors</comment>
         </element>
         <element name="activite" title="Activité">
            <desc></desc>
            <desc0>Très faible activité, que ce soit sur les résolutions de bugs, les releases, l'ajout de nouvelles fonctions ou sur les espaces communautaires (wiki, forum, mailing list...)</desc0>
            <desc1>Activité détectable mais anarchique (pas feuille de route accessible facilement, pas de prévisions de nouvelles fonctionnalités ou de prévisions de nouvelles versions visible)</desc1>
            <desc2>Activité importante et visible via la mise en place de feuilles de routes traçant les requêtes de nouvelles fonctionnalités et/ou les prévisions de sortie des nouvelles version</desc2>
            <score>2</score>
            <comment>http://bugs.dojotoolkit.org/</comment>
         </element>
         <element name="strategicalindependence" title="Indépendance stratégique">
            <desc0>Pas de stratégie détectable ou stratégie dictée par une société commerciale, un sponsor ou un individu unique.</desc0>
            <desc1>Stratégie décidée par l'équipe de developpement.</desc1>
            <desc2>Indépendance forte de l'équipe de développement, fort engagement du projet dans un processus de standardisation.</desc2>
            <score>2</score>
            <comment>Le projet est géré par la Dojo Foundation, qui regroupe des individus comme des entreprises telles qu'IBM, Google, Sun, Zend, Tibco ou encore Aptana.</comment>
         </element>
         <element name="copyrightowners" title="Détenteur des droits">
            <desc0>Les droits sont détenus par quelques individus ou entités commerciales, facilitant le changement de licence</desc0>
            <desc1>Les droits sont détenus par de nombreux individus de façon homogène, rendant le changement de licence très difficile</desc1>
            <desc2>Les droits sont détenus par une entité légale, une fondation dans laquelle la communauté a confiance (ex: FSF, Apache, ObjectWeb)</desc2>
            <score>2</score>
            <comment>La foundation Dojo possède les droits sur le code.</comment>
         </element>
         <element name="license" title="Licence">
            <desc>Licence, à pondérer uniquement si le client désire un jour devenir propriétaire du code</desc>
            <element name="permissiveness" title="Permissivité">
               <desc0>Licence très stricte, comme la GPL</desc0>
               <desc1>Licence modérée entre les deux extrêmes (GPL et BSD), licence duale dépendante du type d'utilisateur (personne, société…) ou de leur activité</desc1>
               <desc2>Licence très permissive comme BSD et Apache</desc2>
               <score>2</score>
               <comment>Dojo Toolkit est sous double licence : BSD et Academic Free License (http://dojotoolkit.org/license)</comment>
            </element>
            <element name="protectionagainstproprietaryforks" title="Protection contre des forks commerciaux">
               <desc0>Licence très permissive comme BSD et Apache</desc0>
               <desc1>Licence modérée entre les deux extrêmes (GPL et BSD), licence duale dépendante du type d'utilisateur (personne, société…) ou de leur activité</desc1>
               <desc2>Licence très stricte, comme la GPL</desc2>
               <score>0</score>
               <comment>Dojo Toolkit est sous double licence : BSD et Academic Free License (http://dojotoolkit.org/license)</comment>
            </element>
         </element>
      </element>
      <element name="industrializedsolution" title="Industrialisation">
         <desc>Niveau d'industrialisation du projet</desc>
         <element name="independenceofdevelopments" title="Indépendance des développements">
            <desc0>Développements réalisés à plus de 60% par des employés d'une seule société</desc0>
            <desc1>Développements réalisés à 60% maximum par des employés d'une seule société</desc1>
            <desc2>Développements réalisés à 20% maximum par des employés d'une seule société</desc2>
            <score>1</score>
            <comment></comment>
         </element>
         <element name="services1" title="Services">
            <desc></desc>
            <desc0>Pas d'offres de services identifiée</desc0>
            <desc1>Offre existante mais restreinte géographiquement ou en une seule langue ou fournie par un seul fournisseur</desc1>
            <desc2>Offre riche : plusieurs fournisseurs ou plusieurs langages</desc2>
            <score>1</score>
            <comment>Offre de support par la société Sitepen, impliquée dans le développement de Dojo Toolkit et membre de la Dojo foundation (http://sitepen.com/services/support.php)</comment>
         </element>
         <element name="documentation" title="Documentation">
            <desc0>Pas de documentation utilisateur</desc0>
            <desc1>La documentation existe mais est en partie obsolète ou restreinte à une seule langue ou peu détaillée</desc1>
            <desc2>Documentation à jour, traduite et éventuellement adaptée à différentes cibles de lecteurs (end-user, sysadmin, manager…)</desc2>
            <score>2</score>
            <comment>http://dojotoolkit.org/book, http://www.dojotoolkit-fr.org/ (communauté française)</comment>
         </element>
         <element name="methodequalite" title="Méthode qualité">
            <desc></desc>
            <desc0>Pas de processus de qualité identifié ni d'outils de gestions de bugs</desc0>
            <desc1>Processus qualité non formalisé ou non outillé ou comportant des outils qui sont très peu utilisés</desc1>
            <desc2>Utilisation très active d'outils standards (tests unitaires, outils de gestion de build, outils de mesure de qualité du code)</desc2>
            <score>2</score>
            <comment>Présence d'un environnement de tests unitaires : D.O.H</comment>
         </element>
      </element>
      <element name="packaging" title="Packaging">
         <desc>Packaging pour les différents systèmes d'exploitation</desc>
         <element name="packagingbsd" title="BSD">
            <desc></desc>
            <desc0>Pas de packaging officiel pour la famille BSD</desc0>
            <desc1>Packaging existant pour quelques distributions de la famille BSD</desc1>
            <desc2>Packaging complet pour les distributions de la famille BSD suivantes : FreeBSD, OpenBSD, NetBSD et Mac OS X</desc2>
            <score>1</score>
            <comment></comment>
         </element>
         <element name="packaginglinux" title="GNU/Linux">
            <desc></desc>
            <desc0>Pas de packaging officiel pour les systèmes d'exploitations GNU/Linux</desc0>
            <desc1>Packaging existant pour quelques distributions GNU/Linux</desc1>
            <desc2>Packaging complet les systèmes de packaging .deb et .rpm</desc2>
            <score>1</score>
            <comment></comment>
         </element>
         <element name="unix" title="Unix">
            <desc></desc>
            <desc0>Pas de packaging officiel pour les systèmes de la famille Unix</desc0>
            <desc1>Packaging existant sur quelques systèmes de la famille Unix</desc1>
            <desc2>Packaging existant sur au moins ces 3 systèmes : AIX, HP-UX, Solaris</desc2>
            <score>1</score>
            <comment></comment>
         </element>
         <element name="packagingwindows" title="Windows">
            <desc0>Le logiciel n'est pas disponible sur un système Windows.</desc0>
            <desc1>Le logiciel existe sous forme d'archive tout en un.</desc1>
            <desc2>Le logiciel dispose d'un installeur.</desc2>
            <score>1</score>
            <comment></comment>
         </element>
         <element name="packagingsource" title="Sources">
            <desc0>L'installation depuis les sources est hasardeuse et risquée</desc0>
            <desc1>L'installation depuis les sources est difficile ou limité (seulement à un OS, une architecture, la résolution de l'écran...)</desc1>
            <desc2>L'installation depuis les sources est outillée (vérification des dépencances, verification de l'installation, gestion de build)</desc2>
            <score>2</score>
            <comment></comment>
         </element>
         <element name="packagingtar" title="Archive compressée">
            <desc0>Pas d'archive disponible</desc0>
            <desc1>Archive globale</desc1>
            <desc2>Archive séparée pour chaque module installable</desc2>
            <score>2</score>
            <comment></comment>
         </element>
      </element>
      <element name="exploitability" title="Exploitabilité">
         <desc>Niveau d'exploitabilité</desc>
         <element name="easeofuseergonomics" title="Facilité d'utilisation, ergonomie">
            <desc0>Difficulté d'utilisation, demande une connaissance approfondie des fonctionnalités du logiciel</desc0>
            <desc1>Ergonomie austère et très technique</desc1>
            <desc2>Ergonomie élaborée et IHM comprenant des fonctions d'aide</desc2>
            <score>2</score>
            <comment></comment>
         </element>
         <element name="administrationmonitoring" title="Administration et supervision">
            <desc0>Pas de fonctionnalités de contrôle, ni d'administration</desc0>
            <desc1>Fonctionnalités présentes mais incomplètes ou à améliorer</desc1>
            <desc2>Fonctionnalités complètes et faciles de contrôle et d'administration. Intégration possible avec des outils tiers (ex : SNMP, syslog…)</desc2>
            <score>0</score>
            <comment></comment>
         </element>
      </element>
      <element name="technicaladaptability" title="Adaptabilité">
         <desc>Adaptabilité technique</desc>
         <element name="modularity" title="Modularité">
            <desc0>Logiciel monolithique</desc0>
            <desc1>Présence de modules haut niveau permettant un premier niveau d'adaptation</desc1>
            <desc2>Conception modulaire, permettant des adaptations faciles par sélection et/ou création de modules</desc2>
            <score>2</score>
            <comment></comment>
         </element>
         <element name="codemodification" title="Facilité technique de modification du code existant">
            <desc0>Tout à la main</desc0>
            <desc1>Recompilation possible mais complexe, sans outils, ni documentation</desc1>
            <desc2>Recompilation facile, outillée (ex : make, ANT, Maven…) et documentée</desc2>
            <score>2</score>
            <comment>L'empaquetage est réalisé via ANT et est documenté</comment>
         </element>
         <element name="codeextension" title="Facilité d'extension du code">
            <desc0>Toute modification demande une recompilation du code</desc0>
            <desc1>Architecture conçue pour des extensions statiques mais exige une recompilation</desc1>
            <desc2>Architecture de plugins, conçue pour des extensions dynamiques et sans recompilation</desc2>
            <score>2</score>
            <comment>Dojo possède une architecture extensible sous forme de greffons.</comment>
         </element>
      </element>
   </section>
   <section name="ergonomie" title="Ergonomie">
      <desc>Fonctionnalités liées à l'ergonomie des applications Web</desc>
      <element name="composantsgraphiques" title="Composants IHM">
         <desc>Composants graphiques (widgets)</desc>
         <comment>Dojo permet la création de composants graphiques de manière déclarative (par ajout d'attributs spécifiques dans les élements HTML) et de manière programmatique
Cf. http://dojotoolkit.org/book/dojo-book-0-9/part-2-dijit/dijit-glance</comment>
         <element name="saisie" title="Saisie">
            <desc>Composants de saisie de données</desc>
            <comment></comment>
            <element name="texte" title="Texte">
               <desc>Composants pour la saisie de type texte</desc>
               <comment></comment>
               <element name="textesimple" title="Texte simple">
                  <desc>Champ de saisie de texte simple (Text box ou Edit Field)</desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>2</score>
                  <comment>Composant dijit.form.TextBox (http://docs.dojocampus.org/dijit/form/TextBox)</comment>
               </element>
               <element name="motdepasse" title="Mot de passe">
                  <desc>Champ de saisie de mot de passe</desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>1</score>
                  <comment>Il s'agit du composant texte simple avec l'option (dojoType="dijit.form.TextBox" type="password"), peu documenté (cf. http://dojotoolkit.org/forum/dijit-dijit-0-9/dijit-development-discussion/dojotype-dijit-form-password)</comment>
               </element>
               <element name="zonedetexte" title="Zone de texte">
                  <desc>Champ de saisie du texte sur plusieurs lignes (textarea)</desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>2</score>
                  <comment>Composants dijit.form.SimpleTextarea et dijit.form.Textarea (http://docs.dojocampus.org/dijit/form/Textarea)</comment>
               </element>
               <element name="texteformatte" title="Texte formatté">
                  <desc>Zone de saisie de texte formatté (Riche Text Editor)</desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>2</score>
                  <comment>Composant dijit.Editor (http://docs.dojocampus.org/dijit/Editor)</comment>
               </element>
            </element>
            <element name="listes" title="Listes">
               <desc>Composants pour la saisie dans des listes</desc>
               <comment>Module dijit.form</comment>
               <element name="listesimple" title="Liste simple">
                  <desc>Sélection dans une liste simple (List box)</desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>1</score>
                  <comment>Il n'y a pas de composant liste aussi simple, il faut passer par une liste plus évoluée comme dijit.form.MultiSelect ou revenir à l'HTML de base</comment>
               </element>
               <element name="listederoulante" title="Liste déroulante">
                  <desc>Sélection dans une liste déroulante (Drop-down list)</desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>1</score>
                  <comment>Il n'y a pas de composant liste aussi simple, il faut passer par une liste plus évoluée comme dijit.form.ComboBox ou revenir à l'HTML de base</comment>
               </element>
               <element name="boitecombinee" title="Boîte combinée">
                  <desc>Champ de texte avec un menu de choix attaché (Combo box)</desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>2</score>
                  <comment>Composant dijit.form.ComboBox (http://docs.dojocampus.org/dijit/form/ComboBox)</comment>
               </element>
               <element name="listeavecsuggestion" title="Liste avec suggestion">
                  <desc>Champ texte avec suggestion via une liste prédéfinie (Suggest Box)</desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>2</score>
                  <comment>Composant dijit.form.FilteringSelect (http://docs.dojocampus.org/dijit/form/FilteringSelect)</comment>
               </element>
            </element>
            <element name="champstypes" title="Champs typés">
               <desc>Composants spécialisés en fonction du type de donnée à saisir</desc>
               <comment>Module dijit.form</comment>
               <element name="nombres" title="Nombres">
                  <desc>Composants pour la saisie des nombres : curseur (slider) ou increment/décrement (spin box)</desc>
                  <desc0>Auncun composant disponible</desc0>
                  <desc1>Seul un slider (ou une spin box) est disponible</desc1>
                  <desc2>Slider et spin box sont disponibles</desc2>
                  <score>2</score>
                  <comment>Composants dijit.form.NumberTextBox (http://docs.dojocampus.org/dijit/form/NumberTextBox) dijit.form.Slider (http://docs.dojocampus.org/dijit/form/Slider) et dijit.form.NumberSpinner (http://docs.dojocampus.org/dijit/form/NumberSpinner)</comment>
               </element>
               <element name="montants" title="Montants">
                  <desc>Composants pour la saisie des montants monétaires</desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>2</score>
                  <comment>Composant dijit.form.CurrencyTextBox (http://docs.dojocampus.org/dijit/form/CurrencyTextBox)</comment>
               </element>
               <element name="temps" title="Temps">
                  <desc>Composants pour la saisie de dates et heures</desc>
                  <desc0>Aucun composant disponible</desc0>
                  <desc1>Pas de calendrier ou de saisie assistée d'heure en fonction de la localisation</desc1>
                  <desc2>Calendier et saisie assistée de l'heure en fonction de la localisation</desc2>
                  <score>2</score>
                  <comment>Composants dijit.form.DateTextBox (http://docs.dojocampus.org/dijit/form/DateTextBox), dijit.form.TimeTextBox (http://docs.dojocampus.org/dijit/form/TimeTextBox) et dijit.Calendar (http://docs.dojocampus.org/dijit/Calendar)</comment>
               </element>
            </element>
            <element name="validation" title="Validation">
               <desc>Mécanisme intégrés de validation de la saisie</desc>
               <desc0>Aucun mécanisme de validation disponible</desc0>
               <desc1>Validation limitée à certains type de saisie (email, URL, ...)</desc1>
               <desc2>Validation possible via des modèles ou des expressions régulières</desc2>
               <score>2</score>
               <comment>Composant dijit.form.ValidationTextBox  (http://docs.dojocampus.org/dijit/form/ValidationTextBox) qui utilise des expressions régulières</comment>
            </element>
         </element>
         <element name="collections" title="Collections">
            <desc>Composants de restitution et de saisie de collections</desc>
            <comment></comment>
            <element name="boutons" title="Boutons">
               <desc></desc>
               <comment>Module dijit.form</comment>
               <element name="caseacocher" title="Case à cocher">
                  <desc>Case à cocher (Check box)</desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>2</score>
                  <comment>Composant dijit.form.CheckBox (http://docs.dojocampus.org/dijit/form/CheckBox)</comment>
               </element>
               <element name="boutonradio" title="Bouton radio">
                  <desc>Bouton radio (Radio button)</desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>2</score>
                  <comment>Composant dijit.form.RadioButton (http://docs.dojocampus.org/dijit/form/RadioButton)</comment>
               </element>
               <element name="boutonbascule" title="Bouton bascule">
                  <desc>Bouton bascule (Toggle button)</desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>2</score>
                  <comment>Composant dijit.form.ToggleButton (http://docs.dojocampus.org/dijit/form/ToggleButton)</comment>
               </element>
            </element>
            <element name="menus" title="Menus">
               <desc></desc>
               <comment>Module dijit.Menu</comment>
               <element name="menudecommande" title="Menu de commande">
                  <desc>Menu de commande (Command menu)</desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>2</score>
                  <comment>Composant dijit.MenuBar (http://docs.dojocampus.org/dijit/MenuBar)</comment>
               </element>
               <element name="menucontextuel" title="Menu contextuel">
                  <desc>Menu contextuel (Context menu)</desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>2</score>
                  <comment>Composant dijit.Menu (http://docs.dojocampus.org/dijit/Menu)</comment>
               </element>
               <element name="menucirculaire" title="Menu circulaire">
                  <desc>Menu circulaire (Pie menu)</desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>0</score>
                  <comment></comment>
               </element>
            </element>
            <element name="listesstructurees" title="Listes structurées">
               <desc></desc>
               <comment></comment>
               <element name="listearborescente" title="Liste arborescente">
                  <desc>Liste arborescente (Tree view)</desc>
                  <desc0>Composant non disponible</desc0>
                  <desc1>Composant disponible mais sans chargement par partie (lazy loading)</desc1>
                  <desc2>Composant disponible avec chargement par partie (lazy loading)</desc2>
                  <score>2</score>
                  <comment>Le composant dijit.Tree (http://docs.dojocampus.org/dijit/Tree) peut être associé à des Data Stores chargés par partie comme par exemple QueryReadStore ou JsonItemStore</comment>
               </element>
               <element name="vuetabulaire" title="Vue tabulaire">
                  <desc>Vue tabulaire (Grid view)</desc>
                  <desc0>Composant non disponible</desc0>
                  <desc1>Composant disponible mais sans chargement par partie (lazy loading)</desc1>
                  <desc2>Composant disponible avec chargement par partie (lazy loading)</desc2>
                  <score>2</score>
                  <comment>Le composant dojox.grid (http://docs.dojocampus.org/dojox/grid) peut être associé à des Data Stores chargés par partie comme par exemple QueryReadStore ou JsonItemStore</comment>
               </element>
            </element>
         </element>
         <element name="retourutilisateur" title="Retour utilisateur">
            <desc>Composants d'aide au retour utilisateur</desc>
            <comment></comment>
            <element name="arredeprogressionb" title="Barre de progression">
               <desc>Barre de progression (Progress bar)</desc>
               <desc0>Composant indisponible</desc0>
               <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
               <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
               <score>2</score>
               <comment>Composant dijit.ProgressBar (http://docs.dojocampus.org/dijit/ProgressBar)</comment>
            </element>
            <element name="barredetat(statusbar)" title="Barre d'état">
               <desc>Barre d'état (Status bar)</desc>
               <desc0>Composant indisponible</desc0>
               <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
               <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
               <score>0</score>
               <comment></comment>
            </element>
            <element name="bulledaide" title="Bulle d'aide">
               <desc>Bulle d'aide (Tooltip)</desc>
               <desc0>Composant indisponible</desc0>
               <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
               <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
               <score>2</score>
               <comment>Composant dijit.Tooltip (http://docs.dojocampus.org/dijit/Tooltip), il est également possible d'afficher une boîte de dialogue sous forme de bulle d'aide (dijit.TooltipDialog)</comment>
            </element>
            <element name="notificationglissante" title="Zone de notification">
               <desc>Zone de notification apparissant uniquement lorsque nécessaire, en général au dessus de la barre de statut (Toaster)</desc>
               <desc0>Composant indisponible</desc0>
               <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
               <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
               <score>2</score>
               <comment>Composant dojox.widget.Toaster (http://docs.dojocampus.org/dojox/widget/Toaster)</comment>
            </element>
         </element>
         <element name="conteneurs" title="Conteneurs">
            <desc>Composants de regourpement d'autres composants</desc>
            <comment></comment>
            <element name="cadres" title="Cadres">
               <desc>Cadres (Frame ou Panel)</desc>
               <comment></comment>
               <element name="cadredecoratif" title="Cadre décoratif">
                  <desc>Cadre décoratif (Decorator Panel)</desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>1</score>
                  <comment>Le composant dijit.layout.ContentPane (http://docs.dojocampus.org/dijit/layout/ContentPane) peut être utilisé à cet effet</comment>
               </element>
               <element name="cadresdepositionnement" title="Cadres de positionnement">
                  <desc>Cadres de positionnement : horizontal, vertical, continu, orienté (dock), avec règlette (split)</desc>
                  <desc0>Pas de cadres de positionnement</desc0>
                  <desc1>Seuls quelques cadres de positionnement sont disponibles</desc1>
                  <desc2>Cadres de positionnement  horizontal, vertical, continu, orienté (dock), avec règlette (split)</desc2>
                  <score>2</score>
                  <comment>De nombreux types de positionnement sont disponibles (cf. http://docs.dojocampus.org/dijit/layout et http://docs.dojocampus.org/dojox/layout)</comment>
               </element>
               <element name="cadreempile" title="Cadre empilé">
                  <desc>Cadre empilé (Stack Panel ou Accordion)</desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>2</score>
                  <comment>Composant dijit.layout.AccordionContainer (http://docs.dojocampus.org/dijit/layout/AccordionContainer)</comment>
               </element>
            </element>
            <element name="onglet" title="Onglet">
               <desc>Onglet (Tab)</desc>
               <desc0>Composant indisponible</desc0>
               <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
               <desc2></desc2>
               <score>2</score>
               <comment>Composant dijit.layout.TabContainer (http://docs.dojocampus.org/dijit/layout/TabContainer)</comment>
            </element>
            <element name="fenetres" title="Fenêtres">
               <desc></desc>
               <comment>Un unique composant (dijit.Dialog) pour gérer tous les types de fenêtres</comment>
               <element name="fenetresimple" title="Fenêtre simple">
                  <desc></desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>1</score>
                  <comment>Un unique composant (dijit.Dialog) pour gérer tous les types de fenêtres</comment>
               </element>
               <element name="fenetremodale" title="Fenêtre modale">
                  <desc>Fenêtre modale (Modal window)</desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>2</score>
                  <comment>Composant dijit.Dialog (http://docs.dojocampus.org/dijit/Dialog)</comment>
               </element>
               <element name="boitededialogue" title="Boîte de dialogue">
                  <desc>Boîte de dialogue (Dialog box)</desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>2</score>
                  <comment>Un unique composant (dijit.Dialog) pour gérer tous les types de fenêtres</comment>
               </element>
               <element name="paletteflottante" title="Palette flottante">
                  <desc>Palette flottante (Utility window)</desc>
                  <desc0>Composant indisponible</desc0>
                  <desc1>Composant disponible mais limité, pas documenté ou difficile à utiliser</desc1>
                  <desc2>Composant disponible, bien documenté et facile à mettre en oeuvre</desc2>
                  <score>1</score>
                  <comment>Un unique composant (dijit.Dialog) pour gérer tous les types de fenêtres</comment>
               </element>
            </element>
         </element>
         <element name="composantsevolues" title="Composants évolués">
            <desc>Gallerie d'images, Graphes, Sélectionneur de couleur, ...</desc>
            <desc0>Aucun composant évolué n'est disponible</desc0>
            <desc1>Seul un nombre restreint de composants évolués est disponible</desc1>
            <desc2>De nombreux composants évolués sont disponibles</desc2>
            <score>2</score>
            <comment>Nombreux composants évolués dans Dijit et DojoX tels que dijit.ColorPalette (palette de couleur), dojox.charting (graphes), dojox.form.FileUploader (chargement asynchrone de documents), dojox.image.SlideShow (gallerie d'images), ...</comment>
         </element>
      </element>
      <element name="effetsanimes" title="Effets animés">
         <desc>Effets d'animations disponibles</desc>
         <comment></comment>
         <element name="effetsdebase" title="Effets de base">
            <desc>Montrer/Show, Cacher/Hide, aggrandir/slide, estomper/fade</desc>
            <desc0>Aucun effet de base n'est disponible</desc0>
            <desc1>Seule une partie des effets de base est disponible</desc1>
            <desc2>Tous les effets de base sont disponibles</desc2>
            <score>2</score>
            <comment>Montrer/Show, Cacher/Hide, wipeOut, slideLeft/slideRight, fadeIn/fadeOut</comment>
         </element>
         <element name="effetsavances" title="Effets avancés">
            <desc>Rebondissement/Bounce, Explosion/Explode, Replier/Fold, Surbrillance/Highlight, Eclatement/Puff, Pulsasion/Pulsate, Temblement/Shake, ...</desc>
            <desc0>Aucun effet avancé n'est disponible</desc0>
            <desc1>Seuls quelque effets sont disponibles</desc1>
            <desc2>De nombreux effets sont disponibles</desc2>
            <score>1</score>
            <comment>La composant expérimental dojox.fx.easing permet de créer de nombreux effets en les combinant avec les effets de bases mais les différents effets n'existent pas de manière indépendante</comment>
         </element>
         <element name="animations" title="Animations">
            <desc>Animations gérées par le moteur</desc>
            <desc0>Pas d'animation</desc0>
            <desc1>Animation via l'évolution graduelle d'un attribut CSS</desc1>
            <desc2>Possibilité de composer les animations CSS</desc2>
            <score>2</score>
            <comment>Le composant dojo.animateProperty (http://docs.dojocampus.org/dojo/animateProperty) permet d'animer un noeud DOM en faisant varier graduellement une ou plusieur propriétés CSS. Les effets peuvent également être chaînés via dojo.fx.chain</comment>
         </element>
         <element name="interactionsutilisateur" title="Interactions utilisateur">
            <desc>Possibilité d'interaction de l'utilisateur avec l'IHM</desc>
            <comment></comment>
            <element name="glisser/deposer" title="Glisser/Déposer">
               <desc>Gestion du Glisser/Déposer</desc>
               <desc0>Pas de gestion du Glisser/Déposer</desc0>
               <desc1>Glisser/Déposer disponible mais pas sur tous les éléments graphiques</desc1>
               <desc2>Glisser/Déposer disponible sur tous les éléments graphiques</desc2>
               <score>2</score>
               <comment>Disponible via le module dojo.dnd (http://docs.dojocampus.org/dojo/dnd) qui est très complet</comment>
            </element>
            <element name="resimensionner" title="Resimensionner">
               <desc>L'utilisateur peu redimensionner un élément</desc>
               <desc0>Pas de redimensionnement possible</desc0>
               <desc1>Redimensionnement possible mais limité à certains usages</desc1>
               <desc2>Redimensionnement possible sans limitation d'usage</desc2>
               <score>1</score>
               <comment>Composants expérimentaux dojox.layout.ResizeHandle et dojox.layout.StretchPane</comment>
            </element>
            <element name="selectionner" title="Sélectionner">
               <desc>L'utilisateur peut sélectionner un élément ou un cadre</desc>
               <desc0>Pas de sélection possible</desc0>
               <desc1>Sélection possible mais limitée en termes d'usage</desc1>
               <desc2>Sélection possible sans limitation en termes d'usages</desc2>
               <score>0</score>
               <comment></comment>
            </element>
         </element>
      </element>
      <element name="multimediaetflux" title="Multimédia">
         <desc>Possibilité d'intégrer des médias (audio / vidéo / dessin )</desc>
         <comment>Le composant expérimental dojox.av.widget vise à implémenter un lecteur multimédia générique</comment>
         <element name="audio" title="Audio">
            <desc>Intégration de flux audio</desc>
            <desc0>Fonctionnalité non présente</desc0>
            <desc1>Fonctionnalité limitée ou difficile à mettre en oeuvre</desc1>
            <desc2>Fonctionnalité présente et facile à mettre en oeuvre</desc2>
            <score>1</score>
            <comment>Composant expérimental dojox.av.FLAudio (http://docs.dojocampus.org/dojox/av/FLAudio) qui, en utilisant la technologie Adobe Flash pour le moment, propose une couche d'abstraction audio</comment>
         </element>
         <element name="video" title="Vidéo">
            <desc>Intégration de flux vidéo</desc>
            <desc0>Fonctionnalité non présente</desc0>
            <desc1>Fonctionnalité limitée ou difficile à mettre en oeuvre</desc1>
            <desc2>Fonctionnalité présente et facile à mettre en oeuvre</desc2>
            <score>1</score>
            <comment>Composant expérimental dojox.av.FLVideo (http://docs.dojocampus.org/dojox/av/FLVideo) qui, en utilisant la technologie Adobe Flash pour le moment, propose une couche d'abstraction vidéo</comment>
         </element>
         <element name="dessin2d" title="Dessin 2D">
            <desc>Intégration de dessin 2D</desc>
            <desc0>Fonctionnalité non présente</desc0>
            <desc1>Fonctionnalité limitée ou difficile à mettre en oeuvre</desc1>
            <desc2>Fonctionnalité présente et facile à mettre en oeuvre</desc2>
            <score>2</score>
            <comment>dojox.gfx est une API (et donc une couche d'abstraction) pour générer des graphiques vectoriels qui s'adapte au navigateur concerné pour le rendu : SVG (Firefox, Safari, Opera, Chrome), VML (IE 6-7), Microsoft Silverlight (si supporté) ou Canvas (Firefox, Safari, Opera)</comment>
         </element>
         <element name="dessin3d" title="Dessin 3D">
            <desc>Intégration de dessin 3D</desc>
            <desc0>Fonctionnalité non présente</desc0>
            <desc1>Fonctionnalité limitée ou difficile à mettre en oeuvre</desc1>
            <desc2>Fonctionnalité présente et facile à mettre en oeuvre</desc2>
            <score>0</score>
            <comment>Une base d'implémentation de graphes en 3D (dojo.gfx.3d) a été initiée en 2007 via le Google Summer of Code, mais depuis cela semble en stagnation</comment>
         </element>
      </element>
      <element name="manipulationdelapage" title="Manipulation de la page">
         <desc>Fonctionnalités de sélection (query) et de modification d'objets dans la page HTML</desc>
         <comment>Fonctionnalités fournies par le module dojo.query</comment>
         <element name="selection" title="Sélection">
            <desc>Sélection d'objets dans la page HTML</desc>
            <comment></comment>
            <element name="paridentifiant" title="Par identifiant">
               <desc>Sélection d'objets par leurs identifiants HTML</desc>
               <desc0>Pas de sélection par identifiant HTML</desc0>
               <desc1>Sélection possible mais limitée ou difficile à mettre en oeuvre</desc1>
               <desc2>Fonctionnalité offerte par le moteur</desc2>
               <score>2</score>
               <comment>Exemple : dojo.byId('id')</comment>
            </element>
            <element name="parcss" title="Par CSS">
               <desc>Sélection d'objets par classe CSS</desc>
               <desc0>Pas de sélection par classe CSS</desc0>
               <desc1>Sélection possible mais limitée ou difficile à mettre en oeuvre</desc1>
               <desc2>Fonctionnalité offerte par le moteur</desc2>
               <score>2</score>
               <comment>Exemple : dojo.query('.classe')</comment>
            </element>
            <element name="parnavigationdom" title="Par navigation DOM">
               <desc>Sélection d'objets par navigation DOM</desc>
               <desc0>Pas de sélection par navigation dans l'arbre DOM</desc0>
               <desc1>Sélection possible mais limitée ou difficile à mettre en oeuvre</desc1>
               <desc2>Fonctionnalité offerte par le moteur</desc2>
               <score>2</score>
               <comment>Via un couplage avec dojo.NodeList ou l'utilisation de requête de type CSS3 (cf. http://docs.dojocampus.org/dojo/query)</comment>
            </element>
            <element name="parposition" title="Par position">
               <desc>Sélection d'objets par leurs positions dans la page (index)</desc>
               <desc0>Pas de sélection par position dans la page</desc0>
               <desc1>Sélection possible mais limitée ou difficile à mettre en oeuvre</desc1>
               <desc2>Fonctionnalité offerte par le moteur</desc2>
               <score>0</score>
               <comment></comment>
            </element>
            <element name="parfiltrage" title="Par filtrage">
               <desc>Sélection d'objets via un filtre (expression ou résultat de fonction JavaScript)</desc>
               <desc0>Pas de sélection par filtrage</desc0>
               <desc1>Sélection possible mais limitée ou difficile à mettre en oeuvre</desc1>
               <desc2>Filtrage possible via la vérification d'une expression ou le résultat d'une fonction</desc2>
               <score>0</score>
               <comment></comment>
            </element>
         </element>
         <element name="modification" title="Modification">
            <desc>Modification d'objet dans la page HTML</desc>
            <comment></comment>
            <element name="valeur" title="Valeur">
               <desc>Modification de valeurs (InnerHTML)</desc>
               <desc0>Pas de modification possible de la valeur d'un élément HTML</desc0>
               <desc1>Modification possible mais limitée ou difficile à mettre en oeuvre</desc1>
               <desc2>Fonctionnalité offerte par le moteur</desc2>
               <score>2</score>
               <comment>Via dojo.byId('monId').innerHTML,dojo.html.set ou dijit.byId("monId").setContent</comment>
            </element>
            <element name="classecss" title="Classe CSS">
               <desc>Modification de la classe CSS d'un élément de la page</desc>
               <desc0>Pas de modification possible de la classe CSS d'un élément HTML</desc0>
               <desc1>Modification possible mais limitée ou difficile à mettre en oeuvre</desc1>
               <desc2>Fonctionnalité offerte par le moteur</desc2>
               <score>2</score>
               <comment>Via les méthodes dojo.addClass, dojo.hasClass et dojo.removeClass</comment>
            </element>
            <element name="attribut" title="Attribut">
               <desc>Modification des attributs d'un élément HTML</desc>
               <desc0>Pas de modification possible d'un attributHTML</desc0>
               <desc1>Modification possible mais limitée ou difficile à mettre en oeuvre</desc1>
               <desc2>Fonctionnalité offerte par le moteur</desc2>
               <score>0</score>
               <comment></comment>
            </element>
            <element name="dom" title="DOM">
               <desc>Modification de l'arbre DOM</desc>
               <desc0>Pas de modification de l'arbre DOM possible</desc0>
               <desc1>Insertion et suppression d'éléments de l'arbre DOM</desc1>
               <desc2>Modifications avancées. De type : insérer avant, insérer après, insérer autour d'un élément</desc2>
               <score>1</score>
               <comment></comment>
            </element>
         </element>
      </element>
      <element name="themes" title="Thèmes">
         <desc>Possibilité d'utiliser des thèmes</desc>
         <desc0>Pas de thème possible</desc0>
         <desc1>Seuls des thèmes pré-définis sont utilisables</desc1>
         <desc2>Il est possible de définit ses propres thème ou un outil d'aide à la génération de thèmes est disponible</desc2>
         <score>2</score>
         <comment>Trois thèmes par défaut sont proposés (Tundra, Soria et Noir). Il est possible de définir ses propres thèmes en utilisant CSS (http://www.dojotoolkit.org/book/dojo-book-0-9/part-2-dijit/themes-and-design/writing-your-own-theme)</comment>
      </element>
   </section>
   <section name="fonctionnalitesnongraphiques" title="Fonctionnalités non graphiques">
      <desc>Fonctionnalités non graphiques offertes par le moteur</desc>
      <element name="evenements" title="Evènements">
         <desc>Gestion des évènements</desc>
         <comment>Le module dojo.connect prend en charge la gestion des évènements (http://docs.dojocampus.org/dojo/connect). Voir : http://docs.dojocampus.org/quickstart/events</comment>
         <element name="evenementsnavigateur" title="Evènements navigateur">
            <desc>Abstraction des évènements des navigateurs</desc>
            <desc0>Pas d'abstraction des évènements des navigateurs</desc0>
            <desc1>Il existe une couche d'abstraction des évènements des navigateurs</desc1>
            <desc2>Il existe une couche d'abstraction des évènements des navigateurs et le moteur permet de déclencher ces évènement de manière programmatique</desc2>
            <score>1</score>
            <comment>La moteur offre une couche d'abstraction. Les évènements claviers peuvent être déclenchés.</comment>
         </element>
         <element name="evenementsnongraphiques" title="Evènements non graphiques">
            <desc>Capacité du moteur à gérer d'autres évènements que ceux du navigateur</desc>
            <desc0>Pas de gestion d'évènements autres que ceux du navigateur</desc0>
            <desc1>Quelques évènements hors navigateur sont géré</desc1>
            <desc2>La notion d'évènement est généralisée à tout appel de fonction</desc2>
            <score>2</score>
            <comment>La méthode générique dojo.connect() permet de connecter des fonctions JavaScript entre elles.</comment>
         </element>
         <element name="comportementsrepetitifs" title="Comportements répétitifs">
            <desc>Possibilité de définir un comportement par défaut à un évènement</desc>
            <desc0>Fonctionnalité non disponible</desc0>
            <desc1>Fonctionnalité disponible mais limitée ou complexe à mettre en oeuvre</desc1>
            <desc2>Possibilité de définir un comportement par défaut à un évènement</desc2>
            <score>0</score>
            <comment></comment>
         </element>
         <element name="abonnement" title="Abonnement">
            <desc>Publish/Suscribe : échange de messages par abonnement à un topic</desc>
            <desc0>Pas de fonctionnalité d'abonnement de type Publish/Suscribe</desc0>
            <desc1>Fonctionnalité de type Publish/Suscribe mais limitée ou complexe à mettre en oeuvre</desc1>
            <desc2>Echange de messages par abonnement à un topic</desc2>
            <score>2</score>
            <comment>Via dojo.publish, dojo.subscribe et dojo.unsubscribe</comment>
         </element>
         <element name="chainageetinterception" title="Chaînage et interception">
            <desc>Chaînage et interception d'évènements</desc>
            <desc0>Pas de possibilité de chaîner ou d'intercepter des évènements</desc0>
            <desc1>Chaînage d'évènements possible, mais pas de fonctionnalité d'interception d'évènements</desc1>
            <desc2>Possibilité de chaîner et d'intercepter des évènements</desc2>
            <score>0</score>
            <comment></comment>
         </element>
      </element>
      <element name="communication" title="Communication">
         <desc>Modes de communication supportés avec le serveur</desc>
         <comment></comment>
         <element name="modeasynchrone" title="Mode asynchrone">
            <desc>Communication asynchrone avec le serveur</desc>
            <comment></comment>
            <element name="asynchronismebasniveau" title="Asynchronisme bas niveau">
               <desc>Communication asynchrone de bas niveau avec le serveur</desc>
               <desc0>Pas de communication asynchrone possible</desc0>
               <desc1>Communication asynchrone impossible avec d'autres serveurs</desc1>
               <desc2>Communication asynchrone possible avec d'autres serveurs (proxy)</desc2>
               <score>2</score>
               <comment>Dojo.xhr sait utiliser des requêtes de type GET ou POST, et traiter du flux JSON (cf. http://docs.dojocampus.org/dojo/_base/xhr). En outre, dojo.io.iframe et dojo.io.script permettent de communiquer avec des serveurs différents de celui ayant fourni la page en cours.</comment>
            </element>
            <element name="appelsrpc" title="Appels RPC">
               <desc>Encapsulation et simplification des appels distants via une couche de type RPC</desc>
               <desc0>Pas d'appels type RPC</desc0>
               <desc1>Communication de type RPC disponible mais limitée ou complexe à utiliser</desc1>
               <desc2>Couche de haut niveau de type RPC disponible</desc2>
               <score>1</score>
               <comment>Le module dojo.rpc existe mais le code expérimental dojox.rpc réorganise la manère de gérer les appels RPC</comment>
            </element>
         </element>
         <element name="modedeconnecte" title="Mode déconnecté">
            <desc>Possibilité de gérer le mode déconnecté</desc>
            <desc0>Pas de mode déconnecté possible en standard</desc0>
            <desc1>Mode déconnecté possible mais pas véritablement intégré au moteur</desc1>
            <desc2>Mode déconnecté complètement intégré au moteur</desc2>
            <score>2</score>
            <comment>Dojo Offline intègre l'utilisation de l'extension Google Gears au moteur : composant graphique spécifique, détection automatique des modes connecté/déconnecté, gestion énevènementielle de la synchronisation, capture automatique des fichiers pour le mode déconnecté (méthode dojox.off.files.slupr).
http://www.dojotoolkit.org/offline</comment>
         </element>
         <element name="modepush" title="Mode Push">
            <desc>Possibilité de gérer une communication bi-directionnelle avec le serveur, notamment des appels initiés par le serveur</desc>
            <desc0>Pas de communication bi-directionnelle avec le serveur</desc0>
            <desc1>Mode Push possible mais limité et complexe à utiliser</desc1>
            <desc2>Mode Push complétement intégré dans le moteur</desc2>
            <score>1</score>
            <comment>Le module expérimental dojox.cometd implémente un client compatible avec le protocole Bayeux. Le projet Cometd (http://cometd.org) de la fondation Dojo propose des implémentations serveur (Java, perl, pyton).</comment>
         </element>
      </element>
      <element name="accesauxdonnees" title="Accès aux données">
         <desc>Fonctionnalités offertes pour accéder à des données locale ou distantes</desc>
         <comment>Modules dojo.data et dojox.storage</comment>
         <element name="donneeslocales" title="Données locales">
            <desc>Fonctionnaliés de stockage et d'accès aux données locales au poste de travail</desc>
            <desc0>Pas de stockage ni d'accès aux données locales </desc0>
            <desc1>Simple surcouche à l'utilisation des cookies HTTP</desc1>
            <desc2>Possibilité de stocker et d'accéder à des données plus volumineuses que les cookies</desc2>
            <score>2</score>
            <comment>dojo.cookie simplifie la manipulation de cookies. Le module dojox.storage permet de stocker des données sur le client en utilisant via une API unifiée plusieurs techniques : applet Flash, fonctionnalités natives de Firefox, fichier local si la page est ouverte en local (IE et Firefox)</comment>
         </element>
         <element name="donneesdistantes" title="Données distantes">
            <desc>Fonctionnaliés d'accès aux données distantes</desc>
            <desc0>Pas d'accès à des données distantes </desc0>
            <desc1>Accès limité à celui offert par XmlHTTPRequest : non typé</desc1>
            <desc2>Accès possible à des données typées comme JSON, RSS, ...</desc2>
            <score>2</score>
            <comment>Le module dojo.storage propose une couche d'abstraction unifiée d'accès à des données. Les types de données supportés sont JSON, CSV, XML, tables HTML, Atom, ...</comment>
         </element>
      </element>
      <element name="programmationjavascript" title="Programmation JavaScript">
         <desc>Extensions au langage JavaScript facilitant la programmation</desc>
         <comment></comment>
         <element name="espacesdenoms" title="Espaces de noms">
            <desc>Espaces de noms (namespaces)</desc>
            <desc0>Le moteur n'est pas isolé dans un namespace dédié</desc0>
            <desc1>Le moteur possède son namespace mais ne permet pas d'en créer de nouveaux</desc1>
            <desc2>Le moteur possède son namespace et permet d'en créer de nouveaux</desc2>
            <score>2</score>
            <comment>Les différents modules sont isolés dans des namespaces séparés.  Les modules externes peuvent être déclarés via dojo.registerModulePath.</comment>
         </element>
         <element name="classes" title="Classes">
            <desc>Extension de JavaScript pour implémenter un modèle d'héritage par classes</desc>
            <comment>Dojo implémente un modèle objet via héritage de classes en JavaScript</comment>
            <element name="declarartiondeclasse" title="Déclarartion de classe">
               <desc></desc>
               <desc0>Pas de modèle de classe</desc0>
               <desc1>Déclaration de classe complexe</desc1>
               <desc2>Déclaration de classe utilisable comme une fonctionnalité de base du langage</desc2>
               <score>2</score>
               <comment>Via la fonction dojo.declare (http://docs.dojocampus.org/dojo/declare)</comment>
            </element>
            <element name="classesstatiques" title="Classes statiques">
               <desc>Possibilité de déclarer des classes statiques</desc>
               <desc0>Pas de classes statiques</desc0>
               <desc1>Classes statiques disponibles mais limitées ou complexes à utiliser</desc1>
               <desc2>Classes statiques disponibles</desc2>
               <score>2</score>
               <comment>Les tableaux et objets non déclarés à l'initialisation sont statiques.</comment>
            </element>
         </element>
         <element name="heritage" title="Héritage">
            <desc>Héritage selon le modèle de classes</desc>
            <desc0>Pas d'héritage de classes</desc0>
            <desc1>Héritage de classes simple</desc1>
            <desc2>Héritage de classes mixte : possibilité de mixer plusieurs classes dans l'héritage</desc2>
            <score>2</score>
            <comment>Hétitage de classes simple et de type mixin : les méthodes et propriétés d'une autre classe peuvent être ajoutées à une classe fille qui reste cependant liée à sa classe mère principale.</comment>
         </element>
         <element name="fonctionsutilitaires" title="Fonctions utilitaires">
            <desc>Fonctions utilitaires mises à disposition par le moteur</desc>
            <desc0>Aucune fonction utilitaire disponible</desc0>
            <desc1>Quelques fonctions utilitaires disponibles mais limité à un domaine</desc1>
            <desc2>Nombreuses fonctions utilitaires disponibles dans différents domaines (types, sécurité, etc...)</desc2>
            <score>2</score>
            <comment>dojo.lang, dojo.string, dojo.regexp, dojo.date, DojoX.Cryptography (md5 et blowfish), itérateurs sur les tableau, ...</comment>
         </element>
      </element>
   </section>
   <section name="utilisabilite" title="Utilisabilité">
      <desc>Fonctionnalité facilitant l'utilisation du moteur ou des applications développées avec</desc>
      <element name="extensibilite" title="Extensibilité">
         <desc>Capacité du moteur a être étendu</desc>
         <comment></comment>
         <element name="composantsgraphiques1" title="Composants graphiques">
            <desc>Possibilité d'étendre les composants graphiques du moteur (widgets)</desc>
            <desc0>Pas d'extension de composants graphiques</desc0>
            <desc1>Possibilité d'étendre les composants graphique</desc1>
            <desc2>Possibilité d'étendre les composants graphique et d'utiliser des templates</desc2>
            <score>2</score>
            <comment>Les composants graphiques sont des classes qui peuvent être étendues. Il est également possible de créer de nouveau composants via des templates par utilisation du langage DTL (Django Template language, http://docs.dojocampus.org/dojox/dtl).</comment>
         </element>
         <element name="pointsdextension" title="Moteur">
            <desc>Présence de points d'extension de traitements du moteur</desc>
            <desc0>Pas d'extension des traitements du moteur</desc0>
            <desc1>Quelques points d'extension des traitements du moteur mais complexes à utiliser</desc1>
            <desc2>Le moteur est véritablement ouvert et possède de nombreux points d'extension</desc2>
            <score>2</score>
            <comment></comment>
         </element>
         <element name="codeexterne" title="Code externe">
            <desc>Possibilité d'intégrer du code externe au moteur dans le moteur</desc>
            <desc0>Impossible d'intégrer du code externe</desc0>
            <desc1>Intégration de code externe possible mais limitée ou complexe</desc1>
            <desc2>Le moteur prévoit d'intégrer du code externe et de le gérer comme ses propres modules</desc2>
            <score>2</score>
            <comment>Le moteur est conçu pour pouvoir intégrer des modules externes dans des namespaces séparés</comment>
         </element>
      </element>
      <element name="portabilite" title="Portabilité">
         <desc>Portabilité du code</desc>
         <comment></comment>
         <element name="navigateurssupportes" title="Navigateurs supportés">
            <desc>Moteur de rendu HTML supportés</desc>
            <comment>http://dojotoolkit.org/support/faq/what-browsers-does-dojo-support</comment>
            <element name="gecko" title="Gecko">
               <desc>Iceweasel, epiphany, firefox</desc>
               <desc0>Non supporté</desc0>
               <desc1>Supporté pour les dernières versions (Gecko 2.0)</desc1>
               <desc2>Toutes les versions sont supportées</desc2>
               <score>1</score>
               <comment>Dojo : Firefox 1.5 et plus. Dijit : FireFox 2 et plus</comment>
            </element>
            <element name="khtml/webkit" title="KHTML / WebKit">
               <desc>Konqueror, webcore (safari, chrome)</desc>
               <desc0>Non supporté</desc0>
               <desc1>WebKit est supporté</desc1>
               <desc2>KHTML et WebKitsont  supportés</desc2>
               <score>1</score>
               <comment>Safari, Konqueror 3.5 et plus ne sont pas supportés à 100% : quelques fonctionnalités peuvent être indisponibles</comment>
            </element>
            <element name="tasman" title="Tasman">
               <desc>IE sous Mac</desc>
               <desc0>Non supporté</desc0>
               <desc1>Partiellement supporté</desc1>
               <desc2>Supporté</desc2>
               <score>0</score>
               <comment></comment>
            </element>
            <element name="trident" title="Trident">
               <desc>IE sous windows</desc>
               <desc0>Non supporté</desc0>
               <desc1>Seul IE7 ou seul IE6 est supporté</desc1>
               <desc2>IE6 et IE7 supportés</desc2>
               <score>2</score>
               <comment>Internet Explorer 6.0 et plus, IE 8</comment>
            </element>
            <element name="presto" title="Presto">
               <desc>Opéra</desc>
               <desc0>Non supporté</desc0>
               <desc1>Opéra supporté à partir de la version 9.1</desc1>
               <desc2>Opéra supporté à partir de la version 8.5</desc2>
               <score>1</score>
               <comment>Opéra n'est pas supporté à 100%  : quelques fonctionnalités peuvent être indisponibles</comment>
            </element>
         </element>
         <element name="accessibilite" title="Accessibilité">
            <desc>Fonctionnalités prévues pour gérer l'accessibilité</desc>
            <desc0>Aucune fonctionnalité d'accessibilité</desc0>
            <desc1>Quelques fonctionnalités disponibles</desc1>
            <desc2>Véritable stratégie de gestion de l'accessibilité visant le support des recommendations WAI du W3C</desc2>
            <score>2</score>
            <comment>La projet Dojo dispose d'une véritable stratégie de gestion de l'accessibilité : implémentation des recommendations ARIA du W3C, rubrique Accessibité dans la documentation de chaque composant graphique, feuille de style spécifique pour le mode contrasté, navigation par clavier, ...
http://docs.dojocampus.org/dijit-a11y
</comment>
         </element>
         <element name="internationalisation" title="Internationalisation">
            <desc>Fonctionnalité permettant de gérer l'internationalisation</desc>
            <desc0>Pas de fonctionnalité d'internationalisation</desc0>
            <desc1>Fonctionnaliés d'internationnalition disponibles mais limités</desc1>
            <desc2>Fonctionnaliés avancées d'internationnalition comme les locales</desc2>
            <score>2</score>
            <comment>Dojo gère les locales qui sont détectées en fonction du navigateur et qui peuvent être précisées à l'initialisation. Les fichiers de traduction sont récupérés via dojo.requireLocalization. Les dates, heures et montants monétaires sont localisés.</comment>
         </element>
         <element name="multiclient" title="Multi cibles">
            <desc>Capacité du moteur à s'adapter à des clients de types différents (PC, terminaux mobiles, ...)</desc>
            <desc0>Seuls les navigateurs de PC sont supportés</desc0>
            <desc1>Quelques fonctionnalités facilitent l'adpatation à cibles autres que PC</desc1>
            <desc2>Le moteur est conçu pour gérer l'hétérogénéité des cibles</desc2>
            <score>0</score>
            <comment></comment>
         </element>
         <element name="modenonajax" title="Mode non AJAX">
            <desc>Possibiliter de disposer d'un mode non AJAX</desc>
            <desc0>Seul le mode AJAX est possible</desc0>
            <desc1>Certaines alternatives non AJAX sont disponibles</desc1>
            <desc2>Le moteur permet de générer des versions non AJAX du code</desc2>
            <score>0</score>
            <comment></comment>
         </element>
      </element>
      <element name="securite" title="Sécurité">
         <desc>Mécanismes de protection disponibles contre les attaques de type XSS ou CSRF</desc>
         <comment></comment>
         <element name="protectionxss" title="Protection XSS">
            <desc>Protection coté client contre le XSS (Cross-site Scripting)</desc>
            <desc0>Pas de protection contre le XSS</desc0>
            <desc1>La protection contre le XSS est limitée et complexe à mettre en oeuvre</desc1>
            <desc2>Le moteur propose des solutions pour se protéger du XSS</desc2>
            <score>0</score>
            <comment>Dojo est une technologie centrée sur le client.</comment>
         </element>
         <element name="protectioncsrf" title="Protection CSRF">
            <desc>Protection coté client contre le CSRF (Cross-site request forgery) : éviter que l'utilisation d'un cookie encore actif ne puisse être détournée à l'insu de l'utilisateur</desc>
            <desc0>Pas de protection contre le CSRF</desc0>
            <desc1>La protection contre le CSRF est limitée et complexe à mettre en oeuvre</desc1>
            <desc2>Le moteur propose des solutions pour se protéger du CSRF</desc2>
            <score>2</score>
            <comment>Le module dojox.secure (http://docs.dojocampus.org/dojox/secure) propose des solutions pour travailler avec du code ou des données avec un faible niveau de confiance (isolation, évaluation du comportement).</comment>
         </element>
      </element>
      <element name="empaquetage" title="Empaquetage">
         <desc>Fonctionnalité liés à l'empaquetage du moteur lui-même</desc>
         <comment></comment>
         <element name="tailledumoteur" title="Taille du moteur">
            <desc>Taille en Ko du moteur de base</desc>
            <comment>Dojo base fait 26 Ko, Dojo complet 150 Ko, Dijit complet 475 Ko; DojoX comple 5550 Ko
(http://www.sitepen.com/blog/2008/04/02/dojo-mini-optimization-tricks-with-the-dojo-toolkit/)</comment>
         </element>
         <element name="modularite" title="Modularité">
            <desc>Modularité de l'empaquetage du moteur</desc>
            <desc0>Empaquetage monolithique</desc0>
            <desc1>Empaquetage légèrement modulaire</desc1>
            <desc2>Empaquetage extrêmement modulaire</desc2>
            <score>2</score>
            <comment>L'empaquetage du moteur est très modulaire</comment>
         </element>
         <element name="chargementparparties" title="Chargement par parties">
            <desc>Possibilité de chargement paresseux du moteur </desc>
            <desc0>Pas de chargement paresseux des modules</desc0>
            <desc1>Les modules peuvent être chargés séparemment</desc1>
            <desc2>Les modules peuvent être chargés de manière asynchrone et uniquement quand cela est nécessaires</desc2>
            <score>2</score>
            <comment></comment>
         </element>
         <element name="empaquetagepersonnalise" title="Empaquetage personnalisé">
            <desc>Possibilité de générer son propre empaquetage du moteur</desc>
            <desc0>Impossible de générer son propre empaquetage du moteur</desc0>
            <desc1>Empaquetage personnalisé possible</desc1>
            <desc2>Empaquetage personnalisé  avec possibilité d'intégrer des libraries externes</desc2>
            <score>2</score>
            <comment>Dojo fournit un système basé sur ANT qui peut être utilisé pour personnaliser l'empaquetage de ses modules et même d'y ajouter des modules externes (http://www.dojotoolkit.org/book/dojo-book-0-9/part-4-meta-dojo/package-system-and-custom-builds)</comment>
         </element>
      </element>
      <element name="outillage" title="Outillage">
         <desc>Outils de développement disponibles</desc>
         <comment></comment>
         <element name="outildeveloppement" title="Développement">
            <desc>Outils adaptés au développement avec le moteur</desc>
            <desc0>Aucun outil adapté disponible</desc0>
            <desc1>Uniquement des outils propriétaires sont disponibles</desc1>
            <desc2>Des outils libres sont disponibles </desc2>
            <score>2</score>
            <comment>Aptana intègre Dojo (http://aptana.com/plugins), Eclipse AJAX Toolkit Framework également (http://www.eclipse.org/atf/), support dans Netbeans IDE (http://wiki.netbeans.org/JavaScriptBundledLibraries)</comment>
         </element>
         <element name="deboguage" title="Déboguage">
            <desc>Outils adaptés au déboguage de l'utilisation du moteur</desc>
            <desc0>Aucun outil adapté disponible</desc0>
            <desc1>Uniquement des outils propriétaires sont disponibles</desc1>
            <desc2>Des outils libres sont disponibles </desc2>
            <score>2</score>
            <comment>Dojo intègre un indicateur isDebug et propose une journalisation via console.debug().
L'IDE Aptana et l'extension Firefox Firebug sont utilisables.</comment>
         </element>
         <element name="testsunitaires" title="Tests unitaires">
            <desc>Tests unitaires intégrés au moteur</desc>
            <desc0>Pas d'environnement de tests unitaires disponible</desc0>
            <desc1>Quelques fonctionnalités de tests unitaires sont disponibles mais restent limitées ou complexes à utiliser</desc1>
            <desc2>Environnement complet de tests unitaires disponible</desc2>
            <score>2</score>
            <comment>D.O.H est un environnement complet de tests unitaires utilisable dans le navigateur ou en ligne de commande (utilisation de Rhino pour des tests non graphiques et non asynchrones)</comment>
         </element>
      </element>
   </section>
</document>
