24 novembre 2009
Imprimer ce billet

Devoxx – Jour 3 – Spring Actionscript

Spring ActionScript est un framework Spring permettant de faire de l'inversion de contrôle en ActionScript. Ce framework connu initialement sous le nom de Prana Framework est actuellement en incubation chez Spring. Devoxx fut l'occasion pour Christophe Herreman, initiateur du projet, de nous le présenter.

 

 

Définition du contexte d'application

Comme en Java, il faut définir le contexte d'application. A la différence de Java, deux solutions sont possibles : le XML et le MXML.
Ces deux façons de configurer ont leurs avantages et leurs inconvénients :

  • XML : il n'est pas utile de recompiler à chaque modification de ce fichier mais aucune erreur ne sera détectée si la configuration est mauvaise.
  • MXML : la recompilation est nécessaire en cas de modification du fichier mais le compilateur pourra avertir des erreurs dans la configuration.

Il est également possible de configurer le contexte d'application pour appeler directement un objet à distance.

L'architecture MVC

Cette architecture sera disponible dans la version 0.9 (Spring ActionScript est actuellement en version 0.8).
Le but de Spring ActionScript est de remplacer ou d'intégrer les différents frameworks MVC existants (Cairngorm, PureMVC, Mate, ...). Dans la nouvelle version, pour créer son propre MVC avec Spring Actionscript, il faut :

  • L'API Operation
  • Event Bus
  • Autowiring

L'API Operation

Face aux comportements asynchrones du Flash Payer et au nombre d'API disponibles pour ces appels , Spring ActionScript fournit une interface IOperation. Il a fallu rendre ces appels uniformes pour les injections de dépendances. Dans cette API, vous pourrez retrouver, par exemple, la classe ProgressOperation permettant de suivre la progression de l'appel asynchrone.

EventBus

Il permet de centraliser les évènements et de les dispatcher. Il correspond au contrôleur du modèle MVC. EventBus fonctionne avec les évènements standards Flash.
Voici un exemple de dispatching d'évènement :

EventBus.dispatchEvent(new Event("monEvenement"));

Autowiring

Avec l'autowiring (remplissage automatique en français) il est possible de configurer les dépendances grâce au tag Metadata. Spring va ensuite explorer les tags et réaliser l'injection de dépendances. L'autowiring va donc, pour résumer, gérer les dépendances. Il peut également fonctionner avec d'autres frameworks comme Cairngorm par exemple.
Un exemple d'autowiring :

[Autowired(name="myObject", property="prop")]

Conclusion

Ce nouveau framework tente de faire sa place parmi les frameworks ActionScript déjà existants. En incubation pour le moment, la nouvelle version propose des fonctionnalités qui permettent de faciliter la structuration de la couche présentation. Face à la lourdeur du code à fournir pour mettre en place Cairngorm, il pourrait avoir des chances de séduire la communauté.

Mots-clefs :, , ,