# 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
# Tuesday, February 19, 2008

Il y a un peu plus d'un mois je râlais contre WPF, parce qu'il est trop lourd, trop gros, trop lent. Parce qu'il fallait trois jours pour lancer une application WPF (OK j'exagère un peu). J'allais jusqu'à dire que si bien peu d'applications WPF sont disponibles, c'est principalement à cause de ses mauvaises performances. Même si ce n'est pas la seule raison : WPF et XAML représentent une nouvelle façon de programmer qu'il faut un moment à assimiler.

J'étais prêt à jeter à la poubelle mon bouquin Windows Presentation Foundation Unleashed, persuadé que WPF signifie secrètement Windows Pour les Fénéants.

Alleluia !

Scott Guthrie (qui vient d'être promu Corporate Vice President de Microsoft, en charge de .NET, CLR, WPF, Silverlight, ASP.NET, IIS ...) annonce aujourd'hui une amélioration des performances de .NET, et particulièrement de WPF, et une nouvelle version importante de WPF pour cet été. Peut-être une synergie avec Silverlight 2.0 ?

WPF était une nouveauté de .NET 3.0, et quelques améliorations ont été apportées à WPF avec la sortie de .NET 3.5. Cet été, une nouvelle version de WPF sera disponible.

Cette nouvelle version proposera une installation du framework .NET optimisée, un chargement des applications .NET plus rapide, un affichage du texte et des vidéos plus rapide en WPF, etc. Tout cela sans avoir à modifier les applications existantes. Outre des performances améliorées, WPF 3.5 comportera de nouveaux contrôles qui manquent cruellement : un calendrier (enfin !), un Ribbon (comme Office 2007), et un DataGrid. Visual Studio 2008 disposera aussi d'une meilleure intégration de WPF.


Le Datagrid de xceed.com. Bientôt dans WPF ?

Microsoft est - enfin ! - concerné par la performance des applications réalisées avec Visual Studio : de nouvelles MFC, une version optimisée de WPF... Mieux vaut tard que jamais ! ;)

J'en conclus que le moment est venu de se mettre sérieusement à XAML. Oui, oui, même pour toi, programmeur C++/MFC. L'interface utilisateur de ton programme risque d'être en WPF l'an prochain. Même si tu devras encore gérer des DLL en C++ pour quelques années encore.

Nous en saurons plus dans deux semaines : Rob Relyea, qui a réalisé une excellente présentation de WPF pour les développeurs à la conférence MIX l'an dernier, décrira le futur de WPF dans une session du MIX 08.

Tags  | 
 19 February 2008, 22:34
# Monday, February 18, 2008

Pendant des siècles on s'est demandé ce que signifient nos rêves. Freud et d'autres ont essayé d'en saisir la signification. En fait, les rêves, ce sont juste nos cerveaux qui se défragmentent pendant la nuit.

Dreams are really just our brains defragmenting overnight

(de steve clayton)

Tags
 18 February 2008, 16:11