Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Il est toujours passionnant de decouvrir une nouvelle plate-forme. C'est bien entendu le cas pour Windows Phone 7. Mais au-dela de la passion technique, j'ai le sentiment qu'il s'agit d'un coup de maitre en termes d'ergonomie (tres fluide et epuree) et de reponse fonctionnelle, ou plutot d'anticipation fonctionnelle. Nous en reparlerons.

Sur le plan technique, la reussite est evidente : malgre quelques manques dans la premiere version (voir plus loin), Windows Phone s'appuie sur des technologies eprouvees : Windows CE, .NET, Silverlight, XNA, Direct3D, Blend, Visual Studio, etc. Mais le challenge se situe surtout au niveau du marketing car Microsoft repart de zero, et tout l'ecosysteme est a construire dans un contexte tres concurrentiel...

Windows Phone 7 exploite une version de Silverlight 3 (et non pas 4) specifiquement adaptee a la plate-forme. Il ne s'agit donc pas du Silverlight Mobile multiplateforme evoque a la PDC 2008, et dont on n'entend plus parler (mais qui serait toujours en chantier en partenariat avec Nokia).

Dans sa premiere version, Windows Phone 7 cible le grand-public (cela a ete maintes fois repete par les speakers du MIX), et l'objectif est de reussir le lancement. Les retouches et adaptations auront lieu ensuite. Il faut donc se contenter de ce qui est propose (il y a deja de quoi faire), et suggerer des ameliorations pour la suite, telles que :

  • le support de SQL CE dans Silverlight (SQL CE est present dans le systeme mais l'API n'existe pas dans Silverlight),
  • l'interop entre XNA et Silverlight pour realiser des extensions graphiques (par exemple un moteur de cartographie specialisee) ; cela offrirait une alternative aux extensions graphiques en code natif, qui n'est pas supporte ;
  • la possibilite de deployer une application sans passer par MarketPlace.

Un echange avec des representants de Microsoft sur le stand du MIX me donne bon espoir pour les 2 premiers points (qui seraient supportes dans des versions ulterieures a celle de cet automne). Mais pour le dernier point, il y a un blocage...

Pendant la redaction de ce post, j'ai installe les outils de developpement. J'ai pu tester le pilotage au doigt de l'emulateur au moyen de l'ecran tactile de mon Acer 1420P issu de la PDC09. Impressionnant. Voici par exemple un zoom fait au doigt sur une page du New York times dans Internet Explorer (copie d'ecran reduite) :

Hi from Vegas !

En resume [je corrigerai les accents a mon retour !], Las Vegas m'impressionne par sa demesure.

Ou que l'on aille, les itineraires traversent des salles bruyantes pleines de machines a sous et de tables de jeu.

Les decors, surtout a l'exterieur, se veulent grandioses et reproduisent ou s'inspirent de monuments mythiques. Entre autres, on retrouve la Tour Eiffel, l'Arc de Triomphe et l'Opera...

Le Grand Canyon n'est pas loin et permet de s'echapper, d'elargir l'horizon et de prendre conscience du desert environnant.

Retour au centre de conference feutre de l'hotel-casino Mandalay Bay (ci-dessus), pour assister aux workshops :

  • Silverlight 4, anime par Mike taulty et John Papa ; un tour d'horizon approfondi avec notamment une demo de l'utilisation de MEF pour realiser une application composee de modules telechargeables a la demande
  • ASP.NET MVC ; un tutoriel par Jon Galloway ; fichiers

Mes photos de Las vegas et du MIX (l'album sera enrichi au fil de la conference).

Présentation de la classe Perspective RelativeTransformer, qui permet d'appliquer successivement des opérations de déplacement, de dimensionnement et de rotation sur un Visual3D, en mémorisant sa position et sa matrice de transformation.

Perspective FX 1.0 est sorti, ou comment ajuster la luminosité, le contraste ou la saturation d'une image, et construire des effets personnalisés par un simple assemblage de filtres, sans avoir à maîtriser HLSL...

Exemple de correction de la saturation d'une image au moyen du filtre Saturator :

A cette question, justifiée au vu des spécifications de Silverlight 4 (capacité out-of-browser, COM automation, impression, full-trust, etc.), John Gossman a répondu assez directement : Silverlight si l'application est multi-plateforme et orientée Web, WPF pour bénéficier de la totalité du framework .NET sous Windows.

J'ajouterais que les limites du framework Silverlight sont similaires à celles du Compact Framework, en comparaison avec le framework complet. A prendre en compte avant de se lancer...

Au passage, pour les annonces sur la mobilité (Windows Mobile 7, Silverlight for mobile, etc.), il faudra attendre une prochaine conférence (MIX ?...).

Vous l’avez certainement remarqué, WPF n’est pas un sujet majeur à la PDC. En effet, la technologie est mature (3 ans), assez complète, et constitue dorénavant  une branche classique du framework .NET au même titre que d’autres. A ce stade, on se situe dans les optimisations et la communication des bonnes pratiques de mise en oeuvre, qui n’est pas directement dans les objectifs prioritaires de la PDC. Par ailleurs, l’accent est mis sur l’interop (avec Win32, Windows Forms ou Direct3D), utilisée par 70% des entreprises exploitant WPF.

L’équipe de développement WPF est cependant représentée à la PDC par une dizaine de personnes, venues pour animer des sessions, répondre aux questions  et recueillir du feedback. Mardi, j’ai pu assister à une réunion d’échange entre l’équipe WPF et une vingtaine d’utilisateurs, dont les principales préoccupations étaient  :

  • Le partage de code entre WPF et Silverlight,
  • Les performances,
  • Les outils de conception et de débogage XAML,
  • Le positionnement de WPF par rapport aux autres technologies graphiques de Microsoft.

Pour obtenir du conseil sur ces différents sujets, l’équipe WPF préconise d’utiliser les forums, qu’elle suit de très prêt.

La liste des sessions WPF a été publiée par Rob Relyea.

Pour cette journée de pré-conférence, j’ai assisté au "Windows 7 Developer Boot Camp". La première partie était consacrée à la présentation des évolutions au niveau du noyau (sécurité, performances améliorées, meilleure gestion du multi-processeur, optimisations mémoire, consommation réduite). La deuxième partie était consacrée à l’ergonomie et aux APIs graphiques ou spécifiques à Windows 7 (natives et managées) :

  • Barre des tâches (miniatures, boutons, jump lists),
  • Multitouch,
  • Bibliothèques (regroupements virtuels de dossier),
  • Sensor & location platform (API unififée de gestion des capteurs, dont les dispositifs de géolocalisation),
  • Evolutions des APIs graphiques.

Ce dernier point, présenté par Michael Oneppo, m'a évidemment particulièrement intéressé. Il a confirmé une orientation qui se dessinait depuis quelques temps : pour répondre aux besoins de qualité et de performance graphiques, Direct3D s’impose au cœur du système. La version 10.1 est notamment capable de fonctionner avec des cartes graphiques compatibles DirectX 9, ou en rendu software en l’absence de matériel compatible. Les nouvelles APIs natives Direct2D et DirectWrite reposent sur Direct3D 10 et vont se substituer progressivement à GDI, qui sera maintenu au sein du système à des fins de compatibilité... Des techniques d'interopérabilité entre Direct2D/DirectWrite et GDI vont permettre une migration en douceur du parc logiciel.

Et WPF ?

Apparu en 2006, l'API managée WPF s'appuie aussi sur Direct3D (version 9). Alors quelle API utiliser ? Les APIs natives basées sur Direct3D 10 restent pour le moment des APIs bas-niveau, qui permettent un contrôle fin des fonctionnalités et des performances, et qui sont prévues pour être utilisées avant tout dans des applications C++ / COM. WPF est l'API graphique moderne pour .NET qui privilégie la productivité pour le développeur et le designer (pour le moment, aucun outil de design n'est annoncé pour Direct2D).

Un week-end pour récupérer du décalage horaire et s'imprégner de l'ambiance californienne, l'occasion de découvrir ou de revisiter certains lieux mythiques...

L'album PDC09

Compiler une application Silverlight en ligne de commande présente un intérêt pédagogique. Cette technique permet aussi de construire un générateur de code (comme Perspective FX). L'an dernier, j'avais rédigé à ce sujet un article sur Silverlight 2.0, je viens de l'adapter à Silverlight 3.0.

Les différences se résument principalement à des modifications de chemins :

  • chemin des bibliothèques (option /lib du compilateur, fichier .rsp),
  • chemin de la tâche MsBuild Microsoft.Silverlight.CSharp.targets (fichier .proj).

Ecrire un ShaderEffect pour Silverlight ou WPF requiert habituellement un certain investissement dans le langage HLSL, pas forcément compatible avec les priorités ou le profil d'un développeur .NET.

La bibliothèque Perspective FX permet de construire des classes d'effet personnalisées sans avoir à coder en HLSL. Un effet est défini par l'assemblage de filtres graphiques au sein d'un fichier XAML. Le code HLSL et le code du wrapper .NET des effets sont générés automatiquement, ainsi qu'un assembly que vous pouvez utiliser dans une application Silverlight ou WPF. Tutoriel



Un grand merci à Sébastien Reynier, MSP, pour sa collaboration ;-)

Mon livre sur Silverlight est paru hier :-)

Il s'adresse aux développeurs qui souhaitent réaliser des applications Internet riches pour Mac et PC : développeurs Web formés à .NET ou développeurs .NET formés au Web ! Les fondamentaux sont présentés en Silverlight 2 et 3, et un chapitre est dédié aux spécificités de la version 3. Les exemples de code, en C#, sont répartis en plusieurs applications qui exploitent la bibliothèque open-source Perspective for Silverlight.



Bonne lecture !
La version 1.0 de la bibliothèque Perspective for Silverlight vient d'être publiée. Elle contient des classes de dessin, contrôles et panneaux personnalisés, qui peuvent servir de source d'inspiration ou être utilisées telles quelles. Elle intègre aussi des classes qui facilitent le databinding, l'internationalisation, le chargement des assemblys et la navigation parmi les pages d'une application Silverlight 2 et 3.

Principales nouveautés :
Knob
BeeGrid
MayaEase

J'ai eu beaucoup de retours sympathiques sur la vidéo d'Isagri projetée lors de la pleinière développeurs des TechDays.

Isagri est éditeur de logiciels pour les professions agricoles et comptables. Une équipe de production de 150 personnes y développe des applications .NET pour les postes de travail (WPF et Silverlight), pour les serveurs (WCF, ASP.NET, SQL Server) et pour la mobilité (Compact Framework). Bref, plein de projets très intéressants :-)

La vidéo
Le site d'Isagri

Dans le même esprit expérimental et pédagogique que Perspective pour WPF, voici Perspective pour Silverlight :

  • chargement dynamique de paquet, assembly et pages Silverlight,
  • framework de navigation simple et efficace,
  • système de localisation utilisant les fichiers .resx et les assembly satellites de .NET.

Pour en savoir plus :

Pour diverses raisons, et notamment à des fins pédagogiques, il peut être utile de compiler du code Silverlight 2 en ligne de commande, en se passant de Visual Studio. Voici ma synthèse sur ce sujet.

Quelques photos des sessions vues hier, en attendant les vidéos officielles :

[Update 31/10/08] Ressources : video - pptx - Channel 9

[Update 31/10/08] Ressources : video - pptx - Channel 9

Et quelques images de la soirée Haloween à Universal Studio :

Les interfaces naturelles (NUI - Natural User Interface) sont au rendez-vous à la PDC.

Hier, ma session préférée était celle sur le développement Surface (Brad Carpenter, session PC17, photos), un concept de table interactive que j'avais évoqué il y a plus d'un an (ici) et qui devient réalité. Voici ses principales caractéristiques :

  • Interface tactile, et même multi-tactile (plusieurs doigts peuvent agir en même temps). Comme pour les Tablet PC, le système reconnait des gestes spécifiques : l'agrandissement d'une image se fait en posant puis en écartant le pouce et l'index sur l'image. La rotation de l'image s'obtient par une rotation des 2 doigts.
  • Interface sociale : on agit à plusieurs autour d'une table. L'interface est exploitable dans tous les sens, sur 360°. Des tables sont disposées à différents endroits dans le centre de conférence, et on y voit en permanence des groupes de personnes qui interagissent.
  • Interaction avec des objets physiques posés sur la table. Ces objets doivent être marqués par des tags graphiques connus du système. La photo ci-dessus montre une application de dessin utilisant une palette physique (spécialement aménagée !) posée sur la table.

L'API WPF est très cohérente avec le style de programmation WPF et les acquis Tablet PC. Les participants à la PDC peuvent obtenir en primeur le SDK, et acheter une unité Surface au tarif exceptionnel de 12500 $ !

Mais au Guitar Center sur Sunset Boulevard, j'ai trouvé une interface tactile encore plus chère : une Strat 63 à 90000 $ ! On va attendre que le dollar rebaisse...

Posté le mardi 28 octobre 2008 14:03 par odewit | 2 commentaire(s)
Classé sous : , ,

En ce jour de pré-conférence, j’ai assisté à la session de Charles Petzold sur les bases de WPF. Sa méthode pédagogique consiste à présenter de nombreux petits exemples, principalement en XAML, au moyen Xaml Cruncher. Cet outil, proche de XamlPad, permet d’enchaîner une succession de scripts XAML préalablement enregistrés. C'est une démarche rustique, sans exagération des possibilités de WPF, à laquelle j'adhère bien. Les exemples présentés sont originaux et efficaces. Ceux sur la performance des animations seront particulièrement utiles dans mon cadre professionnel.

La présentation était axée sur le code, et les seuls schémas montrés étaient un poster de l’arborescence des classes et une pile en carton représentant la précédence de chargement des élements WPF (ressources, styles, etc.). La session a duré 6 heures, et, de façon assez surprenante, l’exposé était intégralement lu.

Posté le lundi 27 octobre 2008 03:59 par odewit | 0 commentaire(s)
Classé sous : , ,

4h20 du matin. Complètement réveillé après avoir fait hier le tour du cadran et dormi seulement 3 heures… Rien d’autre à faire que traiter mes photos et de rédiger un billet.

Je suis venu à Los Angeles pour participer à titre professionnel à la PDC, un événement sympa qui marquera aussi mon retour chez les MVP.

Malgré des difficultés à l’enregistrement à cause des congés scolaires, le vol direct Air France a été un vrai plaisir comparé à mes précédents déplacements sur American Airlines avec des changements compliqués et fatigants. Champagne :-) repas correct et assez de temps pour choisir et voir 3 bons films.

Après mon installation à l’hôtel, j’ai terminé cette longue journée à Santa Monica en parcourant en famille Third Street Promenade, et en dégustant un repas mexicain. Une bonne immersion.

Ce nouvel article présente comment j'ai réalisé l'outil ImageToJpeg pour convertir en JPEG les fichiers RAW issus de mon reflex Nikon.

Les fichiers RAW contiennent les données brutes délivrées par le capteur. Ils constituent ainsi les clichés originaux, et ont la même valeur que les négatifs en photo argentique. Grâce à cet outil, je les convertis en fichier JPEG en spécifiant un taux de compression plus ou moins élevé en fonction de l'utilisation recherchée.

Plus de Messages Page suivante »


Les 10 derniers blogs postés

- [WF4] Un Binding Activity/ActivityDesigner qui passe mal? par Blog de Jérémy Jeanson le il y a 1 heure et 19 minutes

- MyTIC – SharePoint 2010 : déjà un mythe Microsoft ? par Le Blog (Vert) d'Arnaud JUND le il y a 6 heures et 7 minutes

- TechDays 2010 Genève : Retrouvez-moi pour une session sur la Haute disponibilité et le ScaleOut avec SQL Server par SQL Server vu par Christian Robert le il y a 23 heures et 17 minutes

- [MIX10] Keynote deuxième journée – Internet Explorer 9, Html5, Visual Studio 2010, OData par Atteint de JavaScriptite Aiguë [Cyril Durand] le 03-17-2010, 19:40

- Certifications beta .NET 4 par Kévin Gosse le 03-17-2010, 19:33

- [Mix 2010] – Microsoft Translator Technology Preview V2 par RedoBlog - The .NET Gentleman !!! le 03-17-2010, 18:53

- Lancement en Preview de Cyclone lors des TechDays 2010! par Blog de Frédéric Queudret le 03-17-2010, 16:30

- [WP7] Je ne veux pas d’un nouvel iPhone par Le blog de FremyCompany le 03-17-2010, 13:11

- [WF4] Pourquoi utiliser le ContentPresenter dans l’ActivityDesigner? par Blog de Jérémy Jeanson le 03-17-2010, 07:54

- [Mix 2010] – Telechargez Internet Explorer 9 en Preview ! par RedoBlog - The .NET Gentleman !!! le 03-17-2010, 00:58