<?xml version="1.0" encoding="utf-8"?>
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom">
  <title>BlogMFC</title>
  <link rel="alternate" type="text/html" href="http://www.blogmfc.com/" />
  <link rel="self" href="http://www.blogmfc.com/SyndicationService.asmx/GetAtom" />
  <icon>favicon.ico</icon>
  <updated>2009-12-15T10:59:35.6213318-07:00</updated>
  <author>
    <name>Pierre Morel-Fourrier - BlogMFC</name>
  </author>
  <subtitle>C++ C# MFC .NET WPF</subtitle>
  <id>http://www.blogmfc.com/</id>
  <generator uri="http://dasblog.info/" version="2.1.8102.813">DasBlog</generator>
  <entry>
    <title>Techdays 2010 : une session sur Visual C++ 2010 !</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2009/12/15/Techdays2010UneSessionSurVisualC2010.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,cf8e1901-ebf3-472b-838d-5566c8865070.aspx</id>
    <published>2009-12-15T10:59:35.6213318-07:00</published>
    <updated>2009-12-15T10:59:35.6213318-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <category term="Visual Studio" label="Visual Studio" scheme="http://www.blogmfc.com/CategoryView,category,VisualStudio.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p class="contenu">
Une conférence sur le C++ et Visual C++ 2010 aux <a href="http://blogs.technet.com/mstechdays/archive/2009/12/08/techdays-2010-le-point-sur-le-contenu.aspx" target="_blank&quot;">Techdays
2010</a> ! Dans la partie <em>Architecture et développement</em>, section <em>Outils,
langages et Frameworks </em>:
</p>
        <ul>
          <ul>
            <ul>
              <li>
                <div class="titre">
                  <strong>
                    <a href="http://www.microsoft.com/france/mstechdays/programmes/parcours.aspx?DomID=3b4c387a-1ba6-4de6-8feb-edb3982acf25&amp;index=10" target="_blank&quot;">Construire
des applications modernes avec C++</a>
                  </strong>
                </div>
              </li>
            </ul>
          </ul>
        </ul>
        <h3>
        </h3>
        <blockquote style="MARGIN-RIGHT: 0px" dir="ltr">
          <blockquote style="MARGIN-RIGHT: 0px" dir="ltr">
            <p class="contenu">
Venez découvrir dans cette session les nouveautés que vous offre Visual Studio C++
tant en termes de développement d'interface graphique qui adhère à <b>Windows 7</b>,
qu'en termes de nouveautés du langage qui colle à la norme <b>C++0X</b>. Nous parcourons
également quelques fonctionnalités de l'IDE qui permettent à un développeur C++ d'être
plus productif. 
</p>
          </blockquote>
        </blockquote>
        <p class="contenu">
On dirait que la <a href="http://www.blogmfc.com/2009/11/27/ModerniserUneApplicationCMFCPartie2.aspx" target="_blank&quot;">conférence
de Boris Jabes du PDC 09 dont j'ai déjà parlé</a> va être reprise aux techdays. Super
!
</p>
        <p class="contenu">
 
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=cf8e1901-ebf3-472b-838d-5566c8865070" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Moderniser une application C++/MFC, partie 2</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2009/11/27/ModerniserUneApplicationCMFCPartie2.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,5781abe4-d215-454e-99b7-2baee779216f.aspx</id>
    <published>2009-11-27T10:10:17.383-07:00</published>
    <updated>2009-12-09T09:01:10.3807248-07:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
J'ai déjà parlé de la conférence Microsoft PDC, et plus particulièrement d'une session
sur la manière d'écrire des applications modernes avec Visual Studio 2010.
</p>
        <p>
Malheureusement, elle est en anglais. Alors j'en ai écrit les sous-titres ! Plus d'excuse
pour ne pas vous remettre à C++ !
</p>
        <p>
Pour voir cette conférence avec les sous-titres, il faut <a href="http://microsoftpdc.com/Sessions/P09-13" target="_blank">télécharger
la vidéo sur le site microsoftPDC au format Windows Media Video</a>, puis <a href="http://cid-6a38e9675163d42e.skydrive.live.com/self.aspx/My%20Documents/FT06.srt" target="_blank">télécharger
les sous-titres ici sur mon Skydrive</a> (fichier type TXT de 60 Ko). Il faut
que le fichier des sous-titres soit dans le même dossier que la vidéo, et qu'il portent
le même nom, à l'extension près. Puis, lire la vidéo avec VLC Media player, le lecteur
media bien connu. C'est dommage, Windows Media Player ne permet pas à ma connaissance
de lire une vidéo WMV avec des sous-titres. <a href="http://www.01net.com/telecharger/windows/Multimedia/lecteurs_video_dvd/fiches/23823.html">Téléchargez
VLC ici sur 01net.net par exemple</a>.
</p>
        <p align="center">
          <iframe style="PADDING-BOTTOM: 0px; BACKGROUND-COLOR: #fcfcfc; PADDING-LEFT: 0px; WIDTH: 98px; PADDING-RIGHT: 0px; HEIGHT: 115px; PADDING-TOP: 0px" title="Preview" marginheight="0" src="http://cid-6a38e9675163d42e.skydrive.live.com/embedicon.aspx/My%20Documents/FT06.srt" frameborder="0" marginwidth="0" scrolling="no">
          </iframe>
          <br />
Le fichier sous-titres au format SRT (fichier texte de 60 Ko)
</p>
        <p>
          <img border="0" alt="Microsoft PDC presentation Visual Studio 2010 C++" src="http://www.blogmfc.com/content/binary/visual-studio-2010-MFC-video-subtitles.jpg" />
        </p>
        <p>
Au menu de cette vidéo, qui présente de nombreuses de façons de moderniser
du code C++ :
</p>
        <p>
- Comment utiliser Direct 2D très facilement en C++/MFC pour ajouter des animations
et effets visuels "à la WPF".
</p>
        <p>
- Comment ajouter des extensions à Visual Studio dans le nouvel outil d'extension
de Visual Studio 2010, plus simple et plus puissant.
</p>
        <p>
- La navigation dans le code et intellisense ont été améliorés pour C++, y compris
avec des gros projets. Intellisense fonctionnait beaucoup moins bien avec
C++ qu'avec C# dans Visual C++ 2008 .
</p>
        <p>
- Comment utiliser les "r-value" et "move constructors" de C++0x pour améliorer les
performances des listes d'objets. Je ne sais pas comment on dit "move constructor"
ou "move assignment operator" en français ? A ce sujet, petite précision : il existe
deux types d'expressions en C++ : les l-values (left-values, à gauche du signe =,
qu'on modifie) et les r-values (right values, à droite du signe =, qu'on ne modifie
pas).
</p>
        <p>
- Comment appeler très simplement en C++ une méthode d'un Web Service (WCF, SOAP,
Ruby, C++...) défini par son fichier WSDL, et se connecter au Web en quelques lignes
de code C++. Ici le programme se connecte au moteur de recherche bing.com. (Ne fonctionne
que sous Windows 7)
</p>
        <p>
- Comment étendre MSBuild, le système de génération de projet C++, plutôt qu'utiliser
un "post build step", beaucoup moins pratique.
</p>
        <p>
- Comment utiliser le designer de ruban de Visual Studio 2010 pour générer une interface
ruban C++/MFC sans écrire de code.
</p>
        <p>
- Le nouveau Class-wizard, qui revient de Visual C++ 6, encore plus puissant et plus
agréable à utiliser !
</p>
        <p>
- Comment effectuer facilement certains traitement en parallèle et en tâche de fond
pour les rendre plus rapides et agréables à l'utilisateur de l'application avec le
nouveau namespace C++ "concurrency". Le traitement parallèle rendu simple pour le
programmeur !
</p>
        <p>
- Comment utiliser les expressions lambda de C++0x. C'est un élément incontournable
de C++...
</p>
        <p>
- Comment C++ est plus rapide, puissant, et précis que C#. Je crois que Boris
Jabe n'aime pas beaucoup C# : en effet, en C# on ne pense pas vraiment à la performance
ni à la qualité du code généré... en C++ il faut réfléchir un peu plus ;-)
</p>
        <p>
- A quoi servent les shared_pointers de C++0x et comment utiliser des types de données
thread-safe en environnement parallèle.
</p>
        <p>
- Comment utiliser le gestionnaire de crash de Vista et Windows 7 pour récupérer les
documents non enregistrés après un plantage. En deux lignes de code avec
les MFC !
</p>
        <p>
A suivre...
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=5781abe4-d215-454e-99b7-2baee779216f" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Moderniser une application C++/MFC, partie 1</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2009/11/27/ModerniserUneApplicationCMFCPartie1.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,8d5e0f55-db8f-4a87-917d-a6c00fa4115a.aspx</id>
    <published>2009-11-27T08:47:36.643-07:00</published>
    <updated>2009-11-27T15:00:19.772109-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <category term="Visual Studio" label="Visual Studio" scheme="http://www.blogmfc.com/CategoryView,category,VisualStudio.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Il y a pas mal d'applications qui ont été écrites en C++ natif, avec les MFC. Ou bien
avec ATL.
</p>
        <p>
La bonne nouvelle c'est que Visual Studio 2010 nous donne les moyens de moderniser
ce genre d'application, et de les remettre au goût du jour.
</p>
        <p>
Avant Visual Studio 2010 on se disait :
</p>
        <p>
" Bon, on a cette application C++/MFC dont l'écriture a commencé il y a 6 ou 10
ans. Maintenant la tendance et les derniers gadgets à la mode sont dans .NET
: Winforms ou WPF. Alors on va migrer l'application vers .NET. "
</p>
        <p>
Et commençait un long périple qui avait plusieurs issues possibles, selon les cas.
Les exemples cités ici sont de vrais cas, seuls les noms ont été changés ;-) :
</p>
        <p>
          <strong>1ère solution</strong> : les devs prennent la décision de tout réécrire
from scratch en WPF (ou en Winform) et arrivent à convaincre leur hiérarchie. Effet
tunnel, ça prend deux ans. Il faut payer l'équipe de développement pendant ce temps
parce que rien ne sort. Et à la fin, si ça aboutit (des fois ça n'aboutit pas), on
a les mêmes fonctionnalités qu'avant. Avec un look and feel plus sympa et moderne
quand même. Le marketing râle après le développement : "Quoi ?! Il vous a fallu deux
ans pour faire ça ? Et on a quoi de neuf nous à vendre aux clients ? On avait déjà
toutes ces fonctionnalités avant". Les développeurs ont passé leurs nuits pour tout
refaire en C#. Au moins le code est en .NET, et il est propre. Mais ça a coûté très
cher. Entrer dans ce genre d'aventure et s'en sortir n'est possible qu'avec de bons
développeurs et un excellent encadrement technique.
</p>
        <p>
          <strong>2eme solution</strong> : Le chef déclare qu'il faut faire une migration
vers .NET petit à petit, écran par écran. Pour éviter l'effet tunnel. Alors commence
une longue souffrance pour l'équipe de développement. Les écrans vont être réécrits
en .NET un par un, et intégrés dans le projet C++ natif avec de l'interop. Au bout
de quelques semaines, le chef voit qu'il a des boîtes de dialogue en .NET (Winform
par exemple) dans son application. Il a l'air content. Mais il ne voit pas l'usine
à gaz en dessous. Si certains développeurs comprennent ce qu'ils font et le font proprement,
il peut arriver que d'autres ne comprennent pas bien. Réaliser ce genre d'intégration
avec de l'interop n'est pas si simple qu'il n'y paraît. J'ai vu du code C++ natif
appeler du code C#, qui rappelait du code natif, qui à son tour appelait du code C#.
Je n'ai pas vu de projet conséquent de ce genre arriver à terme. Ca a fini dans un
mélange infâme de code natif et managé. Mais des fonctionnalités on pu être ajoutées
au projet pendant que des écrans étaient réécrits en C#, et le marketing est content.
</p>
        <p>
Heureusement Visual Studio 2010 propose une autre approche avec de nouvelles
fonctionnalités pour les projets C++. Une troisième solution devient possible pour
mettre à jour une vieille application C++ ! La mettre au goût du jour avec les nouvelles
fonctionnalités proposées dans Visual Studio 2010 !
</p>
        <p>
          <strong>3eme solution</strong> : Quelques programmeurs C++ vont pouvoir changer l'interface
utilisateur, connecter l'application au Web, ajouter quelques gadgets sexy, gérer
le parallélisme pour profiter des processeurs modernes, etc. Et tout ça en
quelques semaines seulement.
</p>
        <p>
La <a href="http://microsoftpdc.com/Sessions/P09-13">conférence sur Visual C++ 2010</a> que
j'ai citée dans <a href="http://www.blogmfc.com/2009/11/19/ConferencePDCMicrosoft09LesSessionsC.aspx">le
billet précédent sur la conférence PDC</a> résume comment faire. 
</p>
        <p>
Et puis, j'effectue moi-même en ce moment la migration d'un projet C++/MFC commencé
il y a... 16 ans ! Il fonctionne toujours, est très rapide, et consomme très
peu de mémoire. 
</p>
        <p>
Voici une capture d'écran d'un logiciel écrit proprement en C++ depuis 16 ans, toujours
en cours de développement avec VS 2010, et qui ne fait pas son âge.
</p>
        <p>
          <img border="0" src="http://www.blogmfc.com/content/binary/application-MFC-ribbon1.jpg" />
        </p>
        <p>
Oui, on ne dirait pas une application dont l'essentiel du code date de plus de 15
ans...
</p>
        <p>
Je détaillerai très bientôt les étapes à effectuer pour une migration de ce genre
dans des billets à venir.
</p>
        <p>
 
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=8d5e0f55-db8f-4a87-917d-a6c00fa4115a" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Conference PDC Microsoft 09 : les sessions C++</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2009/11/19/ConferencePDCMicrosoft09LesSessionsC.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,2d21b360-8c54-4ecf-a4ab-ac3a3cc1984d.aspx</id>
    <published>2009-11-19T07:00:24.916-07:00</published>
    <updated>2009-11-19T07:15:57.1188934-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <category term="Visual Studio" label="Visual Studio" scheme="http://www.blogmfc.com/CategoryView,category,VisualStudio.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
En ce moment se tient la <a href="http://www.microsoftpdc.com">conférence microsoft
pour les développeurs</a>, vous le savez sans doute. Les conférences sont déjà disponibles
en streaming HD (merci Silverlight !) ou en téléchargement WMV.
</p>
        <p>
Pendant que tout le monde est en train de parler de Silverlight 4, j'ai quand même
noté que Microsoft apporte pas mal de nouveautés à Visual Studio 2010 concernant
C++, et qu'il y a plusieurs conférences sur le sujet ! En anglais of course...
</p>
        <p>
Le point d'entrée est sans doute la <a href="http://microsoftpdc.com/Sessions/P09-13">conférence
de Boris Jabe, Accelerated Windows Application Development with Microsoft Visual C++
2010</a>, qui est à mon sens indispensable pour tout utilisateur du langage C++. Oui
c'est en anglais mais je peux faire des sous-titres en français si vous me le demandez
?
</p>
        <p>
Ce développeur de Visual C++ passe en revue les nouveautés de Visual C++, de l'IDE
en passant par le langage, et parle notamment des nouveautés concernant le développement
parallèle. Je me posais des questions dans mon précédent post sur Visual C++ 2010,
des réponses y sont apportées. J'y reviendrai.
</p>
        <p>
Par exemple, les expressions lambda de C++0x facilitent réellement la programmation
multitâche. Au sujet du partage de variables entre threads, je voudrais citer de mémoire
une phrase de Boris qui m'a bien fait rire : "Une manière de faire est de le
faire à la C#, en passant tout en paramètre sans se soucier des performances
ni de l'occupation de la mémoire" ;)
</p>
        <p>
D'autres conférence sur le sujet promettent d'être intéressantes, Boris Jabe nous
en sélectionne quelques unes dans une de ses slides. Slide affichée dans une application
MFC, évidemment ! :D
</p>
        <p align="center">
          <a href="http://microsoftpdc.com/Sessions/P09-13">
            <img border="0" src="http://www.blogmfc.com/content/binary/microsoft-pdc-09-visual-C1.jpg" />
            <br />
Boris Jabe présente Visual C++ 2010, et sélectionne quelques conférences
que tout développeur C++ devrait regarder !</a>
        </p>
        <p>
Rendez-vous sur <a href="http://www.microsoftpdc.com">www.microsoftpdc.com</a> pour
les regarder.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=2d21b360-8c54-4ecf-a4ab-ac3a3cc1984d" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Visual Studio 2010 : les nouveautés C++ MFC</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2009/10/23/VisualStudio2010LesNouveaut%c3%a9sCMFC.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,24188bee-7f24-4eb9-ad47-cdf2fcb9926f.aspx</id>
    <published>2009-10-23T15:34:03.547-07:00</published>
    <updated>2009-12-09T09:00:01.9048635-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <category term="Visual Studio" label="Visual Studio" scheme="http://www.blogmfc.com/CategoryView,category,VisualStudio.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Visual Studio 2010 apporte son lot de nouveautés pour les développeurs C++ <u>natif</u> avec
une nouvelle version des MFC !
</p>
        <p>
Les développeurs en C++ natifs ne sont pas abandonnés, même si la plupart d'entre
eux sont morts depuis longtemps ! ;-) Déjà, Visual Studio 2008 avait apporté
son lot de nouveautés avec <a href="http://www.blogmfc.com/2008/08/18/VisualStudio2008ServicePackSP1DisponibleImpressions.aspx">le
service pack 1</a>. Peut-être que Microsoft considère que les vrais développeurs,
en plus de <a href="http://www.textfiles.com/humor/COMPUTER/quiche.txt">ne pas manger
de quiche</a>, programment en code C++ natif ?
</p>
        <p>
          <strong>Ribbon Designer</strong>
        </p>
        <p>
Le plus spectaculaire est le nouveau Ribbon designer. Il permet d'intégrer une interface
de type Ribbon (comme celle d'Office 2007, ou de Paint dans Windows 7) dans une application
C++/MFC sans coder, de la même manière qu'on intègre un menu. Visual C++ 2010
possède un nouveau type de ressource : le Ribbon. Au même titre que les toolbars,
boîtes de dialogues...
</p>
        <p align="center">
          <img border="0" alt="Visual Studio 2010 Screenshot Ribbon MFC" src="http://www.blogmfc.com/content/binary/ribbon-resource.jpg" />
          <br />
          <strong>Le <em>ribbon-designer</em> de Visual Studio 2010 pour les MFC<br /></strong>
        </p>
        <p>
(Oui, il faudrait que je refasse la maquette de ce blog !)
</p>
        <p>
Ribbon... mais de quel ribbon parle-t'on ?
</p>
        <p>
Précision : ce <em>ribbon-designer</em> n'est pas destiné à créer des interfaces
utilisateurs se basant sur le nouveau contrôle Ribbon-Scenic livré avec Windows 7.
Il n'est utilisable qu'en C++ et en utilisant les MFC. L'avantage est que l'application
peut s'exécuter à la fois sous Windows XP, Vista et Windows 7.
</p>
        <p>
Comment ça marche ?
</p>
        <p>
La première étape est de créer un Ribbon dans les ressources du projet. Cela crée
automatiquement un fichier XML associé. Dans ce seront ajoutés les descriptions des
onglets, groupes et contrôles du Ribbon. Un fichier XML, oui. Pas un fichier XAML
! En fait le XML suffit j'imagine...
</p>
        <p>
En éditant le Ribbon, on ouvre le Ribbon-designer. Dans cette fenêtre, on peut glisser-déplacer
des onglets, des groupes, des contrôles, créer des sous-menus, affecter des images
à des boutons, créer les commandes pour associer le code à l'interface... bref, effectuer
le design de l'interface.
</p>
        <p align="center">
          <img border="0" alt="Visual Studio 2010 Screenshot Ribbon MFC" src="http://www.blogmfc.com/content/binary/ribbon-button-properties.jpg" />
          <br />
          <strong>Modification des propriétés d'un bouton du ribbon<br /></strong>
        </p>
        <p>
L'éditeur de Ribbon génère un fichier XML décrivant l'interface utilisateur. Lors
de la compilation du projet, ce fichier XML est inclus dans les ressources, et donc
dans le binaire. Pour charger le ribbon dans la fenêtre principale, trois lignes
de code suffisent :
</p>
        <font size="2" face="Consolas">
          <font size="2" face="Consolas">
            <blockquote style="MARGIN-RIGHT: 0px" dir="ltr">
              <font size="2" face="Consolas">
                <font size="2" face="Consolas">
                  <p>
CMFCRibbonBar m_wndRibbon;
</p>
                </font>
              </font>
              <p>
m_wndRibbon.Create(
</p>
            </blockquote>
          </font>
        </font>
        <font color="#0000ff" size="2" face="Consolas">
          <font color="#0000ff" size="2" face="Consolas">
            <font color="#0000ff" size="2" face="Consolas">this</font>
          </font>
        </font>
        <font size="2" face="Consolas">
          <font size="2" face="Consolas">);<br />
m_wndRibbon.LoadFromResource(IDR_RIBBON);
</font>
        </font>
        <p>
On dirait du code C# tellement c'est simple, n'est-ce pas ? :-D Et puis, pour une
fois dans la rubrique "je crée une interface en 5 minutes", les développeurs C++ natifs
sont privilégiés par rapport à leurs homologues C# car ce designer n'existe que pour
du code C++. Il n'en existe pas de version pour Winform ni pour WPF/Silverlight dans
Visual Studio 2010 .
</p>
        <p>
Le Ribbon est disponible avec plusieurs looks. En plus des looks présents dans Visual
Studio 2008 (ceux avec les bouton rond, comme dans Office 2007), un nouveau look ressemblant
au Ribbon de Windows 7 a été ajouté. Et, fin du fin, il est possible de changer de
look à la volée, pendant l'exécution du programme.
</p>
        <p>
Voici deux captures d'écran de la même application. Le look a été modifié grâce
au menu <em>Style</em> en haut à droite du ribbon.
</p>
        <p align="center">
          <img border="0" src="http://www.blogmfc.com/content/binary/appli-ribbon-mfc-look-2007.jpg" />
          <br />
          <strong>Application C++/MFC avec Ribbon look Office 2007 black</strong>
        </p>
        <p>
 
</p>
        <p align="center">
          <img border="0" src="http://www.blogmfc.com/content/binary/appli-ribbon-mfc-look-win7.jpg" />
          <br />
          <strong>Application C++/MFC avec Ribbon look Windows 7</strong>
        </p>
        <p>
 
</p>
        <p>
          <strong>Sauvegarde automatique des documents en cas de plantage</strong>
        </p>
        <p>
Imaginez, vous saisissez un document et votre application C++/MFC plante. Votre travail
est perdu ? Non ! Les classes MFC de Visual Studio 2010 contiennent un gestionnaire
de sauvegarde automatique (sérialisation automatique des documents toutes les 5 minutes
par défaut si l'option est activée). En cas de plantage, le crash est intercepté et
le travail en cours est copié dans des fichiers temporaires. Au prochain lancement
du programme, les MFC proposeront automatiquement d'ouvrir les fichiers temporaires
et de restaurer le travail interrompu.
</p>
        <p>
Cette fonctionnalité est très simple à mettre en oeuvre si l'on respecte l'architecture
générale des MFC. Il s'agit de mettre en place quelques callbacks. Je ne l'ai pas
encore testée, mais dès que je le fais je mets le code en ligne. Ce filet anti-plantage
est supporté sous Vista et Windows 7, pas sous Windows XP : le système d'exploitation
effectue une partie du travail en interceptant le plantage.
</p>
        <p>
 
</p>
        <p>
          <strong>Support dans les MFC des interactions avec la barre des tâches de Windows
7</strong>
        </p>
        <p>
Encapsulation des interactions avec la taskbar win7 dans les MFC pour faciliter l'intégration
avec Win7.
</p>
        <p>
Une nouvelle fonction toute simple a été ajoutée à la class CWinApp :
</p>
        <font size="2" face="Consolas">
          <font size="2" face="Consolas">
            <p>
   EnableTaskbarInteraction(TRUE);
</p>
          </font>
        </font>
        <p>
Elle permet d'afficher dans la barre des tâches de Windows 7 les différentes fenêtres
MDI de l'application dans des miniatures différentes, comme Internet Explorer 8 le
fait, ainsi que la liste des documents récents En une seule ligne de code !
</p>
        <p>
Cette fonctionnalité n'a pas l'air d'être complètement terminée dans cette version
béta 2. En attendant la version finale, pour illustrer l'intégration d'une application
dans la barre des tâches de Windows 7, voici une capture d'écran de MSN Messenger
!
</p>
        <p>
          <img border="0" src="http://www.blogmfc.com/content/binary/Win7-taskbar.jpg" />
        </p>
        <p>
 
</p>
        <p>
          <strong>Les TaskDialog aussi simples à utiliser que les MessageBox</strong>
        </p>
        <p>
Les MFC incluent le support des Task Dialogs apparues avec Windows Vista d'une manière
élégante et très simple à mettre en oeuvre. Il est recommandé de les utiliser le plus
souvent possible à la place des MessageBox.
</p>
        <p>
          <img border="0" src="http://www.blogmfc.com/content/binary/MFC-taskdialog.jpg" />
        </p>
        <p>
Voici le code correspondant :
</p>
        <font size="2" face="Consolas">
          <font size="2" face="Consolas">
            <blockquote style="MARGIN-RIGHT: 0px" dir="ltr">
              <p>
INT_PTR nResult = CTaskDialog::ShowDialog(<br />
   _T(
</p>
            </blockquote>
          </font>
        </font>
        <font color="#a31515" size="2" face="Consolas">
          <font color="#a31515" size="2" face="Consolas">
            <font color="#a31515" size="2" face="Consolas">"Choisissez
si vous souhaitez enregistrer vos modifications ou non."</font>
          </font>
        </font>
        <font size="2" face="Consolas">
          <font size="2" face="Consolas">), <br />
   _T(</font>
        </font>
        <font color="#a31515" size="2" face="Consolas">
          <font color="#a31515" size="2" face="Consolas">
            <font color="#a31515" size="2" face="Consolas">"Vous
n'avez pas sauvegardé votre travail."</font>
          </font>
        </font>
        <font size="2" face="Consolas">
          <font size="2" face="Consolas">), <br />
   _T(</font>
        </font>
        <font color="#a31515" size="2" face="Consolas">
          <font color="#a31515" size="2" face="Consolas">
            <font color="#a31515" size="2" face="Consolas">"Budget"</font>
          </font>
        </font>
        <font size="2" face="Consolas">
          <font size="2" face="Consolas">),
IDS_SAVE_YES, IDS_SAVE_CANCEL, TDCBF_CANCEL_BUTTON);</font>
        </font>
        <p>
          <font size="2" face="Consolas">
            <font size="2" face="Consolas">
              <font face="Verdana">Plus
d'infos sur <a href="http://msdn.microsoft.com/en-us/library/dd293651(VS.100).aspx">le
site MSDN</a>.</font>
            </font>
          </font>
        </p>
        <p>
 
</p>
        <p>
          <font size="2" face="Consolas">
            <font size="2" face="Consolas">
              <font face="Verdana">
                <strong>Autres
fonctionnalités, intégration des applications dans le système</strong>
              </font>
            </font>
          </font>
        </p>
        <p>
          <font size="2" face="Consolas">
            <font size="2" face="Consolas">
              <font face="Verdana">En
vrac :</font>
            </font>
          </font>
        </p>
        <ul>
          <li>
Les MFC sont compatibles avec les périphériques multitouch. Les MFC génèrent
correctement les évènements correspondants à ces périphériques. 
</li>
          <li>
Intéractions avec le système de recherche de Windows : les types de documents propriétaires
gérés par une application MFC peuvent être indexés par Windows pour la recherche dans
les documents de Windows. 
</li>
          <li>
Les MFC peuvent générer des miniatures des documents compatibles avec les miniatures
de l'explorateur de Windows.</li>
        </ul>
        <p>
C'est tout. Pour le moment.
</p>
        <p>
          <font size="2" face="Consolas">
            <font size="2" face="Consolas"> 
</font>
          </font>
        </p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=24188bee-7f24-4eb9-ad47-cdf2fcb9926f" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Visual Studio 2010 beta 2 pour tout le monde</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2009/10/21/VisualStudio2010Beta2PourToutLeMonde.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,0e55039a-d98f-4322-9a29-81f0d451764c.aspx</id>
    <published>2009-10-21T13:50:19.86-07:00</published>
    <updated>2009-10-25T05:36:54.8654078-07:00</updated>
    <category term="Silverlight" label="Silverlight" scheme="http://www.blogmfc.com/CategoryView,category,Silverlight.aspx" />
    <category term="Visual Studio" label="Visual Studio" scheme="http://www.blogmfc.com/CategoryView,category,VisualStudio.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
Il a été annoncé que les abonnés MSDN pouvaient obtenir la béta 2 de Visual Studio
2010 sur le site <a href="http://www.msdn.com/">MSDN</a>. Quant à ceux qui n'ont pas
d'abonnement MSDN, ils peuvent télécharger la béta 2 ici sur le site <a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx">Microsoft.com</a>.
</p>
        <p>
Il est possible d'installer VS 2010 à côté de VS 2008, sur la même machine. Les deux
environnements fonctionnent indépendamment sans problème. Pratique (indispensable
?) pour migrer les projets.
</p>
        <p>
Cependant il y a un petit bug dans le setup de VS2010 qui se produit si vous avez
installé le SDK de Silverlight 3 RTM. A la fin de l'install, vous aurez ce message
d'erreur :
</p>
        <p>
          <img border="0" alt="Visual Studio 2010 setup problem with Silverlight" src="http://www.blogmfc.com/content/binary/Silverlight3%20failed.jpg" />
        </p>
        <p>
Tout s'est bien passé, sauf que VS 2010 veut installer "Silverlight 3 SDK GDR
2" (General Distribution Release 2, qui date de fin août 2009), et qu'il n'arrive
pas à l'installer si vous avez déjà "Silverlight 3 SDK RTM". Problème de conflit de
version donc. Car il existe déjà 3 versions de Silverlight 3 (voir les détails sur
le <a href="http://timheuer.com/blog/archive/2009/09/01/silverlight-3-minor-update-gdr-2.aspx" target="_blank">blog
de Tim Heuer</a>) :
</p>
        <li>
RTM: 3.0.40624 (La version dont "tout le monde" a installé le SDK) 
</li>
        <li>
GDR 1: 3.0.40723 
</li>
        <li>
GDR 2: 3.0.40818 (La dernière version que "personne" n'a vu passer) 
<p>
La solution... est de désinstaller "Microsoft Silverlight 3 SDK" par le panneau de
contrôle AVANT d'installer VS 2010 beta 2.
</p><p>
Si vous avez déjà installé VS 2010 et obtenu ce message d'erreur, vous avez peut-être
constaté que Silverlight a l'air de fonctionner correctement avec VS 2010. En fait,
tout est OK, sauf que vous n'avez pas la toute toute dernière version du
SDK de Silverlight. <strong>Microsoft conseille de désinstaller Silverlight 3 SDK
et de réinstaller VS 2010</strong>... Voir sur le blog de <a href="http://blogs.silverlight.net/blogs/msnow/archive/2009/10/21/uninstall-silverlight-sdk-rtm-before-installing-vs-2010-beta-2.aspx" target="_blank">Mike
Snow</a>.
</p><p>
Mais j'imagine qu'on peut simplement <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=1ea49236-0de7-41b1-81c8-a126ff39975b#tm" target="_blank">installer
le SDK Silverlight 3 GDR2</a> après avoir désinstallé le SDK Silverlight 3 RTM si
on désire vraiment avoir le tout dernier SDK de Silverlight 3...
</p></li>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=0e55039a-d98f-4322-9a29-81f0d451764c" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Le Ribbon de Windows 7 et le Ribbon MFC : deux interfaces "Ribbon" disponibles pour les applications MFC C++</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2009/07/23/LeRibbonDeWindows7EtLeRibbonMFCDeuxInterfacesRibbonDisponiblesPourLesApplicationsMFCC.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,c3b2467f-5d37-4d90-8de4-b1ab3b007983.aspx</id>
    <published>2009-07-23T08:23:25.763-07:00</published>
    <updated>2009-07-29T08:51:33.3974863-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <category term="Windows" label="Windows" scheme="http://www.blogmfc.com/CategoryView,category,Windows.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p>
Depuis le Feature Pack (et SP1) de Visual C++ 2008, les MFC contiennent un ruban ("ribbon")
similaire à celui que l'on trouve dans Office 2007. On pouvait écrire des applications
en utilisant cette fonctionnalité des MFC, comme cet exemple :
</p>
        <p align="center">
          <img border="0" src="http://www.blogmfc.com/content/binary/feature-pack-draw-client.jpg" />
          <br />
          <strong>Le contrôle "ribbon" des MFC</strong>
          <br />
        </p>
        <p>
Il se murmurait à l'époque de la sortie de ce Service Pack, que l'interface de type
Ruban serait très courante sous Windows 7, comme je l'écrivais <a href="http://www.blogmfc.com/2008/04/07/VisualCFeaturePackDisponible.aspx">ici</a> il
y a plus d'un an.
</p>
        <p>
Eh bien Windows 7 contient un contrôle Ribbon par défaut, le "ScenicRibbon". Il n'a
pas tout a fait le même look que celui des MFC. Le problème, c'est que <strong>le
Ribbon de Windows 7 n'est pas le même que celui des MFC !</strong></p>
        <p align="center">
          <img border="0" src="http://www.blogmfc.com/content/binary/ribbon_win7.png" />
          <br />
          <strong>Le contrôle "Ribbon" de Windows 7</strong>
        </p>
        <p>
Ces deux éléments sont totalement distincts et ne se programment pas de la même façon.
Celui de Windows 7 utilise un fichier XML pour décrire les onglets, boutons... Par
exemple, pour créer deux bouton "Copier" et "Coller" dans un groupe :
</p>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2">
            <p>
   &lt;
</p>
          </font>
        </font>
        <font color="#a31515" size="2">
          <font color="#a31515" size="2">Group</font>
        </font>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2">
          </font>
        </font>
        <font color="#ff0000" size="2">
          <font color="#ff0000" size="2">CommandName</font>
        </font>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2">=</font>
        </font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2">cmdEdit</font>
        </font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2">
          </font>
        </font>
        <font color="#ff0000" size="2">
          <font color="#ff0000" size="2">SizeDefinition</font>
        </font>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2">=</font>
        </font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2">TwoButtons</font>
        </font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2">&gt;<br />
      &lt;</font>
        </font>
        <font color="#a31515" size="2">
          <font color="#a31515" size="2">Button</font>
        </font>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2">
          </font>
        </font>
        <font color="#ff0000" size="2">
          <font color="#ff0000" size="2">CommandName</font>
        </font>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2">=</font>
        </font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2">cmdCopy</font>
        </font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2"> /&gt;<br />
      &lt;</font>
        </font>
        <font color="#a31515" size="2">
          <font color="#a31515" size="2">Button</font>
        </font>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2">
          </font>
        </font>
        <font color="#ff0000" size="2">
          <font color="#ff0000" size="2">CommandName</font>
        </font>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2">=</font>
        </font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2">cmdPaste</font>
        </font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2"> /&gt;<br />
   &lt;/</font>
        </font>
        <font color="#a31515" size="2">
          <font color="#a31515" size="2">Group</font>
        </font>
        <font color="#0000ff" size="2">
          <font color="#0000ff" size="2">&gt;
</font>
        </font>
        <p>
Le SDK de Windows 7 inclus un outil pour compiler ce fichier XML de description d'interface.
Ca ressemble à du XAML, mais ce n'en est pas ! C'est une sorte de fichier Ressource
en XML, utilisé en code natif ! La documentation du ScenicRibbon de Windows 7 est <a href="http://code.msdn.microsoft.com/ScenicRibbon">ici
sur MSDN</a>.
</p>
        <p>
 
</p>
        <p>
Par contre, pour ajouter un bouton ou un groupe dans le Ribbon des MFC, il faut
écrire du code "en dur" dans le programme, comme par exemple :
</p>
        <font size="2">
        </font>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#008000" size="2">
          <font color="#008000" size="2" face="Courier New">   //
Crer le panneau "Presse-papiers":<br /></font>
        </font>
        <font size="2">
          <font face="Courier New">   strTemp.LoadString(IDS_RIBBON_CLIPBOARD);<br />
   CMFCRibbonPanel* pPanelClipboard = pCategoryHome-&gt;AddPanel(strTemp,
m_PanelImages.ExtractIcon(27));</font>
          <p>
          </p>
        </font>
        <font color="#008000" size="2">
          <font color="#008000" size="2" face="Courier New">   //
Crée le bouton "Coller"<br /></font>
        </font>
        <font face="Courier New">
          <font size="2">   strTemp.LoadString(IDS_RIBBON_PASTE);<br />
   CMFCRibbonButton* pBtnPaste = </font>
          <font color="#0000ff" size="2">
            <font color="#0000ff" size="2">new</font>
          </font>
        </font>
        <font size="2">
          <font face="Courier New"> CMFCRibbonButton(ID_EDIT_PASTE,
strTemp, 0, 0);<br />
   pPanelClipboard-&gt;Add(pBtnPaste);</font>
          <p>
          </p>
        </font>
        <font color="#008000" size="2">
          <font color="#008000" size="2" face="Courier New">   //
Crée le bouton "Couper"<br /></font>
        </font>
        <font face="Courier New">
          <font size="2">   strTemp.LoadString(IDS_RIBBON_CUT);<br />
   pPanelClipboard-&gt;Add(</font>
          <font color="#0000ff" size="2">
            <font color="#0000ff" size="2">new</font>
          </font>
          <font size="2"> CMFCRibbonButton(ID_EDIT_CUT,
strTemp, 1));</font>
        </font>
        <p>
Le contrôle "Ribbon" devient presque incontournable. Celui de Windows 7 est beaucoup
plus flexible à programmer. Il est quand même plus facile et souple de décrire une
interface utilisateur en XML que d'écrire du code C++ en dur ! Au point que si
une DLL redistribuable du Ribbon Windows 7 était disponible pour Vista et XP, <strong>on
jetterait bien vite le Ribbon des MFC à la poubelle</strong>. Le problème est qu'apparamment
le Scenic Ribbon ne sera disponible que pour Vista et 7, pas pour XP (<a href="http://channel9.msdn.com/pdc2008/PC14/">http://channel9.msdn.com/pdc2008/PC14/</a>).
</p>
        <p>
Et, pour une fois, les programmeurs natifs C++ sont avantagés par rapport aux programmeurs
Winform. Le framework .NET ne contient pas (encore) de ribbon. Mais Microsoft propose
un Ribbon en add-in pour WPF, que l'on peut télécharger, en plus de
.NET 3.5 : <a href="http://windowsclient.net/wpf/wpf35/wpf-35sp1-ribbon-walkthrough.aspx">http://windowsclient.net/wpf/wpf35/wpf-35sp1-ribbon-walkthrough.aspx</a></p>
        <p>
Evidemment je ne mentionne pas les différents éditeurs de composants payants pour
MFC (Codejock, BCG) ou .NET (Infragistics...) qui proposent des ribbons.
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=c3b2467f-5d37-4d90-8de4-b1ab3b007983" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Silverlight 3, l'ebook en PDF déjà dispo ! Un nouvel environnement pour les applications desktop ?</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2009/03/20/Silverlight3LebookEnPDFD%c3%a9j%c3%a0DispoUnNouvelEnvironnementPourLesApplicationsDesktop.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,454e898f-1659-4ad9-b872-8fcf47f028b9.aspx</id>
    <published>2009-03-20T16:15:10.077-07:00</published>
    <updated>2009-03-24T04:05:30.573858-07:00</updated>
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <category term="Silverlight" label="Silverlight" scheme="http://www.blogmfc.com/CategoryView,category,Silverlight.aspx" />
    <category term="WPF" label="WPF" scheme="http://www.blogmfc.com/CategoryView,category,WPF.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">La nouvelle version de Silverlight 3 vient
d'être dévoilée en version beta depuis quelques jours. Le site <a href="http://www.silverlight.net">www.silverlight.net</a> centralise
toutes les infos et outils de développement.<br /><br /><font size="4">Découvrir Silverlight 3 : l'ebook !</font><br /><br />
Laurence Moroney (<a href="http://blogs.msdn.com/webnext">son blog ici</a>) a publié
il y a quelques mois un <a href="http://www.amazon.fr/D%C3%A9couvrir-Silverlight-2-Patrick-Fabre/dp/2100521748">livre
sur Silverlight 2</a> en anglais, traduit en français chez Microsoft Press. Un bon
bouquin pour découvrir Silverlight.<br /><br /><div align="center"><img src="http://www.blogmfc.com/content/binary/silverlight-2-Moroney.jpg" alt="Découvrir Silverlight 2, de Laurence Moroney" align="right" border="0" /><br /></div><br />
Incroyable, une <b>suite de ce livre est déjà disponible</b> sous la forme d'un ebook
en PDF pour Silverlight 3 : <a href="http://go.microsoft.com/?linkid=9654953">First
look : Microsoft Silverlight 3</a>.<br /><br />
Sommaire de "First look : Microsoft Silverlight 3" :<br /><ul><li>
3D Effects with Perspective Transforms</li><li>
Animation Easing</li><li>
H264 Video Support</li><li>
Pixel Shaders</li><li>
Out-of-Browser Applications</li><li>
Save File Dialog Box</li><li>
XAML Element Databinding</li></ul><br /><font size="4">Les applications Silverlight arrivent sur le desktop (pour remplacer
WPF ?)<br /></font><br />
La possibilité d'installer des applications Silverlight sur le PC, et de les exécuter
comme des applications indépendantes est une petite révolution dans le monde du développement
d'applications desktop. Silverlight se met à marcher sur les plates-bandes des applications
desktop C#/.NET classiques (Winforms ou WPF)... et peut-être même des applications
MFC/C++ natives.<br /><br />
Evidemment, Winforms, WPF, et C++ natif ont leur spécificités et peuvent être des
environnements irremplaçables dans certains cas. 
<br /><br />
Mais pour le développement d'une nouvelle application, ou la migration d'une application
existante, Silverlight peut être envisagé comme une alternative crédible à Winforms,
WPF et même C++. Surtout <b>si l'application doit être disponible à la fois en ligne
et hors ligne</b>.<br /><br />
Pour caricaturer, on pourrait dire qu'une application Winforms est déjà démodée, qu'une
application WPF ne sera pas forcément très rapide et nécessitera de grosses configurations
matérielles pour fonctionner, et que l'application C++ aura beaucoup de mal à fonctionner
via Internet. Mais Silverlight 3 aura des limitations dans ses fonctionnalités qui
pourront être rédhibitoires.<br /><br />
Winforms, WPF, C++ natif, Silverlight : 4 technos de développement d'applications.
Sans parler d'Adobe Flex !<br /><br />
D'ailleurs il se murmure que WPF pourrait être une victime collatérale de la guerre
que se livrent Microsoft avec Silverlight, et Adobe avec Air : WPF est un Silverlight
en beaucoup plus lourd, et son seul avantage est qu'il a un runtime plus puissant
(voir l'article : <a href="http://www.sdtimes.com/content/article.aspx?ArticleID=33355&amp;print=true">Silverlight
3 might kill WPF</a> par exemple). <a href="http://blogs.msdn.com/tims/archive/2009/03/23/exploring-the-coreclr-inside-silverlight.aspx">Tim
Sneath a écrit un article très intéressant</a> sur les différences entre les runtime
Silverlight et .NET classique. En le lisant je me dis que ma foi, Silverlight a l'air
bien fichu de l'intérieur.<br /><br /><img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=454e898f-1659-4ad9-b872-8fcf47f028b9" /></div>
    </content>
  </entry>
  <entry>
    <title>BlogMFC is back !</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2009/02/20/BlogMFCIsBack.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,80153178-7d14-451f-b6e6-0461b8cd31a6.aspx</id>
    <published>2009-02-20T06:14:44.867-07:00</published>
    <updated>2009-02-20T06:31:37.3271543-07:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Vous le savez peut-être, le moteur de recherche et hébergeur Lycos a fermé ses
portes. Ils ont fait piquer le chien. Pauvre bête. 
</p>
        <p align="center">
          <img src="http://www.lycos.fr/gfx/lycos.png" />
        </p>
        <p>
Le problème c'est que le nom de domaine blogmfc.com était enregistré chez eux
; j'utilisais Lycos comme <em>registrar</em>. Du coup ce site n'était plus accessible
pendant plusieurs jours. Il a fallu que je change de <em>registrar.</em> C'est moins
facile que de changer d'hébergeur. Enfin c'est fait. 
</p>
        <p>
BlogMFC is back, même si mon travail actuel ne porte plus qu'en partie sur le C++
et les MFC. Eh oui, .NET et Internet déciment les projets C++. Ces derniers ne
sont pas tous morts, mais ils deviennent de plus en plus réservés à certains domaines
particuliers. Ou alors ils survivent le temps de migrer vers .NET, et/ou vers Internet...?
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=80153178-7d14-451f-b6e6-0461b8cd31a6" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Bonne annee seven beta 1</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2009/01/08/BonneAnneeSevenBeta1.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,48898d6d-0b27-4f18-9479-2fd6a8ed5985.aspx</id>
    <published>2009-01-08T07:38:21.63-07:00</published>
    <updated>2009-01-08T07:54:32.3112088-07:00</updated>
    <category term="humour" label="humour" scheme="http://www.blogmfc.com/CategoryView,category,humour.aspx" />
    <category term="Windows" label="Windows" scheme="http://www.blogmfc.com/CategoryView,category,Windows.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">Vous le savez bien sûr : il existe plusieurs
façons de compter les années, en fonction du calendrier que l'on utilise. Dans notre
calendrier grégorien, nous sommes en 2009. Mais il existe d'autres calendriers : hébreux,
islamique, révolutionnaire, et, celui que l'on consulte tous les jours, le calendrier
Windows :<br /><br /><div align="center"><img src="http://www.blogmfc.com/content/binary/WindowsCalendar.jpg" border="0" /><br /><font size="2">Le calendrier Windows affiche l'an 7 beta 1</font><br /></div><br />
Dans le calendrier Windows, nous sommes en l'an 7 béta 1 depuis hier, quand Steve
Balmer a officiellement annoncé la disponibilité de Windows 7 beta 1. Alors bonne
année 7 béta 1 ! Et, également, comme ce blog a été un peu désert ces derniers temps,
bonne année grégorienne 2009 !<br /><br />
La durée d'une année Windowsienne est maintenant d'exactement trois années terrestres,
grâce à la poigne de <a href="http://en.wikipedia.org/wiki/Steven_Sinofsky">Steven
Sinovsky</a>[<a href="http://en.wikipedia.org/wiki/Steven_Sinofsky" target="_blank">^</a>]
: la Terre effectue exactement 3 rotations autour du soleil entre deux versions de
Windows. Avant, c'était beaucoup plus aléatoire, et il fallait attendre la fin de
l'année Windowsienne pour savoir qu'elle touchait à sa fin.<br /><br />
Bonne et joyeuse année <strike>2009</strike> 7 beta 1<br /><br /><br /><img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=48898d6d-0b27-4f18-9479-2fd6a8ed5985" /></div>
    </content>
  </entry>
  <entry>
    <title>Le code source de Framework .NET 3.5 SP1 disponible</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/08/31/LeCodeSourceDeFrameworkNET35SP1Disponible.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,8cf5c894-428c-40b6-b474-04ea9e48f26f.aspx</id>
    <published>2008-08-31T07:35:00.553-07:00</published>
    <updated>2008-08-31T15:19:46.7993956-07:00</updated>
    <category term="Visual Studio" label="Visual Studio" scheme="http://www.blogmfc.com/CategoryView,category,VisualStudio.aspx" />
    <category term="WPF" label="WPF" scheme="http://www.blogmfc.com/CategoryView,category,WPF.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">Il y a deux semaines j'avais râlé parce
que le code source de .NET n'était plus disponible avec VS 2008 SP1. Eh bien c'est
désormais en partie corrigé. Une partie du code source de .NET 3.5 SP1 vient d'être
rendu disponible en cette fin août par Microsoft. Cela veut dire que désormais l'on
peut deboguer et tracer dans le Framework .NET 3.5 SP1 avec VS 2008 SP1. C'est annoncé
sur le nouveau blog Microsoft du <a href="http://blogs.msdn.com/rscc">Source Code
Center</a>.<br /><br />
Par contre, la procédure indiquée sur ce blog est valable pour VS 2008, et n'a pas
été mise à jour pour VS2008 SP1 ! ;) Cela viendra sans doute bientôt.<br /><br />
Dans VS 2008 SP1, il y <b>trois</b> options à cocher pour récupérer le code source
de .NET, contre deux dans VS 2008 :<br /><br /><div align="center"><img src="http://www.blogmfc.com/content/binary/dotnet-debug1.jpg" border="0" /><br /><font size="1">Trois options pour obtenir le code source de .NET 3.5 SP1</font><br /><br /><div align="left">Si ce n'est pas la première fois que vous utilisez cette fonctionnalité,
vous devez vider le dossier cache dans lequel les sources sont stockés pour provoquer
un nouveau téléchargement des sources et des symboles à jour :<br /><br /><div align="center"><font size="1"><img src="http://www.blogmfc.com/content/binary/dotnet-debug2.jpg" border="0" /><br />
Le dossier cache où sont stockés les sources de .NET<br /></font></div><br />
La plupart du code source n'est pas encore disponible. Le code source de WPF, notamment,
n'est pas encore mis à disposition. Cela viendra bientôt, comme annoncé sur le blog
Microsoft du <a href="http://blogs.msdn.com/rscc">Source Code Center</a>.<br /><br />
Mais pourquoi est-ce que le code de WPF 3.5 SP1 n'est-il toujours pas disponible ?
Il nécessite tant de correction que cela avant de sortir de chez Microsoft ? Il y
a peut-être des commentaires dans le code à supprimer, du style :<br /><br />
    // with this workaround, we can send Adobe Air to hell<br /><br />
Mystère... ! ;)<br /><br /></div></div><img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=8cf5c894-428c-40b6-b474-04ea9e48f26f" /></div>
    </content>
  </entry>
  <entry>
    <title>Quel controle DataGrid utiliser avec WPF ? Aucun !</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/08/26/QuelControleDataGridUtiliserAvecWPFAucun.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,7a468f8b-5cb6-40e0-81ac-ce6018dfbd75.aspx</id>
    <published>2008-08-26T15:22:13.982-07:00</published>
    <updated>2008-08-28T06:06:47.8256026-07:00</updated>
    <category term="WPF" label="WPF" scheme="http://www.blogmfc.com/CategoryView,category,WPF.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <h4>De nombreux Datagrid sont disponibles pour WPF
</h4>
        <p>
Microsoft vient de sortir une version "béta" (CTP) de son contrôle Datagrid utilisable
avec WPF 3.5 SP1. Ce contrôle est disponible avec son code source sur <a href="http://www.codeplex.com/wpf">www.codeplex.com/wpf</a>,
et Jaime Rodriguez en a posté <a href="http://blogs.msdn.com/jaimer/archive/2008/08/13/dabbling-around-the-new-wpf-datagrid-part-1.aspx">un
exemple d'utilisation</a>.
</p>
        <p>
Pourtant, ce contrôle Datagrid n'est pas destiné à faire concurrence aux Datagrid
WPF édités par des éditeurs de composants. Il devrait rester assez simple : ce n'est
pas de l'intérêt de Microsoft de tuer les éditeurs de composants ! Par contre le code
source du Datagrid Microsoft est disponible gratuitement, alors qu'il est relativement
cher ou carrément non disponible chez les éditeurs tiers.
</p>
        <p>
Il existe plusieurs contrôles Datagrid chez différents éditeurs :
</p>
        <ul>
          <li>
            <a href="http://www.infragistics.com/">Infragistics</a>
          </li>
          <li>
            <a href="http://xceed.com/">Xceed</a>
          </li>
          <li>
            <a href="http://www.telerik.com/">Telerik</a>
          </li>
          <li>
            <a href="http://www.devexpress.com/">DevExpress</a>
          </li>
          <li>
            <a href="http://www.componentone.com/">ComponentOne</a>
          </li>
        </ul>
        <p>
Michael Sync a réalisé un <a href="http://michaelsync.net/2008/08/09/any-recommendation-for-wpf-datagrid">banc
d'essai</a> des Data Grid de ces éditeurs. 
</p>
        <p>
J'ai été surpris de constater qu'Infragistics n'était pas vraiment à la hauteur dans
ce domaine précis, alors que ses composants sont renommés. Manque de maturité du produit
sans doute.
</p>
        <p align="center">
          <img style="WIDTH: 748px; HEIGHT: 479px" height="447" alt="Xceed Data grid control" src="http://www.blogmfc.com/content/binary/xceed%20data%20grid.jpg" width="632" border="0" />
          <br />
          <font size="1">Une vue du Data Grid de Xceed</font>
        </p>
        <p>
Xceed a été le premier a sortir un Data Grid pour WPF. Cette expérience lui vaut d'être
sans doute le Data grid le plus utilisé par la communauté des développeurs WPF. La
version 3.0 de ce contrôle vient tout juste de sortir, avec des visualisations en
3D. Et d'après Michael Sync et les commentaires de l'article, Xceed est sans doute
le meilleur Data Grid actuellement, avec celui de Telerik. Cerise sur le gâteau, Xceed
propose une version Express gratuite.
</p>
        <h4>Trop lents !
</h4>
        <p>
Mais gros, <strong>gros problème : la performance</strong>. Ces contrôles Datagrid
pour WPF sont très jolis, avec des skins, des effets 3D, mais... qu'est-ce qu'ils
sont lents ! A un point qu'ils peuvent être considérés comme inutilisables... Sur
les forums des éditeurs, des clients demandent conseil à propos de la lenteur d'affichage,
et il leur est répondu que l'amélioration des performances est un sujet prioritaire. 
</p>
        <p>
Le <a href="http://www.codeplex.com/wpf">Datagrid de Microsoft</a> est encore plus
lent que celui de Xceed, selon mes tests personnels très subjectifs. Le scroll est
catastrophique, et l'impression de lenteur générale est assez pénible (sur un Core
2 Duo 2,4 Ghz avec 2 Go de RAM). Ces pauvres performances expliquent sans doute pourquoi
le Datagrid n'a pas fait partie de la version 3.5 SP1 de .NET.
</p>
        <h4>Que faire ?
</h4>
        <p>
Qu'en conclure ? Ne pas utiliser de Datagrid sous WPF, tout simplement ! ;)
</p>
        <p>
Peut-être que le concept de Datagrid est très lié et très adapté à .NET 2 et Windows
Form. Datagrid = Winform + .NET 2.0 ? Il existe de très jolis DataGrids maintenant
pour Windows Form.
</p>
        <p>
Et alors comment présenter des données sous WPF ? Le Datagrid n'est sans doute pas
adapté. Sous WPF, il faut chercher d'autres manières de présenter les données. De
nouvelles "expériences utilisateur" sont à créer. Avis aux amateurs. <a href="http://perseus.franklins.net/dnrtvplayer/player.aspx?ShowNum=0115" target="_blank">Billy
Hollins</a> présente une telle application WPF en video. Ci dessous, deux écrans représentant
un design maître-détail :
</p>
        <p align="center">
          <img src="http://www.blogmfc.com/content/binary/WPF-master-detail-1.jpg" border="0" />
          <br />
          <font size="1">La liste de clients : une liste non éditable</font>
        </p>
        <p align="center">
          <img src="http://www.blogmfc.com/content/binary/WPF-master-detail-2.jpg" border="0" />
          <br />
          <font size="1">Le détail d'un client</font>
        </p>
        <p>
Cette approche est très représentative de la manière de concevoir une application
WPF : il faut bien connaître les fonctionnalités et les possibilités de la plate-forme,
puis se "laisser porter" par ces possibilités pour concevoir une interface utilisateur
adaptée. Tout un programme !
</p>
        <p>
        </p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=7a468f8b-5cb6-40e0-81ac-ce6018dfbd75" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Apple aime votre PC : il le colonise</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/08/26/AppleAimeVotrePCIlLeColonise.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,d8d23da1-27dd-45d3-ab78-7ab3266d84ea.aspx</id>
    <published>2008-08-26T09:19:20.3028616-07:00</published>
    <updated>2008-08-26T09:57:23.4227941-07:00</updated>
    <category term="Windows" label="Windows" scheme="http://www.blogmfc.com/CategoryView,category,Windows.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Si vous avez acheté un iPod ou un iPhone, vous l'avez sans doute constaté : des logiciels
dont vous n'avez pas besoin se sont sournoisement installés sur votre PC.
</p>
        <p>
Heureux possesseur d'un baladeur Apple, vous devez installer le logiciel iTunes sur
votre PC. C'est écrit sur la boîte, on est prévenu.
</p>
        <p>
Par contre, ce qui n'est pas écrit, c'est que pour télécharger des applications gratuites
ou des mises à jours pour votre iPod/iPhone, vous devez fournir un numéro de carte
bancaire à Apple.
</p>
        <p>
Et toute une floppée de logiciels sont installés par Apple sur votre PC
sans votre permission.
</p>
        <p align="center">
          <img src="http://www.blogmfc.com/content/binary/Apple-crapware.jpg" border="0" />
          <br />
          <font size="1">Les applications installées sans permission avec iTunes</font>
        </p>
        <p>
En voici la liste (non exhaustive) :
</p>
        <ul>
          <li>
le navigateur Web Safari (j'ai déjà IE et Firefox, merci)</li>
          <li>
QuickTime (je me demande quelle est son utilité, j'ai déjà Media Player)</li>
          <li>
Bonjour (Bonjour, à quoi servez vous ?)</li>
          <li>
Un logiciel de mise à jour qui, si jamais vous avez réussi à ne pas installer Safari
la première fois en décochant les bonnes options, vous proposera encore et encore
de l'installer jusqu'à ce que vous disiez oui par inadvertance. Il vous aura à l'usure
!</li>
          <li>
Le client pour le service payant de location d'espace Web "Mobile Me". Ce dernier
est installé dans le panneau de configuration.</li>
        </ul>
        <p align="center">
          <img src="http://www.blogmfc.com/content/binary/apple-crapware2.jpg" border="0" />
          <br />
          <font size="1">Mobile Me s'installe silencieusement dans le panneau de contrôle de
Windows</font>
        </p>
        <p>
Ah, ce service Mobile Me ! C'est un abonnement (100$/an) pour disposer d'un espace
de stockage en ligne. Comme vous avez déjà fourni votre numéro de carte bancaire à
Apple, il ne suffit que de quelques clics pour y souscrire. Mobile Me est un concurrent payant
de <a href="www.mesh.com">Windows Live Mesh</a>, ce dernier étant gratuit. Mais <a href="http://www.clubic.com/actualite-154370-mobileme-chronique-lancement-rate.html">Mobile
Me ne fonctionne pas très bien</a>...
</p>
        <p>
Le moins que l'on puisse dire c'est que Apple est vraiment sournois. Donc me voici
maintenant à empêcher Apple de lancer des services et des programmes résidents qui
ne me servent pas... 
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=d8d23da1-27dd-45d3-ab78-7ab3266d84ea" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Visual Studio 2008 Service Pack SP1 disponible ! Impressions.</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/08/18/VisualStudio2008ServicePackSP1DisponibleImpressions.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,e15333a6-fce6-4d37-8b13-a1fce21b4bb1.aspx</id>
    <published>2008-08-18T08:47:15.912-07:00</published>
    <updated>2008-08-19T03:33:40.0904309-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <category term="Visual Studio" label="Visual Studio" scheme="http://www.blogmfc.com/CategoryView,category,VisualStudio.aspx" />
    <category term="WPF" label="WPF" scheme="http://www.blogmfc.com/CategoryView,category,WPF.aspx" />
    <content type="html">&lt;p&gt;
Microsoft a profité de ce que j'avais le dos tourné (voir photo ci-dessous), pour
sortir une mise à jour&amp;nbsp;SP1 pour Visual Studio 2008 et aussi pour .NET 3.5.&amp;nbsp;A
peine rentré des Alpes Suisse, je me jette évidemment sur MSDN pour télécharger la
bête.
&lt;/p&gt;
&lt;p align=center&gt;
&lt;img alt="Le lac Thunsee, dans les Alpes Suisses, près de Bern.&lt;/" src="http://www.blogmfc.com/content/binary/berner%20oberland.jpg" border=0&gt;
&lt;br&gt;
&lt;font size=1&gt;Le lac Thunsee, dans les Alpes Suisses, près de Bern.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Le SP1 de&amp;nbsp;Visual Studio 2008 est dispo pour les versions gratuites (express)
et professionnelles de Visual Studio. En anglais et en français. Pour télécharger
le SP1, &lt;a href="http://go.microsoft.com/fwlink/?LinkId=122094"&gt;c'est ici pour les
versions pro&lt;/a&gt;&amp;nbsp;ou &lt;a href="http://go.microsoft.com/fwlink/?LinkId=123679"&gt;ici
pour les versions express&lt;/a&gt;. Après avoir accepté le contrat-de-licence-qu'on-ne-lit-jamais,
le programme d'installation se débrouille tout seul. Environ une heure après (quand
même), me voici avec la version RTM du&amp;nbsp;SP1 de .NET 3.5 et de Visual Studio 2008
:
&lt;/p&gt;
&lt;p align=center&gt;
&lt;img alt="A propos de Visual Studio 2008 SP1" src="http://www.blogmfc.com/content/binary/VS%202008%20SP1.jpg" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
Il y a déjà eu pas mal d'articles sur les nouvelles fonctionnalités apportées par
ce SP1 &lt;a href="http://blogs.msdn.com/mitsufu/archive/2008/08/11/visual-studio-2008-et-net-framework-3-5-service-pack-1-sp1-disponibles.aspx"&gt;en
français sur le blog de Mitsu&lt;/a&gt;&amp;nbsp;ou en anglais : la liste entière des modifications
est dans la base de connaissance de Microsoft : &lt;a href="http://support.microsoft.com/kb/945140"&gt;http://support.microsoft.com/kb/945140&lt;/a&gt;.
Plein de trucs sur ASP.NET, WPF, Linq, etc. Aussi, les applications WPF se lancent
plus rapidement, c'est clair.
&lt;/p&gt;
&lt;p&gt;
Le nombre de fonctionnalités ajoutées est impressionnant. Surtout pour .NET 3.5 SP1,
il s'agit plus d'une nouvelle version que d'un Service Pack ! .NET 3.5 SP1 contient
la version 3 de WPF, après WPF 1 sorti avec Vista et .NET 3.0, WPF 2 sorti avec Visual
Studio 2008 et .NET 3.5.
&lt;/p&gt;
&lt;h3&gt;Le SP1 pour Visual C++
&lt;/h3&gt;
&lt;p&gt;
Le SP1 de Visual Studio 2008 contient les nouveautés déjà présentées dans VC++ 2008
Feature Pack (la nouvelle version des MFC,&amp;nbsp;et C++ TR1). Mais comme le VC++ 2008
Feature Pack est sorti il y a quelques mois déjà, le SP1 de Visual Studio y apporte
de nombreux correctifs dans le compilateur C++ (bugs corrigés), dans les extensions
TR1, ainsi que dans les MFC (voir &lt;a href="http://blogs.msdn.com/vcblog"&gt;http://blogs.msdn.com/vcblog&lt;/a&gt;)
&lt;/p&gt;
&lt;p&gt;
Si vous avez déjà installé VC++ 2008 Feature Pack, il est donc conseillé d'installer
en plus Visual Studio SP1, car ce dernier contient une mise à jour du Feature Pack.
&lt;/p&gt;
&lt;p&gt;
Autrement dit, le Feature Pack est à mettre à la poubelle, il est remplacé par le
SP1 de Visual Studio.
&lt;/p&gt;
&lt;h3&gt;Un&amp;nbsp;Datagrid dans WPF 3.5 SP1 !
&lt;/h3&gt;
&lt;p&gt;
Il manquait un contrôle datagrid dans WPF. Plusieurs éditeurs indépendants ont fourni
des contrôles Datagrid, payants ou gratuits (Xceed ou Infragistics). Ce grand manque
est désormais comblé... d'une manière originale. Microsoft propose un Toolkit WPF
en téléchargement sur le site &lt;a href="http://www.codeplex.com/wpf"&gt;www.codeplex.com/wpf&lt;/a&gt;.
Ce toolkit contient entre autres, un datagrid, et nécessite WPF 3.5 SP1 pour fonctionner.
Le code source est même disponible !
&lt;/p&gt;
&lt;p&gt;
Comme Microsoft aime bien les fournisseurs de composants indépendants, il ne va pas
trop leur faire concurrence. Le Data Grid de WPF ne sera jamais aussi puissant que
le Data grid payant d'&lt;a href="http://www.infragistics.com"&gt;Infragistics&lt;/a&gt; par exemple.
Même si la version actuelle est encore en CTP, il ne faut pas s'attendre à voir ce
contrôle devenir le meilleur des datagrid du monde ! Mais il peut rendre des services...
&lt;/p&gt;
&lt;p&gt;
Le &lt;a href="http://blogs.msdn.com/jaimer/"&gt;blog de Jaime Rodriguez&lt;/a&gt; contient une
série d'articles sur l'utilisation de ce nouveau contrôle Data Grid pour WPF :
&lt;/p&gt;
&lt;p align=center&gt;
&lt;a href="http://blogs.msdn.com/jaimer/"&gt;&lt;img src="http://www.blogmfc.com/content/binary/WPF%20data%20grid.png" border=0&gt;
&lt;br&gt;
&lt;font size=1&gt;Un exemple d'utilisation par Jaime Rodriguez du nouveau contrôle Data
Grid de WPF&lt;/font&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Ce Toolkit WPF contient également un outil pour pouvoir construire plus facilement
des Pixel Shaders. Il y en a qui vont s'amuser comme des petits fous ! Toutes les
infos sur ce nouvel outil sur le &lt;a href="http://blogs.msdn.com/greg_schechter/archive/2008/08/11/a-visualstudio-buildtask-and-project-and-item-templates-for-writing-shadereffects.aspx"&gt;blog
de Greg Schechter&lt;/a&gt;,&amp;nbsp;le "spécialiste" des Pixels Shaders en WPF.
&lt;/p&gt;
&lt;h3&gt;Le&amp;nbsp;code source du framework .NET 3.5 SP1 pas encore disponible
&lt;/h3&gt;
&lt;p&gt;
Depuis quelques mois, il était possible avec Visual Studio 2008 d'utiliser le code
source du framework .NET 3.5. en mode Debug. Visual Studio 2008 sait télécharger le
code source d'une partie de .NET pour le mettre à disposition de tout programmeur
.NET, comme expliqué par exemple par &lt;a href="http://blogs.msdn.com/clauer/archive/2008/01/17/configurer-visual-studio-pour-utiliser-le-code-source-du-microsoft-net-framework-en-mode-debug.aspx"&gt;ClaueR&lt;/a&gt;.
&lt;/p&gt;
&lt;p align=center&gt;
&lt;img alt="Les nouvelles options de téléchargement du code du framework .NET" src="http://www.blogmfc.com/content/binary/VS2008-SP1-Debug-source.jpg" border=0&gt;
&lt;br&gt;
&lt;font size=1&gt;Les nouvelles options de téléchargement du code du framework .NET&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Avec Visual Studio 2008 SP1, les options de téléchargement du code source du framework
.NET sont mieux pensées, mais le problème est que le code source de .NET Framework
3.5 SP1 n'est pas encore disponible ! Des fichiers PDB sont présents, mais ils ne
contiennent pas (encore ?) les informations sur le code source.
&lt;/p&gt;
&lt;p&gt;
Alors, si vous avez absolument besoin d'utiliser le code source du framework .NET
3.5 en mode debug, n'installez pas&amp;nbsp;encore le&amp;nbsp;SP1 ! Attendons que Microsoft
mette en téléchargement le code source de la dernière version de .NET.
&lt;/p&gt;
&lt;h3&gt;Nouveautés&amp;nbsp;du mode debug (managed)
&lt;/h3&gt;
&lt;p&gt;
En mode pas à pas, le menu contextuel (clic droit de la souris) contient des entrées
supplémentaires. Le très pratique "Step into Specific" est disponible&amp;nbsp;sur un
appel de fonction, et permet de spécifier comment tracer à l'intérieur de la dite&amp;nbsp;fonction.
&lt;/p&gt;
&lt;p align=center&gt;
&lt;img src="http://www.blogmfc.com/content/binary/debug%20contextuel.jpg" border=0&gt;
&lt;br&gt;
&lt;font size=1&gt;Nouveau menu contextuel en mode debug&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Il y a beaucoup d'autres nouveautés dans ce SP1, à télécharger d'urgence donc. Sauf
si l'on a besoin d'utiliser le code source du framework .NET pour l'instant.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=e15333a6-fce6-4d37-8b13-a1fce21b4bb1" /&gt;</content>
  </entry>
  <entry>
    <title>Le monde est plat : Microsoft fait sa pub pour Vista :)</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/07/22/LeMondeEstPlatMicrosoftFaitSaPubPourVista.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,1b823478-c1ff-4bb7-8568-ea3b254411f9.aspx</id>
    <published>2008-07-22T09:21:52.401-07:00</published>
    <updated>2008-07-22T09:51:44.4432478-07:00</updated>
    <category term="humour" label="humour" scheme="http://www.blogmfc.com/CategoryView,category,humour.aspx" />
    <category term="Windows" label="Windows" scheme="http://www.blogmfc.com/CategoryView,category,Windows.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Maintenant que XP n'est (quasiment) plus disponible, Microsoft lance une grande campagne
de pub pour Vista. Marrant :
</p>
        <p align="center">
          <a href="http://www.microsoft.com/windows/windows-vista/discover/why-now.aspx">
            <img src="http://www.blogmfc.com/content/binary/windows_earth_flat_ad.jpg" border="0" />
          </a>
        </p>
        <p>
Le temps est venu de connaître la vérité : il faut maintenant <a href="http://www.microsoft.com/windows/windows-vista/discover/why-now.aspx">utiliser
Vista plutôt que XP</a>[<a href="http://www.microsoft.com/windows/windows-vista/discover/why-now.aspx" target="_blank">^</a>].
</p>
        <p>
Pourtant, un <a href="http://www.amazon.com/World-Flat-3-0-History-Twenty-first/dp/0312425074/">livre
à succès</a>[<a href="http://www.amazon.com/World-Flat-3-0-History-Twenty-first/dp/0312425074/" target="_blank">^</a>]
affirme qu'avec Internet, le monde est plat, la preuve :
</p>
        <p align="center">
          <a href="http://www.amazon.com/World-Flat-3-0-History-Twenty-first/dp/0312425074/">
            <img src="http://www.blogmfc.com/content/binary/world_is_flat_friedman.jpg" border="0" />
          </a>
        </p>
        <p>
Il est plat ou pas le monde maintenant ? Alors, qui croire ? Microsoft, ou bien Thomas
Friedman ??
</p>
        <p>
En fait, la vérité est ailleurs : des <a href="http://blogs.zdnet.com/hardware/?p=2278">petits
malins</a>[<a href="http://blogs.zdnet.com/hardware/?p=2278" target="_blank">^</a>]
qui trouvent Vista trop lent, ont déjà parodié cette pub, (référence à <a href="http://xfiles.wearehere.net/believe.htm">X-Files</a>[<a href="http://xfiles.wearehere.net/believe.htm" target="_blank">^</a>],
le film) :
</p>
        <p align="center">
          <a href="http://blogs.zdnet.com/hardware/?p=2278">
            <img src="http://www.blogmfc.com/content/binary/vista_i_want_to_believe.jpg" border="0" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=1b823478-c1ff-4bb7-8568-ea3b254411f9" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Windows XP est mort ce soir</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/06/25/WindowsXPEstMortCeSoir.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,27dd8535-c408-4cf0-8a00-0ec84c8d9fcb.aspx</id>
    <published>2008-06-25T06:21:20.653-07:00</published>
    <updated>2008-06-25T08:57:03.0931888-07:00</updated>
    <category term="Windows" label="Windows" scheme="http://www.blogmfc.com/CategoryView,category,Windows.aspx" />
    <content type="html">&lt;p align=center&gt;
&lt;font size=1&gt;&lt;strong&gt; 
&lt;object height=344 width=425&gt;
&lt;param name="movie" value="http://www.youtube.com/v/XLedTMKYW64&amp;amp;hl=en"&gt;
&lt;embed src="http://www.youtube.com/v/XLedTMKYW64&amp;hl=en" type="application/x-shockwave-flash" width="425" height="344"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;br&gt;
Un peu de musique pendant qu'on se recueille pour la mort de XP&lt;/strong&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Dans &lt;a href="http://www.microsoft.com/windows/letter.html"&gt;une lettre adressée aux&amp;nbsp;utilisateurs
de&amp;nbsp;Windows&lt;/a&gt;[&lt;a href="http://www.microsoft.com/windows/letter.html" target=_blank&gt;^&lt;/a&gt;]
(1 milliard de personnes), Bill Veghte, Vice President de Microsoft, a annoncé le
24 juin&amp;nbsp;la mort officielle&amp;nbsp;de Windows XP. Un moment de recueillement pour
un système qui a vécu 7 ans (l'espérance de vie d'un &lt;a href="http://fr.wikipedia.org/wiki/Lion"&gt;lion&lt;/a&gt;[&lt;a href="http://fr.wikipedia.org/wiki/Lion"&gt;^&lt;/a&gt;]
est entre 7 et 14 ans).
&lt;/p&gt;
&lt;p&gt;
Enfin, mort, cela veut dire qu'il ne sera plus vendu à partir de ce soir. Ou demain
matin à 05h59, pour &lt;a href="http://www.dell.com/content/products/features.aspx/winxp_inspndt?c=us&amp;amp;cs=19&amp;amp;l=en&amp;amp;s=dhs"&gt;Dell&lt;/a&gt;[&lt;a href="http://www.dell.com/content/products/features.aspx/winxp_inspndt?c=us&amp;amp;cs=19&amp;amp;l=en&amp;amp;s=dhs" target=_blank&gt;^&lt;/a&gt;].
En tous cas plus du tout à partir du 30 juin. Sauf cas exceptionnel.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.dell.com/content/products/features.aspx/winxp_inspndt?c=us&amp;amp;cs=19&amp;amp;l=en&amp;amp;s=dhs"&gt;&lt;img src="http://www.blogmfc.com/content/binary/dell-windows-xp.jpg" border=0&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Mais il sera &lt;a href="http://support.microsoft.com/lifecycle/?p1=3223"&gt;encore supporté
par Microsoft pendant près de&amp;nbsp;6 ans&lt;/a&gt;[&lt;a href="http://support.microsoft.com/lifecycle/?p1=3223" target=_blank&gt;^&lt;/a&gt;]
(encore 9 mois de support "normal", puis&amp;nbsp;ensuite, seulement les mises à jour
de sécurité pendant 5 ans). Comme ça, si vous venez de l'acheter, vous aurez encore
des mises à jour avant que votre PC ne rende l'âme. Ca veut dire aussi que si vous
développez des logiciels, vous risquez d'avoir ENCORE des clients sous XP pendant
5 ans. 
&lt;/p&gt;
&lt;p&gt;
5 ans encore ! Horreur, malheur ! Imaginez&amp;nbsp;la tête d'un type au support technique,
quand un client appellera, début 2014, pour annoncer : "euh, oui, j'ai un problème
là, avec votre logiciel, je suis sous XP, que puis-je faire ?". Ah ah ah ! 
&lt;/p&gt;
&lt;p align=center&gt;
&lt;img src="http://www.blogmfc.com/content/binary/le-cri-munch.jpg" border=0&gt;
&lt;br&gt;
&lt;font size=1&gt;&lt;strong&gt;La tête d'un type au support technique, début 2014, 
&lt;br&gt;
quand un client appellera pour signaler un problème sous Windows XP.&lt;/strong&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
D'ici là, Windows 7 sera sorti. Officiellement, et toujours d'après &lt;a href="http://www.microsoft.com/windows/letter.html"&gt;cette
même lettre&lt;/a&gt;[&lt;a href="http://www.microsoft.com/windows/letter.html" target=_blank&gt;^&lt;/a&gt;],
Windows 7 sera disponible trois ans après Vista. Donc cela donne&amp;nbsp;: sortie officielle&amp;nbsp;en
Janvier 2010, disponibilité pour les professionnels fin 2009, et versions béta largement
disponibles dans&amp;nbsp;moins d'un an.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=27dd8535-c408-4cf0-8a00-0ec84c8d9fcb" /&gt;</content>
  </entry>
  <entry>
    <title>Un nouveau livre sur les MFC !</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/06/25/UnNouveauLivreSurLesMFC.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,81856984-7a3e-4187-aa56-75088d39d05b.aspx</id>
    <published>2008-06-25T03:51:48.835-07:00</published>
    <updated>2008-06-25T04:20:33.5154643-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.packtpub.com/visual-c++-windows-application-programming/book/0608news">
            <img alt="Le nouveau livre sur les MFC de PackT Publishing" src="http://www.blogmfc.com/content/binary/MFC-book-packt-publishing.jpg" align="right" border="0" />
          </a>Nooooonnnn
? Un <em>NOUVEAU</em> livre sur les MFC ?? Aucun livre n'était sorti sur les MFC depuis...
au moins... trois siècles !
</p>
        <p>
Evidemment, il est en anglais... Après la fermeture de O'Reilly-France, nous n'aurons
plus beaucoup de livre informatique en français...
</p>
        <p>
Ce livre de 370 pages devrait être disponible d'ici quelques jours, soit en version
PDF directement sur <a href="http://www.packtpub.com/visual-c++-windows-application-programming/">le
site de l'éditeur</a>[<a href="http://www.packtpub.com/visual-c++-windows-application-programming/" target="_blank">^</a>],
soit en version papier. Bientôt disponible sur Amazon également.
</p>
        <p>
C'est un livre pour apprendre comment utiliser les MFC, pour ceux qui connaissent un
peu le C++, ou qui ont déjà programmé des applications Windows en C#.
</p>
        <p>
Les principaux concepts des MFC sont expliqués et mis en pratique dans des exemples
concrets d'applications simples.
</p>
        <p>
Bref, il a l'air bien pour se mettre (ou se remettre!) aux MFC.
</p>
        <p>
Il coûte 31,49 euros, et les frais de port sont gratuits vers la France depuis <a href="http://www.packtpub.com/visual-c++-windows-application-programming/">le
site de l'éditeur</a>[<a href="http://www.packtpub.com/visual-c++-windows-application-programming/" target="_blank">^</a>].
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=81856984-7a3e-4187-aa56-75088d39d05b" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Visual Studio 2008 SP1 et .NET 3.5 SP1 beta : quelques impressions</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/06/10/VisualStudio2008SP1EtNET35SP1BetaQuelquesImpressions.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,494c77d8-0bec-4e9d-93eb-f93ca97def7f.aspx</id>
    <published>2008-06-10T16:52:44.7364258-07:00</published>
    <updated>2008-06-10T16:53:51.6916933-07:00</updated>
    <category term="Silverlight" label="Silverlight" scheme="http://www.blogmfc.com/CategoryView,category,Silverlight.aspx" />
    <category term="Visual Studio" label="Visual Studio" scheme="http://www.blogmfc.com/CategoryView,category,VisualStudio.aspx" />
    <category term="WPF" label="WPF" scheme="http://www.blogmfc.com/CategoryView,category,WPF.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>Impressions</strong>
        </p>
        <p>
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).
</p>
        <p>
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.
</p>
        <p>
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 <a href="http://silverlight.net/getstarted">beta 2 de
Silverlight 2</a> 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.
</p>
        <p>
.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 !
</p>
        <p>
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 <a href="http://blogs.msdn.com/greg_schechter/archive/2008/05/12/a-series-on-gpu-based-effects-for-wpf.aspx">très
bonne série d'articles ici</a> sur la réalisation d'effets graphiques en utilisant
l'accélération matérielle.
</p>
        <p>
          <strong>Desinstallation</strong>
        </p>
        <p>
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) :
</p>
        <blockquote dir="ltr" style="margin-right: 0px;">
          <blockquote dir="ltr" style="margin-right: 0px;">
            <blockquote>
              <p>
                <font color="#808080" size="1">Uninstall the following list of updates, in the order
shown: </font>
              </p>
              <ol>
                <li>
                  <font color="#808080" size="1">Microsoft Visual Studio Team System 2008 Team Suite
- Service Pack 1 (KB945140)</font>
                </li>
                <li>
                  <font color="#808080" size="1">Microsoft Visual Studio Team System 2008 Team Suite
- Service Pack 1 (KB948560)</font>
                </li>
                <li>
                  <font color="#808080" size="1">Microsoft Visual Studio Team System 2008 Team Suite
- Service Pack 1 (KB947888)</font>
                </li>
                <li>
                  <font color="#808080" size="1">Microsoft Visual Studio Team System 2008 Team Suite
- Service Pack 1 (KB948484)</font>
                </li>
                <li>
                  <font color="#808080" size="1">Microsoft Visual Studio 2008 Remote Debugger - Service
Pack 1 (KB945140)</font>
                </li>
                <li>
                  <font color="#808080" size="1">KB945140 under Visual Studio .NET Prerequisites</font>
                </li>
                <li>
                  <font color="#808080" size="1">Update for WebDesigner 2007 (KB945140)</font>
                </li>
                <li>
                  <font color="#808080" size="1">Windows SDK for Visual Studio 2008 SP1 KB946729</font>
                </li>
                <li>
                  <font color="#808080" size="1">Windows SDK for Visual Studio 2008 KB946733</font>
                </li>
                <li>
                  <font color="#808080" size="1">Microsoft SQL Server Compact 3.5 SP1 Design Tools English</font>
                </li>
                <li>
                  <font color="#808080" size="1">Microsoft SQL Server Compact 3.5 SP1 English</font>
                </li>
                <li>
                  <font color="#808080" size="1">Microsoft SQL Server Database Publishing Wizard</font>
                </li>
                <li>
                  <font color="#808080" size="1">Visual Studio Tools for the Office system 3.0 Runtime
Service Pack 1 Language Pack (KB949258)</font>
                </li>
                <li>
                  <font color="#808080" size="1">Visual Studio Tools for the Office system 3.0 Runtime
Service Pack 1 (KB949258)</font>
                </li>
                <li>
                  <font color="#808080" size="1">Visual C++ 2008 IA64 Runtime - (v9.0.304xx)</font>
                </li>
                <li>
                  <font color="#808080" size="1">Visual C++ 2008 x64 Runtime - (v9.0.304xx)</font>
                </li>
                <li>
                  <font color="#808080" size="1">Visual C++ 2008 x86 Runtime - (v9.0.304xx)</font>
                </li>
              </ol>
            </blockquote>
          </blockquote>
        </blockquote>
        <p>
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.
</p>
        <p>
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 <em>plus</em> de framework .NET 3.5. Il faut en réinstaller une version normale.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=494c77d8-0bec-4e9d-93eb-f93ca97def7f" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Comment apprendre WPF en 4 etapes</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/05/28/CommentApprendreWPFEn4Etapes.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,c51c7961-d584-4f33-bf75-aa00511a18c9.aspx</id>
    <published>2008-05-28T14:42:08.689-07:00</published>
    <updated>2008-05-30T04:53:48.7962028-07:00</updated>
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <category term="WPF" label="WPF" scheme="http://www.blogmfc.com/CategoryView,category,WPF.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font size="3">
            <strong>
              <font size="4">1.</font>
            </strong>
          </font>La première étape
de l'apprentissage de WPF, selon <a href="http://joshsmithonwpf.wordpress.com/">Josh
Smith</a> (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).
</p>
        <p>
 
</p>
        <p align="center">
          <img alt="Avant d'apprendre WPF, retournez votre cerveau" src="http://www.blogmfc.com/content/binary/rotate-brain.png" border="0" />
          <br />
          <font size="1">Figure 1 : Prérequis avant d'apprendre WPF</font>
        </p>
        <p>
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... <em>différente</em>.
</p>
        <p>
 
</p>
        <p>
          <hr />
          <font size="4">
            <img src="http://www.blogmfc.com/content/binary/WPF-unleashed.jpg" align="right" border="0" />
            <strong>2.</strong>
          </font> 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 <a href="http://msdn.microsoft.com/en-us/library/ms754130.aspx">la
documentation de WPF sur MSDN</a>, et de regarder des articles, tutoriels,
vidéos sur CodeProject, sur des blogs, ou sur <a href="http://www.windowsclient.net">www.windowsclient.net</a>.
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. 
</p>
        <p>
        </p>
        <p>
Comptez plusieurs semaines pour cette deuxième étape (pour la première étape,
le délai peut être infini).
</p>
        <p>
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".
</p>
        <p>
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.
</p>
        <p>
 
</p>
        <p>
          <font size="4">
            <strong>
              <hr />
3.</strong>
          </font> 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
: 
</p>
        <p>
        </p>
        <ul>
          <li>
elle fonctionne correctement, comme indiqué dans la documentation 
</li>
          <li>
elle est rapide (ou pas trop lente)</li>
        </ul>
        <p>
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.
</p>
        <p>
Oui, WPF est une technologie très jeune et très prometteuse, mais elle a les
défauts (bugs) de sa jeunesse.
</p>
        <p>
Un exemple parmi d'autres, les <em>bitmapeffects</em> 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 <em>bitmapeffects</em> 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...
</p>
        <p>
 
</p>
        <p>
          <font size="3">
            <strong>
              <hr />
              <font size="4">4.</font>
            </strong>
          </font> 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)". 
</p>
        <p>
        </p>
        <p>
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 <em><strong>modèle-vue-machin</strong></em>. Machin
?!
</p>
        <p>
          <font size="6">
            <strong>(</strong>
          </font>
        </p>
        <p>
          <a href="http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612/">
            <img alt="Le premier livre sur les design patterns" src="http://www.blogmfc.com/content/binary/design-pattern-gof.jpg" align="right" border="0" />
          </a>Petite
parenthèse sur les <em>design patterns</em>, au cas où. Les <a href="http://en.wikipedia.org/wiki/Design_pattern_(computer_science)">design
patterns</a> (ou shemas ou <a href="http://fr.wikipedia.org/wiki/Patron_de_conception">patrons
de conception</a> en français... ah quelle drôle de langue que le français) ont
été décris en 1995 dans un livre culte : "<a href="http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612/">Design
Patterns - elements of reusable software</a>". Les <em>design patterns</em> 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 <strike>dents</strike> neurones
sur des problèmes de conception de logiciel ?
</p>
        <p>
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 <em>patterns</em>, avant de
commencer quelque logiciel que ce soit. 
</p>
        <p align="center">
          <img alt="Un excellent livre sur les design patterns, malheureusement épuisé en français" src="http://www.blogmfc.com/content/binary/head-first-design-pattern.jpg" border="0" />
        </p>
        <p align="left">
          <font size="6">
            <strong>)</strong>
          </font>
        </p>
        <p align="left">
En 2005-2006, avant même la sortie de WPF, deux gars de chez Microsoft, <a href="http://blogs.msdn.com/johngossman/">John
Gossman</a> et <a href="http://blogs.msdn.com/dancre/">Dan Crevier</a>, se sont posé
la question de savoir comment architecturer une application WPF. Ils ont inventé le <em>pattern</em><strong>Model-View-ViewModel</strong>,
qui est décrit sur le blog de John Gossman <a href="http://blogs.msdn.com/johngossman/archive/2005/10/08/478683.aspx">ici</a> puis <a href="http://blogs.msdn.com/johngossman/archive/2006/02/26/539598.aspx">là</a>,
ainsi que sur le blog de <a href="http://blogs.msdn.com/dancre/archive/2006/10/11/datamodel-view-viewmodel-pattern-series.aspx">Dan
Crevier</a>. Plus récemment, Josh Smith a écrit une <a href="http://www.codeproject.com/KB/WPF/MVCtoUnitTestinWPF.aspx">très
bonne synthèse sur codeproject</a>. Avec un brin de malice et de réalisme, le <a href="http://www.drwpf.com/blog/">Dr
WPF</a> appelle ce pattern <a href="http://www.drwpf.com/blog/Home/tabid/36/EntryID/27/Default.aspx">Model-View-Poo</a>.
</p>
        <p align="left">
En gros, le <em>pattern</em> 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 <em>pattern</em> découpe
une application en trois parties :
</p>
        <ul>
          <li>
            <div align="left">le <strong>modèle</strong> (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.
</div>
          </li>
          <li>
            <div align="left">la <strong>vue</strong> (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.
</div>
          </li>
          <li>
            <div align="left">le <strong>machin</strong> (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.
</div>
          </li>
        </ul>
        <p align="left">
Bien que le machin (<a href="http://en.wiktionary.org/wiki/poo">poo</a>) 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 :
</p>
        <p align="center">
          <img style="WIDTH: 228px; HEIGHT: 311px" height="390" alt="Code spaghetti" src="http://www.blogmfc.com/content/binary/spaghetti.jpg" width="266" border="0" />
        </p>
        <SEP>
          <p align="left">
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 <a href="http://www.softinsight.com/bnoyes/2008/04/29/PrismCompositeWPFGuidance.aspx">présentation
du concept</a> 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 <a href="http://www.codeplex.com/prism">codeplex</a>.
Il faut que je regarde ça de plus près.
</p>
          <p align="center">
            <a href="http://www.codeplex.com/prism">
              <img alt="Prism, méthodologie de développement WPF" src="http://www.blogmfc.com/content/binary/prism.png" border="0" />
              <br />
Prism : méthodologie de développement WPF</a>
          </p>
          <hr />
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). 
<p></p><p align="left">
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 <em>design pattern</em>. Ce shéma document-vue est un ancêtre du Modèle-Vue-Machin
de WPF. Mais ce dernier est encore bien flou...
</p><p align="left">
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.
</p><p align="left">
 
</p><p align="left"><font color="#000080">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 : </font><a href="http://blogs.msdn.com/johngossman/archive/2008/05/28/presentationmodel-and-wpf.aspx"><font color="#000080">PresentationModel
and WPF</font></a><font color="#000080">, dans lequel il écrit : "WPF is still so
new that we still don't know all the best practices and techniques..."</font></p><img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=c51c7961-d584-4f33-bf75-aa00511a18c9" /></SEP>
      </div>
    </content>
  </entry>
  <entry>
    <title>Visual Studio 2008 Service Pack 1 : nouveautes et ameliorations</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/05/16/VisualStudio2008ServicePack1NouveautesEtAmeliorations.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,1a9e5dec-6a6a-49a8-9ef5-c5c88da1916a.aspx</id>
    <published>2008-05-16T15:31:32.791-07:00</published>
    <updated>2008-05-18T06:50:22.2452563-07:00</updated>
    <category term="WPF" label="WPF" scheme="http://www.blogmfc.com/CategoryView,category,WPF.aspx" />
    <category term="Visual Studio" label="Visual Studio" scheme="http://www.blogmfc.com/CategoryView,category,VisualStudio.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
L'article de <a href="http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx">Scott
Guthrie</a> présente une longue liste de nouveautés apportées par ces deux SP1. Mais
il ne dit pas tout, la preuve :
</p>
        <p>
1. D'abord l'icône de Visual Studio a changé : il y a un petit 9 dessus maintenant
!
</p>
        <p>
          <img src="http://www.blogmfc.com/content/binary/visual-studio-9-SP1-icon.jpg" border="0" />
        </p>
        <p>
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...
</p>
        <p>
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 !
</p>
        <p>
          <img src="http://www.blogmfc.com/content/binary/VS2008-WPF-designer.jpg" border="0" />
        </p>
        <p>
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.
</p>
        <p>
A suivre...
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=1a9e5dec-6a6a-49a8-9ef5-c5c88da1916a" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Installer Visual Studio 2008 Service Pack 1 et .NET 3.5 SP1 beta</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/05/16/InstallerVisualStudio2008ServicePack1EtNET35SP1Beta.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,1d7df9fe-5967-4176-b258-586ed97119f7.aspx</id>
    <published>2008-05-16T07:40:30.411-07:00</published>
    <updated>2008-05-18T06:51:19.9971043-07:00</updated>
    <category term="Silverlight" label="Silverlight" scheme="http://www.blogmfc.com/CategoryView,category,Silverlight.aspx" />
    <category term="Visual Studio" label="Visual Studio" scheme="http://www.blogmfc.com/CategoryView,category,VisualStudio.aspx" />
    <category term="WPF" label="WPF" scheme="http://www.blogmfc.com/CategoryView,category,WPF.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
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 <a href="http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx">Scott
Guthrie</a> et <a href="http://blogs.msdn.com/tims/archive/2008/05/12/introducing-the-third-major-release-of-windows-presentation-foundation.aspx">Tim
Sneath</a> est alléchant.
</p>
        <p>
Attention ! <strong>N'installez pas ces Service Packs si vous développez pour Silverlight
2</strong>. 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.
</p>
        <p>
Ce sont des versions béta. Et un certain nombre de précautions doivent être prises
avant d'intaller la bête.
</p>
        <p>
          <strong>
            <font size="3">1.</font>
          </strong> Sous Vista, il faut <a href="http://www.blogmfc.com/2008/02/15/VistaSP160Build6001DisponibleSurMSDN.aspx">installer Vista
SP1</a> au préalable.
</p>
        <p>
          <font size="3">
            <strong>2.</strong>
          </font> 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 !!
</p>
        <p>
          <img src="/blogmfc/content/binary/install-vs2008SP1-1.jpg" />
        </p>
        <p>
Vous pouvez aussi désinstaller "Silverlight 2.0 SDK Beta1", il ne fonctionnera plus
avec VS2008 SP1.
</p>
        <p>
Par contre, gardez évidemment le runtime de Silverlight.
</p>
        <p>
          <strong>
            <font size="3">3.</font>
          </strong> 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.
</p>
        <p>
Si vous ne désinstallez pas ces mises à jour, le programme d'installation des Service
Packs ne fonctionnera pas.
</p>
        <p>
          <img src="/blogmfc/content/binary/install-vs2008SP1-update.jpg" />
        </p>
        <p>
          <strong>
            <font size="3">4.</font>
          </strong> 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.
</p>
        <p>
          <strong>
            <font size="3">5.</font>
          </strong> Installez <a href="http://go.microsoft.com/?linkid=8835250">Visual
Studio 2008 Service Pack 1 Beta</a></p>
        <p>
          <font size="3">
            <strong>6.</strong>
          </font> Installez <a href="http://go.microsoft.com/?linkid=8835251">.NET
Framework 3.5 Service Pack 1 Beta</a></p>
        <p>
          <font size="3">
            <strong>7.</strong>
          </font> Installez <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=32A3E916-E681-4955-BC9F-CFBA49273C7C&amp;displaylang=en">Expression
Blend 2.5 March 2008 Preview Refresh v2.1.1113</a></p>
        <p>
          <font size="3">
            <strong>8.</strong>
          </font> Et voilà !
</p>
        <p>
          <img src="http://www.blogmfc.com/content/binary/about-vs-2008-sp1.jpg" border="0" />
        </p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=1d7df9fe-5967-4176-b258-586ed97119f7" />
      </div>
    </content>
  </entry>
  <entry>
    <title>L'origine du logo Beijing 2008</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/04/08/LorigineDuLogoBeijing2008.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,9ea48368-7458-4507-9a2e-787e0f89c201.aspx</id>
    <published>2008-04-08T14:28:08.166-07:00</published>
    <updated>2008-04-08T15:02:23.6542497-07:00</updated>
    <category term="humour" label="humour" scheme="http://www.blogmfc.com/CategoryView,category,humour.aspx" />
    <content type="html">&lt;p align=center&gt;
&lt;img alt="official beijing olympics logo" src="http://www.blogmfc.com/content/binary/boycott-beijing-2008.jpg" border=0&gt;
&lt;/p&gt;
&lt;p align=center&gt;
&lt;object height=355 width=425&gt;
&lt;param name="movie" value="http://www.youtube.com/v/8zYResAaII8&amp;amp;color1=0x006699&amp;amp;color2=0x54abd6&amp;amp;hl=fr"&gt;
&lt;param name="wmode" value="transparent"&gt;
&lt;embed src="http://www.youtube.com/v/8zYResAaII8&amp;color1=0x006699&amp;color2=0x54abd6&amp;hl=fr" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/p&gt;
&lt;p align=center&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p align=center&gt;
&lt;object height=355 width=425&gt;
&lt;param name="movie" value="http://www.youtube.com/v/78F7L5-47HM&amp;amp;color1=0x006699&amp;amp;color2=0x54abd6&amp;amp;hl=fr"&gt;
&lt;param name="wmode" value="transparent"&gt;
&lt;embed src="http://www.youtube.com/v/78F7L5-47HM&amp;color1=0x006699&amp;color2=0x54abd6&amp;hl=fr" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=9ea48368-7458-4507-9a2e-787e0f89c201" /&gt;</content>
  </entry>
  <entry>
    <title>Des exemples compilés avec le Feature Pack Visual C++ 2008</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/04/07/DesExemplesCompil%c3%a9sAvecLeFeaturePackVisualC2008.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,b8e6fa0d-7dff-4d5d-95d8-053b6689ed5f.aspx</id>
    <published>2008-04-07T14:34:33.653-07:00</published>
    <updated>2008-04-08T03:20:05.9739027-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Sur un dossier skydrive (5 Go de stockage gratuit en ligne sur <a href="http://skydrive.live.com">skydrive.live.com</a> !),
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) .
</p>
        <p>
          <iframe style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginwidth="0" marginheight="0" src="http://cid-6a38e9675163d42e.skydrive.live.com/embedrowdetail.aspx/mfc90" frameborder="0" scrolling="no">
          </iframe>
        </p>
        <p>
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 :
</p>
        <p>
          <iframe style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginwidth="0" marginheight="0" src="http://cid-6a38e9675163d42e.skydrive.live.com/embedrowdetail.aspx/mfc90/DrawClient_static.zip" frameborder="0" scrolling="no">
          </iframe>
        </p>
        <p>
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.
</p>
        <p>
Et de se dire : "wouah, c'est quand même vachement plus rapide qu'une appli .NET"
:D
</p>
        <p>
(au fait, WPF c'est <strong>W</strong>indows <strong>P</strong>our les <strong>F</strong>énéants
;), même si tout développeur est fénéant, par définition)
</p>
        <p>
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é ;)
</p>
        <p>
Voici une capture d'écran d'une des applications MFC90-Feature Pack mise sur le dossier
Skydrive :
</p>
        <p>
          <img src="http://www.blogmfc.com/content/binary/feature-pack-vs2005-UI.jpg" border="0" />
        </p>
        <p>
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...
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=b8e6fa0d-7dff-4d5d-95d8-053b6689ed5f" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Visual C++ Feature Pack disponible !</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/04/07/VisualCFeaturePackDisponible.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,84b05b9d-1fea-4278-9907-d836d0c080df.aspx</id>
    <published>2008-04-07T06:37:36.412-07:00</published>
    <updated>2008-04-08T00:26:15.4370112-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
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.
</p>
        <p>
Une mise à jour importante des MFC et des librairies C++ ! La doc de cette mise à
jour est déjà <a href="http://msdn2.microsoft.com/en-us/library/bb982354.aspx">sur
MSDN</a> (en anglais).
</p>
        <p>
L'info est parue sur le <a href="http://blogs.msdn.com/vcblog/archive/2008/04/07/visual-c-2008-feature-pack-released.aspx">blog
de l'équipe VC++</a>, et le <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=D466226B-8DAB-445F-A7B4-448B326C48E7&amp;displaylang=en">téléchargement
du C++ Feature Pack est ici</a>. 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.
</p>
        <p>
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 <a href="http://www.istartedsomething.com/20080322/ribbon-in-windows-7-application-near-you/">l'interface
par défaut des applications sous Windows 7</a>. 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 !)
</p>
        <p>
          <strong>La licence d'utilisation du ruban Office 2007</strong>
        </p>
        <p>
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 : <a href="http://msdn.microsoft.com/officeui">http://msdn.microsoft.com/officeui</a>.
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.
</p>
        <p>
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.
</p>
        <p>
          <strong>La taille du runtime MFC a triplé</strong>
        </p>
        <p>
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.....
</p>
        <p>
          <img src="http://www.blogmfc.com/content/binary/mfc90-avec-feature-pack.jpg" border="0" />
        </p>
        <p>
Elles ont bien grossi après l'installation du feature pack. La version MFC 90 sans
feature pack est trois fois plus petite :
</p>
        <p>
          <img src="http://www.blogmfc.com/content/binary/mfc90-sans-feature-pack.jpg" border="0" />
        </p>
        <p>
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...
</p>
        <p>
On note qu'on se retrouve avec deux versions très différentes des MFC qui s'appellent
toutes les deux MFC90 :
</p>
        <p>
- MFC90 livrée avec Visual Studio 2008, dont la taille est 1 Mo
</p>
        <p>
- MFC90 du feature pack, dont la taille est 5 Mo
</p>
        <p>
Hmmm, ça risque de poser des problèmes pour les installations ça...
</p>
        <p>
          <strong>Des exemples</strong>
        </p>
        <p>
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.
</p>
        <p>
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
!
</p>
        <p>
          <img src="http://www.blogmfc.com/content/binary/Feature-pack-office-2007.jpg" border="0" />
        </p>
        <p>
 
</p>
        <p>
          <img src="http://www.blogmfc.com/content/binary/feature-pack-draw-client.jpg" border="0" />
        </p>
        <p>
Ces exemples sont téléchargeables sur mon espace skydrive.
</p>
        <p>
          <iframe style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginwidth="0" marginheight="0" src="http://cid-6a38e9675163d42e.skydrive.live.com/embedrowdetail.aspx/mfc90" frameborder="0" scrolling="no">
          </iframe>
        </p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=84b05b9d-1fea-4278-9907-d836d0c080df" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Elle enleve le haut... avec Silverlight 2 !</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/03/11/ElleEnleveLeHautAvecSilverlight2.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,617517af-8990-44a4-bac6-6ebe70eda42e.aspx</id>
    <published>2008-03-11T06:16:46.684-07:00</published>
    <updated>2008-03-14T03:08:33.9284817-07:00</updated>
    <category term="humour" label="humour" scheme="http://www.blogmfc.com/CategoryView,category,humour.aspx" />
    <category term="Silverlight" label="Silverlight" scheme="http://www.blogmfc.com/CategoryView,category,Silverlight.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <img style="WIDTH: 181px; HEIGHT: 302px" height="402" src="http://www.blogmfc.com/content/binary/blogmfc-sexy-silverlight-teasing.jpg" width="251" border="0" />
        <br />
        <font size="1">Image © parazit - Fotolia.com</font>
        <p>
Je <a href="http://www.blogmfc.com/2008/02/24/TeasingSilverlight2DansDeuxSemainesElleEnleveLeHaut.aspx">l'avais
promis</a>... Cette demoiselle sexy va enlever le haut... pour ceux qui ont téléchargé
le plug-in Silverlight 2. 
</p>
        <p>
Ahah ! Je vais faire grimper les stats d'installation de Silverlight rapido !
</p>
        <p>
Utilisez la molette de la souris pour zoomer sur sa..., et le cliquer-déplacer pour
déplacer l'image pour mieux voir ses...
</p>
        <div id="z478690a9ca574eff837b50df9428a84f" style="WIDTH: 600px; HEIGHT: 600px">
          <iframe src="http://silverlight.services.live.com/invoke/14030/z478690a9ca574eff837b50df9428a84f/iframe.html" frameborder="0" width="600" scrolling="no" height="600">
          </iframe>
        </div>
        <p>
(<a href="http://www.microsoft.com/silverlight/resources/installationfiles.aspx?v=2.0">Cliquez
ici pour obtenir le plugin Silverlight 2 pour MacOS ou pour Windows</a>)
</p>
        <p>
Pour savoir comment fonctionne Deep Zoom et le contrôle MultiScaleImage de Silverlight,
utilisé ici pour cette "animation", vous pouvez consulter l'article <a href="http://blogs.msdn.com/webnext/archive/2008/03/13/deepzoom-in-c-not-just-possible-but-easy.aspx">DeepZoom
in C# - Not just possible, but easy</a> de <a href="http://blogs.msdn.com/webnext">Laurence
Moroney</a>.
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=617517af-8990-44a4-bac6-6ebe70eda42e" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Programmer dans les clouds : Silverlight 2.</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/03/11/ProgrammerDansLesCloudsSilverlight2.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,103c5df1-d248-43d2-9d11-7f105d9eeacd.aspx</id>
    <published>2008-03-11T06:02:11.341-07:00</published>
    <updated>2008-03-11T16:29:36.9526819-07:00</updated>
    <category term="Silverlight" label="Silverlight" scheme="http://www.blogmfc.com/CategoryView,category,Silverlight.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <p align="center">
          <img src="http://www.blogmfc.com/content/binary/cloud-IT-service.jpg" border="0" />
          <br />
          <font size="1">Image (c) </font>
          <a href="http://www.nytimes.com/2007/09/03/technology/03cloud.html">
            <font size="1">New
York Times</font>
          </a>
        </p>
        <p>
          <strong>The Cloud</strong>
        </p>
        <p>
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".
</p>
        <p>
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...
</p>
        <p>
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 ?
</p>
        <p>
 
</p>
        <p>
          <strong>The Mix</strong>
        </p>
        <p>
Le <a href="http://visitmix.com">Mix 08</a> 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 :
</p>
        <ul>
          <li>
Silverlight 2 (<a href="http://silverlight.net/GetStarted/#Beta">la béta ici</a>).
Le runtime Silverlight est dispo sous Windows et Mac OS, et bientôt aussi sur les
téléphones Nokia sous Symbian. Ca, ça m'en bouche un coin. Une belle riposte de Nokia
à l'iPhone... 
</li>
          <li>
Expression Studio 2 (<a href="http://www.microsoft.com/expression/products/download.aspx?key=studio2beta">télécharger
la béta ici</a> et <a href="http://www.microsoft.com/expression/products/download.aspx?key=blend2dot5">Expression
Blend 2.5 March Preview ici</a>). Un nouveau site pour la communauté des
utilisateurs d'Expression : <a href="http://expression.microsoft.com">http://expression.microsoft.com</a>. 
</li>
          <li>
Internet Explorer 8 (<a href="http://www.microsoft.com/ie/ie8">télécharger la béta
de IE8 ici</a>)</li>
        </ul>
        <p>
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...
</p>
        <p>
Tim Sneath a fait un excellent <a href="http://blogs.msdn.com/tims/archive/2008/03/05/mix08-keynote-live-blog.aspx">résumé
de la scéance plénière du Mix 08</a>. Les webcast et autres infos sont sur le site <a href="http://www.visitmix.com">www.visitmix.com</a>.
</p>
        <p align="center">
          <img alt="Scott Guthrie présente le cloud Microsoft au MIX 08" src="http://www.blogmfc.com/content/binary/scott-guthrie-mix-cloud.jpg" border="0" />
          <br />
          <font size="1">Scott Guthrie présente le "Cloud" de Microsoft, au MIX 08</font>
        </p>
        <p>
En face, Adobe sort cette semaine sa plate-forme RIA <a href="http://www.adobe.com/products/air/">Air</a> (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.
</p>
        <p>
 
</p>
        <p>
          <strong>Comment se mettre à Silverlight 2 ?</strong>
        </p>
        <p>
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.
</p>
        <p>
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 <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E0BAE58E-9C0B-4090-A1DB-F134D9F095FD&amp;displaylang=en">Silverlight
Tools beta for Visual Studio 2008</a>. 50 Mo quand même : cela contient le runtime
Silverlight 2 béta, son SDK, des templates en C# et VB. 
</p>
        <p>
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 <em>Silverlight Tools for Visual Studio</em> 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 <a href="http://weblogs.asp.net/bradleyb/archive/2008/03/06/installation-tips-for-sivliverlight-tools-beta-1-for-visual-studio-2008.aspx">blog
sur ASP.NET présente un mode d'emploi détaillé du programme d'installation</a>. En
tous cas, Microsoft peut mieux faire sur ce coup là, c'est clair...
</p>
        <p align="center">
          <img src="http://www.blogmfc.com/content/binary/Silverlight-vs2008-Install-Error.png" border="0" />
          <br />
          <font size="1">Le programme d'installation de Visual Studio Tools pour Silverlight
ne marchera pas du premier coup...</font>
        </p>
        <p>
Pour info, le runtime Silverlight 2 est un téléchargement de moins de 5 Mo, et occupe
environ 10 Mo sur le disque. 
</p>
        <p>
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 :
</p>
        <ul>
          <li>
Blend 1.0 fonctionne avec Visual Studio 2005, pour des interfaces WPF. 
</li>
          <li>
Blend 2.0 December Preview fonctionne avec Visual Studio 2008 et permet de créer des
interfaces en XAML pour WPF 3.5. 
</li>
          <li>
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.</li>
        </ul>
        <p>
Il est possible d'installer côte à côte plusieurs versions de Blend.
</p>
        <p>
Il est nécessaire d'avoir installé <em>Silverlight Tools 2 béta for Visual Studio
2008</em> avant <a href="http://www.microsoft.com/expression/products/download.aspx?key=blend2dot5">d'installer
Blend 2.5</a>. Blend 2.5 s'installe facilement, pas comme Silverlight Tools !
</p>
        <p>
Ensuite... rendez-vous sur <a href="http://www.silverlight.net">www.silverlight.net</a>,
et cliquez sur le bouton "Learn" pour y trouver tutoriels, hands-on labs et vidéos
pour Silverlight 2 (tout en anglais...)
</p>
        <p>
Toutes les vidéos (en anglais) du MIX 08 sont sur <a href="http://sessions.visitmix.com">sessions.visitmix.com</a>.
La <a href="http://go.microsoft.com/?linkid=8489738">deuxième session plénière (Keynote
II) avec Steve Ballmer</a> est à mourir de rire (<a href="http://www.microsoft.com/presspass/exec/steve/2008/03-06MIX08.mspx">la
transcription ici</a>).
</p>
        <p>
Mais il existe déjà pas mal de contenu en français pour apprendre Silverlight (vidéos,
webcast, tutoriels, articles) dans <a href="http://msdn2.microsoft.com/fr-fr/asp.net/default.aspx">la
section Développement Web du MSDN français</a> (le problème avec les infos Silverlight,
c'est qu'elles deviennent obsolètes quelques semaines après avoir été écrites)
</p>
        <p>
 
</p>
        <p>
          <strong>The killer feature</strong>
        </p>
        <p>
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 : <a href="http://memorabilia.hardrock.com"><strong>http://memorabilia.hardrock.com</strong></a><strong> </strong>(on
zoome avec la molette de la souris).
</p>
        <p align="center">
          <img alt="Sur memorabilia.hardrock.com Silverlight propose une manière inhabituelle de naviguer dans une collection de photos" src="http://www.blogmfc.com/content/binary/silverlight-deep-zoom-hardrock.jpg" border="0" />
          <br />
          <font size="1">Sur </font>
          <a href="http://memorabilia.hardrock.com">
            <strong>
              <font size="1">memorabilia.hardrock.com</font>
            </strong>
          </a>
          <font size="1"> Silverlight propose
une manière inhabituelle de naviguer dans une collection de photos</font>
        </p>
        <p>
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 ?
</p>
        <p>
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 <a href="http://www.microsoft.com/silverlight/resources/installationfiles.aspx?v=2.0">Silverlight
2 pour MacOS ou Windows</a>. Utilisez la molette de la souris pour zoomer...
</p>
        <p align="center">
        </p>
        <div id="z883f790a494447f297169fc43437a92f" style="WIDTH: 640px; HEIGHT: 480px">
          <iframe src="http://silverlight.services.live.com/invoke/14030/z883f790a494447f297169fc43437a92f/iframe.html" frameborder="0" width="640" scrolling="no" height="480">
          </iframe>
        </div>
        <p>
        </p>
        <p align="left">
 
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=103c5df1-d248-43d2-9d11-7f105d9eeacd" />
      </div>
    </content>
  </entry>
  <entry>
    <title>2018 Israel Palestine Footbal World Cup</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/03/03/2018IsraelPalestineFootbalWorldCup.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,2ebd7414-d453-4d2f-bea6-a5642745bd2d.aspx</id>
    <published>2008-03-03T15:33:36.6524169-07:00</published>
    <updated>2008-03-03T15:47:09.4336669-07:00</updated>
    <category term="humour" label="humour" scheme="http://www.blogmfc.com/CategoryView,category,humour.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p align="center">
          <a href="http://goal2018.org/">
            <img alt="2018 Israel Palestine Footbal World Cup" src="http://www.blogmfc.com/content/binary/Israel-palestine-2018.jpg" border="0" />
          </a>
        </p>
        <p>
En 2018, la coupe du monde de foot sera organisée conjointement par Israel et la Palestine.
Une demi finale à Gaza, la finale à Jerusalem.
</p>
        <p>
On peut rêver ici : <a href="http://goal2018.org/">goal2018.org</a></p>
        <p>
 
</p>
        <p align="center">
          <a href="http://goal2018.org/">
            <img alt="2018 Israel Palestine Footbal World Cup" src="http://www.blogmfc.com/content/binary/israel-palestine-world-cup.jpg" border="0" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=2ebd7414-d453-4d2f-bea6-a5642745bd2d" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Charger une image PNG/JPEG depuis les ressources en C++/MFC</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/02/24/ChargerUneImagePNGJPEGDepuisLesRessourcesEnCMFC.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,4c746d33-c3fc-456a-b7e8-c95603934775.aspx</id>
    <published>2008-02-24T10:47:40.802-07:00</published>
    <updated>2008-02-24T11:08:49.2404669-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Google m'envoie plein de demandes d'internautes qui recherchent comment charger une
image PNG ou JPEG depuis les ressources d'un programme C++.
</p>
        <p>
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.
</p>
        <p>
D'abord, ajouter l'image dans le fichier ressources :
</p>
        <font size="2">
          <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
            <p>
              <font face="Courier New">IDB_IMAGEPNG PNG </font>
            </p>
          </blockquote>
        </font>
        <font color="#a31515" size="2">
          <font face="Courier New" color="#a31515" size="2">"res\\image.png"</font>
        </font>
        <p>
          <font size="2">
            <font color="#000000" size="2">Puis la charger dans le code :</font>
          </font>
        </p>
        <font size="2">
          <font size="2">
            <font size="2">
              <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
                <p>
                  <font face="Courier New" color="#000000">
                    <font color="#008000">// Load image data
from PNG section of the resource file</font>
                    <br />
HINSTANCE hResourceModule = AfxGetResourceHandle();<br /></font>
                  <font face="Courier New" color="#000000" size="2">HRSRC hRes = FindResource(hResourceModule, <br />
         MAKEINTRESOURCE(IDB_IMAGEPNG),
_T("PNG"));<br /></font>
                  <font face="Courier New" color="#000000" size="2">DWORD dwSizeResource = SizeofResource(hResourceModule,
hRes);<br />
HGLOBAL hMem = LoadResource(hResourceModule, hRes);<br /><br /><font color="#008000">// Copy the PNG image data into a new buffer</font><br /></font>
                  <font face="Courier New" color="#000000" size="2">BYTE *pRes = (BYTE *)LockResource(hMem);<br /></font>
                  <font face="Courier New" color="#000000" size="2">HGLOBAL hImg = GlobalAlloc(GHND,
dwSizeResource);<br /></font>
                  <font face="Courier New" color="#000000" size="2">BYTE *pImg = (BYTE *)GlobalLock(hImg);<br /></font>
                  <font size="2">
                    <font face="Courier New" color="#000000">memcpy_s(pImg, dwSizeResource,
pRes, dwSizeResource);<br />
GlobalUnlock(hImg);<br /><br /><font color="#008000">// Create a GDIPlus Bitmap from a HGLOBAL<br /></font></font>
                    <font color="#000000">
                      <font face="Courier New">
                        <font size="2">IStream
*pStream = NULL;<br />
HRESULT hr = CreateStreamOnHGlobal(hMem, FALSE, &amp;pStream);<br /></font>
                        <font size="2">Bitmap *pBitmap = </font>
                        <font size="2">
                          <font size="2">new</font>
                        </font>
                      </font>
                    </font>
                    <font face="Courier New" color="#000000" size="2"> Bitmap(pStream);<br /></font>
                  </font>
                  <font size="2">
                    <font color="#000000">
                      <font face="Courier New">
                        <font size="2">pStream-&gt;Release
();<br /></font>GlobalFree(hImg);</font>
                    </font>
                  </font>
                </p>
              </blockquote>
            </font>
          </font>
        </font>
        <font size="2">
          <font size="2">Ce code fonctionne
avec les images JPEG et GIF aussi bien que les PNG.</font>
        </font>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=4c746d33-c3fc-456a-b7e8-c95603934775" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Teasing Silverlight 2 : dans deux semaines, elle enleve le haut</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/02/24/TeasingSilverlight2DansDeuxSemainesElleEnleveLeHaut.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,0a8be0fd-fe71-438d-a6ff-90fea7f0c5c9.aspx</id>
    <published>2008-02-24T07:29:52.256-07:00</published>
    <updated>2008-02-24T11:31:15.3654669-07:00</updated>
    <category term="humour" label="humour" scheme="http://www.blogmfc.com/CategoryView,category,humour.aspx" />
    <category term="Silverlight" label="Silverlight" scheme="http://www.blogmfc.com/CategoryView,category,Silverlight.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Le grand Scott Guthrie (dont la lecture du <a href="http://weblogs.asp.net/scottgu/default.aspx">blog</a> 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 <a href="http://blogs.msdn.com/kathykam/archive/2008/02/22/another-preview-of-the-controls-in-silverlight-2.aspx">ici</a> aussi,
et en français sur le blog de <a href="http://blogs.msdn.com/clauer/archive/2008/02/22/scott-guthrie-l-ve-le-voile-sur-silverlight-2.aspx">ClaueR</a>)...
alors que tout cela n'est même pas encore disponible en béta : il faudra attendre
la conférence <a href="http://www.visitmix.com/">MIX 08</a>, dans deux semaines, pour
tester Silverlight 2 (en béta).
</p>
        <p>
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.
</p>
        <p>
          <img src="http://www.blogmfc.com/content/binary/blogmfc-sexy-silverlight-teasing.jpg" border="0" />
          <br />
          <font size="1">Image © parazit - Fotolia.com</font>
        </p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=0a8be0fd-fe71-438d-a6ff-90fea7f0c5c9" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Une nouvelle version de WPF dans quelques mois</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/02/19/UneNouvelleVersionDeWPFDansQuelquesMois.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,9fb337bf-194d-4857-9672-e188ffa0cdf1.aspx</id>
    <published>2008-02-19T14:34:31.632-07:00</published>
    <updated>2008-02-24T10:40:48.0685919-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="WPF" label="WPF" scheme="http://www.blogmfc.com/CategoryView,category,WPF.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img src="http://www.blogmfc.com/content/binary/WPF-unleashed.jpg" align="right" border="0" />
        </p>
        <p>
Il y a un peu plus d'un mois <a href="http://www.blogmfc.com/2008/01/12/WindowsVistaSP1BienPlusLentQueWindowsXPSP3PourquoiEtWPFEtSilverlightDansTout%c3%87a.aspx">je
râlais contre WPF</a>, 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.
</p>
        <p>
J'étais prêt à jeter à la poubelle mon bouquin <em><a href="http://www.amazon.com/Windows-Presentation-Foundation-Unleashed-WPF/dp/0672328917">Windows
Presentation Foundation Unleashed</a></em>, persuadé que WPF signifie secrètement <strong><em>Windows
Pour les Fénéants</em></strong>.
</p>
        <p>
Alleluia !
</p>
        <p>
          <a href="http://weblogs.asp.net/scottgu/archive/2008/02/19/net-3-5-client-product-roadmap.aspx">Scott
Guthrie</a> (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 ?
</p>
        <p>
WPF était une nouveauté de .NET 3.0, et <a href="http://msdn2.microsoft.com/en-us/library/bb613588.aspx">quelques
améliorations ont été apportées à WPF</a> avec la sortie de .NET 3.5. Cet été, une
nouvelle version de WPF sera disponible.
</p>
        <p align="left">
          <img src="http://www.blogmfc.com/content/binary/NET-framework-versions.jpg" border="0" />
        </p>
        <p>
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.
</p>
        <p>
          <img src="http://www.blogmfc.com/content/binary/xceed-data-grid.jpg" border="0" />
          <br />
          <strong>Le Datagrid de xceed.com. Bientôt dans WPF ?</strong>
        </p>
        <p>
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 ! ;)
</p>
        <p>
          <strong>J'en conclus que le moment est venu de se mettre sérieusement à XAML.</strong> 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.
</p>
        <p>
Nous en saurons plus dans deux semaines : <a href="http://www.robrelyea.com/">Rob
Relyea</a>, qui a réalisé une <a href="http://www.robrelyea.com/events/mix07">excellente
présentation de WPF pour les développeurs</a> à la conférence MIX l'an dernier, décrira <a href="http://blogs.windowsclient.net/rob_relyea/archive/2008/02/20/what-is-next-for-net-3-5.aspx">le
futur de WPF dans une session du MIX 08</a>.
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=9fb337bf-194d-4857-9672-e188ffa0cdf1" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Dreams are just our brains defragmenting overnight</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/02/18/DreamsAreJustOurBrainsDefragmentingOvernight.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,3e3be500-d6d5-4f5c-9d2a-478033c26ad1.aspx</id>
    <published>2008-02-18T08:11:06.324-07:00</published>
    <updated>2008-02-18T08:22:18.9343469-07:00</updated>
    <category term="humour" label="humour" scheme="http://www.blogmfc.com/CategoryView,category,humour.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
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.
</p>
        <p align="center">
          <img src="http://www.blogmfc.com/content/binary/dreams-brain-defragmenting.jpg" alt="Dreams are really just our brains defragmenting overnight" border="0" />
        </p>
        <p align="center">
(de <a href="http://blogs.msdn.com/stevecla01/archive/2008/02/18/my-new-zune.aspx">steve
clayton</a>)
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=3e3be500-d6d5-4f5c-9d2a-478033c26ad1" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Vista SP1 (6.0, build 6001) disponible sur MSDN</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/02/15/VistaSP160Build6001DisponibleSurMSDN.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,edf2b167-ca2d-478d-9bb9-1edcc4619558.aspx</id>
    <published>2008-02-15T07:31:14.341-07:00</published>
    <updated>2008-02-24T10:21:52.9592169-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="Windows" label="Windows" scheme="http://www.blogmfc.com/CategoryView,category,Windows.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Comme quoi<a href="http://www.blogmfc.com/2008/02/05/VistaSP1DisponibleDansUnMoisLaVraieRaison.aspx"> j'étais
mauvaise langue il y a quelques jours</a> : la copie a pris moins de 30
jours ;)
</p>
        <p>
En fait, Microsoft a avancé la disponibilité sur MSDN et Technet pour permettre aux
éditeurs de logiciel et intégrateurs de tester le SP1 avant sa sortie au grand
public, dans un mois. Abonnés MSDN et Technet ont râlé, Microsoft a donné satisfaction.
</p>
        <p>
On dit que ce SP1 rend Vista plus rapide... de manière impressionnante parfois.
Notamment <a href="http://blogs.zdnet.com/hardware/?p=1299">la copie de fichiers</a> ;)
selon ZDNet.
</p>
        <p>
Pour les abonnés MSDN, c'est ici : <a href="http://msdn2.microsoft.com/en-us/subscriptions/default.aspx">http://msdn2.microsoft.com/en-us/subscriptions/default.aspx</a>,
dans la rubrique "Top download", en français, anglais, pour x64 et x86. Aussi dispo
pour les abonnés Technet Plus.
</p>
        <p>
Je me demande si les performance des applications WPF vont être améliorées. Parce
que faire des applications avec WPF est vraiment tentant quand même... Je rêve là,
non ?
</p>
        <p>
Si l'installation de "la bête" prend plus d'une heure, elle est très simple :
il suffit d'exécuter la bonne version du SP1 (x86 ou x64). Pour l'image ISO,
même pas besoin de la graver sur un DVD, un simple lecteur virtuel suffit. Ensuite
tout est automatique, heureusement. L'installateur détecte tout seul la langue
du système. Pas de problème sur les quelques PC sur lesquels il a été installé.
</p>
        <p>
 
</p>
        <p>
Après installation, la version de Windows est toujours 6.0, le numéro de build est
6001.
</p>
        <p>
          <img src="http://www.blogmfc.com/content/binary/vistasp1.jpg" border="0" />
        </p>
        <p>
On peut tester par programme si le SP1 de Vista est installé (en C++ natif) :
</p>
        <font size="2">
          <p>
            <font face="Courier New">OSVERSIONINFOEX osvi;<br />
memset(&amp;osvi, 0, </font>
          </p>
        </font>
        <font color="#0000ff" size="2">
          <font face="Courier New" color="#0000ff" size="2">sizeof</font>
        </font>
        <font face="Courier New">
          <font size="2">(osvi));<br />
osvi.dwOSVersionInfoSize = </font>
          <font color="#0000ff" size="2">
            <font color="#0000ff" size="2">sizeof</font>
          </font>
        </font>
        <font face="Courier New">
          <font size="2">(osvi);<br /></font>
          <font color="#0000ff" size="2">
            <font color="#0000ff" size="2">
              <br />
if</font>
          </font>
        </font>
        <font face="Courier New">
          <font size="2"> (GetVersionEx((OSVERSIONINFO*)&amp;osvi))<br />
{<br />
      </font>
          <font color="#0000ff" size="2">
            <font color="#0000ff" size="2">if</font>
          </font>
        </font>
        <font face="Courier New" size="2"> (osvi.dwMajorVersion
== 6 &amp;&amp; osvi.dwMinorVersion == 0)  <font color="#008000">// Windows
6.0<br />
      {<br /><font color="#003300">            </font><font color="#008000" size="2"><font face="Courier New" color="#008000" size="2">//
Vista 6.0<br /><br /></font></font></font></font>
        <font face="Courier New" size="2">            if
(</font>
        <font face="Courier New" size="2">osvi.wServicePackMajor == 1) <font color="#008000">//
Service pack version 1</font><br />
            {<br />
               </font>
        <font color="#008000" size="2">
          <font face="Courier New" color="#008000" size="2">//
Vista SP1<br />
            }</font>
        </font>
        <font color="#008000" size="2">
          <font face="Courier New" color="#008000" size="2">
            <br />
      </font>
        </font>
        <font face="Courier New" size="2">}<br />
}</font>
        <p>
          <font size="2">Voici ce que contient toute la structure <a href="http://msdn2.microsoft.com/en-us/library/ms724833.aspx">OSVERSIONINFOEX</a> sous
Vista SP1 :</font>
        </p>
        <p>
          <img src="http://www.blogmfc.com/content/binary/vista_version_info.jpg" border="0" />
        </p>
        <p>
Le nom "Service Pack 1" est en clair dans szCSDVersion, et le numéro de version du
Service Pack est 1.0.
</p>
        <p>
Pour rappel, voici les numéros des différentes versions de Windows :
</p>
        <table cellspacing="0" cellpadding="0" border="1">
          <tbody>
            <tr bgcolor="#00ffff">
              <th>
                <font size="2">Operating system</font>
              </th>
              <th>
                <font size="2">Version number</font>
              </th>
            </tr>
            <tr>
              <td>
                <font size="2">Windows Server 2008</font>
              </td>
              <td>
                <font size="2">6.0</font>
              </td>
            </tr>
            <tr>
              <td>
                <font size="2">Windows Vista</font>
              </td>
              <td>
                <font size="2">6.0</font>
              </td>
            </tr>
            <tr>
              <td>
                <font size="2">Windows Server 2003 R2</font>
              </td>
              <td>
                <font size="2">5.2</font>
              </td>
            </tr>
            <tr>
              <td>
                <font size="2">Windows Server 2003</font>
              </td>
              <td>
                <font size="2">5.2</font>
              </td>
            </tr>
            <tr>
              <td>
                <font size="2">Windows XP</font>
              </td>
              <td>
                <font size="2">5.1</font>
              </td>
            </tr>
            <tr>
              <td>
                <font size="2">Windows 2000</font>
              </td>
              <td>
                <font size="2">5.0</font>
              </td>
            </tr>
            <tr>
              <td>
                <font size="2">Windows Me</font>
              </td>
              <td>
                <font size="2">4.90</font>
              </td>
            </tr>
            <tr>
              <td>
                <font size="2">Windows 98</font>
              </td>
              <td>
                <font size="2">4.10</font>
              </td>
            </tr>
            <tr>
              <td>
                <font size="2">Windows NT 4.0</font>
              </td>
              <td>
                <font size="2">4.0</font>
              </td>
            </tr>
            <tr>
              <td>
                <font size="2">Windows 95</font>
              </td>
              <td>
                <font size="2">4.0</font>
              </td>
            </tr>
          </tbody>
        </table>
        <p>
On notera que Vista a le même numéro de version que Windows Server 2008...
</p>
        <p>
Bon allez hop, au boulot ! Testons si nos logiciels fonctionnent toujours avec ce
SP1. Parce qu'il sera disponible au grand public dans un mois exactement. Les services
QA/tests ne vont pas pouvoir partir au ski...
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=edf2b167-ca2d-478d-9bb9-1edcc4619558" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Vista SP1 disponible... dans un mois. La vraie raison !</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/02/05/VistaSP1DisponibleDansUnMoisLaVraieRaison.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,c36f2c33-78ab-45c0-b24e-b31e0e66d00d.aspx</id>
    <published>2008-02-05T02:36:07.481-07:00</published>
    <updated>2008-02-24T10:22:15.7873419-07:00</updated>
    <category term="humour" label="humour" scheme="http://www.blogmfc.com/CategoryView,category,humour.aspx" />
    <category term="Windows" label="Windows" scheme="http://www.blogmfc.com/CategoryView,category,Windows.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Sur le blog de Windows Vista, Mike Nash (Microsoft Vice President, Windows Product
Management) a annoncé que <a href="http://windowsvistablog.com/blogs/windowsvista/archive/2008/02/04/announcing-the-rtm-of-windows-vista-sp1.aspx">le
SP1 de Vista était sorti en RTM</a>... mais qu'il ne serait disponible sur
Windows Update qu'en mars et avril 2008. Quand un produit sort en RTM (Release
To Manufacturer), ça veut dire qu'il est fini, qu'il part à la fabrication, au
pressage des DVDs, qu'il est mis en ligne en téléchargement, qu'il sort en RTW (Release
to Web !). Alors, bizarre ce délai, non ?
</p>
        <p>
Bon, bon... attendons un peu : Mike Nash nous promet que le SP1 améliore la rapidité
de copie des fichiers sur le réseau jusqu'à 50%. Ce SP1 pourra être installé sur la
plupart des PC Vista, sauf ceux qui ont des drivers incompatibles. Sur ces machines,
le SP1 ne s'installera pas.
</p>
        <p>
La voilà la vraie raison ! Selon <a href="http://www.istartedsomething.com">www.istartedsomething.com</a>,
le PC Vista qui copie les fichiers du SP1 sur les serveurs de Windows Update a des
drivers réseau pas très catholiques. Du coup, le SP1 n'a pas pu être installé
sur ce PC, qui conserve son problème de lenteur lors de la copie de fichiers
sur le réseau.
</p>
        <p align="center">
          <img src="http://www.blogmfc.com/content/binary/vistasp1copy.jpg" border="0" />
        </p>
        <p align="left">
Criant de vérité, non ?
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=c36f2c33-78ab-45c0-b24e-b31e0e66d00d" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Microsoft lance un concurrent de Codeproject - les communautés de développeurs Microsoft</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/01/28/MicrosoftLanceUnConcurrentDeCodeprojectLesCommunaut%c3%a9sDeD%c3%a9veloppeursMicrosoft.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,287b610f-d334-415e-b084-e6fe940b9488.aspx</id>
    <published>2008-01-28T15:00:19.768-07:00</published>
    <updated>2008-03-10T05:02:53.0194419-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="WPF" label="WPF" scheme="http://www.blogmfc.com/CategoryView,category,WPF.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Bien sûr vous connaissez <a href="http://www.codeproject.com">Codeproject.com</a>,
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 <a href="http://code.msdn.com">code.msdn.com</a>,
et faites part de vos commentaires. Bref, le site MSDN version web 2.0.
</p>
        <p>
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 !
</p>
        <p>
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 :
</p>
        <ul>
          <li>
Développement ASP.NET : <a href="http://www.asp.net">www.asp.net</a></li>
          <li>
Développement Windows.NET (winform/WPF) : <a href="http://www.windowsclient.net">www.windowsclient.net</a></li>
          <li>
Développement Silverlight : <a href="http://www.silverlight.net">www.silverlight.net</a></li>
          <li>
Développement et design web : <a href="http://www.visitmix.com">www.visitmix.com</a></li>
        </ul>
        <p>
Il y a aussi des communautés comme <a href="http://channel8.msdn.com/">Channel8</a>, <a href="http://channel9.msdn.com/">Channel9</a> et <a href="http://on10.net">Channel10</a>,
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 ?"
</p>
        <p>
Hum... où est le C++ natif dans tout ces sites Microsoft ??
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=287b610f-d334-415e-b084-e6fe940b9488" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Des infos exclusives sur Windows 8 !</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/01/28/DesInfosExclusivesSurWindows8.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,bb05b897-5cc5-485c-a7d8-132cd37b46e8.aspx</id>
    <published>2008-01-28T08:17:11.544-07:00</published>
    <updated>2008-02-24T10:20:51.0217169-07:00</updated>
    <category term="humour" label="humour" scheme="http://www.blogmfc.com/CategoryView,category,humour.aspx" />
    <category term="Windows" label="Windows" scheme="http://www.blogmfc.com/CategoryView,category,Windows.aspx" />
    <content type="html">&lt;p&gt;
Des &lt;a href="http://www.youtube.com/watch?v=-crFaYLW-xk"&gt;vidéos&lt;/a&gt; et des &lt;a href="http://www.thinknext.net/archives/2124"&gt;photos&lt;/a&gt; en
provenance de Chine montrent soi-disant&amp;nbsp;des pré-versions de Windows 7, le successeur
de Windows Vista.
&lt;/p&gt;
&lt;p&gt;
Mais il y a mieux !&amp;nbsp;Voici ce à quoi ressemblera Windows 8 (qui sortira&amp;nbsp;fin
2012 début 2013) :
&lt;/p&gt;
&lt;p align=center&gt;
&lt;object height=355 width=425&gt;
&lt;param name="movie" value="http://www.youtube.com/v/-crFaYLW-xk&amp;amp;rel=1"&gt;
&lt;param name="wmode" value="transparent"&gt;
&lt;embed src="http://www.youtube.com/v/-crFaYLW-xk&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://fr.wikipedia.org/wiki/La_Minute_n%C3%A9cessaire_de_Monsieur_Cyclop%C3%A8de"&gt;Etonnant&amp;nbsp;non&lt;/a&gt; ?
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=bb05b897-5cc5-485c-a7d8-132cd37b46e8" /&gt;</content>
  </entry>
  <entry>
    <title>Quelques infos sur Windows 7, la prochaine version de Windows.</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/01/20/QuelquesInfosSurWindows7LaProchaineVersionDeWindows.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,fe5fea3f-d8fe-4c65-8f36-faf4718d06a6.aspx</id>
    <published>2008-01-20T05:55:04.657-07:00</published>
    <updated>2008-02-24T10:21:18.0373419-07:00</updated>
    <category term="Windows" label="Windows" scheme="http://www.blogmfc.com/CategoryView,category,Windows.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img alt="Windows Seven logo" src="http://www.blogmfc.com/content/binary/windows_seven.jpg" align="right" border="0" /> 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 <em>Windows
7</em>, après avoir été <em>Vienna</em>.
</p>
        <p>
          <strong>Quand sort la prochaine version de Windows ?</strong>
        </p>
        <p>
Selon diverses sources (<a href="http://www.tgdaily.com/content/view/35641/118">TG
Daily</a>, repris par ZDNet, <a href="http://weblog.infoworld.com/enterprisedesktop/archives/2008/01/windows_7_goes.html">Infoworld</a>...),
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.
</p>
        <p>
          <a href="http://blogs.zdnet.com/microsoft/?p=592">Initialement prévue pour 2010</a>,
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.
</p>
        <p>
Souvenons-nous des déboires et du retard de Microsoft lors de la sortie de Vista.
Ils <a href="http://blogs.zdnet.com/microsoft/?p=953">ne veulent pas rééditer le même
scénario</a>.
</p>
        <p>
          <strong>Il y aura quoi dedans ?</strong>
        </p>
        <p>
Il y a des fuites. Une taupe<a href="http://www.blogmfc.com/2007/11/11/JackBauerEn1994L%c3%a9pisodeOubli%c3%a9De24.aspx">*</a> a
pu installer la version de Windows 7 qui vient d'être livrée aux partenaires
Microsoft, et <a href="http://www.neowin.net/forum/index.php?showtopic=614120&amp;view=findpost&amp;p=589151359">fait
part de ses commentaires sur un forum du site Neowin</a>.
</p>
        <p>
- 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.
</p>
        <p>
- On parle aussi d'une intégration de Windows Live avec Windows 7, <a href="http://blogs.zdnet.com/microsoft/?p=1126">ici</a> et <a href="http://www.liveside.net/blogs/main/archive/2008/01/22/windows-7-details-emerge-look-software-services.aspx">ici</a>. Internet
et Windows Live comme une extension naturelle de Windows, ma foi, ça semble tomber
sous le sens. Faites chauffer votre passport MSN.
</p>
        <p>
- Et de performance améliorée. Yesss !! On parle de Minwin, <a href="http://www.tgdaily.com/content/view/34455/140/">ici</a> ou <a href="http://blogs.zdnet.com/microsoft/?p=842">là</a>...
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... 
</p>
        <p>
Il y a quelques mois, le site <a href="http://www.neowin.net/news/main/07/11/10/suggestions-for-future-versions-of-windows">Neowin</a>,
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.
</p>
        <p>
Voici un extrait de la liste. <a href="http://www.blogmfc.com/content/binary/windows7.png">Cliquez
pour voir la liste complète :</a></p>
        <p>
          <a href="http://www.blogmfc.com/content/binary/windows7.png">
            <img src="http://www.blogmfc.com/content/binary/windows7-preview1.png" border="0" />
            <br />
          </a>
        </p>
        <p>
En même temps, <a href="http://www.microsoft-watch.com/content/vista/what_is_the_vista_experience.html">Mike
Nash</a> (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.
</p>
        <p>
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.
</p>
        <p>
          <strong>Pourquoi si tôt ?</strong>
        </p>
        <p>
Parce que Microsoft a des soucis avec Vista : après être sorti en retard, peu
d'utilisateurs l'ont adopté.
</p>
        <p>
Au moins quand on est en avance, on n'est pas en retard.
</p>
        <p>
Peu d'utilisateurs de PC utilisent Vista, ils restent sous XP. Chez Dell par exemple,
on peut encore commander un PC neuf avec XP. <a href="http://www.pcinpact.com/actu/news/41270-OS-2007-Windows-Vista-Mac-OS-X-Linux.htm">Selon
Xiti, 80% des internautes utilisent encore Windows XP</a>. 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.
</p>
        <p>
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 "<a href="http://www.microsoft.com/licensing/sa/default.mspx">l'assurance
logicielle</a>", 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
!
</p>
        <p>
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.
</p>
        <p>
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 !
</p>
        <p>
          <a href="http://www.blogmfc.com/content/binary/windows7.png">
          </a> 
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=fe5fea3f-d8fe-4c65-8f36-faf4718d06a6" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Visual C++ 2008 Feature Pack Beta : impressions sur les MFC, exemples à télécharger.</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/01/17/VisualC2008FeaturePackBetaImpressionsSurLesMFCExemples%c3%80T%c3%a9l%c3%a9charger.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,4115d9a2-6c84-4521-a02b-5831aba1d465.aspx</id>
    <published>2008-01-17T10:46:13.597-07:00</published>
    <updated>2008-04-07T15:11:41.4904377-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
 
</p>
        <p>
Mise à jour du 7 avril 2008 : la <a href="http://www.blogmfc.com/2008/04/07/VisualCFeaturePackDisponible.aspx">version
finale du feature pack est disponible</a> !
</p>
        <p>
 
</p>
        <p>
J'ai installé la version béta du <strike>Service Pack</strike> Feature pack de Visual
Studio 2008. 300 Mo, quand même...
</p>
        <p>
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++.
</p>
        <p>
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.
</p>
        <p>
          <strong>Les MFC à la diète !</strong>
        </p>
        <p>
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.
</p>
        <p>
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...
</p>
        <p>
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, <strong>la moindre application
avec les MFC liées statiquement fait presque 3 Mo</strong>. Si on ouvre l'exécutable
généré dans Visual Studio pour voir les ressources, on obtient... ça :
</p>
        <p>
          <img src="http://www.blogmfc.com/content/binary/MFCOFFICEPNG.jpg" border="0" />
        </p>
        <p>
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 ?
</p>
        <p>
          <strong>Exemples d'interfaces utilisateur</strong>
        </p>
        <p>
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.
</p>
        <p>
Voici un exemple d'application C++/MFC avec un Ribbon :
</p>
        <p>
          <img src="http://www.blogmfc.com/content/binary/MFC91UIribbon.jpg" border="0" />
        </p>
        <p>
 
</p>
        <p>
Un autre exemple avec une interface genre Visual Studio, et "Diamond Docking" :
</p>
        <p>
          <img src="http://www.blogmfc.com/content/binary/MFC91-VSUI.jpg" border="0" />
        </p>
        <p>
 
</p>
        <p>
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
!
</p>
        <p>
          <a href="http://www.blogmfc.com/content/binary/MFC90samples-www.blogmfc.com.zip">MFC90samples.zip
(2,46 MB)</a>
        </p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=4115d9a2-6c84-4521-a02b-5831aba1d465" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Windows Vista SP1 bien plus lent que Windows XP SP3. Pourquoi ? Et WPF et Silverlight dans tout ça ?</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/01/12/WindowsVistaSP1BienPlusLentQueWindowsXPSP3PourquoiEtWPFEtSilverlightDansTout%c3%87a.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,75337dee-4ee6-4e0a-92bf-4f344e312219.aspx</id>
    <published>2008-01-12T15:32:55.312-07:00</published>
    <updated>2008-02-24T10:41:47.7873419-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <category term="Silverlight" label="Silverlight" scheme="http://www.blogmfc.com/CategoryView,category,Silverlight.aspx" />
    <category term="WPF" label="WPF" scheme="http://www.blogmfc.com/CategoryView,category,WPF.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>Pourquoi Vista est il plus lent que XP ?</strong>
        </p>
        <p>
Devil Mountain Software a fait des tests pour comparer les deux versions de Windows,
avec et sans Service Pack, selon <a href="http://news.yahoo.com/s/nf/20071219/tc_nf/57313">Yahoo
News</a>. 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".
</p>
        <p>
"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.
</p>
        <p>
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 !
</p>
        <p>
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.
</p>
        <p>
          <strong>Pourquoi (ne pas) migrer vers Vista ?</strong>
        </p>
        <p>
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 <a href="http://www.blogmfc.com/2008/01/07/BillGatesAuCES2008Impressions.aspx">Bill
Gates au CES</a>, les utilisateurs migrent moins vite vers Vista qu'ils ont migré
vers XP.
</p>
        <p>
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.
</p>
        <p>
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.
</p>
        <p>
          <strong>WPF est-il mort ?</strong>
        </p>
        <p>
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...
</p>
        <p>
Pour l'instant, faire une application au look Vista, c'est :
</p>
        <ul>
          <li>
utiliser la police de caractère Segoe UI à la place de Tahoma ou de MS Sans Serif. 
</li>
          <li>
avoir un champ "Recherche" bien en évidence. 
</li>
          <li>
utiliser des boîtes de dialogue type "Task dialog", et des assistants au style
Aero. 
</li>
          <li>
reprendre les messages de l'interface utilisateur pour les mettre au goût de
Vista.</li>
        </ul>
        <p>
Pas de quoi fouetter un chat. En plus tout cela est accessible sous XP, et même sous
Windows 98 !
</p>
        <p align="center">
          <img src="http://www.blogmfc.com/content/binary/vista98.jpg" border="0" />
        </p>
        <p>
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.
</p>
        <p>
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.
</p>
        <p>
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.
</p>
        <p>
          <strong>WPF ou Silverlight ?</strong>
        </p>
        <p>
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.
</p>
        <p>
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.
</p>
        <p>
Et, pour en revenir à Windows XP, Silverlight tourne bien sûr sous XP...
</p>
        <p>
          <strong>Cela en fait des modèles de programmation, je choisis lequel pour mes applications
?</strong>
        </p>
        <p>
Pour faire une application sous Windows, on peut utiliser :
</p>
        <ul>
          <li>
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. 
</li>
          <li>
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"). 
</li>
          <li>
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. 
</li>
          <li>
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.</li>
        </ul>
        <p>
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.
</p>
        <p>
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" ?
</p>
        <p>
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.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=75337dee-4ee6-4e0a-92bf-4f344e312219" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Une nouvelle version des MFC disponible en béta pour Visual studio 2008 !</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/01/08/UneNouvelleVersionDesMFCDisponibleEnB%c3%a9taPourVisualStudio2008.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,cb96b6fb-3857-45a4-b56d-83e7d99ebbee.aspx</id>
    <published>2008-01-08T04:52:56.669-07:00</published>
    <updated>2008-02-24T10:31:20.4592169-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
J'ai déjà parlé de cette nouvelle version, <a href="http://www.blogmfc.com/2007/11/10/LaR%c3%a9volutionCSousWindows.aspx">ici</a> ou <a href="http://www.blogmfc.com/2007/11/11/LaLibrairieCDeBcgsoftcomSeraIncluseDansLesMFCEn2008.aspx">là</a>,
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 <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=D466226B-8DAB-445F-A7B4-448B326C48E7&amp;displaylang=en" target="_blank">le
site MSDN</a>. Si vous voulez juste lire la documentation, c'est <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=0D805D4E-2DC2-47C7-8818-A9F59DE4CD9B&amp;displaylang=en">ici</a>.
</p>
        <p>
La version béta des nouvelles MFC n'est pas encore disponible pour Visual C++ Express,
mais cela viendra.
</p>
        <p>
Quoi de neuf (selon le <a href="http://blogs.msdn.com/vcblog/">blog de l'équipe Visual
C++</a>) :
</p>
        <ul>
          <li>
Le ruban office 2007 
</li>
          <li>
Le look and feel d'Office 2007, 2003 ou XP, au choix. 
</li>
          <li>
Les panneaux attachables (docking panes... on comprend mieux en anglais !), comme
dans Visual Studio 
</li>
          <li>
Barres d'outils et menu paramétrables 
</li>
          <li>
De nouveaux contrôles avancés 
</li>
          <li>
Gestion des applications MDI avancée : onglets, ...</li>
        </ul>
        <p>
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 <strike>C+=2</strike> C++0x <a href="http://www.blogmfc.com/2007/11/11/CCC2EuhNonC0x.aspx">ici</a>. L'implémentation
TR1 proposée dans les MFC comprend :
</p>
        <ul>
          <li>
Pointeurs intelligents (smart pointers) 
</li>
          <li>
Expression régulières. 
</li>
          <li>
Nouveaux types conteneurs : tuples, tableaux, ensembles non ordonnés, etc. 
</li>
          <li>
Générateur de nombres aléatoires avancé 
</li>
          <li>
Encapsulateurs de fonction polymorphique (polymorphic function wrapper) 
</li>
          <li>
Type traits 
</li>
          <li>
et d'autres.</li>
        </ul>
        <p>
Je n'ai pas tout compris à TR1 encore, mais ça a l'air pas mal :)
</p>
        <p>
Bon allez, au boulot !
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=cb96b6fb-3857-45a4-b56d-83e7d99ebbee" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Bill Gates au CES 2008... impressions</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/01/07/BillGatesAuCES2008Impressions.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,12afe977-3289-4bd0-b523-26b53edd4223.aspx</id>
    <published>2008-01-07T03:32:33.214-07:00</published>
    <updated>2008-02-24T10:10:14.8967169-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="Silverlight" label="Silverlight" scheme="http://www.blogmfc.com/CategoryView,category,Silverlight.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
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 <a href="http://www.engadget.com/2008/01/06/bill-gates-live-at-his-12th-and-final-ces-keynote/" target="_blank">engadget.com</a>.
La vidéo (en Silverlight) est disponible sur <a href="http://www.microsoft.com/ces/" target="_blank">http://www.microsoft.com/ces/</a>,
et des billets sont déjà sur <a href="http://www.on10.net/Default.aspx" target="_blank">Channel10</a>.
</p>
        <p align="center">
          <img src="http://www.blogmfc.com/content/binary/gates-keynote.jpg" border="0" />
          <br />
          <font size="1">Image Engagdget</font>
        </p>
        <p>
Que dit Bill ?
</p>
        <p>
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).
</p>
        <p>
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.
</p>
        <p>
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 ?
</p>
        <ul dir="ltr" style="MARGIN-RIGHT: 0px">
          <li>
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 (<a href="http://www.NBCOlympics.com">www.NBCOlympics.com</a>)
sera tout en Silverlight : un sacré coup de pub pour ce concurrent de Flash ! 
</li>
          <li>
L'API Live ID est à apprendre par coeur. Euh... en C++ natif il existe quelque chose
pour attaquer les Web services ?</li>
        </ul>
        <p dir="ltr">
 
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=12afe977-3289-4bd0-b523-26b53edd4223" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Installez le SP2 de Windows XP, un an après Vista.</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2008/01/05/InstallezLeSP2DeWindowsXPUnAnApr%c3%a8sVista.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,a698187d-f5b0-4298-8c81-43776a652c82.aspx</id>
    <published>2008-01-05T07:25:07.46-07:00</published>
    <updated>2008-02-24T10:28:16.0373419-07:00</updated>
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <category term="Windows" label="Windows" scheme="http://www.blogmfc.com/CategoryView,category,Windows.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
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 <strike>Vista</strike> 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.
</p>
        <p>
          <img src="http://www.blogmfc.com/content/binary/msdownload.jpg" border="0" />
        </p>
        <p>
Microsoft aurait-il entendu les utilisateurs se plaindre que Windows Vista est trop
lent ? Comme dans la <a href="http://reviews.cnet.com/4520-7600_7-5534360-1.html" target="_blank">lettre
d'information de CNET du 4 janvier 2008</a> : "What can I do to improve the speed
of my Vista machine ?" Un sondage (non représentatif) <a href="http://nl.com.com/poll.sc?mc=mcrs&amp;pollId=2830" target="_blank">sur
ce même site</a> indique que 49% des utilisateurs ne veulent pas migrer de XP à Vista.
</p>
        <p>
Les utilisateurs de PC en auraient-ils assez des <em>fatwares</em> : systèmes et des
logiciels trop lents, trop gourmands en ressources ?
</p>
        <p>
Est-ce que Bill Gates parlera de la difficulté à faire adopter Vista pas les utilisateurs
de Windows XP, lors de <a href="http://www.microsoft.com/ces/" target="_blank">son
discours d'ouverture du CES</a>, 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 <a href="http://www.microsoft.com/ces/" target="_blank">site événementiel de Microsoft pour
le CES</a> est tout en silverlight... très joli design.
</p>
        <p>
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 <em>fatware</em>. Le C++ a
encore un bel avenir.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=a698187d-f5b0-4298-8c81-43776a652c82" />
      </div>
    </content>
  </entry>
  <entry>
    <title>XAML et C++ natif !</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2007/12/26/XAMLEtCNatif.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,11725927-e0d9-49ae-a037-f169ba53019e.aspx</id>
    <published>2007-12-26T10:45:48.631-07:00</published>
    <updated>2008-02-24T10:29:03.7404669-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <category term="WPF" label="WPF" scheme="http://www.blogmfc.com/CategoryView,category,WPF.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.codejock.com">Codejock</a> est l'éditeur de la librairie de classe
MFC eXtreme Toolkit Pro. C'est le concurrent de <a href="http://www.bcgsoft.com">BCG
Soft</a>, dont la technologie a été achetée par Microsoft pour être incluse dans la
prochaine version de MFC.
</p>
        <p>
Codejock est en train de développer une fonctionnalité assez étonnante : le support
d'une partie de XAML en C++ natif. Noooon ?? Si !
</p>
        <p>
C'est vrai après tout ! XAML est le langage de description d'interface de .NET 3.5
(WPF). Mais pourquoi être obligé d'utiliser .NET pour faire du XAML ? C'est la question
que Codejock s'est posée. Du coup, nous allons bientôt avoir droit à une <a href="https://forum.codejock.com/forum_posts.asp?TID=8827&amp;PID=29626">implémentation
de XAML en C++ natif</a>.
</p>
        <p>
Hum, ça veut dire quoi "une implémentation de XAML en C++ natif" ? Eh bien tout simplement
que nous aussi, développeurs C++/MFC, pourrons bientôt utiliser XAML et Expression
Blend pour coder nos interfaces. Je dois avouer que j'enviais énormément ce privilège
aux développeurs C# .NET 3.5.
</p>
        <p>
Quel intérêt ? Développer des interfaces utilisateurs très sympa, sans s'encombrer
de la lourdeur de WPF. Je ne sais pas si vous avez déjà lancé une application écrite
en XAML pour WPF, mais c'est loooonnng à se lancer, et ça nécessite énormément de
mémoire. Et WPF sous Windows XP, ce n'est pas tout à fait ça (à moins que quelqu'un
ne me contredise...)
</p>
        <p>
Voici quelques exemples d'interfaces écrite en XAML :
</p>
        <p>
          <img style="WIDTH: 653px; HEIGHT: 643px" height="616" src="http://www.blogmfc.com/content/binary/xaml1.jpg" width="615" border="0" />
        </p>
        <p>
L'exemple ci-dessus est écrit entièrement en XAML (le <a href="http://www.blogmfc.com/content/binary/StartPageSample.xaml">code
XAML est ici</a> (12 Ko)). Ce code XAML peut au choix être utilisé avec WPF pour faire
une application en code managé et WPF, ou alors être utilisé par le module XAML de
Codejock pour faire une application C++ natif.
</p>
        <p>
          <img src="http://www.blogmfc.com/content/binary/xaml2.png" border="0" />
        </p>
        <p>
Ci-dessus, du code XAML est utilisé pour créer des contrôles dans une application
C++/MFC. On reconnaît la listbox multi-ligne, multi-format : une spécialité de XAML
et WPF !
</p>
        <p>
Cette fonctionnalité de Codejock ne supportera pas tout XAML, du moins dans la première
version ;). Je ne sais pas quand cela sera disponible, mais à vue de nez... sans doute
en même temps que les nouvelles MFC !
</p>
        <p>
En tous cas, le rachat d'une partie de la librairie de BCG Soft par Microsoft
a pour effet de dynamiser le développement C++ ! Vivement la suite !
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=11725927-e0d9-49ae-a037-f169ba53019e" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Techdays Microsoft 2008 : une session sur C++ !</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2007/12/13/TechdaysMicrosoft2008UneSessionSurC.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,09f63b58-3b50-4f6e-98f0-0a530e773681.aspx</id>
    <published>2007-12-13T04:41:00.992-07:00</published>
    <updated>2008-02-24T10:38:47.6154669-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Les TechDays, c'est la grand-messe annuelle à Paris, où Microsoft nous présente
pendant 3 jours les nouvelles technos de développement liées à Windows. Un événement
d'autant plus incontournable qu'il est gratuit et ouvert à tous ceux qui s'intéressent
au développement d'applications (et qu'il y a à manger :-p).
</p>
        <p>
Grande première pour la prochaine édition : il y aura une session sur Visual C++ !
Microsoft associe à nouveau "Nouvelles technologies" et "C++".
</p>
        <blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
          <p>
            <font color="#808080">
              <strong>Les nouveautés de Visual C++ 2008</strong> animé par </font>
            <a href="http://galilee.microsoft.fr/TechDays2008/Speaker.aspx?SpkID=2f257196-112d-4eb6-9a23-0491705de858" target="_blank">
              <font color="#808080">Eric
Mittelette</font>
            </a>
            <font color="#808080">, </font>
            <a href="http://galilee.microsoft.fr/TechDays2008/Speaker.aspx?SpkID=b13e64df-0e8b-4be0-9fa7-1b75a1d7b591" target="_blank">
              <font color="#808080">Eric
Vernié</font>
            </a>
            <br />
            <font color="#808080">Le lundi 11 février 2008, 11:00 - 12:00. </font>
          </p>
          <p>
            <font color="#808080">Une session consacrée aux nouveautés de Visual C++ 2008, à la
fois pour le développeur C++ Natif, et pour le développeur C++/CLI (C++ qui cible
.NET). Venez découvrir les nouvelles bibliothèques STL/CLR et marshalAs, qui font
de C++/CLI, LE langage d'intéropérabilité entre le monde natif (Win32) et le monde
.NET. Mais les développeurs natifs ne seront pas en reste, car une surprise les attend
avec les nouvelles bibliothèques MFC.</font>
          </p>
        </blockquote>
        <p>
La session sera dense : une heure pour présenter les nouveautés C++/CLI et MFC !
</p>
        <p>
Pour tout savoir sur les Techdays 2008 et s'inscrire gratuitement, rendez-vous sur
: 
</p>
        <ul>
          <li>
le <a href="http://www.microsoft.com/france/mstechdays/" target="_blank">site officiel</a> (pour
s'inscrire) 
</li>
          <li>
un <a href="http://galilee.microsoft.fr/TechDays2008/SL/techdays-2008-silverlight.aspx">site
en Silverlight qui vaut le détour</a>, avec des vidéos des intervenants et le programme
interactif, 
</li>
          <li>
un <a href="http://blogs.technet.com/mstechdays/" target="_blank">blog</a></li>
          <li>
un <a href="http://www.facebook.com/group.php?gid=6278019479" target="_blank">groupe
Facebook</a>, 
</li>
          <li>
et même une bannière :</li>
        </ul>
        <p align="center">
          <a href="http://go.microsoft.com/?linkid=7733599" target="_blank">
            <img alt="Retrouvez-moi aux Microsoft TechDays 2008" src="http://www.microsoft.com/france/mstd08/images/Btn_generique.jpg" border="0" />
          </a>
        </p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=09f63b58-3b50-4f6e-98f0-0a530e773681" />
      </div>
    </content>
  </entry>
  <entry>
    <title>C++ for dummies</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2007/11/28/CForDummies.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,0090f9fd-0bcd-4ac6-b21c-6e8a69130a9d.aspx</id>
    <published>2007-11-27T17:20:48.928-07:00</published>
    <updated>2008-02-24T10:39:19.0842169-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="humour" label="humour" scheme="http://www.blogmfc.com/CategoryView,category,humour.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Le site MSDN, c'est un peu comme le Musée du Louvre : même en y revenant plusieurs
fois, on y trouve toujours quelque chose qu'on n'avait pas remarqué avant.
</p>
        <p>
La page <a href="http://msdn2.microsoft.com/en-us/visualc/bb496952.aspx" target="_blank">"How
do I ?" Videos for Native Code</a> contient une cinquantaine de vidéos (en anglais)
de 15 à 20 minutes. S'il y a quelques sujets sur l'interopérabilité code natif/code
managé, la plupart des vidéos concernent exclusivement le code natif C++. Le niveau
va de l'initiation, à des sujets plus avancés comme le debogage distant
ou encore l'utilisation du Kernel Transaction Manager de Vista !
</p>
        <p align="center">
          <a href="http://msdn2.microsoft.com/en-us/visualc/bb496952.aspx" target="_blank">
            <img src="http://www.blogmfc.com/content/binary/visual-studio-cpp.jpg" border="0" />
          </a>
        </p>
        <p align="left">
 
</p>
        <p align="left">
Et pendant que je suis sur le site MSDN, un petit clin d'oeil. Comparez les trois
pages ci-dessous. Il y en a une qui est à jour, les autres pas encore ;-) :
</p>
        <p align="left">
          <a href="http://msdn2.microsoft.com/en-us/vstudio/default.aspx" target="_blank">http://msdn2.microsoft.com/en-us/vstudio/default.aspx</a> (page
du site MSDN américain)<br /><a href="http://msdn2.microsoft.com/en-gb/vstudio/default.aspx" target="_blank">http://msdn2.microsoft.com/en-gb/vstudio/default.aspx</a> (la
même page, sur le site anglais UK)<br /><a href="http://msdn2.microsoft.com/fr-fr/vstudio/default.aspx" target="_blank">http://msdn2.microsoft.com/fr-fr/vstudio/default.aspx</a> (la
même page, en français)
</p>
        <p align="left">
 
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=0090f9fd-0bcd-4ac6-b21c-6e8a69130a9d" />
      </div>
    </content>
  </entry>
  <entry>
    <title>C++, what else ?</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2007/11/27/CWhatElse.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,864b71cc-21e7-4ac1-b253-8c80c96da790.aspx</id>
    <published>2007-11-27T16:28:25.03-07:00</published>
    <updated>2008-02-24T10:31:55.0998419-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <category term="Silverlight" label="Silverlight" scheme="http://www.blogmfc.com/CategoryView,category,Silverlight.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Une <a href="http://channel9.msdn.com/showpost.aspx?postid=359749" target="_blank">vidéo
de 46 minutes sur channel 9</a> nous fait découvrir que C++ en tant que langage non
managé existe, et continuera d'exister. La plate-forme C++/MFC, bien que
quasiment non mise à jour depuis 6 à 8 ans, a toujours des utilisateurs. Microsoft
commence (?) à entendre que C++/MFC ne peut pas forcément être remplacé par C++ managé
ou C#/VB.
</p>
        <p>
          <a href="http://blogs.msdn.com/texblog/" target="_blank">Steve Teixeira</a> (Visual
C++ manager) fait part de ses commentaires sur la sortie de la prochaine version des
MFC/TR1 dans quelques mois. La plate forme C++/MFC continuera à évoluer indépendamment
de la plate-forme .NET. Ouf !
</p>
        <p align="center">
          <a href="http://channel9.msdn.com/showpost.aspx?postid=359749" target="_blank">
            <img alt="Steve Teixeira au TechEd Barcelone" src="http://www.blogmfc.com/content/binary/stevetei.jpg" border="0" />
          </a>
          <br />
Steve Teixeira au TechEd de Barcelone
</p>
        <p align="left">
Au fait, Channel 9 utilise un player vidéo écrit en Silverlight... alors que ce
site utilise un peu de F###H, désolé...;)
</p>
        <p align="left">
Justement, demain je me mets à Silverlight. Il y a une <a href="http://blogs.msdn.com/clauer/archive/2007/08/06/notez-les-dates-du-tour-de-france-silverlight.aspx" target="_blank">présentation
de Silverlight à Paris</a>. Quand j'aurai un moment je remplacerai mon animation F###H
en haut de page par une animation Silverlight.
</p>
        <p align="left">
          <a href="http://channel9.msdn.com/showpost.aspx?postid=359749" target="_blank">Voir
la vidéo</a>
          <br />
          <a href="http://mschnlnine.vo.llnwd.net/d1/ch9/0/TechED2007VC++_ch9.mp3" target="_blank">Ecouter le
podcast (MP3)</a>
          <br />
          <a href="http://mschnlnine.vo.llnwd.net/d1/ch9/0/TechED2007VC++_ch9.wma" target="_blank">Ecouter le
podcast(WMA)</a>
          <br />
          <a href="http://mschnlnine.vo.llnwd.net/d1/ch9/0/KateAleSteve_C++.wmv" target="_blank">Telecharger
la Vidéo</a>
          <br />
        </p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=864b71cc-21e7-4ac1-b253-8c80c96da790" />
      </div>
    </content>
  </entry>
  <entry>
    <title>VS2008 installé, projet C++ migré. Premières impressions.</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2007/11/21/VS2008Install%c3%a9ProjetCMigr%c3%a9Premi%c3%a8resImpressions.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,ed067de3-6c02-4f99-b91b-9252c570ac87.aspx</id>
    <published>2007-11-21T09:52:20.294-07:00</published>
    <updated>2008-03-10T05:06:55.9569419-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ca y est, j'ai installé VS2008 et migré le projet C++ sur lequel je travaille.
</p>
        <p>
Ce projet C++ est un projet moyen (40.000 lignes de C++). C'est une application d'imagerie
médicale destinée à des chirurgiens, pour leur permettre de travailler avec leurs
images au format spécifique Dicom. Ce projet utilise la bibliothèque Codejock,
ainsi que les librairies OpenJpeg (jpeg2000), LibTiff, Jpeg Group.
</p>
        <p>
L'installation de VS2008 est trèèèès longue. Elle dure plusieurs heures (plus d'une
demi-journée). Faut dire qu'il y en a des composants .NET à installer ! Ne faites
pas comme moi, ne l'installez pas un mardi, le jour des patches de Vista (patch tuesday),
pour ne pas avoir à rebooter au milieu de l'installation ;). Lancez l'installation
un soir, ce sera bon pour le lendemain matin.
</p>
        <p>
Sous Vista x64, tout s'est bien passé. Pour l'instant je garde VS2005 et VS2008. Je
n'avais pas installé de béta de VS2008 sur ce PC. D'après <a href="http://weblogs.asp.net/scottgu/archive/2007/11/20/steps-to-uninstall-vs-2008-beta2-before-installing-the-vs-2008-final-release.aspx">Scottgu</a>,
il faut désinstaller soigneusement une béta de VS2008 avant d'installer la version
finale, et ça n'a pas l'air très simple.
</p>
        <p>
Deuxième étape pour moi : compiler la librairie <a href="http://www.codejock.com">Codejock</a> (xTreme
Toolkit pro) avec VS2008. Là encore, tout se passe bien avec la dernière version (11.2.1),
le programme d'installation de Codejock fait ça tout seul pour VS2008. Comme quoi
ils sont bien chez Codejock : leur librairie fonctionne impeccablement sous VS2008.
Il avaient sans doute anticipé avec les versions béta de VS2008. C'est dans ces cas
là qu'on distingue les pros.
</p>
        <p>
Lorsque j'ouvre mon projet C++/MFC sous VS2008, l'assistant de conversion de projet
ne pose pas de problème. Je récupère bien mes environnements. La compilation du projet
(en Unicode) se fait également sans problème, et le logiciel fonctionne.
</p>
        <p>
Bon, je suis quand même surpris, ça s'est passé tout seul. Je ne sais pas si le compilateur
a été modifié. Lors de la sortie de VS2005, le compilateur avait été modifié.
La migration avait été plus longue. Il avait fallu modifier le code à plusieurs endroits.
Là, non.
</p>
        <p>
Résultat : en passant de VS2005 à VS2008, la taille du binaire diminue de 50
Ko (sur 3,4 Mo). Le temps de compilation diminue de 10 secondes (moyenne de 2"59 à
2"48).
</p>
        <p>
Pour un utilisateur C++, pas grand chose ne change, donc. Ce qui est quand même une
bonne nouvelle : la migration est facile. Ah si, j'ai quand même l'impression que
l'IDE est un peu plus rapide. Je n'ai plus observé ces blocages assez fréquents avec
VS2005.
</p>
        <p>
Est-ce qu'il faut migrer votre projet C++ natif vers VS2008 ? Ma foi, si vous
êtes abonné à MSDN et que vous avez VS2008, faites-le : ça a l'air de bien fonctionner.
Mais si vous ne faites que du C++ natif, vous ne verrez pas beaucoup de différence
entre VS2005 et VS2008. En attendant la nouvelle version des MFC et des librairies
C++ dans quelques mois.
</p>
        <p>
 
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=ed067de3-6c02-4f99-b91b-9252c570ac87" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Toutes les versions de VS2008 disponibles : "la plupart des developpeurs chez Microsoft programment en C++"</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2007/11/19/ToutesLesVersionsDeVS2008DisponiblesLaPlupartDesDeveloppeursChezMicrosoftProgrammentEnC.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,71c2c3c7-8e52-4df9-b4aa-4125801b042e.aspx</id>
    <published>2007-11-19T11:32:52.089-07:00</published>
    <updated>2008-02-24T10:40:19.8029669-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Toute la famille des produits Visual Studio 2008 (Express, Professional, Team
Suite) est disponible <a href="http://msdn2.microsoft.com/en-us/vstudio/products/aa700831.aspx" target="_blank">ici</a>,
y compris les versions gratuites, ou bien sur le site MSDN pour les abonnés.
</p>
        <p>
A cette occasion, une <a href="http://channel9.msdn.com/showpost.aspx?postid=357748" target="_blank">vidéo
très intéressante</a> a été postée sur channel9 : une interview de S. Somasegar
(Developer Division VP), Jeff Beehler (mon ex-boss et actuellement VS Team System
manager), et Carol Grojean (program manager of VS2008 &amp; .NET 3.5).
</p>
        <p>
Dans cette vidéo, Soma annonce que pour nous, adeptes du C++, il faudra attendre 2
mois pour obtenir une béta de la nouvelle version des MFC et de C++ TR1.
Rendez-vous donc au mois de janvier pour que Visual Studio 2008 devienne -enfin- un
outil pour les "vrais" programmeurs ;). Car, si la plupart des nouveautés de VS2008
concernent le code managé (et notamment la révolution LINQ), <em>la plupart des développeurs
chez Microsoft programment en C++</em>. Si, si ! C'est le grand chef qui le déclare.
</p>
        <p>
Plein d'autres choses intéressantes dans cette vidéo...
</p>
        <p>
Pour la liste des nouvelles fonctionnalités, voir <a href="http://weblogs.asp.net/scottgu/archive/2007/11/19/visual-studio-2008-and-net-3-5-released.aspx" target="_blank">l'article
de Scottgu</a>, ou celui de <a href="http://blogs.msdn.com/jeffbe/archive/2007/11/19/visual-studio-team-system-2008-ships.aspx" target="_blank">Jeff
Beehler</a> pour VSTS.
</p>
        <p>
Et pour ceux qui voudraient avoir de la conversation <strike>dans les salons</strike> pendant
les pauses des conférences Microsoft, j'ai vu sur le <a href="http://blogs.developpeur.org/redo/archive/2007/11/20/visual-studio-2008-net-framework-3-5-windows-server-2008-training-kit.aspx" target="_blank">blog
de Redo</a> un lien vers un <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=8bdaa836-0bba-4393-94db-6c3c4a0c98a1&amp;DisplayLang=en" target="_blank">.NET
Framework 3.5 Training Kit</a> qui a l'air très intéressant...
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=71c2c3c7-8e52-4df9-b4aa-4125801b042e" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Occupation mémoire : comparaison C++/MFC/BCG, Windows Forms, WPF</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2007/11/13/OccupationM%c3%a9moireComparaisonCMFCBCGWindowsFormsWPF.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,924b852c-ceeb-4c4a-a509-e8f0c5bc026c.aspx</id>
    <published>2007-11-13T16:48:55.189-07:00</published>
    <updated>2008-02-24T10:36:42.5685919-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <category term="WPF" label="WPF" scheme="http://www.blogmfc.com/CategoryView,category,WPF.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Comparaison n'est pas raison. Mais quand même...
</p>
        <p>
Prenons trois petits programmes :
</p>
        <p>
- Une application de gestion de comptes bancaires (Votre Budget) écrite en C++/MFC
avec la librairie BCGSoft, linkée statiquement avec MFC et BCG (oui, la
librairie qui va être intégrée dans la prochaine version des MFC)
</p>
        <p>
- Un petit freeware écrit en VB.NET qui aide à arrêter de fumer, StopClope. On
entre la date à laquelle on arrête de fumer, et puis on obtient des récompenses en
fonction du nombre de jours qu'on tient sans fumer. Par exemple, j'ai arrêté
il y a 101 jours, économisé 707 euros, et j'ai gagné 19 jours d'espérance de vie.
Motivant non ?
</p>
        <p>
- Une application WPF, LCI Intégrale qui affiche des vidéos en streaming.
</p>
        <p>
Voici à quoi ressemble mon gestionnaire des tâches Vista quand je lance ces trois
programmes en même temps :
</p>
        <p>
          <img src="http://www.blogmfc.com/content/binary/memprocess.jpg" border="0" />
        </p>
        <p>
Mémoire occupée par les trois applications :
</p>
        <p>
- C++/MFC/BCG : 5 Mo (13 Mo)
</p>
        <p>
- Winform : 15 Mo (28 Mo)
</p>
        <p>
- WPF : 64 Mo (145 Mo)
</p>
        <p>
          <strong>A vue de nez, une application WPF occuperait 4 fois plus de mémoire qu'une
application Windows Forms, et 12 fois plus qu'une application MFC/BCG.</strong>
        </p>
        <p>
Ces trois programmes sont des petites applications, mais les valeurs ne varient
pas énormément. Pour donner un ordre de grandeur, j'ai aussi lancé Word 2007 (22 Mo),
Photoshop (65 Mo), et Visual Studio (50 Mo).
</p>
        <p>
Le confort ressenti à l'utilisation de ces applications est directement proportionnel
à l'espace mémoire utilisé. Photoshop et Visual Studio sont lourds à utiliser, n'est-ce
pas ?
</p>
        <p>
Ah ! Quel plaisir d'utiliser des logiciels écrits en C++ ! Alors faites plaisir à
vos clients, programmez en C++ !
</p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=924b852c-ceeb-4c4a-a509-e8f0c5bc026c" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Hi I'm a mac, I'm a PC... reloaded</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2007/11/13/HiImAMacImAPCReloaded.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,a9b4421e-f873-447f-a7df-183694871426.aspx</id>
    <published>2007-11-13T08:12:26.103231-07:00</published>
    <updated>2007-11-13T08:13:00.416829-07:00</updated>
    <category term="humour" label="humour" scheme="http://www.blogmfc.com/CategoryView,category,humour.aspx" />
    <content type="html">&lt;object height=355 width=425&gt;
&lt;param name="movie" value="http://www.youtube.com/v/5ArepJgpARI&amp;amp;rel=1"&gt;
&lt;param name="wmode" value="transparent"&gt;
&lt;embed src="http://www.youtube.com/v/5ArepJgpARI&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;
&lt;/object&gt;&gt;
&lt;p&gt;
Mac &amp;amp; PC contiennent du cadmium, beryllium, plomb, mercure...
&lt;/p&gt;
&lt;p&gt;
Les pubs originales sont là : &lt;a href="http://www.apple.com/getamac/ads/" target=_blank&gt;www.apple.com/getamac/ads/&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;object height=355 width=425&gt;
&lt;param name="movie" value="http://www.youtube.com/v/1EbCyibkNB0&amp;amp;rel=1"&gt;
&lt;param name="wmode" value="transparent"&gt;
&lt;embed src="http://www.youtube.com/v/1EbCyibkNB0&amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;
C'est un PC sur lequel on a installé trop d'applications .NET :p
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=a9b4421e-f873-447f-a7df-183694871426" /&gt;</content>
  </entry>
  <entry>
    <title>La librairie C++ de bcgsoft.com sera incluse dans les MFC en 2008</title>
    <link rel="alternate" type="text/html" href="http://www.blogmfc.com/2007/11/11/LaLibrairieCDeBcgsoftcomSeraIncluseDansLesMFCEn2008.aspx" />
    <id>http://www.blogmfc.com/PermaLink,guid,e22231b0-2506-4978-83b5-20e9eebdedff.aspx</id>
    <published>2007-11-11T14:10:24.806-07:00</published>
    <updated>2008-02-24T10:39:51.5060919-07:00</updated>
    <category term="C++" label="C++" scheme="http://www.blogmfc.com/CategoryView,category,C.aspx" />
    <category term="MFC" label="MFC" scheme="http://www.blogmfc.com/CategoryView,category,MFC.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
C'est officiel, une grande partie des nouveautés de la nouvelle version
des MFC incluse dans Visual Studio 2008 ne sera pas (entièrement) développée par Microsoft,
mais a d'ores et déjà été rachetée à la société russe BCGSoft. Il s'agit du produit
BCG Controlbar Pro. Pour avoir une idée précise des nouveautés à venir,
il suffit d'aller sur la page <a href="http://www.bcgsoft.com/FeatureTour/bcgcontrolbar-tour.htm" target="_blank">www.bcgsoft.com/FeatureTour/bcgcontrolbar-tour.htm</a>,
il y a de nombreuses captures d'écran.
</p>
        <p>
J'ai déjà personnellement utilisé BCG Controlbar Pro pour créer différents produits C++/MFC/BCG
depuis 2002, et j'ai été très satisfait du résultat. L'utilisation de BCG Controlbar
dans une application MFC est relativement simple à mettre en oeuvre, la migration
des applications existantes ne devrait pas poser de gros problème. Depuis 2004 j'ai
aussi utilisé le concurrent direct, la librairie Codejock (<a href="http://www.codejock.com" target="_blank">www.codejock.com</a>),
plus complète et aussi un peu plus complexe à utiliser.
</p>
        <p>
Avant que d'ici 6 mois environ, nous puissions disposer de la nouvelle version des
MFC, il est déjà possible de télécharger une version d'évaluation de BCG ControlBar
ici : <a href="http://www.bcgsoft.com/bcgcontrolbar-download.htm" target="_blank">www.bcgsoft.com/bcgcontrolbar-download.htm</a>.
</p>
        <p>
Que vont devenir les deux frères ennemis BCGSoft et Codejock, maintenant que leurs
technologies sont "gratuites" avec Visual C++ ? BCGSoft propose aussi d'autres produits
pour .NET, et Codejock... ?
</p>
        <p>
Pour illustrer concrètement cette nouvelle étape des MFC, voici deux captures d'écran
de l'exemple de code C++/MFC Drawcli qui est livré avec Visual C++ depuis longtemps...
Le voici relooké ! Avant - Après. Sans commentaire !
</p>
        <p>
          <img src="http://www.pierremf.com/blogmfc/content/binary/drawcli-old.jpg" border="0" />
        </p>
        <p>
          <img src="http://www.pierremf.com/blogmfc/content/binary/drawcli-new.jpg" border="0" />
        </p>
        <img width="0" height="0" src="http://www.blogmfc.com/aggbug.ashx?id=e22231b0-2506-4978-83b5-20e9eebdedff" />
      </div>
    </content>
  </entry>
</feed>