Le blog d'Alti Expertease

jeudi 29 mai 2008

draggable applets (en JavaFX script pour l’exemple)

Une des nouveautés (introduite par java6 update 10 et le nouveau plug-in d’applet) ayant provoqué beaucoup d’intérêt à JavaOne est de pouvoir exécuter une applet aussi bien dans le browser qu’en dehors du browser, en la drag and dropant. Le but de cette nouveauté est de fournir une nouvelle façon de déployer une application depuis internet (drag and drop d’une application s’exécutant dans le browser vers le desktop) et d’unifier le développement des applications, qu’elles s’exécutent dans le browser (applet) ou en dehors du browser (desktop application).
Bon je sais comme ça, ça n’a pas l’air très sexy…
Alors je vous ai fait un petit screencast de la chose.

Le scenario du screencast
Dans ce screencast, je commence par exécuter une applet dans le browser de la façon la plus classique qu'il soit…
puis, tout en continuant à s’exécuter, je la drag and drop vers le bureau pour qu’elle s’exécute en dehors du browser. A ce moment, l’applet s’exécute comme une application desktop et le fait de la fermer va la faire retourner dans le browser.
Je recommence le drag and drop de l’applet et je ferme le browser, l’applet en mode application desktop continue de fonctionner et me propose de créer un raccourci sur le bureau.
Je ferme l’applet et je la relance comme une application desktop (Java Web Start) normale à partir du raccourci. Puis je relance l’applet dans le browser pour montrer que les deux peuvent fonctionner ensemble.
En plus du nouveau mode de déploiement, ce petit scénario montre comment on peut exécuter la même application aussi bien dans un browser que en dehors et ce sans rien changer au code de l’application, ni à rien d’autre du reste.

Maintenant comment ca marche tout ca …

Lire la suite

mercredi 28 mai 2008

Google Web Toolkit

GWT - Présentation du framework AJAX de Google.

Lire la suite

jeudi 22 mai 2008

Silverlight 2 et la sérialisation XML

J'entends régulièrement dire -- à tort -- que la sérialisation XML avec Silverlight 2 Beta 1 n'est pas possible, c'est pourquoi j'ai voulu faire ce petit article :)
Pour sérialiser vos objets en XML il suffit d'ajouter dans les références de votre projet l'assembly "System.Xml.Serialization":

Ensuite déclarez par exemple votre classe à serialiser de la manière suivante:

public class Test
{
    [XmlAttribute]
    public string Id { get; set; }
    public int Count { get; set; }
    public string Name { get; set; }
}

Seules contraintes: votre classe doit avoir au moins un constructeur par défaut (ou pas de constructeur du tout) et les propriétés à sérialiser doivent être accessibles en lecture/écriture (ces contraintes n'ont rien à voir avec Silverlight). Libre à vous d'utiliser tout l'armada de sérialisation XML classique (XmlAttribute, XmlIgnore, XmlRoot, etc.). Imaginons ensuite par exemple le code suivant:

public partial class Page : UserControl
{
    public Page()
    {
        InitializeComponent();

        var test = new Test { Id = "titi", Name = "toto", Count = 42 };
        string xml = Tools.XmlSerialize<Test>(test);
        Console.WriteLine(xml);
    }
}

Si on déclare la fameuse méthode de sérialisation de cette manière...

using System;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.Serialization;

namespace Alti
{
    public static class Tools
    {
        public static string XmlSerialize<T>(T obj)
        {
            var s = new XmlSerializer(typeof(T));
            var stream = new MemoryStream();
            s.Serialize(stream, obj);
            stream.Position = 0;

            var buffer = new byte[stream.Length];
            stream.Read(buffer, 0, (int)stream.Length);

            var utf8 = new UTF8Encoding();
            return utf8.GetString(buffer, 0, buffer.Length);
        }
    }
}

...et qu'on prend la peine de lancer l'application, la magie opère :

<?xml version="1.0" encoding="utf-8" ?> 
<Test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema" Id="titi">
    <Count>42</Count> 
    <Name>toto</Name> 
</Test>

[EDIT] Si les namespaces vous irritent (comme moi), faites plutot:

var ns = new XmlSerializerNamespaces();
ns.Add(string.Empty, string.Empty);
s.Serialize(stream, obj, ns);

ce qui donne:

<?xml version="1.0" encoding="utf-8" ?> 
<Test Id="titi">
    <Count>42</Count> 
    <Name>toto</Name> 
</Test>

Hope this helps !

Aurélien

mardi 6 mai 2008

News JavaFX Script et Mobile

Pour JavaOne le site openJFX fait peau neuve et le site javafx.com est créé. Pour l’instant, Javafx.com contient une présentation de JavaFX, des vidéos de démos présentées à JavaOne et une preview du SDK JavaFX.
Pour avoir accès a la preview du SDK, il faut s’enregistrer et on doit vous recontacter rapidement…
Je viens de m’enregistrer…
Je vous raconterai la suite :)

Sinon, la release 1 du SDK pour le browser et le desktop sera disponible à l’automne 2008 et la release pour les périphériques mobiles (JavaFX mobile) au printemps 2009.

lundi 5 mai 2008

JavaFx Script et les animations

Dans un post précèdent Aurélien vous a parlé des animations avec Silverlight de Microsoft. Du coup j’ai laissé tomber mes autres exemples d’anim JavaFX Script en cours pour vous montrez comment on réalise la même chose en JavaFX Script et ce pour une application Stand Alone ou dans le browser et ce aussi bien sous Windows, Linux que Mac OS

Lire la suite

vendredi 2 mai 2008

[Paris JUG] Programme du prochain Paris Jug du 13 Mai

1. Productivité des développements Java 2. Maven à la demande

Lire la suite

Alti – Expertease

Crée en 2005, l’entité ALTI Expertease rassemble l’ensemble des experts et architectes du pôle technologies d’Alti.
Fort d'une trentaine de consultants, ALTI Expertease accompagne les clients d’Alti dans le choix et la mise en œuvre de technologies de plus en plus complexes.