Archive for category Français

AngularJS : less code more fun

Posted by on Mercredi, 13 juin, 2012

L’idée majeure derrière AngularJS c’est le constat qu’HTML n’a pas été conçu pour développer des applications. Pour pallier ce manque le framework propose d’étendre HTML pour y insérer ses propres balises et comportements et d’y intégrer la notion de vues dynamiques. A la différence des autres frameworks la notion de template n’existe pas car le template c’est le HTML, le HTML c’est la vue.

Le projet est né chez Google et conçu par Misko Hevery, Igor Minar et Vojta Jina. Tous trois développeurs Java à la base. Misko étant un des lead des tests chez Google, les tests ont donc une part importante dans la conception du projet. C’est notamment une des raisons pour laquelle l’injection de dépendance est intégrée au framework à travers la notion de module. Le principe étant que tout soit testable. C’est une des différence fondamentale avec les autres frameworks et c’est ce qui le rend bien plus pertinent.

Passons maintenant au code : ici un modèle concrétisé par un objet “Patient”, une vue concrétisé par une page HTML des plus basiques et un controleur faisant le lien entre les deux :

Le modèle :

La vue :

Le controleur :

Ce qui donne :

Cet exemple montre la clarté et la simplicité de l’implémentation du modèle MVC et la présence implicite du data-binding. Notez qu’il n’y a pas de “main()”. Le simple fait de déclarer l’attribut ng-app initialise l’application. Ensuite celle-ci se construit au travers d’un ensemble de “modules” qui peuvent être de 4 types : controller, service, filter, directive.

Introduisons maintenant une date. C’est un bon test pour analyser un framework. Le problème est alors le traitement du type Date qui implique une conversion. Un classique dans nos framework Java la plupart du temps géré par un composant permettant la saisie d’une date et son affichage. Pour AngularJS, coté affichage, les “filters” permettent d’une manière simple de formatter l’affichage. Coté saisie rien : AngularJS n’est pas un framework de composant. Il faut créer son composant permettant de saisir la date. Ceci est plutôt une bonne chose que de s’en faire imposer un car la manière de saisir une date varie souvent suivant le contexte. AngularJS ne propose que des composants de base et offre ainsi la possibilité d’utiliser une bibliothèque de composant externe. Un projet annexe s’est créé pour permettre à tous de proposer des composants : angular-ui.
Passons à la mise en oeuvre et introduisons la notion de “directive” qui permet de transformer un input[type="text"] en un composant de saisie de date en utilisant simplement l’attribut “ui-date”. Le code reste lisible, celui lié au traitement de la date est déporté dans la “directive” qui s’appuie, dans cet exemple, sur jquery-ui :

Pour bien faire on s’assure du bon fonctionnement de la directive par un test :

Libre ensuite de changer le comportement du composant, comme ci-dessous en remplaçant par un masque de saisie :

Le HTML n’a pas été modifié. Toute la logique est dans le composant uiDate qui est une extension de l’élément input. C’est clair et bien construit, facilement testable et réutilisable.

Mais quel est ce “$scope” et à quoi sert-il ?
Quelles autres options pour concevoir des composants ?
On se garde ça pour le prochain article ;)

De retour à JavaScript

Posted by on Mercredi, 13 juin, 2012

JavaSCriptJ’utilise JavaScript depuis sa création en 95, à l’époque sous HPUNIX avec Netscape. Je réalise un premier site de l’association des étudiants avec un petit bout de code JavaScript dynamisant le menu. Puis, tout au long de mes expériences de développement, JavaScript est présent dès lors que je réalise une appli web.

Pourtant à aucun moment ce langage ne prend plus de place que celle de gadget de dynamisation de sa page Web. Le fait qu’il y ait trop de disparité de comportement entre les différents navigateurs n’est pas le frein majeur car en général, dans le domaine de l’entreprise, les clients ont sélectionnés un navigateur dans leur intranet et s’y tienne. Ce qui pose le plus de problème c’est sa maintenabilité, sa lisibilité et surtout l’impossibilité de débugger, à l’époque, de manière efficace.

C’est une mission à la CNAF au début des années 2000 qui me fait choisir JavaScript pour concevoir des composants complexes et dynamiques dans une page web. Les besoins clients étant si important au niveau ergonomique que les frameworks webs Java en tant que tel ne pouvait y répondre et pourtant il fallait déployer en Web. C’est l’époque de DHTML et on met en oeuvre une ergonomie innovante dans le navigateur à base de fenêtres DIV et communiquant avec un applet invisible échangeant des messages via un broker en JMS (rigolez pas c’est avec ça qu’aujourd’hui qu’on gère vos alloc ;) ). Un beau bricolage mais qui n’était pas pérenne. Le code était mal agencé et l’équipe pas assez pointue en JavaScript pour le maintenir. Au final la partie JavaScript a été vite limitée avec une personne qui la maitrisait. Puis la mission s’est terminée. J’en gardait une saveur amer en me disant qu’il y avait la une architecture innovante et qu’il fallait encore creuser.

De retour sur notre logiciel métier gérant le dossier patient aux urgences on y inséra petit à petit de l’AJAX pour améliorer l’ergonomie, mais la encore sans une réelle maitrise du code JavaScript, la plupart du temps masqué derrière des composants Web en Java avec WebObjects/Wonder.
Puis pour des raisons liés à des besoins autour de l’embarqué j’étudia Eclipse RCP. Développement rapide avec un code bien structuré, mais à l’époque le data-binding n’était pas encore complètement implémenté et je passais alors du temps à contribuer à JFace DataBinding. Ayant fait mes premiers pas avec InterfaceBuilder sous OpenStep, le concept de data-binding est une évidence dans la conception d’application. Malheureusement Eclipse RCP avait un gros manque : l’ergonomie. Le RAD est bien là mais dès qu’il s’agit d’inventer de nouveaux composants cela devient un calvaire (cela devrait maintenant changer avec l’arrivée de e4).

Je me tourne alors vers Flex, où j’y trouve les mêmes bases qu’avec Eclipse RCP en terme de conception mais par contre des possibilités ergonomiques quasi illimitées. Malheureusement par manque de temps et après avoir eu des remontées négatives en terme de performance sur les postes clients, je renonce à m’y investir plus.

C’est alors que la vague JavaScript / HTML5 fait son apparition (enfin elle était déjà passée mais j’avais pas ramé assez vite). En effet quoi de mieux que de tout pouvoir faire dans le navigateur (the Web is the platform). Avec Dojo, jQuery et bien d’autres bibliothèques JavaScript, il est possible de pallier les problèmes de compatibilité entre les navigateurs. Firebug et Chrome developer tools permettent de débugger facilement. Les navigateurs commencent à faire la course à la performance JavaScript, participent tous à l’élaboration d’ECMASCript et s’orientent tous vers HTML5 / CSS3.
Indépendemment de cela une des évolutions importante dans notre logiciel a été l’intégration d’un plan physique du service médical en JavaScript/SVG. Seul point génant : la nécessité d’un plugin pour lire le SVG sous IE. Mais finalement l’intégration fut simple.

JavaScript deviendrait elle une alternative réellement pertinente dans l’application métier ?
Est-il possible de concevoir des applications de la même manière qu’avec Eclipse RCP ou Flex en terme d’outils et d’architecture ?

Le problème de la maintenabilité et la lisibilité reste un frein. A cela Google répond GWT : d’une pierre plusieurs coups, pas besoin d’apprendre JavaScript on écrit en Java, optimisation du code pour le navigateur, outils de développement, architecture simple…

Mais finalement pourquoi JavaScript serait-il difficile à maintenir et illisible ?
Pourquoi un code JavaScript ne pourrait il pas être perenne ?

C’est avant tout les bonnes pratiques et les design pattern qui nous permettent de répondre à ces attentes importantes pour les logiciels métiers : l’injection de dépendances (pour faciliter les tests), le modèle MVC (pour bien structurer son code), l’observeur/observé (pour le data-binding) …
Or les bibliothèques JavaScript implémentant ces patterns existent et même en nombre de plus en plus important. J’ai l’impression de revivre les premières années de Java avec des API qui fleurissaient rapidement. Accélérée encore plus avec GitHub.
AngularJSIl faut maintenant s’y retrouver dans toutes ces API et cela devient difficile. Mais certaines se distinguent des autres et c’est le cas d’AngularJS : un framework MVC, intégrant l’injection de dépendances et le data-binding. Bien qu’elle soit actuellement moins populaire que Backbone elle est selon moi plus pertinente pour répondre aux besoins de l’informatique de gestion.

Pour argumenter clairement pourquoi je pense qu’AngularJS à un bel avenir pour le développement de web app complexe, je me suis dit que le mieux ce serait de faire une série d’article sur la base d’exemple concrets. Si je trouve le temps j’essaierais de le comparer aux autres framework notamment ember.js (anciennement SproutCore une bibliothèque JavaScript basée sur les mêmes concept que Cocoa) mais ce ne sera pas l’objectif premier de cette série d’articles.

JEE & CDI à l’elsassJUG

Posted by on Lundi, 20 juin, 2011

Une soirée en deux partie par Antonio Goncalves (@agoncal), je passe sur la première qui présente les nouveautés JEE6 et qui, en tant qu’éditeur, m’intéresse moins. Par contre la spécification CDI contient d’intéressantes approches basées sur l’injection de dépendances. Bien sûr tout cela existe déjà, mais comme le dit fort bien Antonio, c’est une fois que ça marche que l’on peut faire une spécification. C’est en fait 2 spécifications, la première (JSR 330) qui est la “couche basse”, implémentée par les frameworks comme Guice et Spring et la deuxième (JSR 299) la “couche haute” qui étend et ajoute certains concepts pertinents comme @Alternative, @Stereotype, @Decorator, @Model. Bien que je reste un grand fan de Guice, ces approches bien que plus complexes à appréhender permettent tout de même d’alléger son code et de le rendre bien plus flexible en utilisant du couplage lache. L’inconvénient reste qu’il va devenir difficile de s’y retrouver tout étant injecté et injectable dans tout. Difficile de debugger et de trouver le coupable quand on ne sait plus quelle classe est l’implémentation de son appel.

C’est finalement bien qu’il existe 2 niveaux de spécifications permettant ainsi d’y voir clair et d’avoir des implémentations adaptées à son besoin. C’est d’ailleurs un concept qui va se pérenniser dans le futur si on en croit Antonio (qui vient d’entrer dans l’expert group de la spec EJB 3.2), avec pour objectif de la décomposer en plusieurs spéc. On parlera ainsi plus de “services” que de “bean”. De même CDI en lui-même va surement devenir le coeur de JEE, toute le reste étant des plugin (servlet, etc). Bref en découpant JEE et avec le futur systeme de modélisation à la OSGi attendu pour Java 8, on s’approche petit à petit finalement d’une technologie plus flexible et adaptable qu’elle ne l’était au début. De la à dire qu’elle tiendra ses promesses quand il s’agit de remplacer une implémentation par une autre, ce n’est malheureusement pas fait car cela reste à la bonne volonté des “implémenteurs/éditeurs” ;) .

En tout cas étant un fervent défenseur du DI pattern CDI à un bel avenir. Merci en tout cas à Antonio pour cette bonne prez. Vivement la prochaine comme d’hab.

ElsassJUG : soirée Android et iPhone : un succès !

Posted by on Dimanche, 21 novembre, 2010

C’est avec plaisir que toute l’équipe de l’elsassJUG a réuni vendredi soir plus de 80 participants pour la soirée développement mobile : Android & iPhone. Un vrai succès pour cette première. Didier est intervenu sur le sujet “Comment faire de son application un succès” en s’appuyant sur son expérience issue de son application ABonEntendeur sur Android. Puis après une petite démo de développement d’application Android c’est suivi un buffet digne de ce nom. C’est ensuite au tour des Alexandres de Wakeapps de prendre la parole en faisant une comparaison entre iPhone et Android d’un développement d’une petite application de sa conception jusqu’à son déploiement. Très intéressant de voir les différences, le développement sur iPhone est bien plus rapide et facile mais l’ouverture de la plate-forme Android permet une accessibilité plus simple pour les développeurs et une gestion de son audience plus intéressante qu’avec iPhone. Je reste personnellement convaincu qu’HTML5 pourra permettre de faire des applications multi-mobile bien plus simplement, comme le faisait remarquer Didier d’ailleurs. Sencha et JQTouch montrent les capacités d’avoir une application mobile entièrement en Javascript/HTML/CSS et les technologies comme Titanium ou PhoneGap permettent d’aller plus loin en générant des applications natives à partir de Javascript.

Ce sera surement l’occasion d’en reparler au cours d’une nouvelle conférence de l’elsassJUG. Car maintenant victime de son succès il va falloir trouver les bonnes idées et continuer sur cette lancée. J’ai proposé d’autres formats de conférence comme les barcamp ou les coding dojo, qui serait des évènements intermédiaires entre des “grandes” conférences que l’on aimerait réaliser tous les 3 mois environ.

Un final à l’hotel Hannong à parler SCRUM à 1h00 du matin et à filer des conseils au taulier sur sa com (pour info il a un compte twitter et facebook, excellent !) merci de leur accueil. Un public finalement pas si Java que ça et c’est bien, pourvu que ça continue d’intéresser aussi les autres communautés. J’aimerais d’ailleurs mélanger les genres et ne pas parler que de Java.

Encore merci à tous d’être venus, merci aux sponsors Improve (ma société) et Proxiad (super buffet merci Jacques), merci à l’Epitech et à Lionel pour l’accueil et enfin merci à Alsace Digital pour les réunions au CPPlex. Bravo à toute l’équipe du JUG : Julien, Pierre, Guillaume, Johan, Guy, Sam et les Alexandres. Et vivement la prochaine ;)

Un évènement à ne pas manquer ;)

Posted by on Samedi, 6 novembre, 2010

Cette fois ça y est l’Elsass JUG est prêt pour son premier rendez-vous. Ce sera le vendredi 19 Novembre à 19 heures, sur le thème Développement d’applications mobiles avec Android et iPhone avec Didier Girard (avec qui j’ai fait équipe à Improve pendant 10 ans), de la société Sfeir, qui présentera “comment faire de son application mobile un succès” et puis avec les fondateurs de la jeune société strasbourgeoise Wakeapps qui compareront les technologies Google Android et Apple iPhone.

La soirée aura lieu dans la salle D204 de l’Epitech, 4 Rue du Dôme à Strasbourg. Tous les participants sont cordialement invités au buffet qui suivra, ainsi qu’à poursuivre la discussion lors d’un after.

L’inscription est gratuite et obligatoire pour nous permettre d’estimer au mieux le nombre de chips ;)

Les premiers pas de l’elsassJUG

Posted by on Dimanche, 27 juin, 2010

Nous étions 7 ce jeudi soir dernier à s’être retrouvés pour lancer un JUG en region Alsace : elsassJUG.
7 c’est déjà une belle équipe, surtout que pour monter une association dans cette région c’est comme pour monter une SA faut être 7 signataires (des restes de la guerre de 40).
Finalement pour les statuts et l’officialisation gouvernementale on attendra après la première. L’idée d’abbord c’était de se connaitre, d’écouter les motivations de chacun et se faire une roadmap.
Des idées ont été proposées concernant le format. J’ai personnellement proposé d’avoir une petite présentation type “keynote” suivi d’un JavaCamp de 2X2 sessions. Personellement je préfère les approches BarCamp et CodingDojo qui sont plus enrichissantes que les conférences.
Reste que quand le speaker est bon ou le sujet intéressant la conf est aussi un bon format.
Le sujet sur la première se doit d’être fédérateur. Pour avoir du monde il nous semble important, du moins pour la première, de trouver un sujet générique dans l’air du temps sans être trop technique. Pour l’instant l’idée serait de parler des plates-formes mobile.
Rien n’est figé et nous allons chacun déjà communiquer autour de nous sur cette initiative pour avoir un premier ressenti des attentes et en même temps faire un retour à l’équipe que le potentiel en terme de personne que chacun de nous peut ramener.
Car il faut aussi pouvoir anticiper pour les locaux, le buffet la binouze… A priori avec l’université de Strasbourg la question des locaux sera vite résolue. Nous espérons cibler un public d’étudiants mais aussi de société des services de la région. Nous aimerions aussi partager avec les autres communautés de la région.
Je crois vraiment à l’avantage de ce type d’organisation pour mélanger les genres et se confronter avec différentes technologies. J’ai même proposé d’aller plus loin avec un ITUG (Information Technology User Group), d’internationaliser car Strasbourg c’est la croisée des chemins de l’Europe, mais bon la je m’emballe.
En tout cas c’est toujours très enrichissant de rencontrer des personnes partageant les mêmes passions. Je ne me lasse pas de ces initiatives communautaires.
Pour l’instant le elsassJUG vous pouvez le suivre sur twitter @elsassjug et sur le Google groups elsass-jug. On prépare un site pour bientôt.
C’est ouvert à tous alors n’hésitez pas à vous manifester si vous êtes de la région et motivés par cette initiative. J’ajoute d’ailleurs que l’on est pas cantonné à Strasbourg (Fabien vient de Colmar) donc pas de problème pour arganiser aussi des évènements sur Mulhouse ou Colmar si on peut aussi rameuter du monde.
Merci à Julien, Guillaume, Pierre, Sam, Fabien et Guy pour ce lancement.

Spring User Group France

Posted by on Samedi, 29 mai, 2010

Jeudi Olivier nous a fait la présentation de spring-batch qu’il avait faite au Spring User Group France.

C’était bien évidemment très intéressant et vous pouvez d’ailleurs retrouvez la prez ici

Bref je vous encourage à suivre l’actualité du SUGFR pour ne pas manquer les prochaines présentations.

live streaming : le tour des offres

Posted by on Lundi, 26 avril, 2010

Pour promouvoir le 3ème album de mon pote Ben je lui ai proposé de profiter un maximum de l’internet. Bien sur avec les réseaux sociaux (facebook et twitter) mais aussi et surtout la video. Après un premier morceau enregistré dans la cave et publié sur YouTube dans la foulée, il a été convaincu.

Pour aller plus loin je me suis penché sur le live streaming en me disant que ce serait bien de pouvoir filmer un des prochains concert en live. Mais la plein de question se posent, est-ce gratuit, si payant à quel prix, quelle qualité de video, etc… En suivant TechCrunch je me suis tenu au courant des sites dédiés à ce domaine. Faisons le point sur les offres du marché :

  • justin.tv : sorti en 2007 à l’initiative de Justin Kan qui après avoir filmé sa vie avec succès avec camera sur la casquette et portable dans le sac à dos, a décidé de mettre sa plate-forme à disposition de tous. Le service est gratuit à première vue et selon la faq, mais en fait pas vraiment. Il existe une version pro pour enlever les pubs au visionnage et avoir des options de personnalisation supplémentaires, jusque la on se dit pourquoi payer, par contre en recherchant bien sur le net on s’aperçoit que la bande passante est limitée par pays. Dès que ça dépasse, le flux est coupé avec un message disant de passer en pro. Donc pas si gratuit que ça. Le site est traduit en plusieurs langues dont le français et il est possible de personnaliser la page de sa chaine. Pour diffuser c’est très simple, il suffit de créer un compte et de cliquer sur diffuser. Ensuite c’est le plugin flash live encoder qui va permettre l’envoi du flux via la webcam branché en USB sur son ordi directement depuis la page web. Il est possible d’utiliser des outils desktop comme Flash Media Live Encoder ou Quicktime Broadcaster, permettant de mieux contrôler les débits , l’encodage du son et de la video. Il existe une appli iPhone mais uniquement pour la consultation des flux. La diffusion se fait uniquement avec une webcam ou un camcorder branché sur son ordi. Le wiki de la communauté est pratique pour trouver les infos.
  • ustream.tv : sorti en 2008 ce site est réellement gratuit (en tout cas j’ai pas trouvé ou ca pourrait devenir payant). Le site n’est par contre qu’en  anglais et moins bien présenté et personnalisable que justin.tv. Par contre il est fourni avec un outil desktop complet et simple d’utilisation avec les mêmes paramétrages que ceux indiqués précédemment. Une version pro (payante) de cet outil permet même de faire de la réalisation avec plusieurs caméras branchées. Il est de plus accompagné de 2 applications mobile iPhone, une pour lire l’autre pour diffuser avec un 3G et avec un 3Gs. Et enfin une API REST basique.
  • kyte.tv : sorti en 2007 la on est vraiment dans le SaaS de la video sur internet. Par contre c’est pas gratuit mais on a aucun prix, il faut les contacter et présenter son projet, ensuite ça doit être à la tête du client, je sais pas. J’ai envoyé mon besoin on va bien voir ce qu’ils vont me répondre. Gratuitement on peut faire 15m de live et uploader des videos comme sur youtube avec un quota limité. L’offre de partage est bien foutue et on peut diffuser sur facebook rapidement en incluant la video ce qui n’est pas le cas des autres. Une appli iPhone permet de lire et diffuser du contenu video. C’est l’offre la plus complète et la plus pro.
  • livestream.com : dans la lignée des 3 précédents avec une offre claire au niveau prix, on y retrouve les memes fonctionnalités, une API bien fournie mais pas d’application mobile ni pour lire ni pour diffuser et une interface anglaise uniquement.
  • qik.com : principalement axé sur la video prise depuis son mobile, l’objectif et de filmer des petites séquences live et de les partager. J’ai fait mes premiers essais au concert de M. L’image est mauvaise car j’étais loin surtout mais aussi parce que j’avais un iPhone 3G et pas 3Gs. Donc c’est des prises de photos toutes les secondes et pas un vrai streaming. Le son est pas trop mal par contre. C’est complètement gratuit mais c’est pas fait pour faire des vidéos de qualité. L’idée c’est un peu plus du twit video.
  • flixwagon.com : pareil que Qik avec des applis pour iPhone et Nokia series 60. Pas d’API, l’offre est simplement un service de live par mobile pour raconter sa vie. Je le trouve moins attirant que les autres.

justin.tv et ustream.tv font le bonheur des amateurs de foot et autres évènements sportifs et bien le malheur des chaines payantes. Les petit gars se branchent une retransmission d’une chaine payante sur le flux live de leur chaine et le tour est joué.

Toutes ces offrent ont des options de partage sur facebook, twitter et myspace et des gadgets à insérer dans son blog. C’est bien la le plus important, aider à créer du trafic sur un espace web tout en acheminant toujours plus d’utilisateurs vers son service. Toutes les vidéos live sont archivées je n’ai pas reussi à savoir quel quota pour justin.tv et ustream.tv, pour kyte.tv et livestream.com c’est clair.

Finalement pas grand monde filme sa vie en permanence mais par contre ca donne plein d’idées pour partager des moments avec des personnes éloignées. Le live donne un plus par rapport à la simple video notamment quand on peut participer via le tchat. Tous proposent ce service permettant d’interagir avec ses spectateurs. De la à faire un concert où les spectateurs votent pour la prochaine chanson ou demande une dédicace il n’y a qu’un pas. Reste à gérer la modération, la c’est plus ou moins bien fait suivant les sites.

Maintenant j’ai plus qu’à trouver une bonne caméra, un bon micro, faire quelques tests et si vous suivez le facebook ou le twitter de Ben ou moi-même y’aura ptet un truc à voir le 11 mai prochain

A quand le JUG sur justin.tv ;)

SIlverlight et Expression Blend

Posted by on Samedi, 27 mars, 2010

J’ai eu l’occasion hier de participer à une journée d’initiation à Silverglight en partenariat avec Microsoft et Regard.net animée par Eric Ambrosi. Il s’agissait essentiellement d’une journée de découverte par la pratique des outils de la suite Expression, en particulier Expression Blend.

Cette suite permet d’ établir le lien entre les phases de design et d’implémentations. Elle introduit également un nouveau type de profil que Eric appelle le “designer technique”. En effet il ou elle doit posséder la sensibilité artistique pour pouvoir concevoir et animer une interface utilisateur mais également la casquette technique pour interagir avec les composants (connaitre leur constituants, leur propriétés…)
Rappellez vous Seb et moi même avons souvent abordé le manque qu’il y avait dans le workflow de la conception à l’implémentation. En effet il existe un vide logiciel entre les outils de design et les environnements de développement

Adobe y répond avec Catalyst.

Catalyst permet de commencer un projet en partant du travail du designer (photoshop, illustrator…). On peut ainsi animer les calques et créer de véritables composants. Dans l’idéal l’ingénieur récupere ainsi les vues pour y pluger son code métier.

J’ai été relativement impressionné par l’avance de microsoft sur ce type de d’outils. Blend est en effet relativement complet et permet

  • la conception des interfaces (mise en place des composants modifications de leur propriétés, créations de ressources réutilisables ….)
  • la conception d’animations (enregistrement sur une timeline des transitions au niveau d’un ou plusieurs composant…)
  • la conceptions d’états (gestion des propriétés d’un ou plusieurs composants  au seins de différents états)
  • l’utilisation de source datas générées pour simuler le comportement de l’interface…

A tout moment le fichier xaml généré peut être ouvert dans visual studio pour permetre de travailler sur le code behind en C#.

Bref au final je pense que Adobe et Microsoft vont dans la même bonne direction en proposant un expérience utilisateur très performante, visuelle et en offrant des solutions pour faciliter leur mise en place.

PS: Au final j’en ai profité pour tester en live Surface. Bluffant……

Back from MAX 2009

Posted by on Mardi, 20 octobre, 2009

Aujourd’hui j’ai assisté à la session Back from MAX 2009Yan de Baao, Thibault et  Michaël nous ont parlé des dernières annonces du Max 2009 avec en vrac :

  • les nouveautés de flex 4 et de flash builder 4 (amélioration de la coopération entre spark et halo, rajout de propriété style aux composants spark,  renommage de composants…)
  • LiveCycle Data Service3 et le model driven development (je reviendrait dessus)
  • LiveCycle Collaboration Services (ex projet Cocomo)
  • Et la news passée inaperçue….Flash sur l’iphone

Des ateliers thématiques permettaient de préciser ces différents sujets. J’ai assisté au 2 ateliers suivants :

Flash Catalyst

Il s’agissait de présenter les nouveautés apportés par la Béta 2. Au programme :

  • Plus d’effets et de transitions
  • Un nouveau composant scrollable
  • La possibilité d’exporter le résultat en Air

La démo est toujours aussi bluffante mais je suis de plus en plus partagé sur l’apport de Catalyst sur de grands projets. Tout d’abord la version actuelle ne permet pas des allers/retours entre catalyst et flash builder ce qui la rend inutilisable. (même si ce défaut devrait être corrigé dans la 1.0… ou pas…). J’étais pourtant plein d’espérances pour ce projet qui est le chainon manquant entre le designer et le développeur. Je reste convaincu que c’est un outils de prototypage excellent mais je suis septique pour la communication Catalyst/flex. J’ai hâte de l’éprouver….

LiveCycle Data Services 3

Michaël nous a présenté  LCDS avec:

  • le remoting (blazeds)
  • le messaging avec un push en temps réel (super…)
  • la génération de pdf
  • Et surtout le model-driven development

L’idée est de confier au modèle un maximum de responsabilités. A partir d’une source de données un modèle est déployé avec une vue particulière dans Flex builder. L’ensemble des services et value object sont générés et accessibles dans la vue designer. De là on peut:

  • relier les données à une datagrid par simple drag and drop
  • créer des formulaires crud en 2 clic
  • paramétrer des filtres ou des conditions directement au niveau du modèle

En java la synchronisation des données est assurée par LCDS.

Idéal pour réaliser une application CRUD (simple)  en trois clic…

Et pour finir cette journée, un super buffet,des discussions techniques, des rencontres, des goodies….