# Monday, January 28, 2008

Bien sûr vous connaissez Codeproject.com, la référence du partage de code et d'expérience de programmation depuis des années. Microsoft vient également d'ouvrir un site communautaire de partage de code. Proposez vos articles et bouts de codes, profitez de l'expérience de vos pairs sur code.msdn.com, et faites part de vos commentaires. Bref, le site MSDN version web 2.0.

Pour l'instant il n'y a pas énormément d'articles, mais je suis sûr que très bientôt, ce site regorgera de code C++/MFC !

Il existe d'autres communautés Microsoft (en anglais) dédiées au développement, par type de plateforme. Si vous, programmeur (C++), voulez découvrir ou approfondir un sujet sur .NET, c'est ici :

Il y a aussi des communautés comme Channel8, Channel9 et Channel10, où l'on trouve un peu de tout : de la dernière interview vidéo d'un gourou de chez Microsoft, à un article du genre "Mais pourquoi utilise-t'on encore C++ avec des pointeurs qui pointent n'importe où, alors que C# est un merveilleux langage ?"

Hum... où est le C++ natif dans tout ces sites Microsoft ??

Tags  | 
 28 January 2008, 23:00

Des vidéos et des photos en provenance de Chine montrent soi-disant des pré-versions de Windows 7, le successeur de Windows Vista.

Mais il y a mieux ! Voici ce à quoi ressemblera Windows 8 (qui sortira fin 2012 début 2013) :

Etonnant non ?

Tags  | 
 28 January 2008, 16:17
# Sunday, January 20, 2008

Windows Seven logo Depuis quelques jours, pas mal d'informations filtrent sur Internet à propos de la prochaine version de Windows. Le nom de code du successeur de Vista est actuellement Windows 7, après avoir été Vienna.

Quand sort la prochaine version de Windows ?

Selon diverses sources (TG Daily, repris par ZDNet, Infoworld...), le développement de Windows 7 est bien avancé puisqu'une version a été livrée ces derniers jours aux principaux constructeurs de PC partenaires de Microsoft.

Initialement prévue pour 2010, la sortie de Windows 7 aurait donc été avancée au deuxième semestre 2009. C'est dans un an et demi ! Et si on prévoit une large disponibilité de Windows 7 sur des PC préinstallés pour Noël 2009, cela veut dire que Windows 7 sera disponible à la fin de l'été 2009. Par conséquent, une version béta (non encore planifiée) sera sans doute disponible dans environ un an, début 2009.

Souvenons-nous des déboires et du retard de Microsoft lors de la sortie de Vista. Ils ne veulent pas rééditer le même scénario.

Il y aura quoi dedans ?

Il y a des fuites. Une taupe* a pu installer la version de Windows 7 qui vient d'être livrée aux partenaires Microsoft, et fait part de ses commentaires sur un forum du site Neowin.

- Il semble que certains accessoires de Windows 7 soient réécrits en WPF : Paint, la calculatrice,... une révolution ! ;) C'est vrai ça, dans Vista, rien (ou presque) n'est écrit avec WPF. Cela voudrait-il dire que Microsoft a amélioré la performance de WPF ? Cela serait vraiment, vraiment bien.

- On parle aussi d'une intégration de Windows Live avec Windows 7, ici et ici. Internet et Windows Live comme une extension naturelle de Windows, ma foi, ça semble tomber sous le sens. Faites chauffer votre passport MSN.

- Et de performance améliorée. Yesss !! On parle de Minwin, ici ou ... MinWin est un noyau Windows allégé, en 33 Mo. Et l'on se met à rêver de performance, de système rapide et moins gourmand en ressources...

Il y a quelques mois, le site Neowin, encore lui, avait publié une liste de souhaits qui a été présentée à l'équipe de Windows 7. Il a été confirmé que cette liste était bien réelle. Mais elle n'apporte pas grand chose en fin de compte : ce sont des souhaits qui ont été présentés à l'équipe Windows. Ce n'est pas une liste de fonctionnalités.

Voici un extrait de la liste. Cliquez pour voir la liste complète :


En même temps, Mike Nash (Microsoft VP, Windows) a déclaré que, s'il ne regrettait pas tous les changements apportés par Vista, il y aura moins de modifications d'architecture du système dans Windows 7.

On peut traduire cela par : "après les folies de Vista, on se calme pour Windows 7". Ou bien par "il y a eu tellement de modifications d'architecture dans Vista (UAC, drivers, réseau, gestion UI...) que maintenant on est tranquille". Ou encore par : "avec Vista, Microsoft a changé tellement de choses que beaucoup de logiciels ne fonctionnaient plus. Ce ne sera pas le cas avec Windows 7". Ouf.

Pourquoi si tôt ?

Parce que Microsoft a des soucis avec Vista : après être sorti en retard, peu d'utilisateurs l'ont adopté.

Au moins quand on est en avance, on n'est pas en retard.

Peu d'utilisateurs de PC utilisent Vista, ils restent sous XP. Chez Dell par exemple, on peut encore commander un PC neuf avec XP. Selon Xiti, 80% des internautes utilisent encore Windows XP. 12% utilisent Vista, et les 8% qui restent sont à partager entre MacOS, les autres versions de Windows (2000, 98, ...), Linux, les mobiles et les consoles.

Les grands comptes ont déjà payé la migration vers Vista même s'ils utilisent encore XP. Ce n'est donc pas une question de coût des licences. Eh oui, Microsoft est très fort : avec "l'assurance logicielle", les grands comptes paient les dernières versions, même s'ils ne les utilisent pas. Enfin, ce n'est pas nouveau que le marketing de Microsoft est efficace !

Ceux qui sont encore sous Windows XP pourront peut-être passer directement à Windows 7, sans passer par la case Vista. Dans un an, quand on commencera à pas mal parler de Windows 7, les utilisateurs de Windows XP passeront vraiment pour des dinosaures. Un peu comme les utilisateurs de Windows 98 maintenant.

Vista n'est pas un vrai succès : après être sorti en retard, peu d'utilisateurs l'ont adopté. Microsoft veut remédier à cela... avec Windows 7 !

 

Tags
 20 January 2008, 13:55
# Thursday, January 17, 2008

 

Mise à jour du 7 avril 2008 : la version finale du feature pack est disponible !

 

J'ai installé la version béta du Service Pack Feature pack de Visual Studio 2008. 300 Mo, quand même...

Attention ! Ce Feature Pack ne s'installe que sur une version anglaise de Visual Studio Professional (ou +). Il faut aussi que le DVD d'installation de Visual Studio soit inséré dans le lecteur si vous n'avez pas fait une installation complète de Visual C++.

Le feature pack de Visual C++ contient une version de TR1 de C++0x, et la nouvelle version des MFC. Je vais parler ici des MFC seulement.

Les MFC à la diète !

Première chose, je regarde la taille de la DLL redistribuable des MFC : mfc90.dll passe de 1130 Ko à 3666 Ko une fois le Feature Pack installé. Ouch, ce n'est pas rien ! D'où vient l'accroissement de la taille ? Des quatre thèmes office 2007 inclus. Il y a environ 500 fichiers PNG dans mfc90.dll. Chaque fichier PNG existe en 4 versions, une pour chacun des quatre thèmes de Office 2007 : Aqua, Black, Blue, Silver.

C'est pratique d'avoir une seule DLL, mais ça serait peut-être bien de mettre les bitmaps des 4 thèmes Office dans 4 DLL différentes. Genre MFC91UXBLUE.DLL. Histoire d'économiser 2 Mo. Oui, oui, il y a quand même encore des gens qui regardent la taille des exécutables qu'ils produisent...

Là où c'est encore plus gênant, c'est quand on "linke" statiquement avec les MFC. Toutes les images des 4 thèmes Office se retrouvent dans le fichier EXE, même si on ne les utilise pas. Ca, c'est pas bien du tout ! Du coup, la moindre application avec les MFC liées statiquement fait presque 3 Mo. Si on ouvre l'exécutable généré dans Visual Studio pour voir les ressources, on obtient... ça :

J'espère que les MFC9.1 feront une petite diète avant de sortir en version finale... un petit régime avant l'été, ça serait sympa ?

Exemples d'interfaces utilisateur

Que peut-on faire avec ces nouvelles MFC ? Ah, ça déchire, comme disent les jeunes de maintenant. Voici quelques captures d'écran, pour le plaisir des yeux. Je vous propose en plus ces programmes en téléchargement, pour que vous puissiez apprécier la richesse de l'interface. J'avoue que l'aperçu avant impression de l'application MFC91Ribbon est pas mal, ainsi que le changement de style à la volée, et.... etc, etc.

Voici un exemple d'application C++/MFC avec un Ribbon :

 

Un autre exemple avec une interface genre Visual Studio, et "Diamond Docking" :

 

Vous pouvez télécharger ces deux applications ci-dessous, si vous voulez jouer avec (pour Windows Vista seulement). J'ajouterai d'autres exemples très bientôt. Enjoy !

MFC90samples.zip (2,46 MB)

Tags  | 
 17 January 2008, 18:46
# Saturday, January 12, 2008

Pourquoi Vista est il plus lent que XP ?

Devil Mountain Software a fait des tests pour comparer les deux versions de Windows, avec et sans Service Pack, selon Yahoo News. XP SP3 est toujours plus rapide que Vista SP1, jusqu'à deux fois plus rapide dans certains cas. Et Windows XP SP3 serait 10% plus rapide que XP SP2. Par contre, Vista SP1 ne serait pas vraiment plus rapide que Vista "normal".

"Vivement le SP3" direz-vous, si vous utilisez encore Windows XP. Eh bien vous l'avez déjà, ce SP3 ! Enfin, vous l'avez quasiment si vous utilisez les mises à jour de Windows Update. Car un Service Pack n'est rien d'autre que la compilation de tous les correctifs déjà parus.

Dans tous les cas Vista est plus lent que XP ! Eh bien c'est tout à fait normal. Les nouvelles versions des logiciels (y compris les systèmes d'exploitation) sont généralement plus lents que leurs prédécesseurs, car ils apportent leur lot de nouvelles fonctionnalités, gourmandes en ressources. Souvenez-vous de Visual C++ 6.0 qui compilait un programme à la vitesse de la lumière; Visual Studio 2008 est beaucoup plus lent. C'est ainsi que de nouveaux PC plus puissants sont vendus, qui font vendre de nouveaux logiciels, et réciproquement. Cela fait quelques dizaines d'années que ce serpent qui se mord la queue me permet (entre autres) de manger. Et sans doute vous aussi, avouez !

Vista a de nombreux gadgets et nouvelles fonctionnalités, dont certaines sont gourmandes en ressources. Par exemple, Windows Vista a beaucoup plus d'animations graphiques que XP. Activez l'affichage classique de Vista - sans Aero - et vous gagnerez beaucoup en performance. Aero consomme tellement de mémoire que je me demande si certains gadgets visuels ne sont pas écrits en WPF ! La gestion du réseau de Vista est très différente, la sécurité n'a rien à voir... autant de nouveautés qui coûtent.

Pourquoi (ne pas) migrer vers Vista ?

En fait, si on se pose la question de savoir si Vista est plus lent que XP, c'est que les utilisateurs manquent de raisons pour migrer vers Vista. Sinon on ne se poserait même pas la question. Même si 100 millions de PC ont déjà adopté Vista selon Bill Gates au CES, les utilisateurs migrent moins vite vers Vista qu'ils ont migré vers XP.

Ce qui fait migrer les utilisateurs moyens, et notamment en entreprise, c'est quand ils sont obligés d'avoir la dernière version de Windows pour faire tourner ce logiciel dont ils ont besoin.

Où sont les logiciels qui fonctionnent sous Vista et pas sous XP ? Bonne question. Il ne doit pas y en avoir beaucoup... Quel éditeur serait assez fou pour se priver de la moitié + de son marché ? Quand Adobe ne supportera plus XP, plus personne n'utilisera ce système.

WPF est-il mort ?

Pourtant, dans les conférences Microsoft, quand ils nous parlaient de Vista avant sa sortie, on avait droit à des démos d'impressionnantes applications WPF. Et on se disait : "Vivement Vista qu'on puisse faire des applis démentes". On avait hâte que Vista sorte pour pouvoir proposer des applications avec une interface utilisateur réellement nouvelle. Or ces applications ne sont pas sorties. Pourtant, les technos WPF sont disponibles depuis presque deux ans...

Pour l'instant, faire une application au look Vista, c'est :

  • utiliser la police de caractère Segoe UI à la place de Tahoma ou de MS Sans Serif.
  • avoir un champ "Recherche" bien en évidence.
  • utiliser des boîtes de dialogue type "Task dialog", et des assistants au style Aero.
  • reprendre les messages de l'interface utilisateur pour les mettre au goût de Vista.

Pas de quoi fouetter un chat. En plus tout cela est accessible sous XP, et même sous Windows 98 !

WPF est trop lent, trop lourd, et trop gourmand en mémoire. Et encore, il paraît que l'équipe Windows en a bien amélioré les performances et le temps de chargement des applications, avant la sortie de Vista. Est-il possible de construire une application grand public avec WPF, et de la vendre dans le commerce aujourd'hui ? Je demande à voir.

Pour la plupart de leurs applications, y compris pour le Ribbon d'Office, Microsoft utilise une sorte de mini-XAML en code non managé qui s'appelle DirectUI (recherchez sur google). Jamais WPF. Mais ne rêvez pas non plus : DirectUI ne sera jamais disponible au commun des développeurs, car DirectUI est un produit à usage interne, pas suffisamment propre pour que Microsoft puisse le vendre et en assurer le support pendant 10 ans. C'est d'ailleurs pour cette raison que Microsoft a préféré acheter le code source d'un Ribbon à BCGSoft pour l'inclure dans les MFC, plutôt que de publier le leur.

WPF est-il déjà mort ? En fait, WPF est une version 1.0. WPF 2.0 sera - espérons le - plus rapide et moins gourmand : c'est à dire écrit en code natif ! Sinon, nous autres éditeurs d'applications, l'enterrerons dans le même cimetière que le langage Java.

WPF ou Silverlight ?

En attendant que WPF ne sorte un pied de la tombe (ou bien qu'il y mette les deux), Silverlight pointe le bout de son nez. Avant sa sortie officielle, Silverlight s'appelait WPF/Everywhere, souvenez-vous. Silverlight 2.0 (en alpha actuellement) sera une implémentation légère, rapide et compacte d'une partie de WPF.

Comment ? Microsoft aurait implémenté deux fois le support de WPF ? Oui : une fois de manière lente et non optimisée (en code "managed"), et une fois de manière légère et rapide (en code natif). C'est ça Silverlight : un redoutable concurrent de WPF.

Et, pour en revenir à Windows XP, Silverlight tourne bien sûr sous XP...

Cela en fait des modèles de programmation, je choisis lequel pour mes applications ?

Pour faire une application sous Windows, on peut utiliser :

  • L'API Windows native (Win32), généralement à travers les MFC ou les ATL. La technologie est ancienne, éprouvée, rapide, mais les programmeurs d'aujourd'hui ne veulent plus coder en C++, ils préfèrent .NET... ! Si vous codez en C++, demandez une augmentation à votre chef, vous le valez bien.
  • Windows Forms (.NET 1.0 à 2.0) : cette technologie fonctionne très bien pour les applications de gestion, les application d'entreprise, et également pour les petits logiciels qui mettent en forme le contenu d'une base de données (genre "1000 courriers types" ou "mes recettes de cuisine").
  • Silverlight : c'est WPF allégé, écrit en code natif, et donc rapide. Mais Silverlight 1.0 est trop limité (à mon avis), et Silverlight 2.0 encore en version alpha. Silverlight arrivera-t'il trop tard ? Silverlight est apparemment destiné à des applications internet à client riche (RIA), mais il est possible de l'utiliser dans une application classique. Et gageons que les évolutions futures rendront Silverlight plus polyvalent.
  • WPF : très complet, très puissant, trop lourd, trop gourmand. Il faudrait (faudra) qu'il soit réécrit en code natif. Vivement WPF 2.0.

En regardant la liste, c'est marrant, on voit tout de suite qu'il y en a un environnement de trop, entre WPF et Silverlight. Ces deux environnements sont deux implémentations très différentes d'un seul type d'application (XAML/C#). Microsoft a développé deux fois la même chose on dirait.

Depuis quelques mois, on dirait que Microsoft a redécouvert qu'ils pouvaient proposer des outils pour développer des applications en code natif. Les nouvelles MFC sont un exemple. Est-ce que la trop grande lourdeur de WPF leur a montré qu'ils étaient allés trop loin dans le tout "managed" ?

Bon, qui vivra verra. En attendant, de nombreux utilisateurs restent sous XP. Microsoft s'en fiche, ils ont payé leur licence Windows. Et les éditeurs n'osent pas encore sortir des applications spécifiques Vista.

 

Tags  |  |  | 
 12 January 2008, 23:32
# Tuesday, January 08, 2008

J'ai déjà parlé de cette nouvelle version, ici ou , elle est maintenant disponible en version beta. C'est annoncé sur le blog de l'équipe de Visual C++. Le téléchargement (en anglais) est sur le site MSDN. Si vous voulez juste lire la documentation, c'est ici.

La version béta des nouvelles MFC n'est pas encore disponible pour Visual C++ Express, mais cela viendra.

Quoi de neuf (selon le blog de l'équipe Visual C++) :

  • Le ruban office 2007
  • Le look and feel d'Office 2007, 2003 ou XP, au choix.
  • Les panneaux attachables (docking panes... on comprend mieux en anglais !), comme dans Visual Studio
  • Barres d'outils et menu paramétrables
  • De nouveaux contrôles avancés
  • Gestion des applications MDI avancée : onglets, ...

De plus, cette version des MFC inclut une implémentation de TR1. L'implémentation de TR1 est un pas vers l'adoption du standard C++0x. J'ai déjà parlé de C+=2 C++0x ici. L'implémentation TR1 proposée dans les MFC comprend :

  • Pointeurs intelligents (smart pointers)
  • Expression régulières.
  • Nouveaux types conteneurs : tuples, tableaux, ensembles non ordonnés, etc.
  • Générateur de nombres aléatoires avancé
  • Encapsulateurs de fonction polymorphique (polymorphic function wrapper)
  • Type traits
  • et d'autres.

Je n'ai pas tout compris à TR1 encore, mais ça a l'air pas mal :)

Bon allez, au boulot !

Tags  | 
 8 January 2008, 12:52
# Monday, January 07, 2008

C'était hier la douzième et dernière intervention de Bill Gates au CES de Las Vegas (Consumer Electronic Show, la grand-messe de l'électronique grand public). De très bonnes transcriptions de la conférence d'ouverture (keynote) sont déjà disponibles, comme sur engadget.com. La vidéo (en Silverlight) est disponible sur http://www.microsoft.com/ces/, et des billets sont déjà sur Channel10.


Image Engagdget

Que dit Bill ?

La tendance pour les 10 prochaines années : le logiciel (comprenez : le logiciel développé sur une plate-forme Microsoft) sera partout là où il y aura de la vidéo et du divertissement. Tout le monde aura un "Windows Live ID" pour pouvoir s'identifier et avoir toutes ses informations et son contenu disponibles partout. On utilisera une interface "naturelle", comme Microsoft Surface ou bien IPhone. Et de la vidéo HD avec Silverlight et la chaîne NBC pour le contenu, de la vidéo HD, de la vidéo HD. La plate forme est bien sûr Windows (sur un téléphone Windows mobile ou sur un PC) ou bien un matériel Microsoft comme Zune, XBOX, ou MediaRoom (la MicrosoftBox pour la télé sur IP, déjà adoptée par British Telecom).

Quelques chiffres : 10 millions de nouveaux terminaux Windows mobile en 2007, 20 millions prévus en 2008. 100 millions d'utilisateurs de Vista aujourd'hui.

Pourquoi parler du CES, de vidéo et de divertissement alors que sur ce blog on parle C++ ? Eh bien tout simplement parce que... les logiciels dont Bill parle ne sont pas encore écrits. Sans doute que certains d'entre eux le seront (partiellement ?) en C++ natif... Alors, techniquement, quelles pistes explorer ?

  • Silverlight est très bien pour gérer la vidéo. Apprenons Silverlight. Et comme Silverlight est un contrôle ActiveX, on peut l'inclure facilement dans une application écrite en C++ natif ! Silverlight 1.0 est très (trop) léger au point de vue fonctionnalités, mais Silverlight 2.0, déjà disponible en alpha, mérite un coup d'oeil. Le site de NBC pour les Jeux Olympiques 2008 de Pékin (www.NBCOlympics.com) sera tout en Silverlight : un sacré coup de pub pour ce concurrent de Flash !
  • L'API Live ID est à apprendre par coeur. Euh... en C++ natif il existe quelque chose pour attaquer les Web services ?

 

Tags  | 
 7 January 2008, 11:32
# Saturday, January 05, 2008

Oui, nous sommes en 2008 et la newsletter hebdomadaire "Microsoft download notification" du 4 janvier 2008 indique qu'il faut télécharger le SP2 de Windows Vista XP. Cette lettre d'information présente l'actualité des téléchargements Microsoft. Télécharger le SP2 de Windows XP est donc d'actualité, dixit Microsoft.

Microsoft aurait-il entendu les utilisateurs se plaindre que Windows Vista est trop lent ? Comme dans la lettre d'information de CNET du 4 janvier 2008 : "What can I do to improve the speed of my Vista machine ?" Un sondage (non représentatif) sur ce même site indique que 49% des utilisateurs ne veulent pas migrer de XP à Vista.

Les utilisateurs de PC en auraient-ils assez des fatwares : systèmes et des logiciels trop lents, trop gourmands en ressources ?

Est-ce que Bill Gates parlera de la difficulté à faire adopter Vista pas les utilisateurs de Windows XP, lors de son discours d'ouverture du CES, dimanche 6 janvier ? Je pense que oui. Enfin, il parlera du SP1 de Windows Vista. Il devrait aussi, dit-on, annoncer des nouveautés concernant Windows Mobile, Media Center, Home Server, XBOX 360, et Zune. Au fait, le site événementiel de Microsoft pour le CES est tout en silverlight... très joli design.

La difficulté de voir Vista être adopté par les utilisateurs de XP est un point que nous, éditeurs ou créateurs de logiciels, devons prendre en compte. Il y a un an, on pouvait se dire : "j'ai un nouveau développement, je le démarre en .NET 3.5, Vista sera adopté dans un an par tout le monde". Un an plus tard, Vista n'a pas envahi les PC. .NET 3.5 ne fonctionne pas très bien sous XP, qui reste une cible très importante pour nos logiciels. Les utilisateur ne veulent pas de fatware. Le C++ a encore un bel avenir.

 

Tags  | 
 5 January 2008, 15:25