# Wednesday, June 11, 2008

Impressions

Après plus de deux semaines d'utilisation des SP1 de Visual Studio 2008 et de .NET 3.5, je n'ai rencontré aucun problème. Pourtant j'ai fait une utilisation intensive de C#/WPF et aussi de C++ (natif).

Le truc qui ne fonctionne plus, c'est le debogage dans le code source de .NET. Forcément : le code source de .NET 3.5 SP1 n'est pas encore disponible. Il faudra sans doute attendre au moins la sortie de la version RTM de .NET 3.5 SP1.

Je n'ai pas pu utiliser Silverlight depuis deux semaines, car les extensions Silverlight 2 beta 1 pour Visual Studio étaient incompatibles avec VS2008 SP1. Mais ceci était indiqué et documenté. La beta 2 de Silverlight 2 qui est sortie le 6 juin fonctionne très bien avec Visual Studio 2008 SP1. Plus d'incompatibilité entre Silverlight et Visual Studio ! Je vais pouvoir continuer à m'amuser avec Silverlight avec mon fils.

.NET 3.5 SP1 était censé accélérer le chargement des applications WPF. Je n'ai pas spécialement remarqué de différence, disons que ce n'est pas flagrant. Mais ceci n'est qu'une remarque subjective. Ou alors je ne suis pas encore satisfait des performances de WPF. Allez, M. Microsoft, encore un effort !

J'aurais voulu tester les shaders en WPF/SP1, mais pas eu le temps. Faire des filtres graphiques qui utilisent la carte 3D, et utiliser ces filtres en XAML est une des raisons pour lesquelles WPF est prometteur, malgré ses défauts (de jeunesse). Une très bonne série d'articles ici sur la réalisation d'effets graphiques en utilisant l'accélération matérielle.

Desinstallation

La désinstallation de VS 2008 SP1 et .NET 3.5 SP1 est laborieuse, mais on y arrive ! Pour revenir à VS 2008 standard, il faut successivement désinstaller tout ça (la liste est dans le fichier readme.htm de Visual Studio 2008 SP1) :

Uninstall the following list of updates, in the order shown:

  1. Microsoft Visual Studio Team System 2008 Team Suite - Service Pack 1 (KB945140)
  2. Microsoft Visual Studio Team System 2008 Team Suite - Service Pack 1 (KB948560)
  3. Microsoft Visual Studio Team System 2008 Team Suite - Service Pack 1 (KB947888)
  4. Microsoft Visual Studio Team System 2008 Team Suite - Service Pack 1 (KB948484)
  5. Microsoft Visual Studio 2008 Remote Debugger - Service Pack 1 (KB945140)
  6. KB945140 under Visual Studio .NET Prerequisites
  7. Update for WebDesigner 2007 (KB945140)
  8. Windows SDK for Visual Studio 2008 SP1 KB946729
  9. Windows SDK for Visual Studio 2008 KB946733
  10. Microsoft SQL Server Compact 3.5 SP1 Design Tools English
  11. Microsoft SQL Server Compact 3.5 SP1 English
  12. Microsoft SQL Server Database Publishing Wizard
  13. Visual Studio Tools for the Office system 3.0 Runtime Service Pack 1 Language Pack (KB949258)
  14. Visual Studio Tools for the Office system 3.0 Runtime Service Pack 1 (KB949258)
  15. Visual C++ 2008 IA64 Runtime - (v9.0.304xx)
  16. Visual C++ 2008 x64 Runtime - (v9.0.304xx)
  17. Visual C++ 2008 x86 Runtime - (v9.0.304xx)

Après avoir désinstallé tous ces éléments, il ne reste presque plus rien de Visual Studio ;). Il faut réinstaller Visual Studio en utilisant l'option "réparer l'installation". Mais ça marche.

Pour désinstaller .NET 3.5 SP1 beta, c'est plus simple. Il suffit de désinstaller "Microsoft .NET Framework 3.5 SP1 beta". Facile. Le problème c'est qu'après il n'y a plus de framework .NET 3.5. Il faut en réinstaller une version normale.

 

 11 June 2008, 01:52
# Wednesday, May 28, 2008

1. La première étape de l'apprentissage de WPF, selon Josh Smith (un gourou de WPF), est la suivante : retirez votre cerveau de votre crâne, faites le tourner de 180°, puis remettez-le en place (voir Figure 1).

 

Avant d'apprendre WPF, retournez votre cerveau
Figure 1 : Prérequis avant d'apprendre WPF

Il est vrai que pour nous qui connaissons la programmation d'applications clientes "classiques" (type Win32, MFC, ou même Winforms), l'apprentissage de WPF provoque divers types d'émotions qui vont de l'étonnement à l'incompréhension, en passant par l'admiration ou la colère. La programmation WPF est... hmmm... comment dire... différente.

 


2. La deuxième étape est d'acheter un livre (celui que je préfère est celui d'Adam Nathan, aucun livre correct en français encore), de consulter la documentation de WPF sur MSDN, et de regarder des articles, tutoriels, vidéos sur CodeProject, sur des blogs, ou sur www.windowsclient.net. C'est un long processus : WPF est un environnement de programmation tout neuf, et tout est à découvrir ! Il y a tellement de nouveaux concepts à apprendre.

Comptez plusieurs semaines pour cette deuxième étape (pour la première étape, le délai peut être infini).

A l'issue de cette deuxième étape, vous savez comment faire des petits programmes qui mettent en oeuvre deux ou trois fonctionnalités de WPF. Vous savez créer une fenêtre avec un bouton 3D contenant une vidéo. Vous savez comment récupérer des images sur un site Web, et en afficher les miniatures. Vous pouvez même vous mettre rapidement à Silverlight, et porter votre petit bout de code sur le Web. Idéal pour épater vos collègues. Ajoutez en plus : "bah, j'ai fait ça en une soirée".

Mais mais mais... pas question encore de créer une application. A l'issue de cette deuxième étape, les fonctionnalités de WPF, c'est comme les débris de verre cassés chez un vitrier. Un par un il sont clairs, mais tous ensemble, ils sont opaques.

 


3. La troisième étape - délicate - est de tester chaque fonctionnalité de WPF dont on peut avoir besoin, dans une étude de faisabilité. Pour vérifier si :

  • elle fonctionne correctement, comme indiqué dans la documentation
  • elle est rapide (ou pas trop lente)

Il existe malheureusement encore des domaines mystérieux et inconnus de WPF. Ou d'autres lieux où il vaut mieux ne pas s'aventurer si l'on veut conserver des performances correctes. Tout ceci n'est écrit nulle part, et si vous ne le vérifiez pas, vous ne le saurez pas.

Oui, WPF est une technologie très jeune et très prometteuse, mais elle a les défauts (bugs) de sa jeunesse.

Un exemple parmi d'autres, les bitmapeffects sont parfois très lents et, par conséquent, souvent inutilisables. Mais dans le SP1 de .NET 3.5 (qui vient de sortir en béta), ces bitmapeffects ont été totalement réécrits pour profiter de l'accélération matérielle de la carte graphique. Ils sont devenus très rapides ! Surprise surprise...

 


4. La dernière étape est d'apprendre comment créer des application WPF. Imaginez que votre boss/client vous dise : "bon, ce nouveau projet, là, finalement on va le faire en WPF plutôt qu'en C++/MFC (ou Winforms, ou autre)".

Les MFC proposent nativement une architecture d'application document-vue. Elle a le mérite d'exister et de structurer le développement d'application. Avec WPF, s'élabore une structure similaire, l'architecture modèle-vue-machin. Machin ?!

(

Le premier livre sur les design patternsPetite parenthèse sur les design patterns, au cas où. Les design patterns (ou shemas ou patrons de conception en français... ah quelle drôle de langue que le français) ont été décris en 1995 dans un livre culte : "Design Patterns - elements of reusable software". Les design patterns sont d'excellents moyens de formaliser des problèmes classiques de conception de logiciels, et d'apporter une solution. Pourquoi réinventer la roue à chaque fois, alors que d'autres architectes logiciels, d'autres programmeurs, se sont déjà cassés les dents neurones sur des problèmes de conception de logiciel ?

Tout ça pour dire que, en 1995, à l'heure de gloire des MFC, on se passait de ces shemas. Mais maintenant il est impensable qu'un programmeurs, codeur, ou architecte logiciel ne se jette pas la tête la première dans ces patterns, avant de commencer quelque logiciel que ce soit.

Un excellent livre sur les design patterns, malheureusement épuisé en français

)

En 2005-2006, avant même la sortie de WPF, deux gars de chez Microsoft, John Gossman et Dan Crevier, se sont posé la question de savoir comment architecturer une application WPF. Ils ont inventé le pattern Model-View-ViewModel, qui est décrit sur le blog de John Gossman ici puis , ainsi que sur le blog de Dan Crevier. Plus récemment, Josh Smith a écrit une très bonne synthèse sur codeproject. Avec un brin de malice et de réalisme, le Dr WPF appelle ce pattern Model-View-Poo.

En gros, le pattern Model-View-ViewModel (Modèle-Vue-Machin) profite de la possibilité offerte par WPF de séparer facilement le code et les données d'une part, et l'interface utilisateur et l'affichage des données d'autre part. Ce pattern découpe une application en trois parties :

  • le modèle (Model) : les objets métiers, le code, les données, la logique et les algorithmes du programme. Le modèle est totalement indépendant de l'interface utilisateur, et de sa présentation à l'utilisateur.
  • la vue (View) : la présentation à l'utilisateur des données et des résultats des traitements. C'est l'interface utilisateur, et elle contient des fenêtres, des contrôles, ... Elle est complètement séparée du modèle.
  • le machin (ViewModel, ou Poo) : permet aux deux parties ci-dessus de communiquer. Un pont entre les deux mondes que sont le modèle et la vue. Le machin demande par exemple la mise à jour de l'affichage. Ou bien commande le démarrage d'un nouveau calcul, ou la mise à jour de données.

Bien que le machin (poo) qui relie le modèle et la vue ne soit pas toujours parfaitement décrit ni organisé, le but du shema Modèle-Vue-Truc est déviter que vos applications WPF ne ressemblent à ceci :

Code spaghetti

Pour aller au delà du simple shema modèle-vue-machin, Microsoft met au point une méthodologie de développement d'application WPF, appelée Prism. Une présentation du concept est effectuée par un membre de l'équipe de Prism. Des conseils, stratégies, design-patterns, exemples et guides font partie de ce kit de survie à l'usage des développeurs d'applications WPF. Ou plutôt des architectes WPF. Ces outils sont destinés à faciliter le développement d'applications WPF conséquentes. Prism n'est pas terminé, mais des préversions sont déjà disponibles sur codeplex. Il faut que je regarde ça de plus près.

Prism, méthodologie de développement WPF
Prism : méthodologie de développement WPF


On l'aura compris, la connaissance technique de WPF, de ses contrôles, styles, objets, etc, n'est que la première des étapes de l'apprentissage de WPF. Cette étape est bien décrite sur internet avec des tutoriels, des articles, des webcasts, etc. Il existe aussi de nombreux livres techniques (essentiellement en anglais).

Par contre, cela ne suffit pas pour créer et architecturer de vraies applications. Les shemas, les design patterns, les "guides de bonnes pratiques" sur la manière de combiner les éléments de WPF et construire des logiciels commencent à peine à pointer le bout de leur nez. Il reste encore beaucoup à faire dans ce domaine. La jeunesse de WPF (un an !) explique sans doute le manque de maturité dans ce domaine. A titre de comparaison, les MFC proposaient il y a 15 ans (!) une implémentation automatique du shema Document-Vue, avec un assistant qui générait le squelette de l'application selon ce design pattern. Ce shéma document-vue est un ancêtre du Modèle-Vue-Machin de WPF. Mais ce dernier est encore bien flou...

Bref, développer une application WPF, c'est un peu comme partir à la conquête du Far West il y a 150 ans. C'est une aventure.

 

Mise à jour : John Gossman (qui a géré le développement de Expression Blend en WPF) vient d'écrire un article intéressant sur le sujet : PresentationModel and WPF, dans lequel il écrit : "WPF is still so new that we still don't know all the best practices and techniques..."

Tags  | 
 28 May 2008, 23:42
# Saturday, May 17, 2008

L'article de Scott Guthrie présente une longue liste de nouveautés apportées par ces deux SP1. Mais il ne dit pas tout, la preuve :

1. D'abord l'icône de Visual Studio a changé : il y a un petit 9 dessus maintenant !

2. Deuxième constatation : tous les paramètres de l'environnement sont réinitialisés ! Configuration, dossiers "Include" ou "Lib" du compilateur C++, raccourcis clavier, ... il faut tout reparamétrer ! Je ne sais pas si j'ai fait une erreur ou si c'est un bug de la version beta...

3. Le designer WPF (ex Cider) a bien changé : il dispose maintenant d'un éditeur d'événement. Il suffit de sélectionner un objet WPF, en mode design ou en XAML, et la liste des événements disponibles pour cet objet s'affiche. On peut trier les événements par ordre alphabétique, ou bien par thème. Cela manquait !

Une autre amélioration très pratique est la possibilité d'effectuer un glisser-déplacer depuis la barre d'outils des contrôles WPF, vers une fenêtre WPF en mode design, aussi bien que vers le code XAML.

A suivre...

Tags  | 
 17 May 2008, 00:31
# Friday, May 16, 2008

Trop tentant d'installer ces dernières versions de VS 2008 et de .NET 3.5, je n'ai pas pu résister. Ce qui est dit de ces mises à jour de VS2008 et .NET 3.5 sur les blogs de Scott Guthrie et Tim Sneath est alléchant.

Attention ! N'installez pas ces Service Packs si vous développez pour Silverlight 2. Le SP1 de .NET Framework 3.5 est incompatible avec les outils de programmation de Silverlight 2 beta. Il faut attendre quelques semaines pour qu'une nouvelle version de l'extension "VS 2008 Tools for Silverlight 2" compatible avec .NET 3.5 SP1 soit disponible.

Ce sont des versions béta. Et un certain nombre de précautions doivent être prises avant d'intaller la bête.

1. Sous Vista, il faut installer Vista SP1 au préalable.

2. Si vous avez installé les extensions "VS 2008 Tools for Silverlight 2 Beta1" pour faire desprojets Silverlight avec VS 2008, il faut le désinstaller. .NET 3.5 SP1 ou Silverlight 2, il faut choisir !!

Vous pouvez aussi désinstaller "Silverlight 2.0 SDK Beta1", il ne fonctionnera plus avec VS2008 SP1.

Par contre, gardez évidemment le runtime de Silverlight.

3. Il faut désinstaller une ou deux mises à jour de Visual Studio 2008. Pour cela, cliquer sur "Afficher les mises à jour installées", puis désinstallez les mise à jour de Visual Studio KB949325, et KB944899.

Si vous ne désinstallez pas ces mises à jour, le programme d'installation des Service Packs ne fonctionnera pas.

4. Les versions de Expression Blend antérieures au 9 mai 2008 ne fonctionneront plus avec .NET 3.5 SP1. Poubelle ! A désinstaller ! Même la dernière version 2.5. Heureusement, il existe déjà une mise à jour de Blend 2.5 : elle porte le même nom, "Expression Blend 2.5 March 2008 Preview", mais son numéro de version est 2.1.1113.

5. Installez Visual Studio 2008 Service Pack 1 Beta

6. Installez .NET Framework 3.5 Service Pack 1 Beta

7. Installez Expression Blend 2.5 March 2008 Preview Refresh v2.1.1113

8. Et voilà !

 

 16 May 2008, 16:40
# Tuesday, April 08, 2008

official beijing olympics logo

 

Tags
 8 April 2008, 23:28
# Monday, April 07, 2008

Sur un dossier skydrive (5 Go de stockage gratuit en ligne sur skydrive.live.com !), j'ai mis le runtime des MFC90 avec feature pack RTM, et des exemples compilés. Cliquez sur le dossier Skydrive ci-dessous pour télécharger le runtime MFC90 (un ZIP de 2,5 Mo contenant MFC90U.DLL, MSVCM90.DLL, etc.), puis les exemples (des ZIP de 150 Ko à 1 Mo contenant chacun un fichier EXE) .

J'ai aussi mis un exemple qui n'a pas besoin du runtime des MFC pour s'exécuter, puisque ce runtime est inclus statiquement dans le fichier EXE. Le fichier EXE est plus gros, forcément. Le ZIP fait 1,7 Mo, et contient un seul fichier EXE indépendant :

Pourquoi avoir mis quelques exemples en téléchargement ? Juste pour ceux qui n'auraient pas forcément Visual Studio, ou pas le temps d'installer le Feature Pack, mais qui auraient quand même envie de voir ce qu'on peut faire avec du bon vieux code C++ bien de chez nous crévindiou, et la toute dernière version des MFC.

Et de se dire : "wouah, c'est quand même vachement plus rapide qu'une appli .NET" :D

(au fait, WPF c'est Windows Pour les Fénéants ;), même si tout développeur est fénéant, par définition)

J'espère que le runtime MFC90-Feature pack que j'ai mis sur skydrive est complet, je n'ai pas fait passer tout ça par le service QA, désolé ;)

Voici une capture d'écran d'une des applications MFC90-Feature Pack mise sur le dossier Skydrive :

Entre parenthèse, pour ceux qui auraient déjà installé le feature-pack, les exemples livrés ont une configuration de compilation qui s'appelle "Debug CLR", et qui produit un exécutable qui utilise à la fois MFC90.DLL et MSCOREE.DLL. Et donc génère du code géré ?? Pas tout compris là... Si quelqu'un peut éclairer ma lanterne avant que je ne finisse par lire la doc...

Tags  | 
 7 April 2008, 23:34

C'est THE événement de l'année - que dis-je, du siècle - dans le monde du développement d'applications en C++ sous Windows.

Une mise à jour importante des MFC et des librairies C++ ! La doc de cette mise à jour est déjà sur MSDN (en anglais).

L'info est parue sur le blog de l'équipe VC++, et le téléchargement du C++ Feature Pack est ici. Ce téléchargement est gratuit (322 Mo), et pour Visual C++ standard, Pro ou Team System. Une version pour Visual C++ express sera bientôt disponible.

La fonctionnalité la plus spectaculaire offerte par ce Visual C++ Feature Pack est bien sûr le look and feel office 2007, y compris le ruban. Il se murmure sur les blogs que ce ruban d'Office serait appelé à être l'interface par défaut des applications sous Windows 7. C'est une rumeur... qui va dans le même sens que l'inclusion de ce ruban Office dans les MFC. Code natif ou code géré, même combat (pour une fois !)

La licence d'utilisation du ruban Office 2007

Notez que l'interface d'Office 2007 (le ruban, le design et le graphisme) sont protégés par Microsoft, et qu'il n'est possible de distribuer des applications qui utilisent cette interface qu'en obtenant une licence d'utilisation (gratuite) de l'interface Office 2007 ici : http://msdn.microsoft.com/officeui. Cette licence d'utilisation vous interdit d'utiliser l'interface d'Office 2007 pour faire un concurrent d'Office 2007 ;) et vous oblige à utiliser cette interface correctement. Dans ce cas, cette licence est gratuite et facile à obtenir.

D'ailleurs, cette licence "Office 2007 Fluent UI" est obligatoire pour toute application qui utilise l'interface d'Office 2007, que cette application soit écrite avec les MFC, ou bien avec une autre librairie qui offre le look and feel Office 2007.

La taille du runtime MFC a triplé

Voici les nouvelles versions des DLLs du runtime MFC, après installation du feature pack : MFC90.DLL, MFC90U.DLL. Elles sont dans C:\Windows\winsxs\x86_microsoft.vc90.mfc.....

Elles ont bien grossi après l'installation du feature pack. La version MFC 90 sans feature pack est trois fois plus petite :

Il faut aussi ajouter les DLLs du runtime C++, soit msvcr90.dll, msvcp90.dll et msvcm90.dll, pour 1,38 Mo. Sachez donc qu'avec le Feature Pack, une application MFC occupe au moins 5 Mo ! Evidemment de nos jours ce n'est pas forcément grand chose, mais moi qui ai connu les PC à 128 Ko de mémoire, imaginez un peu...

On note qu'on se retrouve avec deux versions très différentes des MFC qui s'appellent toutes les deux MFC90 :

- MFC90 livrée avec Visual Studio 2008, dont la taille est 1 Mo

- MFC90 du feature pack, dont la taille est 5 Mo

Hmmm, ça risque de poser des problèmes pour les installations ça...

Des exemples

Bon, on en a pour notre espace disque quand même. Tous les bitmaps du look Office 2007 qui mangent ces quelques Mo sur le disque sont bien agréables à l'oeil, n'est-ce pas ? Voici deux samples livrés avec le Feature pack.

Histoire de taper un peu sur .NET et surtout sur WPF, quel plaisir de voir des applications qui se lancent en une fraction de seconde, et qui sont très rapides à l'exécution !

 

Ces exemples sont téléchargeables sur mon espace skydrive.

Tags  | 
 7 April 2008, 15:37
# Tuesday, March 11, 2008

Image © parazit - Fotolia.com

Je l'avais promis... Cette demoiselle sexy va enlever le haut... pour ceux qui ont téléchargé le plug-in Silverlight 2.

Ahah ! Je vais faire grimper les stats d'installation de Silverlight rapido !

Utilisez la molette de la souris pour zoomer sur sa..., et le cliquer-déplacer pour déplacer l'image pour mieux voir ses...

(Cliquez ici pour obtenir le plugin Silverlight 2 pour MacOS ou pour Windows)

Pour savoir comment fonctionne Deep Zoom et le contrôle MultiScaleImage de Silverlight, utilisé ici pour cette "animation", vous pouvez consulter l'article DeepZoom in C# - Not just possible, but easy de Laurence Moroney.

Tags  | 
 11 March 2008, 14:16


Image (c) New York Times

The Cloud

J'aime bien cette image :) On dirait Microsoft qui veut racheter Yahoo pour faire de l'ombre à Google. Ou bien prendre le contrôle du ciel. Ou plutôt du "cloud".

Le "cloud" (nuage), c'est un terme à la mode dans le monde Internet depuis quelques semaines. Un terme qu'il faut connaître, sinon on passe pour... euuhhh...

Le "cloud", c'est (je crois... c'est du marketing aussi hein...) la possibilité d'avoir à disposition toutes nos informations, toutes nos applications, partout, en utilisant des terminaux connectés à Internet. Terminaux fixes ou mobiles : PC, portables, téléphones, balladeur... On utilisera des applications comme des services internet aussi bien que des applications classiques qui s'installent sur un PC. Pour pouvoir utiliser ses informations et ses documents partout. Sympa non ?

 

The Mix

Le Mix 08 vient de commencer, et il s'y dit que d'ici 5 ans, tout sera connecté à Internet. Y compris les programmeurs qui devront créer ces applications mobiles, connectées. Avec Silverlight, .NET 3.5 et WPF (et ASP.NET). Ca tombe bien Microsoft sort aujourd'hui en béta :

Il y a un truc que je n'ai pas compris dans tout ça, c'est pourquoi XNA (surcouche en C# de DirectX pour les jeux) faisait partie du discours...

Tim Sneath a fait un excellent résumé de la scéance plénière du Mix 08. Les webcast et autres infos sont sur le site www.visitmix.com.

Scott Guthrie présente le cloud Microsoft au MIX 08
Scott Guthrie présente le "Cloud" de Microsoft, au MIX 08

En face, Adobe sort cette semaine sa plate-forme RIA Air (avec Flex et Flash), concurrente de Silverlight-.NET-ASP. Air, c'est, comme son nom le suggère, le "cloud" d'Adobe. Comme quoi, Microsoft ne cherche pas à faire de l'ombre qu'à Google.

 

Comment se mettre à Silverlight 2 ?

Si vous ne vous êtes pas encore mis à XAML et Silverlight, c'est vraiment le moment d'y jeter un oeil... Il y a réellement une effervescence autour de tout cela.

Pour mettre les mains dans le cambouis et découvrir Silverlight 2, il faut une déjà une version de Visual Studio 2008 en anglais j'imagine (une version express ne convient pas). Puis installer Silverlight Tools beta for Visual Studio 2008. 50 Mo quand même : cela contient le runtime Silverlight 2 béta, son SDK, des templates en C# et VB.

Attention ! Avant d'installer Silverlight Tools, il faut désinstaller à la main toute version précédente du runtime Silverlight ainsi que du SDK de Silverlight qui pourrait être déjà installée sur le PC, et effectuer 2 ou 3 tâches un peu bizarres. Sinon, un message d'erreur fatal apparaît. Le programme d'installation de Silverlight Tools for Visual Studio a toutes les chances de ne pas s'exécuter correctement du 1er coup (pour moi, la 3eme tentative a été la bonne). Heureusement, un blog sur ASP.NET présente un mode d'emploi détaillé du programme d'installation. En tous cas, Microsoft peut mieux faire sur ce coup là, c'est clair...


Le programme d'installation de Visual Studio Tools pour Silverlight ne marchera pas du premier coup...

Pour info, le runtime Silverlight 2 est un téléchargement de moins de 5 Mo, et occupe environ 10 Mo sur le disque.

Pour créer du contenu Silverlight 2, il faut aussi Expression Blend 2.5 March Preview. Trois versions de Blend sont disponibles simultanément ! Blend et Visual Studio sont étroitement liés. La version de Blend à utiliser dépend de la version de Visual Studio que l'on utilise :

  • Blend 1.0 fonctionne avec Visual Studio 2005, pour des interfaces WPF.
  • Blend 2.0 December Preview fonctionne avec Visual Studio 2008 et permet de créer des interfaces en XAML pour WPF 3.5.
  • Blend 2.5 March Preview fonctionne avec Visual Studio 2008, WPF 3.5 et Silverlight 2 béta 1. C'est cette version qu'il faut pour utiliser Silverlight 2.

Il est possible d'installer côte à côte plusieurs versions de Blend.

Il est nécessaire d'avoir installé Silverlight Tools 2 béta for Visual Studio 2008 avant d'installer Blend 2.5. Blend 2.5 s'installe facilement, pas comme Silverlight Tools !

Ensuite... rendez-vous sur www.silverlight.net, et cliquez sur le bouton "Learn" pour y trouver tutoriels, hands-on labs et vidéos pour Silverlight 2 (tout en anglais...)

Toutes les vidéos (en anglais) du MIX 08 sont sur sessions.visitmix.com. La deuxième session plénière (Keynote II) avec Steve Ballmer est à mourir de rire (la transcription ici).

Mais il existe déjà pas mal de contenu en français pour apprendre Silverlight (vidéos, webcast, tutoriels, articles) dans la section Développement Web du MSDN français (le problème avec les infos Silverlight, c'est qu'elles deviennent obsolètes quelques semaines après avoir été écrites)

 

The killer feature

Je ne m'attendais pas à voir la fonctionnalité Deep Zoom (ex Seadragon) dans Silverlight 2. C'est très impressionnant : on zoome et navigue dans des collections de photos d'une manière incroyable. Le site Hard Rock en propose une démo : http://memorabilia.hardrock.com (on zoome avec la molette de la souris).

Sur memorabilia.hardrock.com Silverlight propose une manière inhabituelle de naviguer dans une collection de photos
Sur memorabilia.hardrock.com Silverlight propose une manière inhabituelle de naviguer dans une collection de photos

J'espère que Deep Zoom sera également disponible dans la version améliorée de WPF prévue pour cet été... S'il te plaît Mr Guthrie, tu peux mettre DeepZoom dans WPF ?

Voici en exclusivité galactique une animation Silverlight 2 (avec DeepZoom) des photos de mon week-end dans le Jura Suisse. Ah oui, pour voir les animations des photos, il faut installer le plug-in Silverlight 2 pour MacOS ou Windows. Utilisez la molette de la souris pour zoomer...

 

 11 March 2008, 14:02
# Monday, March 03, 2008

2018 Israel Palestine Footbal World Cup

En 2018, la coupe du monde de foot sera organisée conjointement par Israel et la Palestine. Une demi finale à Gaza, la finale à Jerusalem.

On peut rêver ici : goal2018.org

 

2018 Israel Palestine Footbal World Cup

Tags
 3 March 2008, 23:33
# Sunday, February 24, 2008

Google m'envoie plein de demandes d'internautes qui recherchent comment charger une image PNG ou JPEG depuis les ressources d'un programme C++.

Mettre un bitmap BMP dans les ressources, et le charger en C++/MFC, c'est facile. Y mettre un PNG ou JPEG, c'est un tout petit peu délicat.

D'abord, ajouter l'image dans le fichier ressources :

IDB_IMAGEPNG PNG "res\\image.png"

Puis la charger dans le code :

// Load image data from PNG section of the resource file
HINSTANCE hResourceModule = AfxGetResourceHandle();
HRSRC hRes = FindResource(hResourceModule, 
         MAKEINTRESOURCE(IDB_IMAGEPNG), _T("PNG"));
DWORD dwSizeResource = SizeofResource(hResourceModule, hRes);
HGLOBAL hMem = LoadResource(hResourceModule, hRes);

// Copy the PNG image data into a new buffer
BYTE *pRes = (BYTE *)LockResource(hMem);
HGLOBAL hImg = GlobalAlloc(GHND, dwSizeResource);
BYTE *pImg = (BYTE *)GlobalLock(hImg);
memcpy_s(pImg, dwSizeResource, pRes, dwSizeResource);
GlobalUnlock(hImg);

// Create a GDIPlus Bitmap from a HGLOBAL
IStream *pStream = NULL;
HRESULT hr = CreateStreamOnHGlobal(hMem, FALSE, &pStream);
Bitmap *pBitmap = new
Bitmap(pStream);
pStream->Release ();
GlobalFree(hImg);

Ce code fonctionne avec les images JPEG et GIF aussi bien que les PNG.
Tags  | 
 24 February 2008, 18:47

Le grand Scott Guthrie (dont la lecture du blog est de plus en plus incontournable) nous fait baver en donnant des détails sur Silverlight 2, et même un tutoriel (d'autres infos ici aussi, et en français sur le blog de ClaueR)... alors que tout cela n'est même pas encore disponible en béta : il faudra attendre la conférence MIX 08, dans deux semaines, pour tester Silverlight 2 (en béta).

Moi aussi je vais faire du teasing à la Scott Guthrie. Dans deux semaines, la jolie demoiselle ci-dessous va enlever le haut, sur ce blog, ici même ! Et moi aussi j'enlèverai le haut (du blog) : je remplacerai la petite animation Flash par une animation Silverlight 2.


Image © parazit - Fotolia.com

Tags  | 
 24 February 2008, 15:29