Silverlight 4 beta: Ca bouge chez Microsoft
Hasard (ou pas) du calendrier, 2 jours après la sortie de Adobe Air 2 et Flash Player 10.1 beta, Silverlight 4 sort en beta lui aussi.
Voir l'annonce officielle de la sortie de Silverlight 4 en version beta sur le site de Microsoft
Pour ceux qui ne connaissent pas Silverlight (si on est pas développeur, on peut facilement passer à côté), c'est un framework RIA proposé par Microsoft. Celui se place sur le même marché que Flex et Flash Player (Silverlight est lui exécuté sur un player du même nom). C'est le principal concurrent de Flex sur le marché des RIA, étant donné que GWT reste derrière et utilise une "logique" différente (technologie web JavaScript / Ajax générée par du Java) et que JavaFX est une grande blague.
De *très* nombreux sites / blogs font la comparaison des deux technologies de manière plus ou moins objectives entre Flex et Silverlight et le constat est souvent le même et la grande majorité du temps, Flex en sort vainqueur. Il faut quand même noter que Silverlight avait un train de retard par rapport à Flex (1 ou 2 ans) qu'il a tenté de rattraper à tambour battant. La preuve, Silverlight 4 beta sort alors que Flex 4 est lui aussi en beta.
Le but de cet article n'est pas de "tirer sur l'ambulance" (on pourrait en parler pendant des heures) mais plutôt de voir comment évolue la concurrence.
D'après ce que je peux lire sur l'article de Microsoft, Silverlight 4 va apporter de très nombreuses fonctionnalités. Notamment des choses qui nous paraissent assez banal quand on utilise Flash Player, la gestion de l'impression, de la webcam et du microphone (qui n'était pas ou partiellement géré en SL3) ou bien un composant DataGrid avec resize et classement de colonnes. Voici tout de même les points que je trouve intéressants:
- Avoir le même code compilé pour une application web et desktop grâce à CLR (.NET Common Runtime). De son côté, les applications Flex restent dans Flash Player. Quand on veut une application bureautique, il faut se tourner vers Adobe Air. Cette séparation n'est pas complètement stupide selon moi, je me demande vraiment comment cette unification est gérée en elle-même dans le code SL, des if() dans tous les sens ?
- Support du navigateur Google Chrome (et oui)
- Amélioration de leur composant DeepZoom qui est sympa (démo) mais qui, pour un framework applicatif, ne trouve pas vraiment sa place selon moi
- Support du multi-touch et des "gestures". Fonctionnalité qui sera présente dans Flex quand Flash Player 10.1 sera sorti.
- Support des "toats window" pour les applications bureautiques. Les "toasts" sont ces fenêtres qui apparaissent en base à droite de l'écran pour vous indiquer la connexion d'un utilisateur MSN par exemple. Il ne me semble pas que cette fonctionnalité soit présente de base dans Adobe Air. Il y a bien sûr des classes existantes qui permettent de le faire (je l'ai déjà mis en place) mais pas en natif.
- Pour les applications bureautiques vérifiées, la communication avec des applications comme Word, Excel et Outlook
Pour le reste, consultez l'annonce officielle (voir plus haut). On s'aperçoit que Silverlight arrive bientôt à la cheville de Flex avec même certains domaines dans lequel il serait meilleur (la vidéo d'après ce que j'ai compris).
Vous ne verrez pas de tutoriaux Silverlight sur flex-tutorial.fr tout simplement parce que je ne connais pas VB ni C# ni aucun langage .NET et puis il faudrait que j'installe les outils MS comme Visual Studio 2010 et Expression Blend alors que j'apprécie mon environnement Eclipse.
Pour plus d'infos sur SL, consultez le site officiel.
Tirons quand même sur l'ambulance …
Difficile de résister au troll Flex / Silverlight, surtout en tant que développeur Flex depuis plus d'un an (voire deux)… Lorsque vous visiterez le site officiel de Silverlight, passez très rapidement sur le showcase car certains applications Silverlight sont vraiment affreuses, voire très affreuses.
Juste au passage, ne regardez pas votre utilisation processeur quand vous utilisez par exemple WeatherLight car chez moi, le navigateur monte à 70% de charge processeur alors que l'application n'est pas utilisée. Le "bon" côté, c'est qu'une fois l'application WeatherLight fermée puis ré-ouverte, elle ne se charge même plus. Plus de problème de charge processeur donc ^^. Après quelques tests, cette montée processeur se reproduit pour de nombreuses applications Silverlight, même quand elles n'ont pas le focus.
Si vous n'avez jamais vu de code XAML / VB ou C#, je vous conseille de regarder une des vidéos présente sur le site de SL, comme par exemple:
Silverlight 3 Binding Validation
Le code est extrêmement verbeux (des dixaines de lignes contre quelques lignes de MXML) et vraiment pas intuitif, en tout cas pour quelqu'un qui a l'habitude de voir du code Java et ActionScript. Le système de validation est assez "spécial", il faut la faire soi-même en lançant des erreurs d'exécution depuis les setters des variables bindées. Si une erreur est lancée, le composant va afficher le tooltip d'erreur. Assez déroutant …
Voilà on pourrait rigoler joyeusement en montrant les statistiques de pénétration du player Silverlight ou en comparant les prix des IDE mais cela a été déjà fait tellement de fois qu'on va s'en passer
Articles similaires
- Microsoft Pivot Labs – Un concept intéressant
- Flex 3.5a SDK disponible (correction de l'auto-update Air)
- Adobe Edge Preview – Création de contenu HTML / SVG / CSS3 / JS
- Hero – Le premier build de Flex 4.5 dévoilé
- Flex User Group Lyon – Rendez-vous le Mardi 7 Juin avec LaFabrick + Concours!
Aucun trackbacks pour l'instant






19 novembre 2009
Salut.
Je voudrai corriger certaine erreurs, reconnait que tu es largement partisant. Travailles tu pour Adobe ?
1. Tu peux coder Silverlight en Javascript, tu ne connais rien à Javacript ?
2. Tu peux te passer des outils de microsoft pour faire une application SL var microsoft fourni tout les outils nécéssaire pour Eclipse (gratuitement contrairement à Adobe et son flex builder).
3. Silverlight n'est aucunement lié à .net, si ce n'est qu'il s'agit d'une implémentation en parralèle, ce qui procure l'avantage d'être compatible .net au niveau source (c'est là le vrai interet de silvelight) donc CLR != .net truc, mais Common Language Runtime (la machine virtuelle en somme)
4. Le XAML te parrait verbeux ? possible. pas intuitif ? ils sont vraiment tordus chez gro$$$oft D3V17
5. utilise Inkscape ou Illustrator qui peuvent exporter en XAML au fait
19 novembre 2009
Bonjour,
Ayant développé en Flex et en Silverlight, il assez drôle de voir certains de tes commentaires. Certes Silverlight tente de rattrapper son retard sur Flex, autant Silverlight 2 apportait déjà des fonctionnalités qui manquaient à Flex 3 ! … simple exemple : il était où le Binding à double sens ?
On pourrait également parler du manque de support du multi-threading par le Flash Player… ou comment se retrouver avec une application qui freeze lors d'un traitement lourd…
Enfin, comme l'a dit Antoine, pas besoin de payer un IDE Visual Studio pour développer en Silverlight, des alternatives gratuites existent.
Après je ne crache pas sur Flex, j'aime même beaucoup. La syntaxe est en effet bien moins verbeuse que celle de SL, les composants fournis dans le SDK de base sont nombreux et de bonne qualité, l'intégration avec un serveur Java ou PHP est aisée, …
Je trouve juste très maladroit de ta part de prendre position sur une technologie plutôt qu'une autre alors que tu avoues toi même ne rien connaître au monde .Net
Cordialement,
19 novembre 2009
Thx pour ces précisions.
Non, je ne travaille pas chez Adobe mais je suis effectivement largement partisan de Flex.
1) Pour le JavaScript, je ne dirai pas que je connais rien mais je ne m'y connais pas assez pour un développement pro. Et puis il y a beaucoup de trucs qui me gênent au niveau du langage. Je n'ai passé ma vie dessus mais quand MS donne des exemple sur SL, il n'utilise jamais de JS…
2) Tous les tutoriaux et autres vidéos que j'ai vu sur le net utilisent les produits Microsoft, (un peu comme la majorité des tutoriaux Flex assument une utilisation de Flex Builder). Ils ne tirent vraisemblablement pas vers l'utilisation de solutions basées sur eclipse.
3) Ok pour le CLR, dailleurs, si tu peux m'éclairer sur la manière par laquelle on peut gérer une application à la fois web et à la fois sandboxed, je serais très curieux de savoir (avec un lien ou une petite explication)
4) Je ne suis pas un anti-microsoft, loin de là (je suis plus réticent à l'utilisation de Linux qu'à Windows). Le fait est que le XAML ne parait pas plus verbeux que le MXML, il est plus verbeux.
5) J'ai un Illustrator CS3 et je ne vois nulle part d'export XAML, peut être il faut la CS4.
Voilà
Fabien
19 novembre 2009
@Brice: Vu la gestion de la mémoire sur les applications du showcase dont je parle dans ce post, on peut se demander où se trouve l'amélioration des performances. Mais je suis d'accord, un système de Thread dans Flash Player serait un grand pas en avant ( encore plus pour le runtime Air) car les solutions détournées ne sont pas top.
Les remarques que je fais ne sont pas directement tournées vers le monde .Net, elles restent spécifiques à Silverlight (XAML reste verbeux par exemple).
Fabien
19 novembre 2009
en tant que développeur Flex et développeur occasionel silverlight,j'ai un avis assez impartial sur ces technologies ^^
On va mettre tout le monde d'accord déjà sur le fait que javaFX c'est bien une énorme connerie ! Le prochain que je vois utiliser cet immondis binaire il a le droit à une tarte :p
Quand on regarde Silverlight et Flex, on ne peut pas diriger le débat uniquement sur les avantages et inconvénients techniques de l'un ou l'autre.
Pourquoi ? par ce que selon le projet, on aura besoin d'une petite spécificité que l'un a, et pas l'autre. Donc à part un tableau comparatif sur les possibilités de chacun le débat ne servira à rien.
Par contre ! Je ne sais pas ce qu'il en est de vous, mais avez vous mené un projet flex et un autre projet silverlight EN EQUIPE ?
C'est là que l'on se rend compte des grandes différences entre ces 2 technologies !
Et là, je ne travail ni pour adobe et je ne suis pas non plus anti-microsoft, mais travailler en projet pour une application flex, c'est vraiment mieux sur tous les plans !
- la communauté adobe est plus importante
- l'intuitivité du language mxml fait que le graphiste de l'équipe comprend très bien la problèmatique du développeur
- via adobe catalyste il n'y a même plus de problématique entre le dévellopeur et le graphiste (c'est pas négligeable ^^)
- des ancien projets flash peuvent plus facilement être intégré dans des applications flex
- il y a bien plus de package offrant de nouvelle possibilité à flex (api,3d,framework…)
en fait je pourrai continuer longtemps ma liste, vous pouvez toujours ne pas être d'accord, mais c'est vraiment plus facile de mener à jour un projet flex qu'un projet silverlight. Si vous ne comprenez pas, c'est que vous n'avez pas testé les 2
19 novembre 2009
@frangy: Effectivement, là où je travaille, on a tenté de faire une application Silverlight. Peu de tutoriaux étaient présents sur le net et la plupart visaient Silverlight 2. Apparement, les ressources visant Silverlight 3 se faisaient rare (provenant de la communauté de développeurs et pas de MS directement).
Merci d'avoir partagé ton avis
Fabien
20 novembre 2009
Salut,
Perso j'ai essayer de faire un peu de prospection côté SL pour mon taf, d'ailleurs maintenant on fait un peu de dev SL.
Mais je rejoint tout de même frangy. Le développement flex reste encore pour moi beaucoup plus "professionnels". Et effectivement, la communauté adobe c'est un vrai bonheur.
Sinon, les perf… on critique dans tous les sens les perf de flash sur mac, qui font ronfler les ventilateurs… ok, reste du boulot là dessus, mais tout rentre dans l'ordre une fois le player flash fermé, et j'attend beaucoup de la 10.1
Avec SL c'est pas compliqué, je peux relancer mon navigateur à chaque fois, les ressources n'ont pas l'air d'être libérée et mes ventilos tirent la langue.
20 novembre 2009
@Vincent N : effectivement adobe fait de grosses promesses concernent le nouveau flash player, concernent la rapidité et la gestion de la mémoire.
Je ne serais pas étonné que d'anciennes applications considérés comme lourdes deviennent de belles applications bien légères ^^
7 décembre 2009
Salut,
Ce qui est marrant aussi avec l'application weatherlight, c'est qu'elle a surement une fuite mémoire… avant le lancement de l'appli, j'avais 65% de RAM occupée (sur 3,25Go) et ensuite on voit rapidement la consommation augmenter, pour redescendre d'un coup à 65-65%… et tout ça en boucle jusqu'à ce que le quitte l'application
Sinon, pour l'environnement de dév, en effet on peut rigoler des prix des IDEs… Visual Studio Express Edition : 0€, gratuit, donné,… Flex Builder €€€?
J'aurai préféré que Flex Builder soit basé sur Visual Studio, ça supprimerait tous les problèmes et lourdeurs d'Eclipse.
J'utilise Flex pour une seule raison : le player Flash qui est dispo presque partout…
6 mars 2010
Perso, bossant sous mac, je suis bien content que Flex soit sous Eclipse, j'ai cherché à me renseigner sur l'offre Silverlight, mais j'avoue être un peu perdu sur le site de Microsoft, Blend, Expression, Silverlight qui est à la fois le player et le type d'applications, .NET, XAML …… bref, je n'ai toujours pas vraiment compris ce qu'il faut utiliser comme IDE et comme langage pour réaliser des applications Silverlight comme on le fait avec Flex + Flash (environnement auteur)
Décidément, Microsoft a des soucis dans sa communication et a du mal à faire simple je trouve
Le bon point de Silverlight c'est qu'il va rassurer les patrons puisque c'est microsoft et que les développeurs .NET peuvent l'utiliser sans aucune formation (pour les boites qui ont déjà ces profils)
Comme il est dit plus haut, le player 10.1, s'il tient vraiment ses promesses devrait apporter une réponse à beaucoup de critiques ….