Archive

Archives pour 01/2010

Les dynamic finders du pauvre

Avec la montée en popularité de frameworks à la Ruby on Rails, nous autres développeurs Java avons de quoi être jaloux du concept de dynamic finder supporté par exemple dans Grails, comme nous l’expliquait Cyril dans son troisième article consacré à ce sujet. Sortie de nulle part, une méthode Song.findAllByAlbumIsNull() lui permettait de ramener tous les objets de type Song dont l’attribut album était non renseigné.

Puisque les langages dynamiques1 se permettent de pratiquer la magie noire (au moyen du concept de method_missing popularisé par Ruby), je vous propose de mettre en œuvre notre meilleur vaudou pour obtenir, en Java, un résultat similaire avec un minimum d’efforts. On pourrait appeler ça des “demonic finders” si vous voulez.

Lire la suite…

Share

JavaFX a-t-il un avenir ?

Vous en avez certainement déjà entendu parler, Sun a lancé il y a un peu plus d’un an la première version stable d’une technologie qui a pour but de concurrencer Flex et Silverlight dans le monde des RIA : JavaFX. Deux versions mineures sont apparues depuis, apportant des points vitaux : le support théorique des appareils mobiles (voir la suite) et un SDK sous Linux. Pourtant, lorsqu’on parle de JavaFX à son entourage, beaucoup connaissent de nom mais personne ne semble l’avoir utilisé ni même ne connait quelqu’un qui en fait. Dans cet article, je vous propose un état des lieux de la technologie, de l’utilisation que l’on peut en faire ainsi que de ses possibilités futures. Lire la suite…

Share

Open-source Flex development stack

Introduction

flexDans cet article, je vous propose de mettre en place un environnement de développement complet n’utilisant que des solutions Open Source (entièrement gratuit, donc totalement pas cher :)) pour faire du Flex. J’espère qu’il permettra aux personnes souhaitant démarrer un nouveau projet d’avoir une idée des différents outils existants, ainsi que de leur intégration dans un système d’informations déjà existant (au niveau du backend, notamment).

Les exemples qui vont être présentés dans la suite sont volontairement simplistes, le but n’est pas de faire la prochaine killer app, mais bien de voir comment mettre en place simplement et rapidement une “development stack” utilisant un frontend Flex et un backend Java ou PHP.

La plupart des technologies utilisées ici sont disponibles aussi bien sous Windows que Linux ou MacOS. Lire la suite…

Share

Grails – épisode 5 – Configurer et déployer

Résumé de l’épisode précédent

Nous avons vu comment installer et utiliser des plugins : la sécurité et les flux RSS ont été intégrés. Comment faire maintenant pour exploiter cette application ? Comment la déployer sur un Jboss ou un Tomcat ? Quelles sont les possibilités de configuration ?

Relire l’épisode 4. Lire la suite…

Share

Menez le web à la baguette avec symfony (2) : un squelette pour pas chair

Résumé de l’épisode 1

Dans l’article précédent,  nous avons rapidement vu que des solutions intéressantes apparaissent au sein du monde PHP. Parmi l’un des nombreux frameworks émergeants, nous avons choisi d’étudier symfony à travers la création d’une application web de gestion de bookmarks, Plum. Nous avons pour l’instant créé une application par défaut. Il reste maintenant à lui faire faire son “vrai” travail…

Nous manipulons pour l’instant peu de types de données : les bookmarks et les tags. Voici un diagramme UML les représentant :

7bda79a8

Diagramme de classes de notre modèle

(Ce magnifique diagramme a été réalisé en ligne sur le site de yuml.me. Publicité gratuite :)).

Pour facilement manipuler les données en base, symfony gère de base deux Object-Relational Mappers (ORM) : Doctrine et Propel. Cependant, comme Doctrine est devenu l’ORM par défaut depuis la version 1.3 du framework, c’est lui que nous utiliserons. Doctrine propose une solution élégante d’accès aux données via le langage DQL, inspiré du HQL d’Hibernate, ainsi qu’une API d’accès aux données.  Propel se base de son côté sur une API semblable aux Criteria. Que l’on utilise Doctrine ou Propel, symfony fonctionne de manière semblable. Dans la suite de cet article, je vais détailler pas à pas les étapes suivantes :

  • configuration de l’accès à la BDD (hôte, port etc.),
  • définition du modèle de données dans un fichier au format YAMLconfig/doctrine/schema.yml,
  • appel de la commande responsable de la génération des classes du modèle, du code SQL, de la création de la BDD et chargement des données de test en BDD,
  • éventuelle génération de modules dans une application pour faire du CRUD basique,
  • adaptation du code et utilisation de l’API Doctrine… Lire la suite…
Share