• › Connexion
  • Blog RIA
Section separator

Catégories

  • Annonces
  • Concepts et Usages
  • Événements
  • Général
  • Notes Techniques
  • Références
Adobe EMEA Silver Solution Partner Section separator

Abonnement

  • RSS Articles Articles (RSS)
  • RSS Articles Commentaires (RSS)
  • RSS mail Articles (Email)
  • Populaires
  • Récents
  • Commentaires
  • La courbe de deuil du Flexeur (vu 1 097 fois)
  • La courbe de deuil du Flexeur
  • Sortie de Kalileo 2.4
  • TestRail : on l’a testé, on l’a adopté !
  • DB2 à la page dans Hibernate 4
  • Parsley fait peau neuve
  • Sphaxslayer dans Contest logo Apache Flex : Nos propositions
  • Anonyme dans Contest logo Apache Flex : Nos propositions
  • Pbergsma dans Contest logo Apache Flex : Nos propositions
  • Liens informatiques du mois – janvier 2012 | Gestion de projet et développement informatique dans Flex est mort, vive Flex !
  • Florian Fesseler dans Flexmojos : Quick compile mode

Auteurs

  • Alexis Kartmann (12)
  • Antoine Gehl (4)
  • Benoit Kogut-Kubiak (2)
  • Cyril Daloz (10)
  • Daniel Pesic (6)
  • Delphine Estebanez (3)
  • Fadi Mansour (3)
  • Florent Hirsch (1)
  • Florian Fesseler (13)
  • Gaétane Stavaux (3)
  • Guillaume Mignard (4)
  • Java Team (1)
  • Julien Revel (22)
  • Mahmoud Ramadan (1)
  • Matthieu Jobert (1)
  • Morgan Bruneau (1)
  • Stéphane Guyot (1)
  • Stéphane Koëth (2)
  • Thomas de Verdière (1)
  • Yann Graufogel (3)
Section separator

Tags

Adobe Adobe Business Exchange Adobe MAX AIR AMF AS3 Cairngorm Corporate Flash Player Flex Framework iPhone JAVA Kap Inspect Kap Lab LCDS LiveCycle Mobile MVC PureMVC QA Reporting RIA RTMP Spark
Section separator

Archives

  • mai 2013 (1)
  • avril 2012 (1)
  • février 2012 (3)
  • janvier 2012 (4)
  • décembre 2011 (1)
  • novembre 2011 (2)
  • octobre 2011 (4)
  • août 2011 (2)
  • juillet 2011 (5)
  • juin 2011 (4)
  • mai 2011 (1)
  • mars 2011 (1)
  • janvier 2011 (1)
  • décembre 2010 (1)
  • novembre 2010 (3)
  • juin 2010 (1)
  • mars 2010 (1)
  • février 2010 (1)
  • décembre 2009 (2)
  • novembre 2009 (1)
  • octobre 2009 (3)
  • septembre 2009 (1)
  • août 2009 (1)
  • avril 2009 (2)
  • février 2009 (1)
  • janvier 2009 (3)
  • décembre 2008 (4)
  • novembre 2008 (2)
  • octobre 2008 (2)
  • septembre 2008 (2)
  • août 2008 (1)
  • juin 2008 (1)
  • avril 2008 (4)
  • mars 2008 (3)
  • février 2008 (2)
  • janvier 2008 (1)
  • décembre 2007 (3)
  • novembre 2007 (1)
  • septembre 2007 (1)
  • juillet 2007 (1)
  • juin 2007 (1)
  • mai 2007 (3)
  • avril 2007 (8)
  • mars 2007 (2)
  • février 2007 (1)

Marque-pages

  • Adobe Blogs
  • Adobe Developer Connection
  • Adobe Evangelists
  • Adobe Flex Tutorials (FR)
  • Code moi un mouton
Section separator

Kap IT

  • Site Web
  • Blog RIA
  • Kap Lab - Composants Flex
  • GitHub Kap IT

Blog RIA

Veille, Recherche et Développement RIA

Parsley fait peau neuve

Par Julien RevelgravatarFermerAuteur : Julien Revel Email : julien.revel@kapit.fr
Site : http://www.kapit.fr
A propos : Voir les autres billets de l'auteur (22)
, publié le 9 février 2012

Amies Flexeuses, amis Flexeurs et adeptes du célèbre framework persillé, réjouissez-vous car voici venir la 3ème version majeure de l’inénarrable Parsley … ta daaaa !
Ça mérite une petite chansonnette, alors attention…

Tous en choeur
Un , deux , trois , quatre

Il est là Parsley version trois
Sonnez hautbois
Résonnez musettes
Il est là Parsley version trois
Acclamons ce framework de choix !

Eh bien oui, c’est Noël, nous l’attendions, le voilà, c’est bien lui, il est là.

Alors, trêve de blagues nulles désopilantes, brossons un tableau rapide des apports de cette major version pour nous autres, humbles développeurs Flex et AS3, toujours à l’affut d’une nouvelle factorisation de code et autre astuce architecturale qui embellirait notre code.

A ceux qui ne connaissent pas encore Parsley, je leur dis qu’il n’est pas trop tard, mais je les préviens que ce article ne leur expliquera pas comment s’en servir.
Ils pourront pour cela se référer à la documentation officielle, fort complète bien que touffue et parfois difficile à suivre: Site Officiel SpiceFactory

Toile de fond

L’architecture de P3 a été profondément restructurée, et elle est aujourd’hui garantie comme stable, notamment en ce qui concerne les éléments internes de Parsley.
Ceux d’entre nous qui étendent le framework d’une manière ou d’une autre peuvent enfin souffler, ils n’auront plus à – potentiellement – modifier leur code avec chaque nouvelle version du framework.
C’est singulièrement vrai pour la console Parsley qui devra être entièrement refondue pour fonctionner avec Parsley 3, car elle s’appuyait sur des factories copié/collé/dérivé (je sais, c’est mal), et donc bref, ça ne marche plus du tout.
La restructuration la plus visible est sans conteste l’éclatement du framework en de multiples librairies swc distinctes, permettant ainsi d’activer sélectivement telle ou telle fonctionnalité du framework.
Ainsi par exemple, les extensions Flex sont-elles maintenant empaquetées dans la librairie « parsley-flex.swc », au lieu d’être comprises dans la librairie Parsley elle-même.

Les nouvelles librairies principales

  • parsley-core: Noyau obligatoire dans tous les cas, suffisant pour les applis AS3
  • parsley-flex: Extensions pour flex obligatoire pour les applications Flex
  • spicelib-commands: Extensions spicelib obligatoire pour l’utilisation des Command
  • spicelib-reflect: Obligatoire Classes de reflections, ClassInfo et autres méthodes
  • parsley-popup: Requis seulement si utilisation des Popup Parsley (tags mxml)
  • spicelib-logging: Framework de logging (optionnel)
  • Plus quelques autres encore, dont spicelib-util qu’on trouvera dans le répertoire des dépendances de la librairie core. Il semble qu’elle soit parfois nécessaire pour compiler les projets avec FlashBuilder.

    Les librairies sont disponibles au téléchargement, en mode individuel, ce qui n’est pas très pratique. Si vous utilisez Maven, vous devrez également déployer les artifacts manuellement, ou avec un petit script que je vous propose (en shell), à adapter à votre configuration, disponible sur demande.

    Dépendances entre les librairies

    Comme on peut le voir dans le schéma ci-dessous, toutes les librairies ne sont pas obligatoires, seule « parsley-core » l’est, mais évidemment il faudra respecter les dépendances entre librairies et inclure celles qui seront nécessaires:

    Unification des Commandes et des Tasks

    Dans les versions précédentes, 2.x, la librairie Spicelib offrait un système de Task synchrones, permettant d’enchaîner des tâches individuelles, avec une approche autonome et encapsulée. En parallèle, Parsley permettait (depuis les développements de Cairngorm3) d’avoir des Commandes, notamment étudiées pour être asynchrones, déclenchées par l’envoi d’un message associé à la commande, au niveau du Contexte.

    Eh bien tout cela est maintenant unifié, les tâches (Task) sont remplacées par des commandes (Command), le tout dans la nouvelle librairie spicelib-commands.
    Et du coup, les nouvelles commandes permettent à la fois de faire du synchrone ET de l’asynchrone.

    Le codage des commandes est plus élégant que jamais, et totalement basé sur l’introspection des types:

  • La fonction execute() renvoie maintenant une donnée qui sera transmise en paramètre aux écouteurs (handlers) du résultat de la commande
  • Les commandes sont asynchrones dès lors qu’elles déclarent une propriété publique callback de type Function qui sera utilisé en fin de commande pour transmettre le résultat final en paramètre, ou l’erreur si c’en est une
  • Les commandes asynchrones classiques, c’est à dire qui retournent un objet AsyncToken sont conservées, mais implémentées uniquement dans la librairie parsley-flex
  • Les commandes peuvent être chaînées et/ou parallélisées, y compris en mode asynchrone, avec bien sûr une logique de globalisation du résultat qui n’est envoyé qu’à la fin (avec la totalité des résultats intérmédiaires)
  • Encore plus fort: les commandes ainsi enchaînées peuvent se transmettre des résultats qui deviendront des paramètres pour une commande suivante
  • Enfin, il est même possible de chaîner les commandes selon le type ou la valeur d’un résultat obtenu par les commandes elles-mêmes, ce qui est énorme, vous en conviendrez aisément
  • A part ça, les commandes peuvent aussi être construites dynamiquement AS3, via une API fluide (fluent) – c’est beau – et on peut du coup leur injecter tout ce qu’on veut
  • Par conséquent, les commandes peuvent être déclenchées directement, sans passer par un envoi de message
  • Très important aussi, l’association d’un message déclencheur à une commande se fait maintenant avec un nouveau tag mxml: MapCommand car les commandes sont maintenant dissociées des messages
  • Enfin, il est maintenant encore plus facile d’étendre le système de commandes afin de définir un nouveau genre de commande asynchrone, dont la fonction execute() renverra autre chose qu’un *AsyncToken* (comme un *Loader*, ou un *IModuleInfo*)
  • Evidemment, pour les détails d’implémentation, il faudra bien relire la doc, pour ne pas se gourer dans les signatures des différents handlers, [CommandResult], [CommandFault], ou encore méthodes result() et error() internes à la commande.

    Introspection avec Spicelib

    Comme dans toutes les versions précédentes, Spicelib contient un ensemble de classes dédiées à l’introspection AS3, qui sont très utilisées par le framework.
    Ces classes, basées sur le principe du ClassInfo en Java permettent d’introspecter des instances ou des classes, et d’en découvrir propriétés et méthodes publiques.
    Cette API est incontestablement la plus avancée et la plus pratique de tout ce qui se fait en AS3, et je la recommande chaudement à tous ceux qui auraient besoin d’introspecter leurs classes.
    Dans cette nouvelles version (en fait depuis la 2.4) il est également possible d’utiliser le nouveau formalisme JSON, plutôt que XML, retourné par la fonction describeTypeJSON, disponible avec Flash 10.1 et plus.
    Cette méthode serait quatre fois plus rapide que son homologue en XML, et là aussi, Spicelib nous mâche le travail !

    Conclusions

    Avec cette nouvelle mouture, Parsley gagne définitivement ses lettres de noblesse – si ce n’était déjà fait – et confirme sa maturité technologique.
    La facilité d’utilisation du framework, combinée avec ses possibilités d’extension et sa fiabilité en font un incontournable du développement d’applications Flex et AS3.
    Dans cet article, nous n’avons pas parlé des autres possibilités de Parsley, comme les popup en MXML, les Binding découplés, ou encore les applications modulaires, mais il ne tient qu’à vous d’aller y voir de plus près.

    Allez, je vous souhaite à toutes et tous de bien persiller vos applis Flex

    Catégories: Général

    Le commentaires sont fermés.

    Article précédent
    Article suivant
     
    Haut de page

    Copyright © 2009 Kap IT - Blog RIA - Kap Lab

    Motorisé par Wordpress - Thème avec YAML par Kap IT