<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>Blogs Bewise</title>
    <link>www.bewise.fr/BewiseApps/blogs.ashx</link>
    <description>Blogs Bewise</description>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://patricelamarche.net/Trackback.aspx?guid=334f54c5-e54b-475d-ae43-ffe04a32cc64</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/PermaLink,guid,334f54c5-e54b-475d-ae43-ffe04a32cc64.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Patrice Lamarche</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/CommentView,guid,334f54c5-e54b-475d-ae43-ffe04a32cc64.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=334f54c5-e54b-475d-ae43-ffe04a32cc64</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img style="display: inline; margin-left: 0px; margin-right: 0px" alt="image" align="right" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/Newsdelasemaine18_9F77/image_thumb.png" />Commençons
comme souvent par une actualité concernant Windows Azure. <a href="http://blog.smarx.com/posts/using-other-web-servers-on-windows-azure">Steve
Marx nous présente comment utiliser un autre serveur web que IIS dans vos instances
Windows Azure</a>.
</p>
        <p>
          <a href="http://blogs.technet.com/windowsserver/archive/2010/03/01/windows-server-appfabric-beta-2-available.aspx">La
beta 2 du Windows Server AppFabric est désormais disponible</a>. 
</p>
        <p>
Toujours à propos de la sortie Produits, <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=3c9454e0-523a-4ee1-b436-5c6fc2110b34#top">le
successeur de Team Prise qui permet d’utiliser Team System depuis Eclipse est désormais
disponible siglé d’un beau logo Microsoft et du nom de code “EagleStone”.</a></p>
        <p>
          <font color="#444444">
            <a title="Req24- warnings where Nothing isn't null" href="http://blogs.msdn.com/tess">Tess
Ferrandez</a>
          </font> (qui est toujours aussi interessante) nous propose deux posts
concernant le debugging, <a href="http://blogs.msdn.com/tess/archive/2010/03/01/new-commands-in-sos-for-net-4-0-part-1.aspx">le
premier ou elle débute une série concernant les nouvelles commandes de SOS pour .net
4.0</a> et <a href="http://blogs.msdn.com/tess/archive/2010/03/03/tool-for-generating-dgml-graphs-showing-why-your-object-can-t-be-collected-visualgcroot.aspx">le
second où elle nous présente une extension permettant de générer un graphe DGML (format
introduit avec VS 2010) vos objets en mémoire (idéal pour trouver qui référence une
variable qui n’est jamais collectée).</a></p>
        <p>
Du côté de l’actualité française, <a href="http://blogs.msdn.com/mitsu">Mitsu Furuta</a> (Evangeliste
chez Microsoft France) nous propose une série de post sur l’utilisation des Expressions
en C# 4. Vous pouvez consulter la <a href="http://blogs.msdn.com/mitsu/archive/2010/03/02/c-4-expressions-blocks-part-i.aspx">partie
1</a>, <a href="http://blogs.msdn.com/mitsu/archive/2010/03/02/c-4-expressions-variables-part-ii.aspx">2</a>, <a href="http://blogs.msdn.com/mitsu/archive/2010/03/02/c-4-expressions-loops-goto-label-if-and-even-for-part-iii.aspx">et
3</a>, <a href="  http://code.msdn.microsoft.com/CSharp4Expressions ">ainsi que le
projet complet sur Code Gallery</a>.
</p>
        <p>
Et enfin, le meilleur pour la fin, <a href="http://bdc2010.bewise.fr/">Bewise organise
de nouveau la Bewise Day Conference le 1er Avril (et ce n’est pas une blague) à Toulouse.
Plus de 500 personnes sont attendues, inscrivez-vous c’est gratuit</a> !
</p>
        <img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=334f54c5-e54b-475d-ae43-ffe04a32cc64" />
        <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Patrice/~4/n7qIJDWpym8" height="1" width="1" />
      </body>
      <title>News de la semaine #10</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,334f54c5-e54b-475d-ae43-ffe04a32cc64.aspx</guid>
      <link>http://feedproxy.google.com/~r/Patrice/~3/n7qIJDWpym8/NewsDeLaSemaine10.aspx</link>
      <pubDate>Tue, 09 Mar 2010 14:54:44 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img style="display: inline; margin-left: 0px; margin-right: 0px" alt="image" align="right" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/Newsdelasemaine18_9F77/image_thumb.png" /&gt;Commençons
comme souvent par une actualité concernant Windows Azure. &lt;a href="http://blog.smarx.com/posts/using-other-web-servers-on-windows-azure"&gt;Steve
Marx nous présente comment utiliser un autre serveur web que IIS dans vos instances
Windows Azure&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.technet.com/windowsserver/archive/2010/03/01/windows-server-appfabric-beta-2-available.aspx"&gt;La
beta 2 du Windows Server AppFabric est désormais disponible&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
Toujours à propos de la sortie Produits, &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=3c9454e0-523a-4ee1-b436-5c6fc2110b34#top"&gt;le
successeur de Team Prise qui permet d’utiliser Team System depuis Eclipse est désormais
disponible siglé d’un beau logo Microsoft et du nom de code “EagleStone”.&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font color="#444444"&gt;&lt;a title="Req24- warnings where Nothing isn&amp;#39;t null" href="http://blogs.msdn.com/tess"&gt;Tess
Ferrandez&lt;/a&gt;&lt;/font&gt; (qui est toujours aussi interessante) nous propose deux posts
concernant le debugging, &lt;a href="http://blogs.msdn.com/tess/archive/2010/03/01/new-commands-in-sos-for-net-4-0-part-1.aspx"&gt;le
premier ou elle débute une série concernant les nouvelles commandes de SOS pour .net
4.0&lt;/a&gt; et &lt;a href="http://blogs.msdn.com/tess/archive/2010/03/03/tool-for-generating-dgml-graphs-showing-why-your-object-can-t-be-collected-visualgcroot.aspx"&gt;le
second où elle nous présente une extension permettant de générer un graphe DGML (format
introduit avec VS 2010) vos objets en mémoire (idéal pour trouver qui référence une
variable qui n’est jamais collectée).&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Du côté de l’actualité française, &lt;a href="http://blogs.msdn.com/mitsu"&gt;Mitsu Furuta&lt;/a&gt; (Evangeliste
chez Microsoft France) nous propose une série de post sur l’utilisation des Expressions
en C# 4. Vous pouvez consulter la &lt;a href="http://blogs.msdn.com/mitsu/archive/2010/03/02/c-4-expressions-blocks-part-i.aspx"&gt;partie
1&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/mitsu/archive/2010/03/02/c-4-expressions-variables-part-ii.aspx"&gt;2&lt;/a&gt;, &lt;a href="http://blogs.msdn.com/mitsu/archive/2010/03/02/c-4-expressions-loops-goto-label-if-and-even-for-part-iii.aspx"&gt;et
3&lt;/a&gt;, &lt;a href="  http://code.msdn.microsoft.com/CSharp4Expressions "&gt;ainsi que le
projet complet sur Code Gallery&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Et enfin, le meilleur pour la fin, &lt;a href="http://bdc2010.bewise.fr/"&gt;Bewise organise
de nouveau la Bewise Day Conference le 1er Avril (et ce n’est pas une blague) à Toulouse.
Plus de 500 personnes sont attendues, inscrivez-vous c’est gratuit&lt;/a&gt; !
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=334f54c5-e54b-475d-ae43-ffe04a32cc64" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,334f54c5-e54b-475d-ae43-ffe04a32cc64.aspx</comments>
      <category>News</category>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://patricelamarche.net/2010/03/09/NewsDeLaSemaine10.aspx</origLink>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://benoitlaut.net/Trackback.aspx?guid=130d6a66-ecd5-4581-829a-a63f5067c300</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://benoitlaut.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://benoitlaut.net/PermaLink,guid,130d6a66-ecd5-4581-829a-a63f5067c300.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Benoît Laut</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://benoitlaut.net/CommentView,guid,130d6a66-ecd5-4581-829a-a63f5067c300.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=130d6a66-ecd5-4581-829a-a63f5067c300</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://bdc2010.bewise.fr/?f=A56BC4FC-9B40-4e60-A8D5-B188D54819BC" target="_blank">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/BewiseDayConference2010_91B4/image_5.png" width="289" height="106" />
          </a>
        </p>
        <p>
Depuis 4 ans Bewise organise à Toulouse la BDC, le plus grand événement IT Microsoft
de la région Sud Ouest.
</p>
        <p>
Venez découvrir les innovations technologiques et échanger avec des experts Bewise
et Microsoft, le tout dans un cadre local, au stade Toulousain Ernest Wallon.
</p>
        <p>
Une plénière, 8 sessions et 25 espaces de démonstration pour découvrir les dernières
nouveautés : Visual Studio 2010, Team Foundation Server 2010, Sharepoint 2010, Azure,
framework 4.0, développement Surface…
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/BewiseDayConference2010_91B4/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/BewiseDayConference2010_91B4/image_thumb.png" width="487" height="477" />
          </a>
        </p>
        <p>
Cette année j’aurai la chance d’être au coté de David Catuhe et Mitsu Furuta lors
de la session plénière. Je co-animerai, avec Alain Marty, une session sur les tests
avec VSTS 2010. Vous me retrouverez également sur l’espace de démonstration Accès
aux données où nous parlerons notamment d’Entity Framework 4.0.
</p>
        <p></p>
        <p>
N’attendez plus et <a href="http://bdc2010.bewise.fr/?f=A56BC4FC-9B40-4e60-A8D5-B188D54819BC" target="_blank">inscrivez-vous</a>!!
</p>
        <img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=130d6a66-ecd5-4581-829a-a63f5067c300" />
      </body>
      <title>Bewise Day Conference 2010 : c’est parti!</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,130d6a66-ecd5-4581-829a-a63f5067c300.aspx</guid>
      <link>http://benoitlaut.net/2010/03/09/BewiseDayConference2010CestParti.aspx</link>
      <pubDate>Tue, 09 Mar 2010 12:04:25 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://bdc2010.bewise.fr/?f=A56BC4FC-9B40-4e60-A8D5-B188D54819BC" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/BewiseDayConference2010_91B4/image_5.png" width="289" height="106"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Depuis 4 ans Bewise organise à Toulouse la BDC, le plus grand événement IT Microsoft
de la région Sud Ouest.
&lt;/p&gt;
&lt;p&gt;
Venez découvrir les innovations technologiques et échanger avec des experts Bewise
et Microsoft, le tout dans un cadre local, au stade Toulousain Ernest Wallon.
&lt;/p&gt;
&lt;p&gt;
Une plénière, 8 sessions et 25 espaces de démonstration pour découvrir les dernières
nouveautés : Visual Studio 2010, Team Foundation Server 2010, Sharepoint 2010, Azure,
framework 4.0, développement Surface…
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/BewiseDayConference2010_91B4/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/BewiseDayConference2010_91B4/image_thumb.png" width="487" height="477"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Cette année j’aurai la chance d’être au coté de David Catuhe et Mitsu Furuta lors
de la session plénière. Je co-animerai, avec Alain Marty, une session sur les tests
avec VSTS 2010. Vous me retrouverez également sur l’espace de démonstration Accès
aux données où nous parlerons notamment d’Entity Framework 4.0.
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
N’attendez plus et &lt;a href="http://bdc2010.bewise.fr/?f=A56BC4FC-9B40-4e60-A8D5-B188D54819BC" target="_blank"&gt;inscrivez-vous&lt;/a&gt;!!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=130d6a66-ecd5-4581-829a-a63f5067c300" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,130d6a66-ecd5-4581-829a-a63f5067c300.aspx</comments>
      <category>BDC 2010</category>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://patricelamarche.net/Trackback.aspx?guid=0ae7fb65-eb46-4216-90a7-0cf23fa78d2e</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/PermaLink,guid,0ae7fb65-eb46-4216-90a7-0cf23fa78d2e.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Patrice Lamarche</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/CommentView,guid,0ae7fb65-eb46-4216-90a7-0cf23fa78d2e.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=0ae7fb65-eb46-4216-90a7-0cf23fa78d2e</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="justify">
Comme chaque année, Bewise organise la Bewise Day Conference 2010 qui se tiendra comme
à l’accoutumée dans un lieu mythique de Toulouse : le célèbre stade Ernest Wallon
bien connu de tous les passionnés de rugby.
</p>
        <p align="justify">
          <a href="http://patricelamarche.net/content/binary/WindowsLiveWriter/BewiseDayConference2010_9FB9/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/BewiseDayConference2010_9FB9/image_thumb.png" width="368" height="98" />
          </a>
        </p>
        <p align="justify">
Vous pourrez retrouver au programme de cet évènement : des sessions sur Windows Azure,
les nouveautés de Silverlight 4, Sharepoint 2010, et les tests avec VSTS 2010. Et
côté IT, des sessions sur BPOS, les communications unifiées, et la virtualisation.
Vous aurez également la possibilité de discuter avec l’ensemble de nos experts qui
seront réunis autour de 25 espaces de démonstrations.
</p>
        <p>
          <img style="margin: 0px 10px 0px 0px; display: inline" alt="DSCF3184" align="left" src="http://farm4.static.flickr.com/3597/3395554214_ea047d4b12.jpg" />
        </p>
        <p align="center">
Donc si vous aussi, vous souhaitez être ébahis par des démonstrations sur Windows
Azure, le Multitouch sous Windows 7 et sur la table Surface, SQL Server 2008, et Sharepoint
2010, n’hésitez pas à vous inscrire au <a href="http://bdc2010.bewise.fr">Bewise Day
Conference 2010</a>.
</p>
        <p align="center">
En savoir plus : 
<br /><a href="http://bdc2010.bewise.fr">http://bdc2010.bewise.fr/</a></p>
        <img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=0ae7fb65-eb46-4216-90a7-0cf23fa78d2e" />
        <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Patrice/~4/lU6OR6X8Eyk" height="1" width="1" />
      </body>
      <title>Bewise Day Conference 2010</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,0ae7fb65-eb46-4216-90a7-0cf23fa78d2e.aspx</guid>
      <link>http://feedproxy.google.com/~r/Patrice/~3/lU6OR6X8Eyk/BewiseDayConference2010.aspx</link>
      <pubDate>Tue, 09 Mar 2010 10:21:32 GMT</pubDate>
      <description>&lt;p align="justify"&gt;
Comme chaque année, Bewise organise la Bewise Day Conference 2010 qui se tiendra comme
à l’accoutumée dans un lieu mythique de Toulouse : le célèbre stade Ernest Wallon
bien connu de tous les passionnés de rugby.
&lt;/p&gt;
&lt;p align="justify"&gt;
&lt;a href="http://patricelamarche.net/content/binary/WindowsLiveWriter/BewiseDayConference2010_9FB9/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/BewiseDayConference2010_9FB9/image_thumb.png" width="368" height="98" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p align="justify"&gt;
Vous pourrez retrouver au programme de cet évènement : des sessions sur Windows Azure,
les nouveautés de Silverlight 4, Sharepoint 2010, et les tests avec VSTS 2010. Et
côté IT, des sessions sur BPOS, les communications unifiées, et la virtualisation.
Vous aurez également la possibilité de discuter avec l’ensemble de nos experts qui
seront réunis autour de 25 espaces de démonstrations.
&lt;/p&gt;
&lt;p&gt;
&lt;img style="margin: 0px 10px 0px 0px; display: inline" alt="DSCF3184" align="left" src="http://farm4.static.flickr.com/3597/3395554214_ea047d4b12.jpg" /&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
Donc si vous aussi, vous souhaitez être ébahis par des démonstrations sur Windows
Azure, le Multitouch sous Windows 7 et sur la table Surface, SQL Server 2008, et Sharepoint
2010, n’hésitez pas à vous inscrire au &lt;a href="http://bdc2010.bewise.fr"&gt;Bewise Day
Conference 2010&lt;/a&gt;.
&lt;/p&gt;
&lt;p align="center"&gt;
En savoir plus : 
&lt;br /&gt;
&lt;a href="http://bdc2010.bewise.fr"&gt;http://bdc2010.bewise.fr/&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=0ae7fb65-eb46-4216-90a7-0cf23fa78d2e" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,0ae7fb65-eb46-4216-90a7-0cf23fa78d2e.aspx</comments>
      <category>Bewise</category>
      <category>Events/BDC 2010</category>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://patricelamarche.net/2010/03/09/BewiseDayConference2010.aspx</origLink>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://patricelamarche.net/Trackback.aspx?guid=e21d016a-10cc-49ba-b250-e0f9b64afa38</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/PermaLink,guid,e21d016a-10cc-49ba-b250-e0f9b64afa38.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Patrice Lamarche</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/CommentView,guid,e21d016a-10cc-49ba-b250-e0f9b64afa38.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=e21d016a-10cc-49ba-b250-e0f9b64afa38</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="justify">
          <a href="http://www.radiobfm.com/podcast/podcast.php?id=7">
            <img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/6034304570a8_12DDD/image7.png" width="323" height="319" />
          </a>
          <a href="http://twitter.com/PatriceVB/status/9878876992">Je
vous avais indiqué sur Twit</a>ter que j’allais participer à une émission sur BFM
Radio à propos des interfaces riches avec Thomas Serval (Directeur Division DPE Microsoft
France) et Julien Riera (Program Manager “Interfaces Technologies” à Orange Labs). 
</p>
        <p align="justify">
Et bien j’ai le plaisir de vous annoncer que l’émission est à présent disponible en
ligne à cette adresse : 
<br /><a title="http://www.radiobfm.com/podcast/podcast.php?id=7" href="http://www.radiobfm.com/podcast/podcast.php?id=7">http://www.radiobfm.com/podcast/podcast.php?id=7</a></p>
        <p>
Si vous souhaitez aller plus loin dans le temps et voir ce que Microsoft nous prépare
en matière d’IHM cela se passe par ici : <a title="http://patricelamarche.net/2010/03/03/EmissionBFMRadioLesInterfacesRichesDeDemain.aspx" href="http://patricelamarche.net/2010/03/03/EmissionBFMRadioLesInterfacesRichesDeDemain.aspx">http://patricelamarche.net/2010/03/03/EmissionBFMRadioLesInterfacesRichesDeDemain.aspx</a></p>
        <img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=e21d016a-10cc-49ba-b250-e0f9b64afa38" />
        <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Patrice/~4/gpI8qU47WzI" height="1" width="1" />
      </body>
      <title>Emission sur les interfaces riches de demain sur BFM Radio</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,e21d016a-10cc-49ba-b250-e0f9b64afa38.aspx</guid>
      <link>http://feedproxy.google.com/~r/Patrice/~3/gpI8qU47WzI/EmissionSurLesInterfacesRichesDeDemainSurBFMRadio.aspx</link>
      <pubDate>Tue, 09 Mar 2010 10:08:02 GMT</pubDate>
      <description>&lt;p align="justify"&gt;
&lt;a href="http://www.radiobfm.com/podcast/podcast.php?id=7"&gt;&lt;img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/6034304570a8_12DDD/image7.png" width="323" height="319" /&gt;&lt;/a&gt;&lt;a href="http://twitter.com/PatriceVB/status/9878876992"&gt;Je
vous avais indiqué sur Twit&lt;/a&gt;ter que j’allais participer à une émission sur BFM
Radio à propos des interfaces riches avec Thomas Serval (Directeur Division DPE Microsoft
France) et Julien Riera (Program Manager “Interfaces Technologies” à Orange Labs). 
&lt;/p&gt;
&lt;p align="justify"&gt;
Et bien j’ai le plaisir de vous annoncer que l’émission est à présent disponible en
ligne à cette adresse : 
&lt;br /&gt;
&lt;a title="http://www.radiobfm.com/podcast/podcast.php?id=7" href="http://www.radiobfm.com/podcast/podcast.php?id=7"&gt;http://www.radiobfm.com/podcast/podcast.php?id=7&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Si vous souhaitez aller plus loin dans le temps et voir ce que Microsoft nous prépare
en matière d’IHM cela se passe par ici : &lt;a title="http://patricelamarche.net/2010/03/03/EmissionBFMRadioLesInterfacesRichesDeDemain.aspx" href="http://patricelamarche.net/2010/03/03/EmissionBFMRadioLesInterfacesRichesDeDemain.aspx"&gt;http://patricelamarche.net/2010/03/03/EmissionBFMRadioLesInterfacesRichesDeDemain.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=e21d016a-10cc-49ba-b250-e0f9b64afa38" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,e21d016a-10cc-49ba-b250-e0f9b64afa38.aspx</comments>
      <category>Autres</category>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://patricelamarche.net/2010/03/09/EmissionSurLesInterfacesRichesDeDemainSurBFMRadio.aspx</origLink>
    </item>
    <item>
      <title>Windows Mobile 7 – Silverlight + XNA !</title>
      <link>http://blogs.developpeur.org/vko/archive/2010/03/05/windows-mobile-7-silverlight-xna.aspx</link>
      <pubDate>Fri, 05 Mar 2010 19:21:35 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:48068</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Vko</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <comments>http://blogs.developpeur.org/vko/comments/48068.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/vko/commentrss.aspx?PostID=48068</commentRss>
      <description>
  L’actualité Windows Mobile est très active depuis la Mobile World Confress 2010 à Barcelone. (Contrairement à mes posts depuis le début de l’année)  Tout commence le 15 février avec l’annonce de Steeve Ballmer de Windows Phone 7 Series :     “Today, I...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=48068" width="1" height="1"&gt;</description>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://patricelamarche.net/Trackback.aspx?guid=ba324e94-74e4-4dd8-8aac-2ba78fbe936d</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/PermaLink,guid,ba324e94-74e4-4dd8-8aac-2ba78fbe936d.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Patrice Lamarche</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/CommentView,guid,ba324e94-74e4-4dd8-8aac-2ba78fbe936d.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=ba324e94-74e4-4dd8-8aac-2ba78fbe936d</commentRss>
      <title>Retours sur la présentation de Cloud Services par Steve Ballmer</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,ba324e94-74e4-4dd8-8aac-2ba78fbe936d.aspx</guid>
      <link>http://feedproxy.google.com/~r/Patrice/~3/NPQZSCaL7yA/RetoursSurLaPr%c3%a9sentationDeCloudServicesParSteveBallmer.aspx</link>
      <pubDate>Fri, 05 Mar 2010 08:35:45 GMT</pubDate>
      <description>&lt;p align="justify"&gt;
Hier soir, Steve Ballmer a effectué une présentation à propos du Cloud à l’université
de Washington. On s’attendait à de grosses annonces et il faut bien avouer que l’on
peut être un peu déçu par ce qui a été présenté.
&lt;/p&gt;
&lt;p align="justify"&gt;
Blaise Aguera a débuté les démonstrations en présentant l’évolution et le futur de
Bing Maps que j’avais déjà évoqué dans ce &lt;a href="http://twitter.com/PatriceVB/status/9538988713"&gt;tweet&lt;/a&gt; (vous
pouvez d’ailleurs me suivre ici : &lt;a href="http://www.twitter.com/patricevb"&gt;@patricevb&lt;/a&gt;).
Bing Maps s’enrichit très fortement puisqu’il intègre désormais PhotoSynth afin de
naviguer dans un univers 3D composé de photos prises par Microsoft mais également
provenant d’autres fournisseurs tels que Flickr. 
&lt;/p&gt;
&lt;p align="justify"&gt;
Silverlight est également de la partie puisque Bing Maps se basera dorénavant intégralement
sur cette technologie afin d’afficher les cartes. Utiliser Silverlight par rapport
au traditionnel couple HTML/Ajax permet de ne pas avoir de téléchargements de tuiles
qui ne laissent entrevoir que certaines parties de la carte en attendant la fin du
téléchargement de l’ensemble de la map, et de proposer des transitions très riches
ayant un wow effect important. 
&lt;/p&gt;
&lt;p align="justify"&gt;
Autre intégration intéressante, la vidéo est désormais intégrable au sein des cartes.
On peut pour le moment uniquement intégrer le rendu de webcam publiques au sein des
cartes Bing Maps mais à terme on pourra probablement diffuser des vidéos en direct
issues de téléphones portables comme le montre la démonstration suivante (vous pourrez
de plus voir l’intégration du World Wide Telescope en toute fin de la vidéo):
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;object width="446" height="326"&gt;
&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"&gt;&gt;
&lt;param name="allowFullScreen" value="true" /&gt;
&lt;param name="wmode" value="transparent"&gt;&gt;
&lt;param name="bgColor" value="#ffffff"&gt;&gt;
&lt;param name="flashvars" value="vu=http://video.ted.com/talks/dynamic/BlaiseAguerayArcas_2010-medium.mp4&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/BlaiseAgueraYArcas-2010.embed_thumbnail.jpg&amp;amp;vw=432&amp;amp;vh=240&amp;amp;ap=0&amp;amp;ti=766&amp;amp;introDuration=16500&amp;amp;adDuration=4000&amp;amp;postAdDuration=2000&amp;amp;adKeys=talk=blaise_aguera;year=2010;theme=new_on_ted_com;theme=a_taste_of_ted2010;theme=the_creative_spark;event=TED2010;&amp;amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /&gt;
&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgcolor="#ffffff" width="446" height="326" allowfullscreen="true" flashvars="vu=http://video.ted.com/talks/dynamic/BlaiseAguerayArcas_2010-medium.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/BlaiseAgueraYArcas-2010.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=766&amp;introDuration=16500&amp;adDuration=4000&amp;postAdDuration=2000&amp;adKeys=talk=blaise_aguera;year=2010;theme=new_on_ted_com;theme=a_taste_of_ted2010;theme=the_creative_spark;event=TED2010;"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/p&gt;
&lt;p align="center"&gt;
A noter que cette version de Bing Maps est disponible publiquement&amp;#160; cette adresse
: &lt;a href="http://www.bing.com/maps/explore/"&gt;http://www.bing.com/maps/explore/&lt;/a&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;
Des nouvelles fonctionnalités sociales du XBox Live ont également été présenté. Le
service de streaming et de catch-up TV de Sky TV (une chaine anglaise) a été mis en
avant afin de démontrer que la XBox est un vrai Media Center qui en plus de pouvoir
fournir une expérience de jeux vidéos, permet de regarder la TV sans aucun PC. En
plus de cette intégration de la télévision (peut être délivrée via Smooth Streaming
qui est supporté par la XBOX), Microsoft a présenté des fonctionnalités sociales liées
à la consultation de vidéos. On a ainsi pu voir que l’on avait dorénavant la possibilité
de regarder une émission de télé entre amis et d’interagir avec nos semblables grâce
à nos avatars :
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;a href="http://patricelamarche.net/content/binary/WindowsLiveWriter/RetourssurlaprsentationdeCloudServicespa_7F67/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/RetourssurlaprsentationdeCloudServicespa_7F67/image_thumb_1.png" width="244" height="139" /&gt;&lt;/a&gt;&lt;a href="http://patricelamarche.net/content/binary/WindowsLiveWriter/RetourssurlaprsentationdeCloudServicespa_7F67/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/RetourssurlaprsentationdeCloudServicespa_7F67/image_thumb.png" width="244" height="138" /&gt;&lt;/a&gt;&amp;#160; 
&lt;/p&gt;
&lt;p align="justify"&gt;
Steve Ballmer a ensuite mis l’accent sur l’importances d’avoir des périphériques intelligents
pour accéder aux services fournis par le Cloud. Il a bien évidemment mis l’accent
sur Windows Phone 7 Series même s’il n’en a pas effectué de démonstration.
&lt;/p&gt;
&lt;p align="justify"&gt;
C’est tout ? Oui, il n’y a pas eu d’énormes annonces, ni de démonstration bluffante
autour d’un nouveau service que l’on ne connait pas encore. 
&lt;/p&gt;
&lt;p align="justify"&gt;
Le plus important concernant cette conférence est que Microsoft change radicalement
la manière de présenter le Cloud. Au lieu de s’adresser uniquement aux professionnels
avec l’offre Windows Azure et BPOS, le géant de Redmond souhaite démocratiser l’adoption
du terme et de concept de Cloud auprès du grand public. Il le fait en expliquant qu’il
est acteur majeur du marché et non pas un simple suiveur (&lt;a href="http://blogs.zdnet.com/microsoft/?p=5491"&gt;au
risque de mélanger les concepts d’Internet et de Cloud&lt;/a&gt;). Et cela une excellente
nouvelle puisque cela confirme l’implication de l’éditeur dans cette démarche et ceci
sur tous les fronts à la fois dans le grand public et dans le monde professionnel.
&lt;/p&gt;
&lt;p align="justify"&gt;
En savoir plus : 
&lt;br /&gt;
&lt;a href="http://www.microsoft.com/cloud/"&gt;Le site Cloud Services&lt;/a&gt; 
&lt;br /&gt;
&lt;a href="http://www.microsoft.com/presspass/presskits/cloud/VideoGallery.aspx"&gt;La
conférence de Steve Ballmer&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=ba324e94-74e4-4dd8-8aac-2ba78fbe936d" /&gt;&lt;img src="http://feeds.feedburner.com/~r/Patrice/~4/NPQZSCaL7yA" height="1" width="1"/&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,ba324e94-74e4-4dd8-8aac-2ba78fbe936d.aspx</comments>
      <category>News</category>
      <category>Windows Azure</category>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://patricelamarche.net/2010/03/05/RetoursSurLaPr%c3%a9sentationDeCloudServicesParSteveBallmer.aspx</origLink>
    </item>
    <item>
      <title>En route pour la BDC 2010 !</title>
      <link>http://www.dotmim.com/blogs/mim/archive/2010/03/05/en-route-pour-la-bdc-2010.aspx</link>
      <pubDate>Fri, 05 Mar 2010 08:23:00 GMT</pubDate>
      <guid isPermaLink="false">f24f4a04-d5df-4071-90fb-39191e3ba06c:564</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Mimetis</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotmim.com/blogs/mim/rsscomments.aspx?PostID=564</wfw:commentRss>
      <comments>http://www.dotmim.com/blogs/mim/archive/2010/03/05/en-route-pour-la-bdc-2010.aspx#comments</comments>
      <description>&lt;p&gt;&lt;a href="http://bdc2010.bewise.fr/?f=A56BC4FC-9B40-4e60-A8D5-B188D54819BC" target="_blank"&gt;&lt;img style="BORDER-BOTTOM:0px;BORDER-LEFT:0px;MARGIN:0px 10px 0px 0px;DISPLAY:inline;BORDER-TOP:0px;BORDER-RIGHT:0px;" title="Bewise Developer Conference 2010" border="0" alt="Bewise Developer Conference 2010" align="left" src="http://www.dotmim.com/blogs/mim/Bdc2010_6080D1A2.jpg" width="244" height="88" /&gt;&lt;/a&gt; Et voilà, pour la quatrième année consécutive, BEWISE organise à Toulouse la &lt;a href="http://bdc2010.bewise.fr/?f=A56BC4FC-9B40-4e60-A8D5-B188D54819BC"&gt;Bewise Day Conférence&lt;/a&gt; !&lt;/p&gt;
&lt;p&gt;Cette année encore, venez découvrir les dernières technologies Microsoft, autour de Visual Studio 2010, mais aussi Sharepoint 2010, Framewor 4.0, Azure (biensur !) Silverlight 4, Sql Server 2008 R2 et bien d’autres !&lt;/p&gt;
&lt;p&gt;Cette année, &lt;a href="http://bdc2010.bewise.fr/ContenuPM.aspx"&gt;parmi les 8 sessions qui vous seront proposées&lt;/a&gt;, j’aurai la chance d’animer une session de Haute Disponibilité avec SQL SERVER 2008 avec l’ami Pascal Belaud.&lt;/p&gt;
&lt;p&gt;Vous me trouverez autour des ATE (Ask The Expert) relatifs à SQL SERVER. J’ai en charge cette année de promouvoir SQL SERVER dans AZURE, Azure Database.&lt;/p&gt;
&lt;p&gt;Bref, si en plus ça vous tente de gagner un grand écran, ou encore une XBOX pour les étudiants, dans un lieu convivial, comme le stade Ernest Wallon, y’a plus qu’à venir !&lt;/p&gt;
&lt;p&gt;Voici le &lt;a href="http://bdc2010.bewise.fr/Agenda.aspx"&gt;planning&lt;/a&gt; pour les quelques rares qui ont lu ce post jusqu’ici, et qui ne seraient pas (encore) convaincus :)&lt;/p&gt;
&lt;p&gt;&lt;img style="BORDER-RIGHT-WIDTH:0px;DISPLAY:block;FLOAT:none;BORDER-TOP-WIDTH:0px;BORDER-BOTTOM-WIDTH:0px;MARGIN-LEFT:auto;BORDER-LEFT-WIDTH:0px;MARGIN-RIGHT:auto;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_675A66C8.png" width="513" height="559" /&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;h4&gt;La plénière&lt;/h4&gt;&lt;b&gt;&lt;/b&gt;
&lt;table cellspacing="5" cellpadding="0"&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;strong&gt;Description&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Venez découvrir une intégration complète autour de Sharepoint 2010, Silverlight 4 et Visual Studio 2010., le tout mâtiné de design et de sketchflow ! &lt;br /&gt;Nous vous présenterons comment en utilisant les dernières technologies Microsoft vous pourrez développer efficacement, de manière professionnelle tout en travaillant autour de l’ergonomie et du design.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;h4&gt;Les sessions&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Les nouveautés de Silverlight 4&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SharePoint 2010 , 40 minutes pour vous convaincre &lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Azure : Le cloud et le développeur&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;VSTS 2010 Tests fonctionnels, tests d&amp;#39;interfaces, tests de charges&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Communications Unifiées - Accélérez les échanges dans l&amp;#39;entreprise et réduisez vos coûts téléphoniques avec OCS 2007 R2&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SQL 2008 - Très haute disponibilité &amp;amp; Optimisation des performances&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Découvrez Microsoft online Services via Business Productivity Online Suite&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;La virtualisation dans tous ses états&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;h4&gt;Les espaces de démonstrations&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;Espace Solutions Langages et Framework (SLF)&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a&gt;Développement parallèle&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#EricVernie"&gt;Eric Vernié&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a&gt;La plateforme Windows Azure&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#PatriceLamarche"&gt;Patrice Lamarche&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#PierreCouzy"&gt;Pierre Couzy&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a&gt;L’accès aux données&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#BenoitLAUT"&gt;Benoit Laut&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a&gt;Le développement C++&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#EricMittelette"&gt;Eric Mittelette&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a&gt;Le Framework .net 4.0&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#JeremyTouyarou"&gt;Jérémy Touyarou&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Espace Architecture, Méthodes, Industrialisation (AMI)&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a&gt;ALM et les tests sous VS 2010&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#AlainMarty"&gt;Alain Marty&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a&gt;La plateforme ALM avec Visual Studio 2010&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#IonutMilhalcea"&gt;Ionut Milhalcea&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#FrancoisMerand"&gt;François Merand&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Espace Portail &amp;amp; Travail Collaboratif (PTC)&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a&gt;En 2010 ... Collaborer et partager plus efficacement avec MOSS et CRM&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#LaurentCotton"&gt;Laurent Cotton&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#FlorentCazenave"&gt;Florent Cazenave&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a&gt;Nos expériences Sharepoint&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#LionelLimozin"&gt;Lionel Limozin&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#AlexandreBarbier"&gt;Alexandre Barbier&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Espace Décisionnel &amp;amp; Gestion des données (DGD)&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a&gt;SQL server 2008 R2&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#JulienDuprat"&gt;Julien Duprat&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#NicolasCaillard"&gt;Nicolas Caillard&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a&gt;SQL server 2008 : VLDB et Haute disponibilité&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#PascalBelaud"&gt;Pascal Belaud&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a&gt;SQL Azure&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#SebastienPertus"&gt;Sébastien Pertus&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a&gt;Le décisionnel avec SQL server 2008 R2&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#PhilippeLonvaud"&gt;Philippe Lonvaud&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#JeanPierreRiehl"&gt;Jean-Pierre Riehl&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Espace Nouvelles Interfaces Utilisateurs (NIU)&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a&gt;La mobilité&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#PierreCauchois"&gt;Pierre Cauchois&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#ChristopherManeu"&gt;Christopher Maneu&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a&gt;Le développement sous Windows 7&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#CyrilSansus"&gt;Cyril Sansus&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#GuillaumeContesse"&gt;Guillaume Contesse&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Espace Administration, Systeme et Communication (ASC)&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a&gt;Les communications unifiées&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#DavidDiop"&gt;David Diop&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#PascalClerc"&gt;Pascal Clerc&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a&gt;Windows server 2008 R2/ System conter / Forefront&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#FabriceMeillon"&gt;Fabrice Meillon&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a&gt;DirectAccess avec Windows 7 &amp;amp; Forefront UAG 2010&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#StanislasQuastana"&gt;Stanislas Quastana&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Espace Solutions Web Avancées (SWA)&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a&gt;Silverlight&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#SachaLeroux"&gt;Sacha Leroux&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#DavidRousset"&gt;David Rousset&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a&gt;Créer vos sites internet avec ASP.NET 4.0&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#GuillaumeLacasa"&gt;Guillaume Lacasa&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#JocelynTricoire"&gt;Jocelyn Tricoire&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#LoisGaudebert"&gt;Lois Gaudebert&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a&gt;Ergonomie et conception orientée utilisateur&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#OlivierCourtois"&gt;Olivier Courtois&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#DickLantim"&gt;Dick Lantim&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Espace Partenaires&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a&gt;Vertice / Vertice Design&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#YannFaure"&gt;Yann Faure&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#FredericColin"&gt;Frédéric Colin&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#MichelRousseau"&gt;Michel Rousseau&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#AnaisPoillot"&gt;Anais Cruzel&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;
&lt;li&gt;&lt;a&gt;MSDN&lt;/a&gt; 
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://bdc2010.bewise.fr/speakers.aspx#SandraJousselin"&gt;Sandra Jousselin&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;&lt;a href="http://bdc2010.bewise.fr/?f=A56BC4FC-9B40-4e60-A8D5-B188D54819BC"&gt;Y’a plus qu’à s’incrire !&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;On se voit là bas :)&lt;/p&gt;
&lt;p&gt;Tiens en même temps, ça sera (ou pas) mon renouvellement MVP. Si tout se passe bien, la journée devrait bien se passer (et se terminer tard :))&lt;/p&gt;
&lt;p&gt;“Big Data”&lt;/p&gt;&lt;img src="http://www.dotmim.com/aggbug.aspx?PostID=564" width="1" height="1"&gt;</description>
    </item>
    <item>
      <guid isPermaLink="false">27</guid>
      <link>http://feedproxy.google.com/~r/PaslatekBlog/~3/Um7VNlRFkcU/en-avant-pour-la-bewise-day-conference-2010-20100304-27.aspx</link>
      <title>En avant pour la Bewise Day Conference 2010 !</title>
      <description>&lt;p&gt;A la demande générale, la Bewise Day Conference est de retour pour une 4ème édition ! Encore une fois, venez découvrir ce qui se fait de mieux dans les technologies Microsoft.   &lt;br /&gt;Cette année, beaucoup de nouveautés, puisque Microsoft lance la gamme 2010 de ses produits, notamment Visual Studio, SharePoint, mais lance aussi la version 4 de son Framework .net, MVC 2, Azure, et bien d’autres choses.    &lt;br /&gt;&lt;a href="http://bdc2010.bewise.fr?f=A56BC4FC-9B40-4e60-A8D5-B188D54819BC"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="BDC 2009" src="http://www.bewise.fr/fr-FR/PublishingImages/anim_bdc%202010.jpg" /&gt;&lt;/a&gt;    &lt;br /&gt;Je vous donne donc rendez-vous au stade Ernest Wallon, pour vous présenter nos expériences SharePoint, dans sa version &lt;strong&gt;2007&lt;/strong&gt; et &lt;strong&gt;2010&lt;/strong&gt;.     &lt;br /&gt;Pour les inscriptions, rendez-vous sur &lt;a href="http://bdc2010.bewise.fr?f=A56BC4FC-9B40-4e60-A8D5-B188D54819BC"&gt;le site officiel de la BDC 2010&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Thu, 04 Mar 2010 08:40:28 +0100</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2010-03-04T08:40:28+01:00</updated>
      <author>lionel limozin</author>
      <creator>lionel limozin</creator>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://www.paslatek.net/en-avant-pour-la-bewise-day-conference-2010-20100304-27.aspx</origLink>
    </item>
    <item>
      <title>BDC 2010 – C’est reparti!</title>
      <description>&lt;p&gt;A la demande générale, la Bewise Day Conference est de retour pour une 4ème édition ! Encore une fois, venez découvrir ce qui se fait de mieux dans les technologies Microsoft.&lt;/p&gt;  &lt;p&gt;Cette année, beaucoup de nouveautés, puisque Microsoft lance la gamme 2010 de ses produits, notamment Visual Studio, Sharepoint, mais aussi la version 4.0 de son framework .Net, MVC 2, Azure, Silverlight 4 et bien d’autres choses bien croustillantes.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bdc2010.bewise.fr/?f=A56BC4FC-9B40-4e60-A8D5-B188D54819BC"&gt;&lt;img src="http://external.ak.fbcdn.net/safe_image.php?d=c6b78e733195358d64c1297cdaa261b8&amp;amp;url=http%3A%2F%2Fwww.bewise.fr%2Ffr-FR%2FPublishingImages%2Fanim_bdc%25202010.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;J’animerai les plénières cette année et je vous conseille d’y participer car vous y découvrirez le grand secret de Bewise :).&lt;/p&gt;  &lt;p&gt;Pour les inscriptions, rendez-vous sur &lt;a href="http://bdc2010.bewise.fr/?f=A56BC4FC-9B40-4e60-A8D5-B188D54819BC"&gt;le site officiel de la BDC 2010&lt;/a&gt;.&lt;/p&gt;</description>
      <link>http://www.catuhe.com/post/BDC-2010-e28093-Ce28099est-reparti!.aspx</link>
      <author>kosh</author>
      <comments>http://www.catuhe.com/post/BDC-2010-e28093-Ce28099est-reparti!.aspx#comment</comments>
      <guid>http://www.catuhe.com/post.aspx?id=8a3551f4-195c-4a8a-8e06-981dac26fbdd</guid>
      <pubDate>Thu, 04 Mar 2010 07:57:54 +0200</pubDate>
      <category>Bewise</category>
      <category>.Net</category>
      <category>3D</category>
      <category>Silverlight</category>
      <category>Visual Studio</category>
      <category>Windows Forms</category>
      <category>Windows Mobile</category>
      <category>WPF</category>
      <publisher xmlns="http://purl.org/dc/elements/1.1/">kosh</publisher>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/pingback.axd</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/post.aspx?id=8a3551f4-195c-4a8a-8e06-981dac26fbdd</target>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://www.catuhe.com/trackback.axd?id=8a3551f4-195c-4a8a-8e06-981dac26fbdd</ping>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/post/BDC-2010-e28093-Ce28099est-reparti!.aspx#comment</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/syndication.axd?post=8a3551f4-195c-4a8a-8e06-981dac26fbdd</commentRss>
    </item>
    <item>
      <title>BDC 2010 – C’est reparti!</title>
      <description>&lt;p&gt;A la demande générale, la Bewise Day Conference est de retour pour une 4ème édition ! Encore une fois, venez découvrir ce qui se fait de mieux dans les technologies Microsoft.&lt;/p&gt;  &lt;p&gt;Cette année, beaucoup de nouveautés, puisque Microsoft lance la gamme 2010 de ses produits, notamment Visual Studio, Sharepoint, mais aussi la version 4.0 de son framework .Net, MVC 2, Azure, Silverlight 4 et bien d’autres choses bien croustillantes.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bdc2010.bewise.fr/?f=A56BC4FC-9B40-4e60-A8D5-B188D54819BC"&gt;&lt;img src="http://external.ak.fbcdn.net/safe_image.php?d=c6b78e733195358d64c1297cdaa261b8&amp;amp;url=http%3A%2F%2Fwww.bewise.fr%2Ffr-FR%2FPublishingImages%2Fanim_bdc%25202010.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;J’animerai les plénières cette année et je vous conseille d’y participer car vous y découvrirez le grand secret de Bewise :).&lt;/p&gt;  &lt;p&gt;Pour les inscriptions, rendez-vous sur &lt;a href="http://bdc2010.bewise.fr/?f=A56BC4FC-9B40-4e60-A8D5-B188D54819BC"&gt;le site officiel de la BDC 2010&lt;/a&gt;.&lt;/p&gt;</description>
      <link>http://www.catuhe.com/post/BDC-2010-e28093-Ce28099est-reparti!.aspx</link>
      <author>kosh</author>
      <comments>http://www.catuhe.com/post/BDC-2010-e28093-Ce28099est-reparti!.aspx#comment</comments>
      <guid>http://www.catuhe.com/post.aspx?id=8a3551f4-195c-4a8a-8e06-981dac26fbdd</guid>
      <pubDate>Thu, 04 Mar 2010 07:57:54 +0200</pubDate>
      <category>Bewise</category>
      <category>.Net</category>
      <category>3D</category>
      <category>Silverlight</category>
      <category>Visual Studio</category>
      <category>Windows Forms</category>
      <category>Windows Mobile</category>
      <category>WPF</category>
      <publisher xmlns="http://purl.org/dc/elements/1.1/">kosh</publisher>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/pingback.axd</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/post.aspx?id=8a3551f4-195c-4a8a-8e06-981dac26fbdd</target>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://www.catuhe.com/trackback.axd?id=8a3551f4-195c-4a8a-8e06-981dac26fbdd</ping>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/post/BDC-2010-e28093-Ce28099est-reparti!.aspx#comment</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/syndication.axd?post=8a3551f4-195c-4a8a-8e06-981dac26fbdd</commentRss>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://patricelamarche.net/Trackback.aspx?guid=2c4e9ad5-f4cb-475d-92f0-9c72b5de9247</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/PermaLink,guid,2c4e9ad5-f4cb-475d-92f0-9c72b5de9247.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Patrice Lamarche</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/CommentView,guid,2c4e9ad5-f4cb-475d-92f0-9c72b5de9247.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=2c4e9ad5-f4cb-475d-92f0-9c72b5de9247</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
J’ai participé aujourd’hui à l’enregistrement de l’émission 01 Business sur BFM Radio
accompagné de Thomas Serval (Directeur Division DPE Microsoft France) et Julien Riera
(Program Manager “Interfaces Technologies” à Orange Labs).
</p>
        <p>
Je reviendrais plus tard sur le déroulement de l’enregistrement mais je souhaitais
avant tout vous parler de ce que je n’ai pas eu le temps de présenter à savoir les
nouveautés en matière d’IHM qui seront présentées très prochainement par Microsoft
Research lors du TechFest.
</p>
        <p>
MSR a en effet levé le voile sur certaines de ces nouveautés pour le moins… très futuriste
mais dont des prototypes fonctionnels ont été réalisés.
</p>
        <p>
Comme vous le savez probablement, de nombreuses recherches sont effectuées dans le
domaine des interfaces homme/machine dites naturelles. Microsoft a apparemment pas
mal avancé dans le domaine comme le montrent les prototypes suivants :
</p>
        <p>
          <strong>
            <em>Les muscles à la place de la souris</em>
          </strong>
        </p>
        <p>
Le premier projet consiste à remplacer les souris en utilisant… vos muscles. MSR a
imaginé un bandeau à poser sur votre bras, bandeau qui est capable de détecter les
efforts musculaires en analysant les courants électriques générés par cette activité
:
</p>
        <p>
          <a href="http://patricelamarche.net/content/binary/WindowsLiveWriter/EmissionBFMRadioLesinterfacesrichesdedem_104F5/image_6.png">
            <img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/EmissionBFMRadioLesinterfacesrichesdedem_104F5/image_thumb_2.png" width="244" height="162" />
          </a>
        </p>
        <p>
Afin de voir très concrètement comment fonctionne ce projet et quels sont les différents
usages qui peuvent en découler je vous recommande de visionner <a href="http://seattletimes.nwsource.com/html/technologybrierdudleysblog/2011224616_microsoft_techfest_video_muscl.html?syndication=rss">une
vidéo proposée par le Seattle Times.</a></p>
        <p>
          <strong>
            <em>Le Skin Input</em>
          </strong>
        </p>
        <p>
Autre nouveauté, un projet qui permet d’utiliser votre peau comme périphérique d’entrée/sortie.
Encore un fois, le projet est réalisé sous forme d’un bandeau à accrocher à votre
bras. Cette fois-ci ce bandeau est composé d’un projecteur qui permet d’afficher une
image sur votre avant-bras et probablement d’une caméra qui permet d’analyser vos
mouvements. Téléphoner en pianotant directement dans la paume de votre main sera bientôt
possible…
</p>
        <p>
          <a href="http://patricelamarche.net/content/binary/WindowsLiveWriter/EmissionBFMRadioLesinterfacesrichesdedem_104F5/image_8.png">
            <img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/EmissionBFMRadioLesinterfacesrichesdedem_104F5/image_thumb_3.png" width="719" height="223" />
          </a>
        </p>
        <p>
          <strong>
            <em>La Mobile Surface</em>
          </strong>
        </p>
        <p>
Ce n’est un secret pour personne, Microsoft travaille à la miniaturisation de sa célèbre
table Surface, et va présenter un prototype plus qu’intéressant puisqu’il permettra
de transformer n’importe quel surface de travail en surface interactive, grâce à un
kit composé de projecteurs et de caméra :
</p>
        <p>
          <img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://i.zdnet.com/blogs/mobile-surface.png" /> 
</p>
        <p>
En savoir plus : 
<br /><a href="http://research.microsoft.com/en-us/projects/mobilesurface/default.aspx">La
Surface Mobile</a><br /><a href="http://research.microsoft.com/en-us/events/techfest2010/default.aspx">Le
site du TechFest 2010</a></p>
        <img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=2c4e9ad5-f4cb-475d-92f0-9c72b5de9247" />
        <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Patrice/~4/nRHxeJnUK-M" height="1" width="1" />
      </body>
      <title>Emission BFM Radio : Les interfaces riches de demain</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,2c4e9ad5-f4cb-475d-92f0-9c72b5de9247.aspx</guid>
      <link>http://feedproxy.google.com/~r/Patrice/~3/nRHxeJnUK-M/EmissionBFMRadioLesInterfacesRichesDeDemain.aspx</link>
      <pubDate>Wed, 03 Mar 2010 17:33:38 GMT</pubDate>
      <description>&lt;p&gt;
J’ai participé aujourd’hui à l’enregistrement de l’émission 01 Business sur BFM Radio
accompagné de Thomas Serval (Directeur Division DPE Microsoft France) et Julien Riera
(Program Manager “Interfaces Technologies” à Orange Labs).
&lt;/p&gt;
&lt;p&gt;
Je reviendrais plus tard sur le déroulement de l’enregistrement mais je souhaitais
avant tout vous parler de ce que je n’ai pas eu le temps de présenter à savoir les
nouveautés en matière d’IHM qui seront présentées très prochainement par Microsoft
Research lors du TechFest.
&lt;/p&gt;
&lt;p&gt;
MSR a en effet levé le voile sur certaines de ces nouveautés pour le moins… très futuriste
mais dont des prototypes fonctionnels ont été réalisés.
&lt;/p&gt;
&lt;p&gt;
Comme vous le savez probablement, de nombreuses recherches sont effectuées dans le
domaine des interfaces homme/machine dites naturelles. Microsoft a apparemment pas
mal avancé dans le domaine comme le montrent les prototypes suivants :
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;Les muscles à la place de la souris&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Le premier projet consiste à remplacer les souris en utilisant… vos muscles. MSR a
imaginé un bandeau à poser sur votre bras, bandeau qui est capable de détecter les
efforts musculaires en analysant les courants électriques générés par cette activité
:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://patricelamarche.net/content/binary/WindowsLiveWriter/EmissionBFMRadioLesinterfacesrichesdedem_104F5/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/EmissionBFMRadioLesinterfacesrichesdedem_104F5/image_thumb_2.png" width="244" height="162" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Afin de voir très concrètement comment fonctionne ce projet et quels sont les différents
usages qui peuvent en découler je vous recommande de visionner &lt;a href="http://seattletimes.nwsource.com/html/technologybrierdudleysblog/2011224616_microsoft_techfest_video_muscl.html?syndication=rss"&gt;une
vidéo proposée par le Seattle Times.&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;Le Skin Input&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Autre nouveauté, un projet qui permet d’utiliser votre peau comme périphérique d’entrée/sortie.
Encore un fois, le projet est réalisé sous forme d’un bandeau à accrocher à votre
bras. Cette fois-ci ce bandeau est composé d’un projecteur qui permet d’afficher une
image sur votre avant-bras et probablement d’une caméra qui permet d’analyser vos
mouvements. Téléphoner en pianotant directement dans la paume de votre main sera bientôt
possible…
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://patricelamarche.net/content/binary/WindowsLiveWriter/EmissionBFMRadioLesinterfacesrichesdedem_104F5/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/EmissionBFMRadioLesinterfacesrichesdedem_104F5/image_thumb_3.png" width="719" height="223" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;La Mobile Surface&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Ce n’est un secret pour personne, Microsoft travaille à la miniaturisation de sa célèbre
table Surface, et va présenter un prototype plus qu’intéressant puisqu’il permettra
de transformer n’importe quel surface de travail en surface interactive, grâce à un
kit composé de projecteurs et de caméra :
&lt;/p&gt;
&lt;p&gt;
&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" src="http://i.zdnet.com/blogs/mobile-surface.png" /&gt;&amp;#160;
&lt;/p&gt;
&lt;p&gt;
En savoir plus : 
&lt;br /&gt;
&lt;a href="http://research.microsoft.com/en-us/projects/mobilesurface/default.aspx"&gt;La
Surface Mobile&lt;/a&gt; 
&lt;br /&gt;
&lt;a href="http://research.microsoft.com/en-us/events/techfest2010/default.aspx"&gt;Le
site du TechFest 2010&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=2c4e9ad5-f4cb-475d-92f0-9c72b5de9247" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,2c4e9ad5-f4cb-475d-92f0-9c72b5de9247.aspx</comments>
      <category>Autres</category>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://patricelamarche.net/2010/03/03/EmissionBFMRadioLesInterfacesRichesDeDemain.aspx</origLink>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-7802525142989137278</guid>
      <pubDate>Wed, 03 Mar 2010 11:22:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2010-03-03T12:22:15.250+01:00</updated>
      <title>En avant pour la Bewise Day Conference 2010 !</title>
      <description>&lt;p&gt;A la demande générale, la Bewise Day Conference est de retour pour une 4ème édition ! Encore une fois, venez découvrir ce qui se fait de mieux dans les technologies Microsoft.&lt;/p&gt;  &lt;p&gt;Cette année, beaucoup de nouveautés, puisque Microsoft lance la gamme 2010 de ses produits, notamment Visual Studio, Sharepoint, mais lance aussi la version 4 de son framework .net, MVC 2, Azure, et bien d’autres choses.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://bdc2010.bewise.fr?f=A56BC4FC-9B40-4e60-A8D5-B188D54819BC"&gt;&lt;img style="display: block; float: none; margin-left: auto; margin-right: auto" border="0" alt="BDC 2009" src="http://www.bewise.fr/fr-FR/PublishingImages/anim_bdc%202010.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Je vous donne donc rendez-vous au stade Ernest Wallon, pour vous présenter ASP.NET, dans sa version 4, ainsi que ASP.NET MVC, et jQuery. &lt;/p&gt;  &lt;p&gt;Pour les inscriptions, rendez-vous sur &lt;a href="http://bdc2010.bewise.fr?f=A56BC4FC-9B40-4e60-A8D5-B188D54819BC"&gt;le site officiel de la BDC 2010&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-7802525142989137278?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2010/03/en-avant-pour-la-bewise-day-conference.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://patricelamarche.net/Trackback.aspx?guid=50e0ee78-c445-4cb1-a7bd-0261b7517537</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/PermaLink,guid,50e0ee78-c445-4cb1-a7bd-0261b7517537.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Patrice Lamarche</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/CommentView,guid,50e0ee78-c445-4cb1-a7bd-0261b7517537.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=50e0ee78-c445-4cb1-a7bd-0261b7517537</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.techheadbrothers.com/Articles.aspx/concatenations-chaines-csharp">
            <img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/LesconcatnationsdechainesenC_CE16/image_3.png" width="534" height="303" />
          </a>
        </p>
        <p align="justify">
Je viens de publier un nouvel article sur TechHeadBrothers sur les différents types
de concaténations en C#, leur implémentation en interne, les optimisations effectuées
par le compilateur ainsi qu’un bench des différentes méthodes afin de savoir quand
utiliser tel ou telle méthode.
</p>
        <p align="justify">
Vous pouvez le consulter ici : 
<br /><a href="http://www.techheadbrothers.com/Articles.aspx/concatenations-chaines-csharp">Article
sur THB</a></p>
        <img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=50e0ee78-c445-4cb1-a7bd-0261b7517537" />
        <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Patrice/~4/SaSB4NukRnI" height="1" width="1" />
      </body>
      <title>Les concaténations de chaines en C#</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,50e0ee78-c445-4cb1-a7bd-0261b7517537.aspx</guid>
      <link>http://feedproxy.google.com/~r/Patrice/~3/SaSB4NukRnI/LesConcat%c3%a9nationsDeChainesEnC.aspx</link>
      <pubDate>Tue, 02 Mar 2010 13:39:22 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.techheadbrothers.com/Articles.aspx/concatenations-chaines-csharp"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/LesconcatnationsdechainesenC_CE16/image_3.png" width="534" height="303" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p align="justify"&gt;
Je viens de publier un nouvel article sur TechHeadBrothers sur les différents types
de concaténations en C#, leur implémentation en interne, les optimisations effectuées
par le compilateur ainsi qu’un bench des différentes méthodes afin de savoir quand
utiliser tel ou telle méthode.
&lt;/p&gt;
&lt;p align="justify"&gt;
Vous pouvez le consulter ici : 
&lt;br /&gt;
&lt;a href="http://www.techheadbrothers.com/Articles.aspx/concatenations-chaines-csharp"&gt;Article
sur THB&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=50e0ee78-c445-4cb1-a7bd-0261b7517537" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,50e0ee78-c445-4cb1-a7bd-0261b7517537.aspx</comments>
      <category>Articles</category>
      <category>C#</category>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://patricelamarche.net/2010/03/02/LesConcat%c3%a9nationsDeChainesEnC.aspx</origLink>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://patricelamarche.net/Trackback.aspx?guid=c3ebf4c2-6cc4-47e2-917b-8a4d345f7ab1</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/PermaLink,guid,c3ebf4c2-6cc4-47e2-917b-8a4d345f7ab1.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Patrice Lamarche</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/CommentView,guid,c3ebf4c2-6cc4-47e2-917b-8a4d345f7ab1.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=c3ebf4c2-6cc4-47e2-917b-8a4d345f7ab1</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="justify">
          <img style="display: inline; margin-left: 0px; margin-right: 0px" alt="image" align="right" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/Newsdelasemaine18_9F77/image_thumb.png" />Un
nouveau <a href="http://www.microsoft.com/web/downloads/webapptoolkits/">Web Application
Toolkit</a> est disponible est celui concerne Bing Maps. Si vous souhaitez voir ce
qu’il est possible à partir de ce projet complet, vous pouvez <a href="http://code.msdn.microsoft.com/WATBingMaps">le
télécharger sur Code Gallery</a>.
</p>
        <p align="justify">
Lors de la PDC 09 Microsoft a annoncé le support du Full Trust pour Silverlight 4, <a href="http://elegantcode.com/2010/02/20/silverlight-4-com-interop-and-the-cool-stuff-you-can-do-with-it/">le
blog Elegant Code nous propose plusieurs exemples de code pertinents afin d’illustrer
l’intérêt de cette nouvelle fonctionnalité</a> (Communication avec Excel, Text to
speech, etc.).
</p>
        <p align="justify">
Du côté de la CLR, Justin Etheredge nous propose <a href="http://www.codethinked.com/post/2010/02/22/An-Overview-Of-System_Collections_Generic.aspx">une
vue d’ensemble des différentes collections présentes dns le namespace System.Collections.Generic</a>.
</p>
        <p align="justify">
Toujours à propos du framework, Shawn Farkas nous propose <a href="http://blogs.msdn.com/shawnfa/archive/2010/02/24/so-is-cas-dead-in-net-4-or-what.aspx">une
discussion intéressante à propos de l’évolution de Code Access Security (CAS) dans
.net 4.0</a>. 
</p>
        <p align="justify">
Lee Dumond nous informe d’<a href="http://leedumond.com/blog/new-in-net-4-dont-forget-to-dispose-your-smtpclient-instances/">une
modification de la classe SmtpClient dans .net 4.0 qui devient à présent Disposable</a>.
Outre l’information à propos de cette modification, il est important de retenir qu’il
est recommandé d’utiliser FxCop afin d’éviter de passer à côté de ce type d’évolution
assez importante.
</p>
        <p align="justify">
Google a annoncé <a href="http://apiblog.youtube.com/2010/02/announcing-youtube-sdk-for-net.html">un
SDK.net pour communiquer avec son service Youtube</a>. Il vous permet entre autres
de récupérer des informations sur votre flux d’activités ou encore d’uploader directement
vos vidéos.
</p>
        <p>
Du côté de la presse, <a href="http://blogs.msdn.com/microsoft_press/archive/2010/02/24/jeffrey-richter-excerpt-3-from-clr-via-c-third-edition.aspx">Microsoft
et Jeffrey Richter nous propose de nouveaux extraits de la 3ème édition de l’excellent
CLR via C#.</a></p>
        <p>
          <em>Crossposté vers </em>
          <a href="http://www.techheadbrothers.com/">
            <em>THB</em>
          </a>
        </p>
        <img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=c3ebf4c2-6cc4-47e2-917b-8a4d345f7ab1" />
        <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Patrice/~4/u8Xy3wTMtTQ" height="1" width="1" />
      </body>
      <title>News de la semaine #9</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,c3ebf4c2-6cc4-47e2-917b-8a4d345f7ab1.aspx</guid>
      <link>http://feedproxy.google.com/~r/Patrice/~3/u8Xy3wTMtTQ/NewsDeLaSemaine9.aspx</link>
      <pubDate>Fri, 26 Feb 2010 22:06:59 GMT</pubDate>
      <description>&lt;p align="justify"&gt;
&lt;img style="display: inline; margin-left: 0px; margin-right: 0px" alt="image" align="right" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/Newsdelasemaine18_9F77/image_thumb.png" /&gt;Un
nouveau &lt;a href="http://www.microsoft.com/web/downloads/webapptoolkits/"&gt;Web Application
Toolkit&lt;/a&gt; est disponible est celui concerne Bing Maps. Si vous souhaitez voir ce
qu’il est possible à partir de ce projet complet, vous pouvez &lt;a href="http://code.msdn.microsoft.com/WATBingMaps"&gt;le
télécharger sur Code Gallery&lt;/a&gt;.
&lt;/p&gt;
&lt;p align="justify"&gt;
Lors de la PDC 09 Microsoft a annoncé le support du Full Trust pour Silverlight 4, &lt;a href="http://elegantcode.com/2010/02/20/silverlight-4-com-interop-and-the-cool-stuff-you-can-do-with-it/"&gt;le
blog Elegant Code nous propose plusieurs exemples de code pertinents afin d’illustrer
l’intérêt de cette nouvelle fonctionnalité&lt;/a&gt; (Communication avec Excel, Text to
speech, etc.).
&lt;/p&gt;
&lt;p align="justify"&gt;
Du côté de la CLR, Justin Etheredge nous propose &lt;a href="http://www.codethinked.com/post/2010/02/22/An-Overview-Of-System_Collections_Generic.aspx"&gt;une
vue d’ensemble des différentes collections présentes dns le namespace System.Collections.Generic&lt;/a&gt;.
&lt;/p&gt;
&lt;p align="justify"&gt;
Toujours à propos du framework, Shawn Farkas nous propose &lt;a href="http://blogs.msdn.com/shawnfa/archive/2010/02/24/so-is-cas-dead-in-net-4-or-what.aspx"&gt;une
discussion intéressante à propos de l’évolution de Code Access Security (CAS) dans
.net 4.0&lt;/a&gt;. 
&lt;/p&gt;
&lt;p align="justify"&gt;
Lee Dumond nous informe d’&lt;a href="http://leedumond.com/blog/new-in-net-4-dont-forget-to-dispose-your-smtpclient-instances/"&gt;une
modification de la classe SmtpClient dans .net 4.0 qui devient à présent Disposable&lt;/a&gt;.
Outre l’information à propos de cette modification, il est important de retenir qu’il
est recommandé d’utiliser FxCop afin d’éviter de passer à côté de ce type d’évolution
assez importante.
&lt;/p&gt;
&lt;p align="justify"&gt;
Google a annoncé &lt;a href="http://apiblog.youtube.com/2010/02/announcing-youtube-sdk-for-net.html"&gt;un
SDK.net pour communiquer avec son service Youtube&lt;/a&gt;. Il vous permet entre autres
de récupérer des informations sur votre flux d’activités ou encore d’uploader directement
vos vidéos.
&lt;/p&gt;
&lt;p&gt;
Du côté de la presse, &lt;a href="http://blogs.msdn.com/microsoft_press/archive/2010/02/24/jeffrey-richter-excerpt-3-from-clr-via-c-third-edition.aspx"&gt;Microsoft
et Jeffrey Richter nous propose de nouveaux extraits de la 3ème édition de l’excellent
CLR via C#.&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Crossposté vers &lt;/em&gt;&lt;a href="http://www.techheadbrothers.com/"&gt;&lt;em&gt;THB&lt;/em&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=c3ebf4c2-6cc4-47e2-917b-8a4d345f7ab1" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,c3ebf4c2-6cc4-47e2-917b-8a4d345f7ab1.aspx</comments>
      <category>News</category>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://patricelamarche.net/2010/02/26/NewsDeLaSemaine9.aspx</origLink>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://patricelamarche.net/Trackback.aspx?guid=618df831-68a9-44a0-ad09-12bc3ac7d61f</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/PermaLink,guid,618df831-68a9-44a0-ad09-12bc3ac7d61f.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Patrice Lamarche</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/CommentView,guid,618df831-68a9-44a0-ad09-12bc3ac7d61f.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=618df831-68a9-44a0-ad09-12bc3ac7d61f</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <a href="http://www.techheadbrothers.com/Articles.aspx/fonctionnalites-langage-csharp-3-compatibles-dotnet-2-0">
          <img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/UtiliserC3dansvosapplications.net2.0_8643/image_5.png" width="534" height="335" />
        </a>
        <p align="justify">
Je viens de publier un nouvel article sur TechHeadBrothers sur l’utilisation des fonctionnalités
de C# 3 dans des applications .net 2.0. Vous pouvez le retrouver ici :  
</p>
        <p align="justify">
          <a href="http://www.techheadbrothers.com/Articles.aspx/fonctionnalites-langage-csharp-3-compatibles-dotnet-2-0 ">Article
sur THB</a>
        </p>
        <p align="justify">
Le prochain qui est déjà dans les cartons, concernera l’utilisation des types dynamiques
apportés par C# 4 pour développer des applications basées sur <a href="http://crm.dynamics.com">Dynamics
CRM 4.0</a>.
</p>
        <p align="justify">
Nous y verrons l’intérêt d’utiliser cette nouveauté à la place de certaines classes
présentes dans le SDK de CRM 4.0.
</p>
        <img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=618df831-68a9-44a0-ad09-12bc3ac7d61f" />
        <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Patrice/~4/O1MkppmfQ2c" height="1" width="1" />
      </body>
      <title>Utiliser C# 3 dans vos applications .net 2.0</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,618df831-68a9-44a0-ad09-12bc3ac7d61f.aspx</guid>
      <link>http://feedproxy.google.com/~r/Patrice/~3/O1MkppmfQ2c/UtiliserC3DansVosApplicationsNet20.aspx</link>
      <pubDate>Wed, 24 Feb 2010 08:32:53 GMT</pubDate>
      <description>&lt;a href="http://www.techheadbrothers.com/Articles.aspx/fonctionnalites-langage-csharp-3-compatibles-dotnet-2-0"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/UtiliserC3dansvosapplications.net2.0_8643/image_5.png" width="534" height="335" /&gt;&lt;/a&gt; 
&lt;p align="justify"&gt;
Je viens de publier un nouvel article sur TechHeadBrothers sur l’utilisation des fonctionnalités
de C# 3 dans des applications .net 2.0. Vous pouvez le retrouver ici :&amp;#160; 
&lt;/p&gt;
&lt;p align="justify"&gt;
&lt;a href="http://www.techheadbrothers.com/Articles.aspx/fonctionnalites-langage-csharp-3-compatibles-dotnet-2-0 "&gt;Article
sur THB&lt;/a&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;
Le prochain qui est déjà dans les cartons, concernera l’utilisation des types dynamiques
apportés par C# 4 pour développer des applications basées sur &lt;a href="http://crm.dynamics.com"&gt;Dynamics
CRM 4.0&lt;/a&gt;.
&lt;/p&gt;
&lt;p align="justify"&gt;
Nous y verrons l’intérêt d’utiliser cette nouveauté à la place de certaines classes
présentes dans le SDK de CRM 4.0.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=618df831-68a9-44a0-ad09-12bc3ac7d61f" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,618df831-68a9-44a0-ad09-12bc3ac7d61f.aspx</comments>
      <category>Articles</category>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://patricelamarche.net/2010/02/24/UtiliserC3DansVosApplicationsNet20.aspx</origLink>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://patricelamarche.net/Trackback.aspx?guid=b49cd283-e2f3-4732-9b63-86270fcdb6ce</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/PermaLink,guid,b49cd283-e2f3-4732-9b63-86270fcdb6ce.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Patrice Lamarche</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/CommentView,guid,b49cd283-e2f3-4732-9b63-86270fcdb6ce.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b49cd283-e2f3-4732-9b63-86270fcdb6ce</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="justify">
          <a href="http://channel9.msdn.com/shows/Cloud+Cover/Cloud-Cover-Episode-1/">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" border="0" alt="image" align="right" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/Newsdelasemaine18_9F77/image_thumb.png" />
          </a>Commençons
les actualités de cette 8eme semaine par quelques nouvelles de Windows Azure. Microsoft
vient de débuter une nouvelle série de vidéos sur Channel 9 via un show appelé Cloud
Cover. <a href="http://channel9.msdn.com/shows/Cloud+Cover/Cloud-Cover-Episode-1/">Le
premier épisode est disponible ici</a>.
</p>
        <p align="justify">
A noter également, <a href="http://blogs.msdn.com/sqlazure/archive/2010/02/17/9965464.aspx">la
disponibilité du 1er Service Update pour SQL Azure</a>. Celui-ci permet entre autres,
de bénéficier de vues d’administrations (DMVs) et de switcher d’édition (1Go ou 10Go).
</p>
        <p align="justify">
Du côté des langages, <a href="http://www.hanselman.com/blog/BackToBasicsC4MethodOverloadingAndDynamicTypes.aspx">Scott
Hanselman nous propose un post sur la résolution des méthodes avec les types dynamiques
dans C# 4</a>. 
</p>
        <p align="justify">
Une FAQ assez complète sur <a href="http://blogs.msdn.com/csharpfaq/archive/2010/02/16/covariance-and-contravariance-faq.aspx">la
covariance et la contravariance a également été publiée</a>.
</p>
        <p align="justify">
Et pour terminer sur le sujet, Lucas Bolognese, une des grandes figures de Microsoft
derrière la plupart des innovations sur les langages de Microsoft (LINQ, F#, etc.)  <a href="http://blogs.msdn.com/lucabol/archive/2010/02/19/luca-bolognese-leaves-microsoft.aspx">a
annoncé son départ pour la Suisse</a>. A l’occasion son blog déménage vers <a href="http://lucabolognese.wordpress.com/">http://lucabolognese.wordpress.com/</a>.
</p>
        <p align="justify">
J’ai <a href="http://patricelamarche.net/2010/02/15/InterviewBenoitLaut.aspx">interviewé
Benoit Laut afin de présenter son projet BOWIE, un plugin Outlook pour communiquer
avec TFS</a>.
</p>
        <p align="justify">
Du côté des produits, <a href="http://www.red-gate.com/products/reflector/">la version
6 de Reflector est disponible en téléchargement</a>. <a href="http://www.simple-talk.com/dotnet/.net-tools/behind-the-scenes-with-the-developers-of-.net-reflector-6-and-.net-reflector-pro/">Vous
pouvez consulter quelques détails relatifs à son développement sur ce post.</a></p>
        <p align="justify">
Patrick Smacchia a annoncé <a href="http://feedproxy.google.com/~r/CodeBetter/~3/vnQAw4UOoUQ/ndepend-v3-rc-available.aspx">la
disponibilité de la RC de NDepend v3</a>. <a href="http://www.wintellect.com/CS/blogs/jlikness/archive/2010/02/18/a-fluent-rss-reader-for-silverlight-part-2-ndepends-on-what-you-need.aspx">Outil
d’ailleurs présenté par un membre de l’équipe de Wintellect sur un projet Silverlight.</a></p>
        <p align="justify">
En enfin, le meilleur pour la fin, <a href="http://blogs.jetbrains.com/dotnet/2010/02/resharper-5-beta-2-released/">la
beta 2 de ReSharper 5 a été publié par JetBrains</a>.
</p>
        <img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=b49cd283-e2f3-4732-9b63-86270fcdb6ce" />
        <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Patrice/~4/c0H3pOV6qOM" height="1" width="1" />
      </body>
      <title>News de la semaine #8</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,b49cd283-e2f3-4732-9b63-86270fcdb6ce.aspx</guid>
      <link>http://feedproxy.google.com/~r/Patrice/~3/c0H3pOV6qOM/NewsDeLaSemaine8.aspx</link>
      <pubDate>Sat, 20 Feb 2010 12:26:01 GMT</pubDate>
      <description>&lt;p align="justify"&gt;
&lt;a href="http://channel9.msdn.com/shows/Cloud+Cover/Cloud-Cover-Episode-1/"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" border="0" alt="image" align="right" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/Newsdelasemaine18_9F77/image_thumb.png" /&gt;&lt;/a&gt;Commençons
les actualités de cette 8eme semaine par quelques nouvelles de Windows Azure. Microsoft
vient de débuter une nouvelle série de vidéos sur Channel 9 via un show appelé Cloud
Cover. &lt;a href="http://channel9.msdn.com/shows/Cloud+Cover/Cloud-Cover-Episode-1/"&gt;Le
premier épisode est disponible ici&lt;/a&gt;.
&lt;/p&gt;
&lt;p align="justify"&gt;
A noter également, &lt;a href="http://blogs.msdn.com/sqlazure/archive/2010/02/17/9965464.aspx"&gt;la
disponibilité du 1er Service Update pour SQL Azure&lt;/a&gt;. Celui-ci permet entre autres,
de bénéficier de vues d’administrations (DMVs) et de switcher d’édition (1Go ou 10Go).
&lt;/p&gt;
&lt;p align="justify"&gt;
Du côté des langages, &lt;a href="http://www.hanselman.com/blog/BackToBasicsC4MethodOverloadingAndDynamicTypes.aspx"&gt;Scott
Hanselman nous propose un post sur la résolution des méthodes avec les types dynamiques
dans C# 4&lt;/a&gt;. 
&lt;/p&gt;
&lt;p align="justify"&gt;
Une FAQ assez complète sur &lt;a href="http://blogs.msdn.com/csharpfaq/archive/2010/02/16/covariance-and-contravariance-faq.aspx"&gt;la
covariance et la contravariance a également été publiée&lt;/a&gt;.
&lt;/p&gt;
&lt;p align="justify"&gt;
Et pour terminer sur le sujet, Lucas Bolognese, une des grandes figures de Microsoft
derrière la plupart des innovations sur les langages de Microsoft (LINQ, F#, etc.)&amp;#160; &lt;a href="http://blogs.msdn.com/lucabol/archive/2010/02/19/luca-bolognese-leaves-microsoft.aspx"&gt;a
annoncé son départ pour la Suisse&lt;/a&gt;. A l’occasion son blog déménage vers &lt;a href="http://lucabolognese.wordpress.com/"&gt;http://lucabolognese.wordpress.com/&lt;/a&gt;.
&lt;/p&gt;
&lt;p align="justify"&gt;
J’ai &lt;a href="http://patricelamarche.net/2010/02/15/InterviewBenoitLaut.aspx"&gt;interviewé
Benoit Laut afin de présenter son projet BOWIE, un plugin Outlook pour communiquer
avec TFS&lt;/a&gt;.
&lt;/p&gt;
&lt;p align="justify"&gt;
Du côté des produits, &lt;a href="http://www.red-gate.com/products/reflector/"&gt;la version
6 de Reflector est disponible en téléchargement&lt;/a&gt;. &lt;a href="http://www.simple-talk.com/dotnet/.net-tools/behind-the-scenes-with-the-developers-of-.net-reflector-6-and-.net-reflector-pro/"&gt;Vous
pouvez consulter quelques détails relatifs à son développement sur ce post.&lt;/a&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;
Patrick Smacchia a annoncé &lt;a href="http://feedproxy.google.com/~r/CodeBetter/~3/vnQAw4UOoUQ/ndepend-v3-rc-available.aspx"&gt;la
disponibilité de la RC de NDepend v3&lt;/a&gt;. &lt;a href="http://www.wintellect.com/CS/blogs/jlikness/archive/2010/02/18/a-fluent-rss-reader-for-silverlight-part-2-ndepends-on-what-you-need.aspx"&gt;Outil
d’ailleurs présenté par un membre de l’équipe de Wintellect sur un projet Silverlight.&lt;/a&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;
En enfin, le meilleur pour la fin, &lt;a href="http://blogs.jetbrains.com/dotnet/2010/02/resharper-5-beta-2-released/"&gt;la
beta 2 de ReSharper 5 a été publié par JetBrains&lt;/a&gt;.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=b49cd283-e2f3-4732-9b63-86270fcdb6ce" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,b49cd283-e2f3-4732-9b63-86270fcdb6ce.aspx</comments>
      <category>News</category>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://patricelamarche.net/2010/02/20/NewsDeLaSemaine8.aspx</origLink>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://benoitlaut.net/Trackback.aspx?guid=e5e0c87f-0725-43ac-b32e-71e60fbb5c75</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://benoitlaut.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://benoitlaut.net/PermaLink,guid,e5e0c87f-0725-43ac-b32e-71e60fbb5c75.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Benoît Laut</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://benoitlaut.net/CommentView,guid,e5e0c87f-0725-43ac-b32e-71e60fbb5c75.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=e5e0c87f-0725-43ac-b32e-71e60fbb5c75</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hier je me suis attaqué à l’upgrade de BOWIE sur la version RC de TFS 2010, qui sera
disponible sur <a href="http://bowie.codeplex.com" target="_blank">Codeplex</a> en
fin de semaine.
</p>
        <p>
Pour cette occasion, voici <a href="http://patricelamarche.net/2010/02/15/InterviewBenoitLaut.aspx" target="_blank">une
interview menée par Patrice Lamarche et qui présente les fonctionnalités de BOWIE
2010</a>. 
</p>
        <p>
Si vous ne connaissez pas encore cet addin TFS pour Outlook c’est l’occasion de le
découvrir en images!
</p>
        <img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=e5e0c87f-0725-43ac-b32e-71e60fbb5c75" />
      </body>
      <title>BOWIE 2010 en vidéo</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,e5e0c87f-0725-43ac-b32e-71e60fbb5c75.aspx</guid>
      <link>http://benoitlaut.net/2010/02/15/BOWIE2010EnVid%c3%a9o.aspx</link>
      <pubDate>Mon, 15 Feb 2010 18:11:36 GMT</pubDate>
      <description>&lt;p&gt;
Hier je me suis attaqué à l’upgrade de BOWIE sur la version RC de TFS 2010, qui sera
disponible sur &lt;a href="http://bowie.codeplex.com" target="_blank"&gt;Codeplex&lt;/a&gt; en
fin de semaine.
&lt;/p&gt;
&lt;p&gt;
Pour cette occasion, voici &lt;a href="http://patricelamarche.net/2010/02/15/InterviewBenoitLaut.aspx" target="_blank"&gt;une
interview menée par Patrice Lamarche et qui présente les fonctionnalités de BOWIE
2010&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
Si vous ne connaissez pas encore cet addin TFS pour Outlook c’est l’occasion de le
découvrir en images!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=e5e0c87f-0725-43ac-b32e-71e60fbb5c75" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,e5e0c87f-0725-43ac-b32e-71e60fbb5c75.aspx</comments>
      <category>Interview</category>
      <category>Outlook Work Items Extension</category>
      <category>TFS</category>
      <category>TFS SDK</category>
      <category>VSTO</category>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://patricelamarche.net/Trackback.aspx?guid=202fa324-dd6e-4488-9d14-069f98c4ebe4</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/PermaLink,guid,202fa324-dd6e-4488-9d14-069f98c4ebe4.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Patrice Lamarche</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/CommentView,guid,202fa324-dd6e-4488-9d14-069f98c4ebe4.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=202fa324-dd6e-4488-9d14-069f98c4ebe4</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="justify">
Steve Ballmer a enfin annoncé le lancement du fameux Windows Phone 7 Series. Nous
avons eu le droit à quelques démonstrations (certaines en live mais la plupart pré-enregistrées)
qui laissent présager du meilleur. Microsoft semble clairement rattraper son retard
en téléphonie mobile grâce à cette nouvelle gamme qui est en complète rupture avec
Windows Mobile. L’interface graphique repose sur celle développée pour le Zune HD
et l’ergonomie a été repensée afin d’utiliser au mieux le multitouch. On notera l’organisation
sous forme de Hubs (Musique+Video, Office, People et Games) et l’intégration avec
tout un tas de services Microsoft ou non-microsoft (Réseaux sociaux, Bing, Live, XBOX
Live, Zune, etc.). Vous pouvez consulter ci-dessous l’ensemble de mes tweets (du plus
récent au plus ancien) à propos de ce lancement pour plus de détails.
</p>
        <p align="justify">
          <a href="http://patricelamarche.net/content/binary/WindowsLiveWriter/LancementduWindowsPhone7Series_E976/image.axd%20(1)_2.png">
            <img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image.axd (1)" border="0" alt="image.axd (1)" align="right" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/LancementduWindowsPhone7Series_E976/image.axd%20(1)_thumb.png" width="450" height="222" />
          </a>
        </p>
        <ol>
          <li>
Beaucoup de démos en vidéos et non en Live... <a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a> doit
toujours être en développement. RDV au MIX07 pour les détails techniques. 
</li>
          <li>
            <p>
              <a></a>
            </p>
            <p>
Synthèse : Rupture totale avec Windows Mobile. UI basée sur Zune HD très réussie.
Très clairement orienté grand public.
</p>
          </li>
          <li>
            <p>
Présentation du <a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a> terminée.
</p>
          </li>
          <li>
            <p>
Mmmm... <a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a> seront
dispo à la fin de l'année 2010... Pendant les vacances de noël...
</p>
          </li>
          <li>
            <p>
SFR et Orange font partie des partenaires cités... <a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a></p>
          </li>
          <li>
            <p>
Le représentant d'Orange fait comme Sarah Palin, il s'est mis des anti-sèches dans
la main pour ses 5min d'intervention... <a href="http://twitter.com/search?q=%23fail">#fail</a></p>
          </li>
          <li>
            <p>
Stratégie différente de l'iPhone. MS A travaillé avec les constructeurs pour garantir
une même qualité de service sur les différents modèles
</p>
          </li>
          <li>
            <p>
Les constructeurs pourront construire plusieurs versions de<a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a> en
se basant sur des spécifications minimum.
</p>
          </li>
          <li>
            <p>
HTC, HP, Dell, Samsung, Qualcomm, garming, etc. font partie de ce consortium. <a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a></p>
          </li>
          <li>
            <p>
Le WindowsPhone a été bati en partenariat avec différents constructeurs pour arriver
à une machine puissante et fonctionnelle #WindowsPhone
</p>
          </li>
          <li>
            <p>
Andy Lees Senior Vice President Mobile Communication Business entre en scène <a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a></p>
          </li>
          <li>
            <p>
              <a href="http://www.windowsphone7series.com/">http://www.windowsphone7series.com/</a> is
live <a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a></p>
          </li>
          <li>
            <p>
Confirmation de la rupture totale avec l'existant. <a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a>tue
Windows Mobile
</p>
          </li>
          <li>
            <p>
Steve Ballmer revient sur scène pour continuer la présentation du<a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a></p>
          </li>
          <li>
            <p>
Toutes les présentations sont vraiment orientées Grand Public. Vrai changement d'orientation
comparé à Windows Mobile qui était orienté pro.
</p>
          </li>
          <li>
            <p>
Présentation du "Games Hub". Intégration du XBOX Live sur<a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a></p>
          </li>
          <li>
            <p>
Wow, Wow, Ils ont enfin un vrai logiciel de Sync !!! Connexion instantanée à l'application
PC Zune lorsque le <a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a> est
sur USB.
</p>
          </li>
          <li>
            <p>
Présentation du "Music+Video Hub". Chaque <a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a> est
à présent un Zune HD
</p>
          </li>
          <li>
            <p>
Dommage, les applis Office (Word, Excel, OneNote) ne sont pas présentées... <a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a></p>
          </li>
          <li>
            <p>
Interface très réussie pour naviguer vers les applications Office.<a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a></p>
          </li>
          <li>
            <p>
OK, le WindowsPhone est organisé autour de différents Hub. Après le "People Hub"
on aborde l'"Office Hub"
</p>
          </li>
          <li>
            <p>
La gestion des photos est réussie. Consultation depuis plusieurs sources (phone, facebook,
etc) et permet de les exporter<a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a></p>
          </li>
          <li>
            <p>
              <img style="border-right-width: 0px; margin: 0px 20px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image.axd" border="0" alt="image.axd" align="left" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/LancementduWindowsPhone7Series_E976/image.axd_thumb.png" width="390" height="259" />Bizarre...
Il n'y a plus de démos en live, mais uniquement des vidéos de démos... #WindowsPhone
</p>
          </li>
          <li>
            <p>
Présentation intelligente, fusion des différentes sources pour afficher les infos
sur ses contacts. <a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a></p>
          </li>
          <li>
            <p>
Présentation sous forme de panorama de son graphe social (friends facebook, followers,
contacts Windows Live, etc.)#WindowsPhone
</p>
          </li>
          <li>
            <p>
Présentation de l'intégration des réseaux sociaux sur<a href="http://twitter.com/search?q=%23WindowsMobile">#WindowsMobile</a> grâce
au "People Hub"
</p>
          </li>
          <li>
            <p>
L'ergonomie semble avoir été bien pensé pour le multitouch. Les fonctions essentielles
sont immédiatement accessibles.<a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a></p>
          </li>
          <li>
            <p>
Wow Outlook a été complètement redéveloppé. L'interface est entièrement revue pour
être proche de celle du Zune HD#WindowsPhone
</p>
          </li>
          <li>
            <p>
ClearType implémenté pour améliorer le rendu du texte et des pages web sur #WindowsPhone
</p>
          </li>
          <li>
            <p>
Outch, ils sont même capables de récupérer les critiques/commentaires des utilisateurs
sur les restos... DisMoiOu va faire la tête...
</p>
          </li>
          <li>
            <p>
Bing est complètement intégré au <a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a> Présentation
intelligente des résultats.
</p>
          </li>
          <li>
            <p>
Démonstration du calendrier qui lit les RDVs persos et les RDV pros (depuis Exchange)
</p>
          </li>
          <li>
            <p>
Démonstration de Bing Maps. Zoom possible grâce au multitouch.<a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a></p>
          </li>
          <li>
            <p>
Bon résumé des fonctionnalités du nouveau <a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a><a href="http://bit.ly/cqFCbJ">http://bit.ly/cqFCbJ</a></p>
          </li>
          <li>
            <p>
Implémentation de fonctionnalités de recherche, XBOX Live, réseaux sociaux, Zune services
</p>
          </li>
          <li>
            <p>
Wow, c'est jooollllliiiii !!! <a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a></p>
          </li>
          <li>
            <p>
C'est rare chez Microsoft, mais il s'agit d'une rupture totale avec ce que l'on connait
de Windows Mobile.
</p>
          </li>
          <li>
            <p>
On peut voir la différence de positionnement juste en observant les slides. Très épurés,
peu de contenu uniquement les idées essentielles.
</p>
          </li>
          <li>
            <p>
GUI très proche de ce que l'on connait avec le Zune HD. Très réussi ! MS semble rattraper
son retard en matière de téléphonie.
</p>
          </li>
          <li>
            <p>
Vidéo de démonstration de l'interface de Windows Phone 7 Series#WindowsPhone
</p>
          </li>
          <li>
            <p>
Joe Belfiore Vice President Windows Phone rentre en scène après une très courte intro
de Steve Ballmer <a href="http://twitter.com/search?q=%23WindowsPhone">#WindowsPhone</a></p>
          </li>
        </ol>
        <img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=202fa324-dd6e-4488-9d14-069f98c4ebe4" />
        <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Patrice/~4/T1w-R1Cuk_E" height="1" width="1" />
      </body>
      <title>Lancement du Windows Phone 7 Series</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,202fa324-dd6e-4488-9d14-069f98c4ebe4.aspx</guid>
      <link>http://feedproxy.google.com/~r/Patrice/~3/T1w-R1Cuk_E/LancementDuWindowsPhone7Series.aspx</link>
      <pubDate>Mon, 15 Feb 2010 15:36:18 GMT</pubDate>
      <description>&lt;p align="justify"&gt;
Steve Ballmer a enfin annoncé le lancement du fameux Windows Phone 7 Series. Nous
avons eu le droit à quelques démonstrations (certaines en live mais la plupart pré-enregistrées)
qui laissent présager du meilleur. Microsoft semble clairement rattraper son retard
en téléphonie mobile grâce à cette nouvelle gamme qui est en complète rupture avec
Windows Mobile. L’interface graphique repose sur celle développée pour le Zune HD
et l’ergonomie a été repensée afin d’utiliser au mieux le multitouch. On notera l’organisation
sous forme de Hubs (Musique+Video, Office, People et Games) et l’intégration avec
tout un tas de services Microsoft ou non-microsoft (Réseaux sociaux, Bing, Live, XBOX
Live, Zune, etc.). Vous pouvez consulter ci-dessous l’ensemble de mes tweets (du plus
récent au plus ancien) à propos de ce lancement pour plus de détails.
&lt;/p&gt;
&lt;p align="justify"&gt;
&lt;a href="http://patricelamarche.net/content/binary/WindowsLiveWriter/LancementduWindowsPhone7Series_E976/image.axd%20(1)_2.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image.axd (1)" border="0" alt="image.axd (1)" align="right" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/LancementduWindowsPhone7Series_E976/image.axd%20(1)_thumb.png" width="450" height="222" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Beaucoup de démos en vidéos et non en Live... &lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt; doit
toujours être en développement. RDV au MIX07 pour les détails techniques. 
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Synthèse : Rupture totale avec Windows Mobile. UI basée sur Zune HD très réussie.
Très clairement orienté grand public.
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Présentation du &lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt; terminée.
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Mmmm... &lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt; seront
dispo à la fin de l'année 2010... Pendant les vacances de noël...
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
SFR et Orange font partie des partenaires cités... &lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Le représentant d'Orange fait comme Sarah Palin, il s'est mis des anti-sèches dans
la main pour ses 5min d'intervention... &lt;a href="http://twitter.com/search?q=%23fail"&gt;#fail&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Stratégie différente de l'iPhone. MS A travaillé avec les constructeurs pour garantir
une même qualité de service sur les différents modèles
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Les constructeurs pourront construire plusieurs versions de&lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt; en
se basant sur des spécifications minimum.
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
HTC, HP, Dell, Samsung, Qualcomm, garming, etc. font partie de ce consortium. &lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Le WindowsPhone a été bati en partenariat avec différents constructeurs pour arriver
à une machine puissante et fonctionnelle #WindowsPhone
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Andy Lees Senior Vice President Mobile Communication Business entre en scène &lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;a href="http://www.windowsphone7series.com/"&gt;http://www.windowsphone7series.com/&lt;/a&gt; is
live &lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Confirmation de la rupture totale avec l'existant. &lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt;tue
Windows Mobile
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Steve Ballmer revient sur scène pour continuer la présentation du&lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Toutes les présentations sont vraiment orientées Grand Public. Vrai changement d'orientation
comparé à Windows Mobile qui était orienté pro.
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Présentation du &amp;quot;Games Hub&amp;quot;. Intégration du XBOX Live sur&lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Wow, Wow, Ils ont enfin un vrai logiciel de Sync !!! Connexion instantanée à l'application
PC Zune lorsque le &lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt; est
sur USB.
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Présentation du &amp;quot;Music+Video Hub&amp;quot;. Chaque &lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt; est
à présent un Zune HD
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Dommage, les applis Office (Word, Excel, OneNote) ne sont pas présentées... &lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Interface très réussie pour naviguer vers les applications Office.&lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
OK, le WindowsPhone est organisé autour de différents Hub. Après le &amp;quot;People Hub&amp;quot;
on aborde l'&amp;quot;Office Hub&amp;quot;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
La gestion des photos est réussie. Consultation depuis plusieurs sources (phone, facebook,
etc) et permet de les exporter&lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;img style="border-right-width: 0px; margin: 0px 20px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image.axd" border="0" alt="image.axd" align="left" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/LancementduWindowsPhone7Series_E976/image.axd_thumb.png" width="390" height="259" /&gt;Bizarre...
Il n'y a plus de démos en live, mais uniquement des vidéos de démos... #WindowsPhone
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Présentation intelligente, fusion des différentes sources pour afficher les infos
sur ses contacts. &lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Présentation sous forme de panorama de son graphe social (friends facebook, followers,
contacts Windows Live, etc.)#WindowsPhone
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Présentation de l'intégration des réseaux sociaux sur&lt;a href="http://twitter.com/search?q=%23WindowsMobile"&gt;#WindowsMobile&lt;/a&gt; grâce
au &amp;quot;People Hub&amp;quot;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
L'ergonomie semble avoir été bien pensé pour le multitouch. Les fonctions essentielles
sont immédiatement accessibles.&lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Wow Outlook a été complètement redéveloppé. L'interface est entièrement revue pour
être proche de celle du Zune HD#WindowsPhone
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
ClearType implémenté pour améliorer le rendu du texte et des pages web sur #WindowsPhone
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Outch, ils sont même capables de récupérer les critiques/commentaires des utilisateurs
sur les restos... DisMoiOu va faire la tête...
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Bing est complètement intégré au &lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt; Présentation
intelligente des résultats.
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Démonstration du calendrier qui lit les RDVs persos et les RDV pros (depuis Exchange)
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Démonstration de Bing Maps. Zoom possible grâce au multitouch.&lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Bon résumé des fonctionnalités du nouveau &lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt;&lt;a href="http://bit.ly/cqFCbJ"&gt;http://bit.ly/cqFCbJ&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Implémentation de fonctionnalités de recherche, XBOX Live, réseaux sociaux, Zune services
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Wow, c'est jooollllliiiii !!! &lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
C'est rare chez Microsoft, mais il s'agit d'une rupture totale avec ce que l'on connait
de Windows Mobile.
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
On peut voir la différence de positionnement juste en observant les slides. Très épurés,
peu de contenu uniquement les idées essentielles.
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
GUI très proche de ce que l'on connait avec le Zune HD. Très réussi ! MS semble rattraper
son retard en matière de téléphonie.
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Vidéo de démonstration de l'interface de Windows Phone 7 Series#WindowsPhone
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
Joe Belfiore Vice President Windows Phone rentre en scène après une très courte intro
de Steve Ballmer &lt;a href="http://twitter.com/search?q=%23WindowsPhone"&gt;#WindowsPhone&lt;/a&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=202fa324-dd6e-4488-9d14-069f98c4ebe4" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,202fa324-dd6e-4488-9d14-069f98c4ebe4.aspx</comments>
      <category>Autres</category>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://patricelamarche.net/2010/02/15/LancementDuWindowsPhone7Series.aspx</origLink>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-2661757067011288732.post-134851877760815219</guid>
      <pubDate>Mon, 15 Feb 2010 14:54:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2010-02-15T07:23:01.806-08:00</updated>
      <title>Windows Phone 7 Series</title>
      <description>Au Mobile World Congress de Barcelone, Microsoft vient de lever le voile sur son prochain OS pour téléphone mobile : Windows Phone 7. L'innovation principale de cette nouvelle version de l'OS pour téléphone mobile est le fait de proposer l'agrégation d'information depuis plusieurs source (applications, web, services...) pour les présenter sous forme de "Hub":People, Images, Jeux, Musique, Video...&lt;br /&gt;&lt;br /&gt;Pour plus d'information: &lt;a href="http://www.windowsphone7series.com/"&gt;http://www.windowsphone7series.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2661757067011288732-134851877760815219?l=becauseofintellisense.blogspot.com' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://becauseofintellisense.blogspot.com/2010/02/windows-phone-7-series.html</link>
      <author>nicolas.bruschini@bewise.fr (Rouge)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://patricelamarche.net/Trackback.aspx?guid=dc9afa59-d116-45d2-a65b-921c230a6bb3</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/PermaLink,guid,dc9afa59-d116-45d2-a65b-921c230a6bb3.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Patrice Lamarche</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/CommentView,guid,dc9afa59-d116-45d2-a65b-921c230a6bb3.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=dc9afa59-d116-45d2-a65b-921c230a6bb3</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="justify">
J’ai interviewé <a href="http://www.benoitlaut.net">Benoit Laut</a> afin qu’il nous
présente le plugin Outlook pour TFS qu’il a développé : BOWIE. Il est disponible gratuitement
sur CodePlex : <a href="http://bowie.codeplex.com">http://bowie.codeplex.com</a> Ce
outil compatible VS 2008 et VS 2010 Beta 2 devrait être disponible à la fin de la
semaine pour la version RC qui vient d’être publiée par Microsoft.
</p>
        <p align="center">
          <object width="560" height="340">
            <param name="movie" value="http://www.youtube.com/v/WLUHfbk_ceg&amp;hl=en_US&amp;fs=1&amp;" />
            <param name="allowFullScreen" value="true" />
            <param name="allowscriptaccess" value="always" />
            <embed src="http://www.youtube.com/v/WLUHfbk_ceg&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed>
          </object>
        </p>
        <p>
En savoir plus : 
<br />
Projet sur CodePlex : <a href="http://bowie.codeplex.com">http://bowie.codeplex.com</a><br />
Blog de Benoit Laut : <a href="http://www.benoitlaut.net">http://www.benoitlaut.net</a></p>
        <img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=dc9afa59-d116-45d2-a65b-921c230a6bb3" />
        <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Patrice/~4/28x5RsfUduA" height="1" width="1" />
      </body>
      <title>Interview Benoit Laut</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,dc9afa59-d116-45d2-a65b-921c230a6bb3.aspx</guid>
      <link>http://feedproxy.google.com/~r/Patrice/~3/28x5RsfUduA/InterviewBenoitLaut.aspx</link>
      <pubDate>Mon, 15 Feb 2010 08:10:47 GMT</pubDate>
      <description>&lt;p align="justify"&gt;
J’ai interviewé &lt;a href="http://www.benoitlaut.net"&gt;Benoit Laut&lt;/a&gt; afin qu’il nous
présente le plugin Outlook pour TFS qu’il a développé : BOWIE. Il est disponible gratuitement
sur CodePlex : &lt;a href="http://bowie.codeplex.com"&gt;http://bowie.codeplex.com&lt;/a&gt; Ce
outil compatible VS 2008 et VS 2010 Beta 2 devrait être disponible à la fin de la
semaine pour la version RC qui vient d’être publiée par Microsoft.
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;object width="560" height="340"&gt;
&lt;param name="movie" value="http://www.youtube.com/v/WLUHfbk_ceg&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&gt;
&lt;param name="allowFullScreen" value="true"&gt;&gt;
&lt;param name="allowscriptaccess" value="always"&gt;&gt;&lt;embed src="http://www.youtube.com/v/WLUHfbk_ceg&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;
En savoir plus : 
&lt;br /&gt;
Projet sur CodePlex : &lt;a href="http://bowie.codeplex.com"&gt;http://bowie.codeplex.com&lt;/a&gt; 
&lt;br /&gt;
Blog de Benoit Laut : &lt;a href="http://www.benoitlaut.net"&gt;http://www.benoitlaut.net&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=dc9afa59-d116-45d2-a65b-921c230a6bb3" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,dc9afa59-d116-45d2-a65b-921c230a6bb3.aspx</comments>
      <category>Bewise</category>
      <category>Interview</category>
      <category>Visual Studio/2008</category>
      <category>Visual Studio/2010</category>
      <category>Visual Studio/Team System</category>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://patricelamarche.net/2010/02/15/InterviewBenoitLaut.aspx</origLink>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://patricelamarche.net/Trackback.aspx?guid=9e62b627-c241-49d6-b16f-194f5852ee57</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/PermaLink,guid,9e62b627-c241-49d6-b16f-194f5852ee57.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Patrice Lamarche</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/CommentView,guid,9e62b627-c241-49d6-b16f-194f5852ee57.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=9e62b627-c241-49d6-b16f-194f5852ee57</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="justify">
          <img style="margin: 0px 0px 0px 5px; display: inline" alt="image" align="right" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/Newsdelasemaine18_9F77/image_thumb.png" />L’actualité
de cette semaine est évidemment marquée par la disponibilité de la version RC de Visual
Studio 2010. <a href="http://www.microsoft.com/downloads/info.aspx?na=47&amp;p=2&amp;SrcDisplayLang=en&amp;SrcCategoryId=&amp;SrcFamilyId=752cb725-969b-4732-a383-ed5740f02e93&amp;u=details.aspx%3ffamilyid%3d457BAB91-5EB2-4B36-B0F4-D6F34683C62A%26displaylang%3den">Vous
pouvez la télécharger ici</a>. A noter que <a href="http://bit.ly/81cwuo">le Training
Kit a été mis à jour pour cette nouvelle version de VS et .net 4.0</a>.
</p>
        <p align="justify">
Actualité riche autour des langages, avec par exemple <a href="http://codebetter.com/blogs/matthew.podwysocki/archive/2010/02/11/the-f-powerpack-released-on-codeplex.aspx">la
disponibilité de la version de février 2010 de F#</a> et d’un <a href="http://codebetter.com/blogs/matthew.podwysocki/archive/2010/02/11/the-f-powerpack-released-on-codeplex.aspx">PowerPack
associé disponible sur CodePlex</a>. Ce Powerpack est une bibliothèque complétant
les fonctionnalités de F# (Support des providers LINQ, de la TPL, etc.) <a href="http://blogs.msdn.com/pfxteam/archive/2010/02/10/9961694.aspx">et
fournit entre autre le support de PLINQ</a>.
</p>
        <p align="justify">
Eric Lippert comme toujours nous propose <a href="http://blogs.msdn.com/ericlippert/archive/2010/02/11/chaining-simple-assignments-is-not-so-simple.aspx">un
post très intéressant à propos des assignations en C#.</a><a href="http://feedproxy.google.com/~r/JonSkeetCodingBlog/~3/GCDh4CpcaPo/optimisations-in-linq-to-objects.aspx">Jon
Skeet quand à lui publie un post sur Linq To Objects</a>. 
</p>
        <p align="justify">
A propos du développement parallèle, <a href="http://blogs.msdn.com/pfxteam/archive/2010/02/08/9960003.aspx">l’équipe
de la TPL nous explique comment utiliser ce framework avec des applications web ASP.net.</a></p>
        <p align="justify">
A noter également toujours dans le même domaine <a href="http://blogs.msdn.com/pfxteam/archive/2010/02/04/9958404.aspx">la
disponibilité d DryadLinq pour des projets non-académiques</a>.
</p>
        <p align="justify">
Du côté de l’actualité française, Romain Verdier nous propose encore un excellent
post consacré au langage C#, où <a href="http://feedproxy.google.com/~r/Codingly/~3/Gl0kU4sO8iI/">il
traite cette fois-ci de l’utilisation et de la conversion des délégués ayant une même
signature.</a> 
</p>
        <p align="justify">
Lionel Limozin quand à lui nous indique <a href="http://www.paslatek.net/deacuteploiement-drsquoun-addin-vsto-avec-clickonce-dans-la-vrai-vie-20100206-26.aspx">comment
créer des setups pour vos programmes VSTO</a>.
</p>
        <p align="justify">
Et bien évidemment, je peux pas ne pas parler de l’édition 2010 des TechDays qui a
eu lieu en début de semaine. <a href="http://blogs.technet.com/mstechdays/default.aspx">Vous
pouvez dores et déjà consulter les vidéos des pleinières</a>. Les vidéos des sessions
devraient être publiées très rapidement.
</p>
        <img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=9e62b627-c241-49d6-b16f-194f5852ee57" />
        <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Patrice/~4/1ukN6Jb5jAo" height="1" width="1" />
      </body>
      <title>News of the week #1</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,9e62b627-c241-49d6-b16f-194f5852ee57.aspx</guid>
      <link>http://feedproxy.google.com/~r/Patrice/~3/1ukN6Jb5jAo/NewsOfTheWeek1.aspx</link>
      <pubDate>Sat, 13 Feb 2010 11:47:40 GMT</pubDate>
      <description>&lt;p align="justify"&gt;
&lt;img style="margin: 0px 0px 0px 5px; display: inline" alt="image" align="right" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/Newsdelasemaine18_9F77/image_thumb.png" /&gt;L’actualité
de cette semaine est évidemment marquée par la disponibilité de la version RC de Visual
Studio 2010. &lt;a href="http://www.microsoft.com/downloads/info.aspx?na=47&amp;amp;p=2&amp;amp;SrcDisplayLang=en&amp;amp;SrcCategoryId=&amp;amp;SrcFamilyId=752cb725-969b-4732-a383-ed5740f02e93&amp;amp;u=details.aspx%3ffamilyid%3d457BAB91-5EB2-4B36-B0F4-D6F34683C62A%26displaylang%3den"&gt;Vous
pouvez la télécharger ici&lt;/a&gt;. A noter que &lt;a href="http://bit.ly/81cwuo"&gt;le Training
Kit a été mis à jour pour cette nouvelle version de VS et .net 4.0&lt;/a&gt;.
&lt;/p&gt;
&lt;p align="justify"&gt;
Actualité riche autour des langages, avec par exemple &lt;a href="http://codebetter.com/blogs/matthew.podwysocki/archive/2010/02/11/the-f-powerpack-released-on-codeplex.aspx"&gt;la
disponibilité de la version de février 2010 de F#&lt;/a&gt; et d’un &lt;a href="http://codebetter.com/blogs/matthew.podwysocki/archive/2010/02/11/the-f-powerpack-released-on-codeplex.aspx"&gt;PowerPack
associé disponible sur CodePlex&lt;/a&gt;. Ce Powerpack est une bibliothèque complétant
les fonctionnalités de F# (Support des providers LINQ, de la TPL, etc.) &lt;a href="http://blogs.msdn.com/pfxteam/archive/2010/02/10/9961694.aspx"&gt;et
fournit entre autre le support de PLINQ&lt;/a&gt;.
&lt;/p&gt;
&lt;p align="justify"&gt;
Eric Lippert comme toujours nous propose &lt;a href="http://blogs.msdn.com/ericlippert/archive/2010/02/11/chaining-simple-assignments-is-not-so-simple.aspx"&gt;un
post très intéressant à propos des assignations en C#.&lt;/a&gt; &lt;a href="http://feedproxy.google.com/~r/JonSkeetCodingBlog/~3/GCDh4CpcaPo/optimisations-in-linq-to-objects.aspx"&gt;Jon
Skeet quand à lui publie un post sur Linq To Objects&lt;/a&gt;. 
&lt;/p&gt;
&lt;p align="justify"&gt;
A propos du développement parallèle, &lt;a href="http://blogs.msdn.com/pfxteam/archive/2010/02/08/9960003.aspx"&gt;l’équipe
de la TPL nous explique comment utiliser ce framework avec des applications web ASP.net.&lt;/a&gt;
&lt;/p&gt;
&lt;p align="justify"&gt;
A noter également toujours dans le même domaine &lt;a href="http://blogs.msdn.com/pfxteam/archive/2010/02/04/9958404.aspx"&gt;la
disponibilité d DryadLinq pour des projets non-académiques&lt;/a&gt;.
&lt;/p&gt;
&lt;p align="justify"&gt;
Du côté de l’actualité française, Romain Verdier nous propose encore un excellent
post consacré au langage C#, où &lt;a href="http://feedproxy.google.com/~r/Codingly/~3/Gl0kU4sO8iI/"&gt;il
traite cette fois-ci de l’utilisation et de la conversion des délégués ayant une même
signature.&lt;/a&gt;&amp;#160;
&lt;/p&gt;
&lt;p align="justify"&gt;
Lionel Limozin quand à lui nous indique &lt;a href="http://www.paslatek.net/deacuteploiement-drsquoun-addin-vsto-avec-clickonce-dans-la-vrai-vie-20100206-26.aspx"&gt;comment
créer des setups pour vos programmes VSTO&lt;/a&gt;.
&lt;/p&gt;
&lt;p align="justify"&gt;
Et bien évidemment, je peux pas ne pas parler de l’édition 2010 des TechDays qui a
eu lieu en début de semaine. &lt;a href="http://blogs.technet.com/mstechdays/default.aspx"&gt;Vous
pouvez dores et déjà consulter les vidéos des pleinières&lt;/a&gt;. Les vidéos des sessions
devraient être publiées très rapidement.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=9e62b627-c241-49d6-b16f-194f5852ee57" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,9e62b627-c241-49d6-b16f-194f5852ee57.aspx</comments>
      <category>News</category>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://patricelamarche.net/2010/02/13/NewsOfTheWeek1.aspx</origLink>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://benoitlaut.net/Trackback.aspx?guid=1777fcef-3c4e-43d1-acf1-ed7150ce4bdf</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://benoitlaut.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://benoitlaut.net/PermaLink,guid,1777fcef-3c4e-43d1-acf1-ed7150ce4bdf.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Benoît Laut</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://benoitlaut.net/CommentView,guid,1777fcef-3c4e-43d1-acf1-ed7150ce4bdf.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=1777fcef-3c4e-43d1-acf1-ed7150ce4bdf</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Si vous avez suivi l’actualité de la semaine, vous savez certainement que VS 2010
et TFS 2010 sont disponibles en version Release Candidate pour les abonnés MSDN. L’information
a été annoncée par plusieurs Microsoftees, dont notamment <a href="http://blogs.msdn.com/camerons/archive/2010/02/08/vs-2010-net-4-release-candidate-is-here.aspx" target="_blank">Cameron
Skinner</a> et <a href="http://blogs.msdn.com/bharry/archive/2010/02/08/vs-2010-net-4-release-candidate-is-available-for-msdn-subscribers.aspx" target="_blank">Brian
Harry</a>.
</p>
        <p>
A la suite de cette annonce, plusieurs informations importantes sont à noter. Tout
d’abord concernant <a href="http://blogs.msdn.com/bharry/archive/2010/02/09/support-for-the-2010-rc.aspx" target="_blank">le
support de la RC, qui comme la Beta 2, est une version “go live”</a>.
</p>
        <p>
Martin Hinshelwood fourni <a href="http://blog.hinshelwood.com/archive/2010/02/10/upgrading-from-tfs-2010-beta-2-to-tfs-2010-rc.aspx" target="_blank">un
témoignage intéressant sur la migration (ou plutôt sur la désinstallation) de TFS
2010 Beta 2 vers la RC</a>.
</p>
        <p>
Une autre annonce très importante de Brian Harry sur <a href="http://blogs.msdn.com/bharry/archive/2010/02/11/tfs-2010-rc-power-tools.aspx" target="_blank">la
sortie des Power Tools de TFS pour la version RC</a>. Ces Power Tools étaient disponibles
en version Beta 2 et devraient normalement être disponibles d’ici le 19 février, c’est
à dire dans une semaine.
</p>
        <p>
Concernant l’installation de Visual Studio 2010 RC, si vous avez installé la version
Beta 2 ainsi que les Power Tools Beta 2, sachez <a href="http://blogs.msdn.com/buckh/archive/2010/02/11/uninstall-tfs-power-tools-for-2010-beta-2-before-installing-vs-2010-rc.aspx" target="_blank">qu’ils
vous faudra les désinstaller pour installer la RC</a>.
</p>
        <p>
Petite nouveauté sur l’installation de Visual Studio 2010 : <a href="http://blogs.msdn.com/jasonba/archive/2010/02/11/team-explorer-is-included-in-visual-studio-2010.aspx" target="_blank">Team
Explorer et VS 2010 ne font qu’un</a>. Plus besoin d’installer VS 2010 puis Team Explorer.
Team Explorer est directement inclus à VS 2010. Cependant une version standalone de
Team Explorer existe toujours, pour les personnes qui n’ont pas besoin des fonctionnalités
de Visual Studio.
</p>
        <p>
Attention aux projets de modélisation. Si vous avez utilisé les projets de modélisations
dans la Beta 2, sachez qu’ils ne sont pas supportés tel quel dans la RC. Cameron Skinner
nous propose <a href="http://blogs.msdn.com/camerons/archive/2010/02/10/beta2-to-rc-upgrade-tool-available.aspx" target="_blank">un
outil en ligne de commande permettant de migrer les projets de modélisation ainsi
que les diagrammes UML développé en Beta 2 vers la RC</a>.
</p>
        <p>
          <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=cd443b01-d657-4f8b-b5b8-29f1e3e2c424&amp;displaylang=en" target="_blank">Le
Visual Studio Visualization and Modeling SDK RC</a> est également disponible en téléchargement
et pas seulement pour les abonnés MSDN. Ce SDK, en plus du DSL SDK, permet notamment
d’étendre les fonctionnalités des diagrammes UML.
</p>
        <p>
Enfin <a href="http://blogs.msdn.com/buckh/archive/2010/02/11/tfs-client-api-changes-from-beta-2-to-rc.aspx" target="_blank">quelques
changements (non exhaustifs) dans le TFS SDK comme nous l’indique Buck Hodges</a>.
Dans ces changements, à noter que la classe TeamFoundationServer devient obsolète
et est remplacée par la classe TfsTeamProjectCollection.
</p>
        <p>
 
</p>
        <p>
Bons téléchargements !!
</p>
        <img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=1777fcef-3c4e-43d1-acf1-ed7150ce4bdf" />
      </body>
      <title>VS 2010 RC et TFS 2010 RC sont disponibles !!!</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,1777fcef-3c4e-43d1-acf1-ed7150ce4bdf.aspx</guid>
      <link>http://benoitlaut.net/2010/02/12/VS2010RCEtTFS2010RCSontDisponibles.aspx</link>
      <pubDate>Fri, 12 Feb 2010 15:55:11 GMT</pubDate>
      <description>&lt;p&gt;
Si vous avez suivi l’actualité de la semaine, vous savez certainement que VS 2010
et TFS 2010 sont disponibles en version Release Candidate pour les abonnés MSDN. L’information
a été annoncée par plusieurs Microsoftees, dont notamment &lt;a href="http://blogs.msdn.com/camerons/archive/2010/02/08/vs-2010-net-4-release-candidate-is-here.aspx" target="_blank"&gt;Cameron
Skinner&lt;/a&gt; et &lt;a href="http://blogs.msdn.com/bharry/archive/2010/02/08/vs-2010-net-4-release-candidate-is-available-for-msdn-subscribers.aspx" target="_blank"&gt;Brian
Harry&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
A la suite de cette annonce, plusieurs informations importantes sont à noter. Tout
d’abord concernant &lt;a href="http://blogs.msdn.com/bharry/archive/2010/02/09/support-for-the-2010-rc.aspx" target="_blank"&gt;le
support de la RC, qui comme la Beta 2, est une version “go live”&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Martin Hinshelwood fourni &lt;a href="http://blog.hinshelwood.com/archive/2010/02/10/upgrading-from-tfs-2010-beta-2-to-tfs-2010-rc.aspx" target="_blank"&gt;un
témoignage intéressant sur la migration (ou plutôt sur la désinstallation) de TFS
2010 Beta 2 vers la RC&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Une autre annonce très importante de Brian Harry sur &lt;a href="http://blogs.msdn.com/bharry/archive/2010/02/11/tfs-2010-rc-power-tools.aspx" target="_blank"&gt;la
sortie des Power Tools de TFS pour la version RC&lt;/a&gt;. Ces Power Tools étaient disponibles
en version Beta 2 et devraient normalement être disponibles d’ici le 19 février, c’est
à dire dans une semaine.
&lt;/p&gt;
&lt;p&gt;
Concernant l’installation de Visual Studio 2010 RC, si vous avez installé la version
Beta 2 ainsi que les Power Tools Beta 2, sachez &lt;a href="http://blogs.msdn.com/buckh/archive/2010/02/11/uninstall-tfs-power-tools-for-2010-beta-2-before-installing-vs-2010-rc.aspx" target="_blank"&gt;qu’ils
vous faudra les désinstaller pour installer la RC&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Petite nouveauté sur l’installation de Visual Studio 2010 : &lt;a href="http://blogs.msdn.com/jasonba/archive/2010/02/11/team-explorer-is-included-in-visual-studio-2010.aspx" target="_blank"&gt;Team
Explorer et VS 2010 ne font qu’un&lt;/a&gt;. Plus besoin d’installer VS 2010 puis Team Explorer.
Team Explorer est directement inclus à VS 2010. Cependant une version standalone de
Team Explorer existe toujours, pour les personnes qui n’ont pas besoin des fonctionnalités
de Visual Studio.
&lt;/p&gt;
&lt;p&gt;
Attention aux projets de modélisation. Si vous avez utilisé les projets de modélisations
dans la Beta 2, sachez qu’ils ne sont pas supportés tel quel dans la RC. Cameron Skinner
nous propose &lt;a href="http://blogs.msdn.com/camerons/archive/2010/02/10/beta2-to-rc-upgrade-tool-available.aspx" target="_blank"&gt;un
outil en ligne de commande permettant de migrer les projets de modélisation ainsi
que les diagrammes UML développé en Beta 2 vers la RC&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=cd443b01-d657-4f8b-b5b8-29f1e3e2c424&amp;amp;displaylang=en" target="_blank"&gt;Le
Visual Studio Visualization and Modeling SDK RC&lt;/a&gt; est également disponible en téléchargement
et pas seulement pour les abonnés MSDN. Ce SDK, en plus du DSL SDK, permet notamment
d’étendre les fonctionnalités des diagrammes UML.
&lt;/p&gt;
&lt;p&gt;
Enfin &lt;a href="http://blogs.msdn.com/buckh/archive/2010/02/11/tfs-client-api-changes-from-beta-2-to-rc.aspx" target="_blank"&gt;quelques
changements (non exhaustifs) dans le TFS SDK comme nous l’indique Buck Hodges&lt;/a&gt;.
Dans ces changements, à noter que la classe TeamFoundationServer devient obsolète
et est remplacée par la classe TfsTeamProjectCollection.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Bons téléchargements !!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=1777fcef-3c4e-43d1-acf1-ed7150ce4bdf" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,1777fcef-3c4e-43d1-acf1-ed7150ce4bdf.aspx</comments>
      <category>TFS</category>
      <category>Visual Studio</category>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://benoitlaut.net/Trackback.aspx?guid=370e7645-75fd-4711-a887-1dd0e2a3ade4</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://benoitlaut.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://benoitlaut.net/PermaLink,guid,370e7645-75fd-4711-a887-1dd0e2a3ade4.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Benoît Laut</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://benoitlaut.net/CommentView,guid,370e7645-75fd-4711-a887-1dd0e2a3ade4.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=370e7645-75fd-4711-a887-1dd0e2a3ade4</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Les Techdays 2010 sont terminées. Pas mal de stress en arrivant puisque :
</p>
        <ul>
          <li>
je n’étais pas sur la liste des speakers, 
</li>
          <li>
sur mon badge exposant le nom de la société n’était pas Bewise mais le nom d’un concurrent,</li>
          <li>
impossible de retrouver ma session sur le planning général, elle avait changé de nom… 
</li>
        </ul>
        <p>
Mais finalement tout s’est arrangé et ma session sur l’architecture avec Visual Studio
2010 a eu pas mal de succès avec pas moins de 250 personnes présentes.
</p>
        <p>
Merci à :
</p>
        <ul>
          <li>
Sacha de l’avoir co-animé avec moi</li>
          <li>
Alain de m’avoir fait confiance ;)</li>
          <li>
Pat, David, JP et les autres de m’avoir supporté pendant cette longue journée.</li>
        </ul>
        <p>
Et pour terminer merci aux hôtesses Bewise d’avoir pris la pose ;)
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/FindesTechdays2010_A9E9/P1010188.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="P1010188" border="0" alt="P1010188" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/FindesTechdays2010_A9E9/P1010188_thumb.jpg" width="563" height="424" />
          </a>
        </p>
        <img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=370e7645-75fd-4711-a887-1dd0e2a3ade4" />
      </body>
      <title>Fin des Techdays 2010</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,370e7645-75fd-4711-a887-1dd0e2a3ade4.aspx</guid>
      <link>http://benoitlaut.net/2010/02/11/FinDesTechdays2010.aspx</link>
      <pubDate>Thu, 11 Feb 2010 10:05:00 GMT</pubDate>
      <description>&lt;p&gt;
Les Techdays 2010 sont terminées. Pas mal de stress en arrivant puisque :
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
je n’étais pas sur la liste des speakers, 
&lt;/li&gt;
&lt;li&gt;
sur mon badge exposant le nom de la société n’était pas Bewise mais le nom d’un concurrent,&lt;/li&gt;
&lt;li&gt;
impossible de retrouver ma session sur le planning général, elle avait changé de nom… 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Mais finalement tout s’est arrangé et ma session sur l’architecture avec Visual Studio
2010 a eu pas mal de succès avec pas moins de 250 personnes présentes.
&lt;/p&gt;
&lt;p&gt;
Merci à :
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Sacha de l’avoir co-animé avec moi&lt;/li&gt;
&lt;li&gt;
Alain de m’avoir fait confiance ;)&lt;/li&gt;
&lt;li&gt;
Pat, David, JP et les autres de m’avoir supporté pendant cette longue journée.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Et pour terminer merci aux hôtesses Bewise d’avoir pris la pose ;)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/FindesTechdays2010_A9E9/P1010188.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="P1010188" border="0" alt="P1010188" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/FindesTechdays2010_A9E9/P1010188_thumb.jpg" width="563" height="424"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=370e7645-75fd-4711-a887-1dd0e2a3ade4" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,370e7645-75fd-4711-a887-1dd0e2a3ade4.aspx</comments>
      <category>Techdays 2010</category>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://patricelamarche.net/Trackback.aspx?guid=c911c550-3f39-430f-b5fd-31c3f148114f</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://patricelamarche.net/PermaLink,guid,c911c550-3f39-430f-b5fd-31c3f148114f.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Patrice Lamarche</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/CommentView,guid,c911c550-3f39-430f-b5fd-31c3f148114f.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=c911c550-3f39-430f-b5fd-31c3f148114f</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p align="justify">
          <a href="http://patricelamarche.net/content/binary/WindowsLiveWriter/MessessionsauxTechDays2010_8399/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/MessessionsauxTechDays2010_8399/image_thumb.png" width="244" height="93" />
          </a> Comme
vous le savez déjà, j’ai participé en début de semaine à la plus grande conférence
gratuite organisée par Microsoft : les TechDays. J’ai eu l’occasion de présenter une
session sur le développement d’applications sur Windows 7, une session sur le stockage
sous Windows Azure ainsi qu’un workshop sur le développement parallèle qui s’est finalement
transformé en session suites à des problèmes de logistique indépendants de notre volonté.
</p>
        <p align="justify">
 
</p>
        <p align="justify">
Je vous propose donc dès à présent le contenu de ces différentes sessions :
</p>
        <p>
          <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-d428bec72cd99c6b.skydrive.live.com/embedicon.aspx/Public/TechDays%202010/Comment%20tirez%20parti%20de%20Windows%207%20dans%20vos%20applications%20.net.pptx" frameborder="0" marginwidth="0" scrolling="no"></iframe>
          <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-d428bec72cd99c6b.skydrive.live.com/embedicon.aspx/Public/TechDays%202010/M%c3%a9thodes%20et%20strat%c3%a9gies%20de%20Storage%20sous%20Windows%20Azure.pptx" frameborder="0" marginwidth="0" scrolling="no"></iframe>
          <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-d428bec72cd99c6b.skydrive.live.com/embedicon.aspx/Public/TechDays%202010/Lab%20Developppement%20Parall%c3%a8le%20--%201ere%20Partie.zip" frameborder="0" marginwidth="0" scrolling="no"></iframe>
        </p>
        <p>
 
</p>
        <p>
Durant la session sur le développement parallèle, nous vous avons parlé de <a href="http://bluebytesoftware.net/blog/Default.aspx">l’ouvrage
de Joe Duffy</a>. Vous pouvez le retrouver sur Amazon ici : <a href="http://www.amazon.fr/gp/product/032143482X?ie=UTF8&amp;tag=blogdepatrlam-21&amp;linkCode=as2&amp;camp=1642&amp;creative=19458&amp;creativeASIN=032143482X">Concurrent
Programming on Windows</a><img style="border-bottom-style: none !important; border-right-style: none !important; margin: 0px; border-top-style: none !important; border-left-style: none !important" border="0" alt="" src="http://www.assoc-amazon.fr/e/ir?t=blogdepatrlam-21&amp;l=as2&amp;o=8&amp;a=032143482X" width="1" height="1" /></p>
        <img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=c911c550-3f39-430f-b5fd-31c3f148114f" />
        <xhtml:img xmlns:xhtml="http://www.w3.org/1999/xhtml" src="http://feeds.feedburner.com/~r/Patrice/~4/B5kO_Ys7vgI" height="1" width="1" />
      </body>
      <title>Mes sessions aux TechDays 2010</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,c911c550-3f39-430f-b5fd-31c3f148114f.aspx</guid>
      <link>http://feedproxy.google.com/~r/Patrice/~3/B5kO_Ys7vgI/MesSessionsAuxTechDays2010.aspx</link>
      <pubDate>Wed, 10 Feb 2010 18:00:00 GMT</pubDate>
      <description>&lt;p align="justify"&gt;
&lt;a href="http://patricelamarche.net/content/binary/WindowsLiveWriter/MessessionsauxTechDays2010_8399/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/MessessionsauxTechDays2010_8399/image_thumb.png" width="244" height="93" /&gt;&lt;/a&gt; Comme
vous le savez déjà, j’ai participé en début de semaine à la plus grande conférence
gratuite organisée par Microsoft : les TechDays. J’ai eu l’occasion de présenter une
session sur le développement d’applications sur Windows 7, une session sur le stockage
sous Windows Azure ainsi qu’un workshop sur le développement parallèle qui s’est finalement
transformé en session suites à des problèmes de logistique indépendants de notre volonté.
&lt;/p&gt;
&lt;p align="justify"&gt;
&amp;#160;
&lt;/p&gt;
&lt;p align="justify"&gt;
Je vous propose donc dès à présent le contenu de ces différentes sessions :
&lt;/p&gt;
&lt;p&gt;
&lt;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-d428bec72cd99c6b.skydrive.live.com/embedicon.aspx/Public/TechDays%202010/Comment%20tirez%20parti%20de%20Windows%207%20dans%20vos%20applications%20.net.pptx" frameborder="0" marginwidth="0" scrolling="no"&gt;
&lt;/iframe&gt;
&lt;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-d428bec72cd99c6b.skydrive.live.com/embedicon.aspx/Public/TechDays%202010/M%c3%a9thodes%20et%20strat%c3%a9gies%20de%20Storage%20sous%20Windows%20Azure.pptx" frameborder="0" marginwidth="0" scrolling="no"&gt;
&lt;/iframe&gt;
&lt;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-d428bec72cd99c6b.skydrive.live.com/embedicon.aspx/Public/TechDays%202010/Lab%20Developppement%20Parall%c3%a8le%20--%201ere%20Partie.zip" frameborder="0" marginwidth="0" scrolling="no"&gt;
&lt;/iframe&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Durant la session sur le développement parallèle, nous vous avons parlé de &lt;a href="http://bluebytesoftware.net/blog/Default.aspx"&gt;l’ouvrage
de Joe Duffy&lt;/a&gt;. Vous pouvez le retrouver sur Amazon ici : &lt;a href="http://www.amazon.fr/gp/product/032143482X?ie=UTF8&amp;amp;tag=blogdepatrlam-21&amp;amp;linkCode=as2&amp;amp;camp=1642&amp;amp;creative=19458&amp;amp;creativeASIN=032143482X"&gt;Concurrent
Programming on Windows&lt;/a&gt;&lt;img style="border-bottom-style: none !important; border-right-style: none !important; margin: 0px; border-top-style: none !important; border-left-style: none !important" border="0" alt="" src="http://www.assoc-amazon.fr/e/ir?t=blogdepatrlam-21&amp;amp;l=as2&amp;amp;o=8&amp;amp;a=032143482X" width="1" height="1" /&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=c911c550-3f39-430f-b5fd-31c3f148114f" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,c911c550-3f39-430f-b5fd-31c3f148114f.aspx</comments>
      <category>Events/TechDays 2010</category>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://patricelamarche.net/2010/02/10/MesSessionsAuxTechDays2010.aspx</origLink>
    </item>
    <item>
      <guid isPermaLink="false">26</guid>
      <link>http://feedproxy.google.com/~r/PaslatekBlog/~3/HihSlZFYUoI/deacuteploiement-drsquoun-addin-vsto-avec-clickonce-dans-la-vrai-vie-20100206-26.aspx</link>
      <title>Déploiement d’un addin VSTO avec clickonce, dans la vrai vie</title>
      <description>&lt;p&gt;Récemment j’ai eu à déployer un addin vsto sur un intranet via clickonce, en l’occurrence un serveur web IIS 6. J’ai rencontré 3 problématiques :    &lt;br /&gt; - Signer mon package clickonce avec un certificat valide plus longtemps qu’une année     &lt;br /&gt; - Comprendre pourquoi mon package généré sous Windows 7 ne s’installe pas correctement     &lt;br /&gt; - Comprendre pourquoi la mise à jour automatique ne fonctionnait pas &lt;/p&gt;  &lt;h3&gt;1 - Création du certificat &lt;/h3&gt;  &lt;p&gt;Par défaut un projet d’addin vsto sous visual studio peut être signé par un certificat de test valide 1 an. Le soucis c’est que si vous oubliez de mettre à jour ce certificat au cours de cette année, vos utilisateurs ne pourront plus installer vos mise à jour une fois le certificat expiré. Et de ce fait vous n’aurez plus d’autre solution que de leur faire désinstaller l’application et réinstaller la nouvelle version signée avec un nouveau certificat. Pas idéal …&lt;/p&gt;  &lt;p&gt;Voici donc la procédure à suivre pour générer un certificat valide jusqu’en 2040 (ou une date de votre choix) et l’utiliser pour signer votre package :&lt;/p&gt;  &lt;p&gt;1- les outils sont tous fournis pat visual studio sauf un qu'il faut télécharger et installer : &lt;a href="http://download.microsoft.com/download/vba50/Utility/1.0/NT5/EN-US/pvkimprt.exe"&gt;http://download.microsoft.com/download/vba50/Utility/1.0/NT5/EN-US/pvkimprt.exe&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;-&amp;gt; exécutez ce zip self extract puis &lt;strong&gt;exécutez l'exe&lt;/strong&gt; qui va installer l'outil dans C:\Windows\&lt;/p&gt;  &lt;p&gt;2- lancez un command prompt visual studio et placez vous dans un répertoire dédié à votre certificat&lt;/p&gt;  &lt;p&gt;3- enchainez les commandes suivantes (remplacez Bewise par le nom de votre choix) :&lt;/p&gt;  &lt;p&gt;&lt;b&gt;makecert Bewise.cer -r -n &amp;quot;CN=Bewise&amp;quot; -$ individual -sv Bewise.pvk -pe -eku 1.3.6.1.5.5.7.3.3&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Pour info si vous devez choisir des dates précises pour votre certificat utilisez l'option -! pour la liste des options étendues et voire la syntaxe pour spécifier les dates...&lt;/p&gt;  &lt;p&gt;Dans la fenêtre qui s’affiche choisissez et confirmez le mot de passe de votre clée privée&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;cert2spc Bewise.cer Bewise.spc&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;pvkimprt -pfx Bewise.spc Bewise.pvk&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;la dernière ligne de commande lance un assistant, choisissez &amp;quot;yes&amp;quot; pour exporter la clé privée, puis next, puis saisie encore du password, et enfin choisissez l'emplacement et le nom d'un fichier pfx de sortie, par exemple BewiseCertificate.pfx&lt;/p&gt;  &lt;p&gt;4- Utilisez le fichier BewiseCertificate.pfx avec Visual Studio en allant dans les propriétés du projet, onglet signing Cochez la case pour signer le manifest clickonce. Pour le certificat utilisez l'option &amp;quot;from file&amp;quot; et choisissez le pfx. Après une ultime saisie de mot de passe vous devriez avoir un truc dans le genre :&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.paslatek.net/Attachments.ashx?id=49" width="559" height="184" /&gt; &lt;/p&gt;  &lt;h3&gt;2- Bug d’installation ?&lt;/h3&gt;  &lt;p&gt;Pour générer le package on va ensuite sur l’onglet “publishing” des propriétés du projet pour choisir pour commencer un emplacement local, le sous dossier “publish” par exemple , on sélectionne les pré requis, la politique de mise à jour automatique et on publie !&lt;/p&gt;  &lt;p&gt;Pour ma part j’ai donc spécifié les pré requis Framework 3.5 SP1, Office 2007 Primary Interop et VSTO&amp;#160; runtime. Enfin Visual Studio l’a fait pour moi…&lt;/p&gt;  &lt;p&gt;Pour les updates je lui ai dit de vérifier à chaque fois.&lt;/p&gt;  &lt;p&gt;Vous noterez au passage que les options ne sont pas les même que sur un projet de type Winform… la technologie de déploiement VSTO c’est bien du clickonce, mais pas tout à fait…&lt;/p&gt;  &lt;p&gt;L’action de publication crée donc dans le dossier publish un fichier setup.exe et un fichier vsto. Bien que le fichier vsto soit exécutable, vous devez &lt;strong&gt;faire exécuter le setup.exe à vos utilisateurs &lt;/strong&gt;car c’est celui ci qui va vérifier les pré requis.&lt;/p&gt;  &lt;p&gt;Et là c’est le drame, en tout cas sur mon PC sous Windows 7 j’obtiens le message d’erreur suivant : &lt;/p&gt;  &lt;p&gt;Exception : &amp;quot;La version requise du .NET Framework n'est pas installée sur cet ordinateur.&amp;quot;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://www.paslatek.net/Attachments.ashx?id=50" width="378" height="389" /&gt;&lt;/p&gt;  &lt;p&gt;Vous vous doutez bien qu’avec un Visual Studio 2008 SP1 installé j’ai le bon Framework d’installé…&lt;/p&gt;  &lt;p&gt;Le problème viens du fait que sur certaine éditions de windows 7 il manque ce fichier : %ProgramFiles%\Reference Assemblies\Microsoft\Framework\v3.5\RedistList\FrameworkList.xml&lt;/p&gt;  &lt;p&gt;le dossier existe, mais il est vide.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;La solution consiste à déposer ce fichier en question (provenant d'un vista, xp ou server 2008), redémarrer Visual Studio et re générer le package !!!&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;h3&gt;3 – Bug de mise à jour automatique ?&lt;/h3&gt;  &lt;p&gt;Une fois mon package généré je le déploie sur mon serveur web en fournissant un chemin réseau UNC qui correspond à un dossier de mon serveur qui est un répertoire virtuel de mon site intranet. J’indique aussi l’url correspondante pour accéder au fichier setup.exe, c’est à cette url que l’addin va vérifier si il ya des mise à jour à chaque démarrage. Ces options sont à indiquer dans les propriétés du projet, onglet “Publishing” :&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://www.paslatek.net/Attachments.ashx?id=51" width="483" height="383" /&gt; &lt;/p&gt;  &lt;p&gt;Bien sûr mon premier test consiste à installer l’addin une première fois en exécutant le setup depuis l’url. Attention pour que ça marche vous avez quelques “mime types” à vérifier sur votre serveur web. Il vous faut : &lt;/p&gt;  &lt;p&gt;&lt;tt&gt;.application : &lt;/tt&gt;&lt;tt&gt;application/x-ms-application&lt;/tt&gt;&lt;/p&gt;  &lt;p&gt;&lt;tt&gt;.manifest : &lt;/tt&gt;&lt;tt&gt;application/x-ms-&lt;strong&gt;manifest&lt;/strong&gt;&lt;/tt&gt;&lt;/p&gt;  &lt;p&gt;&lt;tt&gt;.deploy : &lt;/tt&gt;&lt;tt&gt;application/octet-stream&lt;/tt&gt;&lt;/p&gt;  &lt;p&gt;Et bien sûr le test suivant consiste à publier une nouvelle version de l’addin et de relancer l’application office sur laquelle il est installé pour vérifier qu’il se met bien à jour …&lt;/p&gt;  &lt;p&gt;Et là c’est le drame (bis) , j’ai un message d’erreur qui met dit que : “&lt;strong&gt;le programme de personnalisation office ne peut s’installer correctement car une version précédente est déjà installée&lt;/strong&gt;. Il faut désinstaller la version précédente. Puis relancer l’installation”. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font size="1"&gt;Arglllll !! Mais c’est exactement pour ne pas à avoir à faire ça que je voulais une mise à jour automatique !!!! &lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Et bien non, ne désespérez pas ! Vous n’êtes pas passez à côté d’un concept fondamental de la notion de mise à jour automatique! … &lt;strong&gt;Il s’agit juste d’une embrouille entre le package vsto installé et celui déployé automatiquement par Visual Studio lorsque vous avez débuggué votre addin&lt;/strong&gt; ! Si vous testez la procédure de mise à jour sur un autre PC, vous constaterez que tout marche comme un charme, la mise à jour automatique est bel et bien automatique ! Vous pouvez aussi nettoyer le package déployé par Visual Studio en utilisant le vsto cleaner fourni dans le &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=46b6bf86-e35d-4870-b214-4d7b72b02bf9&amp;amp;displaylang=en" target="_blank"&gt;vsto powertools&lt;/a&gt; si vous souhaitez faire fonctionner cette mise à jour sur votre PC de développement.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Et voilà, avec tout ça je suis tranquille je pourrais faire vivre mon addin jusqu’en 2040 en assurant des mise à jour régulières et automatiques !&lt;/p&gt;</description>
      <pubDate>Sat, 06 Feb 2010 18:17:48 +0100</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2010-02-06T18:17:48+01:00</updated>
      <author>lionel limozin</author>
      <creator>lionel limozin</creator>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://www.paslatek.net/deacuteploiement-drsquoun-addin-vsto-avec-clickonce-dans-la-vrai-vie-20100206-26.aspx</origLink>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://benoitlaut.net/Trackback.aspx?guid=a61c434a-1696-4620-8228-69175c3a3a9e</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://benoitlaut.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://benoitlaut.net/PermaLink,guid,a61c434a-1696-4620-8228-69175c3a3a9e.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Benoît Laut</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://benoitlaut.net/CommentView,guid,a61c434a-1696-4620-8228-69175c3a3a9e.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=a61c434a-1696-4620-8228-69175c3a3a9e</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/BOWIE2010BETAestdisponible_DC15/bowie2010.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="bowie2010" border="0" alt="bowie2010" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/BOWIE2010BETAestdisponible_DC15/bowie2010_thumb.png" width="404" height="181" />
          </a>
        </p>
        <p>
Comme l’indique clairement le titre, la version 2010 de mon addin TFS pour Outlook
est disponible en version beta. Il fonctionne pour Outlook 2007 et 2010 et TFS 2008
et 2010 beta 2. Quelques uns de mes collègues me servent actuellement de beta testeur
(merci Lio et Io).
</p>
        <p>
Vous retrouverez sur la page d’accueil du projet codeplex la liste des fonctionnalités
disponibles.
</p>
        <p>
Pour le télécharger, ça se passe par là ---&gt; <a href="http://bowie.codeplex.com">http://bowie.codeplex.com</a></p>
        <p>
N’hésitez pas à m’envoyer vos remarques, suggestions, bugs…
</p>
        <img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=a61c434a-1696-4620-8228-69175c3a3a9e" />
      </body>
      <title>BOWIE 2010 BETA est disponible !!!!</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,a61c434a-1696-4620-8228-69175c3a3a9e.aspx</guid>
      <link>http://benoitlaut.net/2010/02/03/BOWIE2010BETAEstDisponible.aspx</link>
      <pubDate>Wed, 03 Feb 2010 13:38:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/BOWIE2010BETAestdisponible_DC15/bowie2010.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="bowie2010" border="0" alt="bowie2010" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/BOWIE2010BETAestdisponible_DC15/bowie2010_thumb.png" width="404" height="181"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Comme l’indique clairement le titre, la version 2010 de mon addin TFS pour Outlook
est disponible en version beta. Il fonctionne pour Outlook 2007 et 2010 et TFS 2008
et 2010 beta 2. Quelques uns de mes collègues me servent actuellement de beta testeur
(merci Lio et Io).
&lt;/p&gt;
&lt;p&gt;
Vous retrouverez sur la page d’accueil du projet codeplex la liste des fonctionnalités
disponibles.
&lt;/p&gt;
&lt;p&gt;
Pour le télécharger, ça se passe par là ---&amp;gt; &lt;a href="http://bowie.codeplex.com"&gt;http://bowie.codeplex.com&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
N’hésitez pas à m’envoyer vos remarques, suggestions, bugs…
&lt;/p&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=a61c434a-1696-4620-8228-69175c3a3a9e" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,a61c434a-1696-4620-8228-69175c3a3a9e.aspx</comments>
      <category>Outlook Work Items Extension</category>
      <category>TFS</category>
      <category>TFS SDK</category>
      <category>VSTO</category>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://benoitlaut.net/Trackback.aspx?guid=2239162a-9193-43a5-89b8-b38d6632de52</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://benoitlaut.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://benoitlaut.net/PermaLink,guid,2239162a-9193-43a5-89b8-b38d6632de52.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Benoît Laut</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://benoitlaut.net/CommentView,guid,2239162a-9193-43a5-89b8-b38d6632de52.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=2239162a-9193-43a5-89b8-b38d6632de52</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Depuis quelques temps je me suis remis au développement de <a href="http://bowie.codeplex.com" target="_blank">BOWIE</a>.
Voulant absolument découvrir l’API de gestion des Builds du SDK de TFS, je me suis
creusé les méninges afin de trouver une fonctionnalités intéressantes pour pouvant
s’intégrer de façon originale dans Outlook.
</p>
        <p>
Sachant qu’une Build :
</p>
        <ul>
          <li>
s’exécute à un temps T1 
</li>
          <li>
se termine à un temps T2 
</li>
          <li>
et possède un certain status (Accepted, Failed…),</li>
        </ul>
        <p>
une Build peut donc être représentée dans un calendrier Outlook par un rendez-vous
avec :
</p>
        <ul>
          <li>
une date de début 
</li>
          <li>
une date de fin 
</li>
          <li>
une catégorie représentant le status 
</li>
          <li>
une zone permettant d’afficher le détail de la Build, comme dans Visual Studio</li>
        </ul>
        <p>
On peut également aller plus loin en représentant dans le calendrier les définitions
de Build. Dans certain cas, nous créons des définitions de Build récurrentes. Ces
définitions de Build récurrentes définissent :
</p>
        <ul>
          <li>
un pattern de récurrence (journalier, hebdomadaire…) 
</li>
        </ul>
        <p>
Ce type de définition de Build peut donc être représentée par un rendez-vous récurrent
dans un calendrier Outlook. Nous pourrions par exemple en ouvrant le rendez-vous,
proposer une interface permettant d’éditer la définition, ou encore de démarrer une
nouvelle Build. 
</p>
        <p>
Après avoir mis à plat toutes ces idées, il ne reste plus qu’à trouver les points
d’entrées dans le TFS SDK. Tout d’abord nous avons besoin des références suivantes
:
</p>
        <ul>
          <li>
TeamFoundation.Client 
</li>
          <li>
TeamFoundation.Build.Client 
</li>
          <li>
TeamFoundation.Build.Common</li>
        </ul>
        <p>
La récupération de toutes les Builds d’un projet nécessite une instance de la classe
TeamFoundationServer que l’on obtient à l’aide de la classe TeamFoundationFactory.
</p>
        <p>
Ensuite il faut récupérer l’API du serveur de Build via la méthode GetService&lt;IBuildServer&gt;().
Enfin il ne reste qu’à appeler la fonction QueryBuilds(string projectName) en lui
spécifiant un nom de Team Project :
</p>
        <p></p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:c20107e3-b98e-4211-abf4-d37fbd215413" class="wlWriterEditableSmartContent">
          <pre name="code" class="c#">TeamFoundationServer tfs = TeamFoundationServerFactory.GetServer("http://ServerUri");
IBuildServer bserver = tfs.GetService&lt;IBuildServer&gt;();
IBuildDetail[] details = bserver.QueryBuilds("TeamProjectName");
</pre>
        </div>
        <p></p>
        <p>
Maintenant que nous avons nos Builds, il nous faut les parcourir et créer des rendez-vous
dans le calendrier pour chacune d’elle… et ne pas oublier de stocker l’Uri de la Build
dans les UserProperties de l’Appointment :
</p>
        <p></p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:c11424a6-19e1-477a-b979-ab3422db3e29" class="wlWriterEditableSmartContent">
          <pre name="code" class="c#">AppointmentItem appt = folder.Items.Add(OlItemType.olAppointmentItem) as AppointmentItem;
appt.Start = item.StartTime;
appt.End = item.FinishTime;
appt.Subject = item.BuildDefinition.Name + " - " + item.Status.ToString();
appt.ReminderSet = false;
appt.UserProperties.Add("BuildUri", OlUserPropertyType.olText);
appt.UserProperties["BuildUri"].Value = item.Uri.ToString();</pre>
        </div>
        <p></p>
        <p>
Après quelques petits efforts on arrivera facilement à faire un petit formulaire dans
ce style :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/AffichagedesBuildsdeTSFdansuncalendrierO_1276F/image_2.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/AffichagedesBuildsdeTSFdansuncalendrierO_1276F/image_thumb.png" width="684" height="450" />
          </a>
        </p>
        <p>
Pour l’affichage du rapport d’exécution d’une Build on peut utiliser une FormRegion
dans le formulaire d’un Appointment.
</p>
        <p>
On récupère l’Uri de la Build dans les UserProperties de l’Appointment. Puis toujours
avec l’API du serveur de Build on récupère les détails d’exécution via la méthode
GetAllBuildDetails(Uri buildUri) :
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:ba73cf05-b02f-4263-9648-221c7c43711a" class="wlWriterEditableSmartContent">
          <pre name="code" class="c#">TeamFoundationServer tfs = TeamFoundationServerFactory.GetServer("http://TeamServerUri");
IBuildServer bserver = tfs.GetService&lt;IBuildServer&gt;();
IBuildDetail details = bserver.GetAllBuildDetails(new Uri("BuildUri"));</pre>
        </div>
Un objet BuildDetail, comme son nom l’indique, contient toutes les informations d’une
Build : l’heure d’exécution, le temps d’exécution, le numéro de build, les étapes
de la build, le work item 
<p>
éventuellement créé, le status, le chemin du fichier de log, la liste des erreurs,
des warnings, la configuration… bref vraiment toutes les infos.
</p><p>
Le code ci-dessous nous montre comment récupérer certaines de ces informations :
</p><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:ef2f2ddc-7c6c-47e7-87ed-0ec4a83d3902" class="wlWriterEditableSmartContent"><pre name="code" class="c#">// Numéro de la Build
lblBuildNumber.Text = details.BuildNumber;

// Emplacement du Log
lnkLogPath.Text = details.DropLocation;

// Dernière Modification
lblSummary.Text = string.Format("Build last modified by {0} {1:0.0} hours ago \r\n", details.LastChangedBy, (DateTime.Now - details.LastChangedOn).TotalHours);

// Plateforme
lblErros.Text += configuration.Fields[InformationFields.Platform] + " | " + configuration.Fields[InformationFields.Flavor] + "\r\n";

// Nombre d'erreurs et de warnings
lblErros.Text += configuration.Fields[InformationFields.TotalCompilationErrors] + "error(s), " + configuration.Fields[InformationFields.TotalCompilationWarnings] + "warning(s) \r\n";

// WorkItem créé
foreach (IBuildInformationNode node in details.Information.GetNodesByType(InformationTypes.OpenedWorkItem, true))
{
	lnkBug.Text = string.Format("Bug {0}", node.Fields[InformationFields.WorkItemId]);
    lblState.Text = string.Format("Current state is {0}, currently assigned to {1} \r\n", node.Fields[InformationFields.Status], node.Fields[InformationFields.AssignedTo]);
}

// Le détail des erreurs (fichier, numéro de ligne, message)
foreach (IBuildInformationNode item in details.Information.GetNodesByType(InformationTypes.BuildError, true))
{
	lblErros.Text += "    " + item.Fields[InformationFields.File] + " (" + item.Fields[InformationFields.LineNumber] + "): " + item.Fields[InformationFields.Message] + " \r\n\r\n";
}</pre></div><p>
Le code précédent donne le résultat suivant :
</p><p><a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/AffichagedesBuildsdeTSFdansuncalendrierO_1276F/image_4.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/AffichagedesBuildsdeTSFdansuncalendrierO_1276F/image_thumb_1.png" width="566" height="521" /></a></p><img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=2239162a-9193-43a5-89b8-b38d6632de52" /></body>
      <title>Utiliser l’API des Builds du TFS SDK pour les afficher dans un calendrier Outlook</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,2239162a-9193-43a5-89b8-b38d6632de52.aspx</guid>
      <link>http://benoitlaut.net/2010/01/29/UtiliserLAPIDesBuildsDuTFSSDKPourLesAfficherDansUnCalendrierOutlook.aspx</link>
      <pubDate>Fri, 29 Jan 2010 16:40:00 GMT</pubDate>
      <description>&lt;p&gt;
Depuis quelques temps je me suis remis au développement de &lt;a href="http://bowie.codeplex.com" target="_blank"&gt;BOWIE&lt;/a&gt;.
Voulant absolument découvrir l’API de gestion des Builds du SDK de TFS, je me suis
creusé les méninges afin de trouver une fonctionnalités intéressantes pour pouvant
s’intégrer de façon originale dans Outlook.
&lt;/p&gt;
&lt;p&gt;
Sachant qu’une Build :
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
s’exécute à un temps T1 
&lt;li&gt;
se termine à un temps T2 
&lt;li&gt;
et possède un certain status (Accepted, Failed…),&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
une Build peut donc être représentée dans un calendrier Outlook par un rendez-vous
avec :
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
une date de début 
&lt;li&gt;
une date de fin 
&lt;li&gt;
une catégorie représentant le status 
&lt;li&gt;
une zone permettant d’afficher le détail de la Build, comme dans Visual Studio&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
On peut également aller plus loin en représentant dans le calendrier les définitions
de Build. Dans certain cas, nous créons des définitions de Build récurrentes. Ces
définitions de Build récurrentes définissent :
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
un pattern de récurrence (journalier, hebdomadaire…) 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Ce type de définition de Build peut donc être représentée par un rendez-vous récurrent
dans un calendrier Outlook. Nous pourrions par exemple en ouvrant le rendez-vous,
proposer une interface permettant d’éditer la définition, ou encore de démarrer une
nouvelle Build. 
&lt;/p&gt;
&lt;p&gt;
Après avoir mis à plat toutes ces idées, il ne reste plus qu’à trouver les points
d’entrées dans le TFS SDK. Tout d’abord nous avons besoin des références suivantes
:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
TeamFoundation.Client 
&lt;li&gt;
TeamFoundation.Build.Client 
&lt;li&gt;
TeamFoundation.Build.Common&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
La récupération de toutes les Builds d’un projet nécessite une instance de la classe
TeamFoundationServer que l’on obtient à l’aide de la classe TeamFoundationFactory.
&lt;/p&gt;
&lt;p&gt;
Ensuite il faut récupérer l’API du serveur de Build via la méthode GetService&amp;lt;IBuildServer&amp;gt;().
Enfin il ne reste qu’à appeler la fonction QueryBuilds(string projectName) en lui
spécifiant un nom de Team Project :
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:c20107e3-b98e-4211-abf4-d37fbd215413" class="wlWriterEditableSmartContent"&gt;&lt;pre name="code" class="c#"&gt;TeamFoundationServer tfs = TeamFoundationServerFactory.GetServer("http://ServerUri");
IBuildServer bserver = tfs.GetService&amp;lt;IBuildServer&amp;gt;();
IBuildDetail[] details = bserver.QueryBuilds("TeamProjectName");
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Maintenant que nous avons nos Builds, il nous faut les parcourir et créer des rendez-vous
dans le calendrier pour chacune d’elle… et ne pas oublier de stocker l’Uri de la Build
dans les UserProperties de l’Appointment :
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:c11424a6-19e1-477a-b979-ab3422db3e29" class="wlWriterEditableSmartContent"&gt;&lt;pre name="code" class="c#"&gt;AppointmentItem appt = folder.Items.Add(OlItemType.olAppointmentItem) as AppointmentItem;
appt.Start = item.StartTime;
appt.End = item.FinishTime;
appt.Subject = item.BuildDefinition.Name + " - " + item.Status.ToString();
appt.ReminderSet = false;
appt.UserProperties.Add("BuildUri", OlUserPropertyType.olText);
appt.UserProperties["BuildUri"].Value = item.Uri.ToString();&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
Après quelques petits efforts on arrivera facilement à faire un petit formulaire dans
ce style :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/AffichagedesBuildsdeTSFdansuncalendrierO_1276F/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/AffichagedesBuildsdeTSFdansuncalendrierO_1276F/image_thumb.png" width="684" height="450"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Pour l’affichage du rapport d’exécution d’une Build on peut utiliser une FormRegion
dans le formulaire d’un Appointment.
&lt;/p&gt;
&lt;p&gt;
On récupère l’Uri de la Build dans les UserProperties de l’Appointment. Puis toujours
avec l’API du serveur de Build on récupère les détails d’exécution via la méthode
GetAllBuildDetails(Uri buildUri) :
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:ba73cf05-b02f-4263-9648-221c7c43711a" class="wlWriterEditableSmartContent"&gt;&lt;pre name="code" class="c#"&gt;TeamFoundationServer tfs = TeamFoundationServerFactory.GetServer("http://TeamServerUri");
IBuildServer bserver = tfs.GetService&amp;lt;IBuildServer&amp;gt;();
IBuildDetail details = bserver.GetAllBuildDetails(new Uri("BuildUri"));&lt;/pre&gt;
&lt;/div&gt;
Un objet BuildDetail, comme son nom l’indique, contient toutes les informations d’une
Build : l’heure d’exécution, le temps d’exécution, le numéro de build, les étapes
de la build, le work item 
&lt;p&gt;
éventuellement créé, le status, le chemin du fichier de log, la liste des erreurs,
des warnings, la configuration… bref vraiment toutes les infos.
&lt;/p&gt;
&lt;p&gt;
Le code ci-dessous nous montre comment récupérer certaines de ces informations :
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:ef2f2ddc-7c6c-47e7-87ed-0ec4a83d3902" class="wlWriterEditableSmartContent"&gt;&lt;pre name="code" class="c#"&gt;// Numéro de la Build
lblBuildNumber.Text = details.BuildNumber;

// Emplacement du Log
lnkLogPath.Text = details.DropLocation;

// Dernière Modification
lblSummary.Text = string.Format("Build last modified by {0} {1:0.0} hours ago \r\n", details.LastChangedBy, (DateTime.Now - details.LastChangedOn).TotalHours);

// Plateforme
lblErros.Text += configuration.Fields[InformationFields.Platform] + " | " + configuration.Fields[InformationFields.Flavor] + "\r\n";

// Nombre d'erreurs et de warnings
lblErros.Text += configuration.Fields[InformationFields.TotalCompilationErrors] + "error(s), " + configuration.Fields[InformationFields.TotalCompilationWarnings] + "warning(s) \r\n";

// WorkItem créé
foreach (IBuildInformationNode node in details.Information.GetNodesByType(InformationTypes.OpenedWorkItem, true))
{
	lnkBug.Text = string.Format("Bug {0}", node.Fields[InformationFields.WorkItemId]);
    lblState.Text = string.Format("Current state is {0}, currently assigned to {1} \r\n", node.Fields[InformationFields.Status], node.Fields[InformationFields.AssignedTo]);
}

// Le détail des erreurs (fichier, numéro de ligne, message)
foreach (IBuildInformationNode item in details.Information.GetNodesByType(InformationTypes.BuildError, true))
{
	lblErros.Text += "    " + item.Fields[InformationFields.File] + " (" + item.Fields[InformationFields.LineNumber] + "): " + item.Fields[InformationFields.Message] + " \r\n\r\n";
}&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
Le code précédent donne le résultat suivant :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/AffichagedesBuildsdeTSFdansuncalendrierO_1276F/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/AffichagedesBuildsdeTSFdansuncalendrierO_1276F/image_thumb_1.png" width="566" height="521"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=2239162a-9193-43a5-89b8-b38d6632de52" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,2239162a-9193-43a5-89b8-b38d6632de52.aspx</comments>
      <category>Outlook Work Items Extension</category>
      <category>TFS SDK</category>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-7814178453934938348</guid>
      <pubDate>Thu, 28 Jan 2010 13:31:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2010-02-03T17:59:26.107+01:00</updated>
      <category domain="http://www.blogger.com/atom/ns#">MVC</category>
      <title>Upload de fichiers avec ASP.NET MVC</title>
      <description>&lt;p&gt;Pour envoyer des fichiers avec ASP.NET MVC, c’est pas compliqué, mais encore faut-il savoir comment faire. Si en ASP.NET WebForm on a un contrôle qui le fait, avec MVC, on commence à en avoir l’habitude, il va falloir le faire à la pougne.&lt;/p&gt;  &lt;p&gt;On arrête de râler, les assistés, c’est pas plus compliqué qu’avant !&lt;/p&gt;  &lt;p&gt;Pour envoyer un fichier, on va utiliser l’élément HTML Input, de type “file”. On le mets dans notre formulaire, et on envoie. Attention, pour que ça fonctionne, il va falloir ajouter un attribut à notre formulaire : enctype=&amp;quot;multipart/form-data&amp;quot;. Scott Hanselman nous explique pourquoi sur &lt;a href="http://www.hanselman.com/blog/CommentView.aspx?guid=bc137b6b-d8d0-47d1-9795-f8814f7d1903"&gt;son blog&lt;/a&gt;.&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Courier New"&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;% &lt;/font&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt;&lt;font color="#000000"&gt; (Html.BeginForm(&lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;SendFile&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;Home&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;font color="#2b91af"&gt;FormMethod&lt;/font&gt;&lt;font color="#000000"&gt;.Post, &lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#000000"&gt; { enctype = &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;multipart/form-data&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt; }))          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { %&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;input&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;file&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#ff0000"&gt;name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;fileSent&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&amp;gt;          &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;input&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;submit&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#ff0000"&gt;value&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Send&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&amp;gt;          &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;% } %&amp;gt; &lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Ensuite, lorsqu’on va poster notre formulaire, le fichier sera directement accessible dans notre Request :&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Courier New"&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; [&lt;/font&gt;&lt;font color="#2b91af"&gt;AcceptVerbs&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2b91af"&gt;HttpVerbs&lt;/font&gt;&lt;font color="#000000"&gt;.Post)]          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;ActionResult&lt;/font&gt;&lt;font color="#000000"&gt; SendFile()          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#2b91af"&gt;HttpPostedFileBase&lt;/font&gt;&lt;font color="#000000"&gt; file = Request.Files[&lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;fileSent&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;];          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#008000"&gt;//TODO : Gerer le fichier&amp;#160; &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; file.SaveAs(filePath);          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#000000"&gt; View();          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/font&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Et parce que c’est de l’ASP.NET MVC, et qu’ASP.NET MVC ça poutre, on a même une solution encore plus simple ! Il suffit de le mettre en paramètre de notre action (n’oubliez pas que le nom du paramètre doit correspondre au “name” du input)&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Courier New"&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; [&lt;/font&gt;&lt;font color="#2b91af"&gt;AcceptVerbs&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2b91af"&gt;HttpVerbs&lt;/font&gt;&lt;font color="#000000"&gt;.Post)]          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;ActionResult&lt;/font&gt;&lt;font color="#000000"&gt; SendFile(&lt;/font&gt;&lt;font color="#2b91af"&gt;HttpPostedFileBase&lt;/font&gt;&lt;font color="#000000"&gt; fileSent)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#008000"&gt;//TODO : Gerer le fichier&amp;#160; &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; fileSent.SaveAs(filePath);          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#000000"&gt; View();          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/font&gt; &lt;/div&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-7814178453934938348?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2010/01/upload-de-fichiers-avec-aspnet-mvc.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://benoitlaut.net/Trackback.aspx?guid=7186c1c9-ac8c-41af-84bf-a88b7db78c33</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://benoitlaut.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://benoitlaut.net/PermaLink,guid,7186c1c9-ac8c-41af-84bf-a88b7db78c33.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Benoît Laut</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://benoitlaut.net/CommentView,guid,7186c1c9-ac8c-41af-84bf-a88b7db78c33.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=7186c1c9-ac8c-41af-84bf-a88b7db78c33</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Je vous invite à vous inscrire au plus grand événement Microsoft de l’année, les <a href="http://www.microsoft.com/france/mstechDays/" target="_blank">Techdays</a>,
qui aura lieu les 8, 9 et 10 février au Palais des Congrès de Paris. 
</p>
        <p>
J’y ferai une apparition, le mardi 8 à 17h30 sur le parcours ALM pour présenter les
nouveautés de Visual Studio 2010 Architecte au côté de François Merand.
</p>
        <p>
La session:
</p>
        <p>
          <strong>Architecture : quoi de neuf avec Visual Studio 2010 </strong>
        </p>
        <p>
          <strong>Le mardi 9 février 2010, 17:30 - 18:30</strong>
        </p>
        <p>
UML, explorateur d'architecture, diagrammes de couches... Visual Studio 2010 a été
pensé comme un outil d'architecture complet à la portée de tous. Au cours de cette
session, nous explorerons les possibilités de cet outil pour les phases d'architecture
de vos développements, et au delà. 
</p>
        <p>
  
</p>
        <p>
  
</p>
        <p>
N’attendez plus, inscrivez vous!!
</p>
        <img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=7186c1c9-ac8c-41af-84bf-a88b7db78c33" />
      </body>
      <title>Techdays 2010…</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,7186c1c9-ac8c-41af-84bf-a88b7db78c33.aspx</guid>
      <link>http://benoitlaut.net/2010/01/27/Techdays2010.aspx</link>
      <pubDate>Wed, 27 Jan 2010 07:55:00 GMT</pubDate>
      <description>&lt;p&gt;
Je vous invite à vous inscrire au plus grand événement Microsoft de l’année, les &lt;a href="http://www.microsoft.com/france/mstechDays/" target="_blank"&gt;Techdays&lt;/a&gt;,
qui aura lieu les 8, 9 et 10 février au Palais des Congrès de Paris. 
&lt;/p&gt;
&lt;p&gt;
J’y ferai une apparition, le mardi 8 à 17h30 sur le parcours ALM pour présenter les
nouveautés de Visual Studio 2010 Architecte au côté de François Merand.
&lt;/p&gt;
&lt;p&gt;
La session:
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Architecture : quoi de neuf avec Visual Studio 2010 &lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Le mardi 9 février 2010, 17:30 - 18:30&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
UML, explorateur d'architecture, diagrammes de couches... Visual Studio 2010 a été
pensé comme un outil d'architecture complet à la portée de tous. Au cours de cette
session, nous explorerons les possibilités de cet outil pour les phases d'architecture
de vos développements, et au delà. 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
N’attendez plus, inscrivez vous!!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=7186c1c9-ac8c-41af-84bf-a88b7db78c33" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,7186c1c9-ac8c-41af-84bf-a88b7db78c33.aspx</comments>
      <category>Techdays 2010</category>
    </item>
    <item>
      <title>TechDays 2010 : Session “Migrer sur Azure”</title>
      <link>http://www.dotmim.com/blogs/mim/archive/2010/01/26/techdays-2010-session-migrer-sur-azure.aspx</link>
      <pubDate>Tue, 26 Jan 2010 20:15:52 GMT</pubDate>
      <guid isPermaLink="false">f24f4a04-d5df-4071-90fb-39191e3ba06c:562</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Mimetis</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">1</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotmim.com/blogs/mim/rsscomments.aspx?PostID=562</wfw:commentRss>
      <comments>http://www.dotmim.com/blogs/mim/archive/2010/01/26/techdays-2010-session-migrer-sur-azure.aspx#comments</comments>
      <description>&lt;p&gt;Allez un peu de teasing sur ma session !&lt;/p&gt;  &lt;p&gt;Bon d’abord faut le savoir hein, une bonne raison de venir c’est que j’y serai.. aussi. Hein, si déjà là vous êtes pas bluffé, là ! (non ?)&lt;/p&gt;  &lt;p&gt;Sinon, si vraiment vous hésitez encore un chouilla (genre y’a Angelina Jolie qui passe pas loin, bon ok là vous hésitez, je comprend …) Sachez que :&lt;/p&gt;  &lt;p&gt;Renaud Conté sera là … aussi ! (ouais ça calme)&lt;/p&gt;  &lt;p&gt;Accrochez vous, nous parlerons de :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Création et intégration de &lt;strong&gt;Web Role&lt;/strong&gt; dans une application web existante &lt;/li&gt;    &lt;li&gt;Migration d’une base de données &lt;strong&gt;SQL SERVER 2005&lt;/strong&gt; vers &lt;strong&gt;SQL AZURE&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;Portage de code pour gérer l’upload de fichier avec les &lt;strong&gt;Blob Container&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Support d’un service sur l’intranet de l’entreprise via l’ &lt;strong&gt;AppFabric &lt;/strong&gt;Azure &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Et si tout ça ne suffisait pas, on parlera aussi … Donuts ! (Cherchez pas :))&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="Teasing" border="0" alt="Teasing" src="http://www.dotmim.com/blogs/mim/Teasing_282156EC.jpg" width="454" height="373" /&gt;&lt;/p&gt;&lt;img src="http://www.dotmim.com/aggbug.aspx?PostID=562" width="1" height="1"&gt;</description>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://benoitlaut.net/Trackback.aspx?guid=970d538a-a6e3-4949-83fa-f05da965bde8</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://benoitlaut.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://benoitlaut.net/PermaLink,guid,970d538a-a6e3-4949-83fa-f05da965bde8.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Benoît Laut</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://benoitlaut.net/CommentView,guid,970d538a-a6e3-4949-83fa-f05da965bde8.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=970d538a-a6e3-4949-83fa-f05da965bde8</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Pour ce dernier lab j’ai choisi de montrer ce qu’il est possible de faire avec les
templates de génération de code T4 et Entity Framework :
</p>
        <p>
L’atelier se découpe en 2 parties :
</p>
        <ul>
          <li>
Créer son premier template T4</li>
          <li>
Utiliser le template de génération de code Entity Self Tracking pour EF 4.0</li>
        </ul>
        <p>
Toutes les ressources pour ce lab sont disponible ici : 
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:F60BB8FA-6F02-4999-8F5E-9DD4E92C4DA7:f6522398-ef9a-41b0-8a7c-70560c2eb53c" class="wlWriterEditableSmartContent">
          <div>
            <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/Lab34EF4.0etADO.NETDataServices_FD1D/Entity.Framework.4.0.et.le.T4.zip" target="_self">Entity
Framework 4.0 et le T4.zip</a>
          </div>
        </div>
        <img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=970d538a-a6e3-4949-83fa-f05da965bde8" />
      </body>
      <title>Lab 4/4 : Entity Framework et le T4</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,970d538a-a6e3-4949-83fa-f05da965bde8.aspx</guid>
      <link>http://benoitlaut.net/2010/01/22/Lab44EntityFrameworkEtLeT4.aspx</link>
      <pubDate>Fri, 22 Jan 2010 16:16:00 GMT</pubDate>
      <description>&lt;p&gt;
Pour ce dernier lab j’ai choisi de montrer ce qu’il est possible de faire avec les
templates de génération de code T4 et Entity Framework :
&lt;/p&gt;
&lt;p&gt;
L’atelier se découpe en 2 parties :
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Créer son premier template T4&lt;/li&gt;
&lt;li&gt;
Utiliser le template de génération de code Entity Self Tracking pour EF 4.0&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Toutes les ressources pour ce lab sont disponible ici : 
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:F60BB8FA-6F02-4999-8F5E-9DD4E92C4DA7:f6522398-ef9a-41b0-8a7c-70560c2eb53c" class="wlWriterEditableSmartContent"&gt;
&lt;div&gt;&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/Lab34EF4.0etADO.NETDataServices_FD1D/Entity.Framework.4.0.et.le.T4.zip" target="_self"&gt;Entity
Framework 4.0 et le T4.zip&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=970d538a-a6e3-4949-83fa-f05da965bde8" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,970d538a-a6e3-4949-83fa-f05da965bde8.aspx</comments>
      <category>Entity Framework 4.0</category>
    </item>
    <item>
      <title>Soundex – recherche de mots ressemblants</title>
      <link>http://blog.djeepy1.net/2010/01/18/soundex-recherche-de-mots-ressemblants/</link>
      <comments>http://blog.djeepy1.net/2010/01/18/soundex-recherche-de-mots-ressemblants/#comments</comments>
      <pubDate>Mon, 18 Jan 2010 08:25:21 +0000</pubDate>
      <creator xmlns="http://purl.org/dc/elements/1.1/">djeepy1</creator>
      <category><![CDATA[SQL Server]]></category>
      <category><![CDATA[Recherche]]></category>
      <guid isPermaLink="false">http://djeepy1.wordpress.com/2010/01/18/soundex-recherche-de-mots-ressemblants/</guid>
      <description><![CDATA[Question : j&#8217;ai besoin d&#8217;utiliser la fonction SoundEx de SQL Server, malheureusement il utilise un algorithme anglais (même si ma base est en français)
Réponse :
Revenons un peu sur le Soundex. Le Soudex est une méthode qui permet de savoir si 2 mots sont ressemblants, phonétiquement parlant. Pour cela, on traite le mots en rapprochant les [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.djeepy1.net&blog=7511412&post=191&subd=djeepy1&ref=&feed=1" />]]></description>
      <encoded xmlns="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><strong><u>Question :</u></strong> j&#8217;ai besoin d&#8217;utiliser la fonction SoundEx de SQL Server, malheureusement il utilise un algorithme anglais (même si ma base est en français)</p>
<p><strong><u>Réponse :</u></strong></p>
<p>Revenons un peu sur le Soundex. Le Soudex est une méthode qui permet de savoir si 2 mots sont ressemblants, phonétiquement parlant. Pour cela, on traite le mots en rapprochant les sons, en supprimant les éléments inutiles (doubles lettres, etc.) et on obtient une sorte de Hash du mot le représentant. On peut ensuite les comparer avec une fonction de distance.</p>
<p>Le Soundex est sympa à la base mais contrairement à la recherche FullText, Microsoft n’a jamais fait d’effort pour le promouvoir. Il existe de nombreux algorithmes de Soundex, Microsoft utilise le sien, mais forcément qui ne fonctionne pas dans tous les cas, notamment en multilingue.</p>
<p>Pour contourner cela, te faut soit acheter un composant tout prêt qui corresponde mieux au besoin ou à la langue. Soit l’implémenter soi-même avec une fonction CLR par exemple.</p>
<p>Frédéric Brouard a fait un super article sur le Soundex et propose des algos :</p>
<p><a href="http://sqlpro.developpez.com/cours/soundex/">http://sqlpro.developpez.com/cours/soundex/</a></p>
<br />Publié dans SQL Server Tagged: Recherche, SQL Server <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/djeepy1.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/djeepy1.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/djeepy1.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/djeepy1.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/djeepy1.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/djeepy1.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/djeepy1.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/djeepy1.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/djeepy1.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/djeepy1.wordpress.com/191/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.djeepy1.net&blog=7511412&post=191&subd=djeepy1&ref=&feed=1" />]]></encoded>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blog.djeepy1.net/2010/01/18/soundex-recherche-de-mots-ressemblants/feed/</commentRss>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <content url="http://1.gravatar.com/avatar/d5bd484f181f5352c2e531cb5cc78aef?s=96&amp;d=http%3A%2F%2Fa.wordpress.com%2Fi%2Fmu.gif&amp;r=G" medium="image" xmlns="http://search.yahoo.com/mrss/">
        <title type="html">djeepy1</title>
      </content>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://benoitlaut.net/Trackback.aspx?guid=34306c25-e42b-4d8a-976e-3d1d84e11760</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://benoitlaut.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://benoitlaut.net/PermaLink,guid,34306c25-e42b-4d8a-976e-3d1d84e11760.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Benoît Laut</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://benoitlaut.net/CommentView,guid,34306c25-e42b-4d8a-976e-3d1d84e11760.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=34306c25-e42b-4d8a-976e-3d1d84e11760</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Voici le 3ème épisode de la série d’ateliers sur Entity Framework 4.0. Dans ce lab
je vous propose de découvrir les bases d’ADO.NET Data Services et notamment : 
</p>
        <ul>
          <li>
Exposer un modèle Entity Framework ou une partir du modèle avec ADO.NET Data Services 
</li>
          <li>
Interroger le service via REST 
</li>
          <li>
Créer et utiliser un proxy ADO.NET Data Services afin de récupérer des données</li>
        </ul>
        <p>
Le starter et la solution sont disponible ici : 
</p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:F60BB8FA-6F02-4999-8F5E-9DD4E92C4DA7:c712adbf-598f-44ed-aa72-f949827496b9" class="wlWriterEditableSmartContent">
          <div>
            <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/Lab34EF4.0etADO.NETDataServices_10181/RV.RD.EF.4.0.et.ADO.NET.Data.Services.zip" target="_self">RV
RD EF 4.0 et ADO.NET Data Services.zip</a>
          </div>
        </div>
        <img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=34306c25-e42b-4d8a-976e-3d1d84e11760" />
      </body>
      <title>Lab 3/4 : EF 4.0 et ADO.NET Data Services</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,34306c25-e42b-4d8a-976e-3d1d84e11760.aspx</guid>
      <link>http://benoitlaut.net/2010/01/17/Lab34EF40EtADONETDataServices.aspx</link>
      <pubDate>Sun, 17 Jan 2010 17:18:53 GMT</pubDate>
      <description>&lt;p&gt;
Voici le 3ème épisode de la série d’ateliers sur Entity Framework 4.0. Dans ce lab
je vous propose de découvrir les bases d’ADO.NET Data Services et notamment : 
&lt;ul&gt;
&lt;li&gt;
Exposer un modèle Entity Framework ou une partir du modèle avec ADO.NET Data Services 
&lt;li&gt;
Interroger le service via REST 
&lt;li&gt;
Créer et utiliser un proxy ADO.NET Data Services afin de récupérer des données&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Le starter et la solution sont disponible ici : 
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:F60BB8FA-6F02-4999-8F5E-9DD4E92C4DA7:c712adbf-598f-44ed-aa72-f949827496b9" class="wlWriterEditableSmartContent"&gt;
&lt;div&gt;&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/Lab34EF4.0etADO.NETDataServices_10181/RV.RD.EF.4.0.et.ADO.NET.Data.Services.zip" target="_self"&gt;RV
RD EF 4.0 et ADO.NET Data Services.zip&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=34306c25-e42b-4d8a-976e-3d1d84e11760" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,34306c25-e42b-4d8a-976e-3d1d84e11760.aspx</comments>
      <category>ADO.NET Data Services</category>
      <category>Entity Framework 4.0</category>
    </item>
    <item>
      <title>TechDays 2010 incoming!</title>
      <description>&lt;p&gt;Microsoft organise comme chaque année les TechDays au palais des congrés de Paris.   &lt;br /&gt;C’est le plus gros événement technique de l’année et ne serait-ce que pour voir des stars telles que moi (oui ça va merci), le déplacement vaut le coup.&lt;/p&gt;  &lt;p&gt;D’ailleurs cette année j’anime deux sessions et je vous invite à vous y inscrire :)&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;&lt;u&gt;Intégrez de la puissance supplémentaire dans vos applications de gestion grâce au GPGPU         &lt;br /&gt;&lt;/u&gt;&lt;/b&gt;Audience : Développeurs Enseignants et chercheurs       &lt;br /&gt;Niveau : Expert (400)       &lt;br /&gt;&lt;b&gt;Le lundi 8 février 2010, 11:00- 12:00.&lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;&lt;u&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;&lt;u&gt;Coding4Fun&lt;/u&gt;&amp;#160; (avec le petit Mitsu F. (qui préfére garder l’anonymat)).        &lt;br /&gt;&lt;/b&gt;Audience : Architectes Décideur technologique Développeurs Enseignants et chercheurs Informaticiens       &lt;br /&gt;Niveau : Découverte (100)       &lt;br /&gt;&lt;b&gt;Le lundi 8 février 2010, 17:30- 18:30. &lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;J’en profite pour caler le petit logo avec le mec qui ressemble à rien…&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://www.catuhe.com/image.axd?picture=Vignette_Speaker_H.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Vignette_Speaker_H" border="0" alt="Vignette_Speaker_H" src="http://www.catuhe.com/image.axd?picture=Vignette_Speaker_H_thumb.gif" width="184" height="104" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;</description>
      <link>http://www.catuhe.com/post/TechDays-2010-incoming!.aspx</link>
      <author>kosh</author>
      <comments>http://www.catuhe.com/post/TechDays-2010-incoming!.aspx#comment</comments>
      <guid>http://www.catuhe.com/post.aspx?id=046ec469-1ff4-47f1-8311-cf4c4f52440c</guid>
      <pubDate>Wed, 13 Jan 2010 16:08:54 +0200</pubDate>
      <category>DirectX</category>
      <category>.Net</category>
      <category>Divers</category>
      <publisher xmlns="http://purl.org/dc/elements/1.1/">kosh</publisher>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/pingback.axd</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/post.aspx?id=046ec469-1ff4-47f1-8311-cf4c4f52440c</target>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://www.catuhe.com/trackback.axd?id=046ec469-1ff4-47f1-8311-cf4c4f52440c</ping>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/post/TechDays-2010-incoming!.aspx#comment</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/syndication.axd?post=046ec469-1ff4-47f1-8311-cf4c4f52440c</commentRss>
    </item>
    <item>
      <title>TechDays 2010 !</title>
      <link>http://www.dotmim.com/blogs/mim/archive/2010/01/07/techdays-2010.aspx</link>
      <pubDate>Thu, 07 Jan 2010 15:29:00 GMT</pubDate>
      <guid isPermaLink="false">f24f4a04-d5df-4071-90fb-39191e3ba06c:561</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Mimetis</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotmim.com/blogs/mim/rsscomments.aspx?PostID=561</wfw:commentRss>
      <comments>http://www.dotmim.com/blogs/mim/archive/2010/01/07/techdays-2010.aspx#comments</comments>
      <description>&lt;p&gt;&lt;img style="WIDTH:180px;HEIGHT:100px;" title="TechDays 2010" alt="TechDays 2010" src="http://www.dotmim.com/blogs/mim/Vignette_Speaker_H.gif" width="180" height="100" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;Retrouvez moi au TechDays 2010 !&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Je serai avec plaisir présent cette année encore aux TechDays 2010 à Paris, pour animer 2 sessions.&lt;/p&gt;
&lt;p&gt;Chose assez rare (pour moi) je n&amp;#39;animerai ni session sur SQL SERVER ni session sur SYNC SERVICES.&lt;/p&gt;
&lt;p&gt;Et oui, les temps changent !&lt;/p&gt;
&lt;p&gt;Allez, cette année, vous aurez donc droit à 2 sujets complètements différents :&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;Xaml Futures &lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Sorti il y a maintenant 3 ans avec le .NET Framework 3.0, XAML est un langage de sérialisation utilisé pour le support de WPF, WF puis Silverlight. &lt;br /&gt;Ce langage est capable non seulement de sérialiser un graphe de données de tout type mais également d&amp;#39;associer évènements et désormais code... &lt;br /&gt;Avec .NET 4.0, XAML devient une classe unifiée de base du framework, au service de toutes les couches et dévoile un grand nombre de points d&amp;#39;extensibilité. &lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;b&gt;Découvrez Azure par la pratique en migrant vos applications &lt;/b&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;Dans cette session, vous découvrirez tous les aspects de Windows Azure au travers de la migration d’une vraie application sur la plate-forme de cloud-computing de Microsoft.Cette session se veut didactique et vous permettra de comprendre les enjeux, les atouts et les choses à savoir pour mettre un peu de «&amp;nbsp;cloud&amp;nbsp;» dans votre système d’informations.&lt;br /&gt;&lt;/span&gt;&lt;span style="FONT-FAMILY:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;Toutes les technologies liées à Azure seront abordées&amp;nbsp;: SQL Azure, Azure Storage, Service Bus Web Role, AppFabric, etc. n’auront plus de secret pour vous.&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;Rendez vous à tous là bas !&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="FONT-FAMILY:&amp;#39;Segoe UI&amp;#39;,&amp;#39;sans-serif&amp;#39;;FONT-SIZE:10pt;"&gt;PS&amp;nbsp; : Petit Jesus, s&amp;#39;il te plait, cette année, promets moi que je pourrai monter à Paris sans encombre .. et que tu ne cloueras pas les avions au sol à cause du mauvais temps, comme l&amp;#39;année dernière&amp;nbsp;:)&lt;/span&gt;&lt;/p&gt;&lt;img src="http://www.dotmim.com/aggbug.aspx?PostID=561" width="1" height="1"&gt;</description>
      <category domain="http://www.dotmim.com/blogs/mim/archive/tags/Techdays+2010/default.aspx">Techdays 2010</category>
    </item>
    <item>
      <title>Numéro de semaine – Norme ISO</title>
      <link>http://blog.djeepy1.net/2009/12/30/numro-de-semaine-norme-iso/</link>
      <comments>http://blog.djeepy1.net/2009/12/30/numro-de-semaine-norme-iso/#comments</comments>
      <pubDate>Wed, 30 Dec 2009 15:26:49 +0000</pubDate>
      <creator xmlns="http://purl.org/dc/elements/1.1/">djeepy1</creator>
      <category><![CDATA[Reporting Services]]></category>
      <category><![CDATA[SSRS;Reporting Services]]></category>
      <guid isPermaLink="false">http://djeepy1.wordpress.com/2009/12/30/numro-de-semaine-norme-iso/</guid>
      <description><![CDATA[Il y a plusieurs façons de calculer le N° de semaine. J’y ai déjà été confronté il y a quelques années.
Il y a une norme ISO qui est notamment utilisée par les calendriers papier (http://fr.wikipedia.org/wiki/Numérotation_ISO_des_semaines).
On peut avoir ce comportement dans Outlook ; il faut le configurer ici :
Calendar Properties

Le problème se pose quand on doit [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.djeepy1.net&blog=7511412&post=188&subd=djeepy1&ref=&feed=1" />]]></description>
      <encoded xmlns="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Il y a plusieurs façons de calculer le N° de semaine. J’y ai déjà été confronté il y a quelques années.</p>
<p>Il y a une norme ISO qui est notamment utilisée par les calendriers papier (<a href="http://fr.wikipedia.org/wiki/Numérotation_ISO_des_semaines">http://fr.wikipedia.org/wiki/Numérotation_ISO_des_semaines</a>).</p>
<p>On peut avoir ce comportement dans Outlook ; il faut le configurer ici :</p>
<p><em>Calendar Properties<br />
</em><a href="http://djeepy1.files.wordpress.com/2009/12/clip_image002.jpg"><img style="display:inline;border-width:0;" title="clip_image002" src="http://djeepy1.files.wordpress.com/2009/12/clip_image002_thumb.jpg?w=420&#038;h=219" border="0" alt="clip_image002" width="420" height="219" /></a></p>
<p>Le problème se pose quand on doit l’utiliser dans du code. J’ai notamment eu le cas dans un rapport Reporting Services.</p>
<p>J’utilise l’expression suivante :</p>
<pre class="csharpcode">DatePart(“ww”, Fields!MaDate.<span class="kwrd">Value</span>)</pre>
<p>Or, cette instruction ne se base pas sur la norme ISO mais démarre au 1er janvier.</p>
<p>En T-SQL, on peut avoir le bon calcul en changeant la constante :</p>
<pre class="csharpcode"><span class="kwrd">SELECT</span> DATEPART(ISOWK, <span class="str">'2010-01-04'</span>)</pre>
<p>Mais cette constante n’existe pas dans le moteur d’expression de Reporting Services…</p>
<p>Donc il vous faudra vous baser sur un bout de code embarqué.</p>
<p>Et hop, une remontée de plus sur Connect.</p>
<br />Publié dans Reporting Services Tagged: SSRS;Reporting Services <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/djeepy1.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/djeepy1.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/djeepy1.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/djeepy1.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/djeepy1.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/djeepy1.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/djeepy1.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/djeepy1.wordpress.com/188/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/djeepy1.wordpress.com/188/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/djeepy1.wordpress.com/188/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.djeepy1.net&blog=7511412&post=188&subd=djeepy1&ref=&feed=1" />]]></encoded>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blog.djeepy1.net/2009/12/30/numro-de-semaine-norme-iso/feed/</commentRss>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">2</comments>
      <content url="http://1.gravatar.com/avatar/d5bd484f181f5352c2e531cb5cc78aef?s=96&amp;d=http%3A%2F%2Fa.wordpress.com%2Fi%2Fmu.gif&amp;r=G" medium="image" xmlns="http://search.yahoo.com/mrss/">
        <title type="html">djeepy1</title>
      </content>
      <content url="http://djeepy1.files.wordpress.com/2009/12/clip_image002_thumb.jpg" medium="image" xmlns="http://search.yahoo.com/mrss/">
        <title type="html">clip_image002</title>
      </content>
    </item>
    <item>
      <title>Plan de maintenance : Mon log grossit !!! (trop ?)</title>
      <link>http://www.dotmim.com/blogs/mim/archive/2009/12/29/plan-de-maintenance-mon-log-grossit-trop.aspx</link>
      <pubDate>Tue, 29 Dec 2009 15:01:38 GMT</pubDate>
      <guid isPermaLink="false">f24f4a04-d5df-4071-90fb-39191e3ba06c:560</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Mimetis</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotmim.com/blogs/mim/rsscomments.aspx?PostID=560</wfw:commentRss>
      <comments>http://www.dotmim.com/blogs/mim/archive/2009/12/29/plan-de-maintenance-mon-log-grossit-trop.aspx#comments</comments>
      <description>&lt;p&gt;Je vais faire un petit topo sur le plan de maintenance que tout DBA se doit de mettre en place sur ses bases de données. Enfin sur un point particulier du plan de maintenance. Aprés une sauvegarde complète, pourquoi la prochaine sauvegarde du journal de transaction est elle énoôôÔÔôorme…. ?&lt;/p&gt;  &lt;p&gt;Avant d’aller plus loin, je me base sur les plans de maintenance, mais il y’a ceux qui préfèrent pour tout se cogner à la main, pour plus de contrôle sur leur plan de maintenance, pour ceux là, je vous conseille de voir par ici : &lt;a href="http://ola.hallengren.com/"&gt;All in one by Hallengren&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Après y’a ceux qui passent par les plans de maintenance. Solution intégrée dans SQL SERVER 2005 et 2008, s’appuyant sur des lots SSIS.&lt;/p&gt;  &lt;p&gt;Avant d’exposer le problème voici un exemple de plan de maintenance que j’ai rencontré :&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_5D81C9E9.png" width="454" height="486" /&gt;Dans ce plan j’ai 3 sous plans :&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Le premier (copie d’écran précédente) effectue une sauvegarde complète de la base de données, après avoir fait un CheckDB, une reconstruction complète de l’index et une mise à jour des statistiques.&lt;/li&gt;    &lt;li&gt;Le deuxième sous plan effectue une sauvegarde différentielle, avec une réorganisation de l’index (bon ça c’est pas obligatoire, ça dépend de votre stratégie)&lt;/li&gt;    &lt;li&gt;Enfin le troisième sous plan effectue une sauvegarde du journal de Log&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Au niveau du scheduling, partons sur une théorie qui en vaut une autre : Un backup complet la nuit, un différentiel à Midi et le journal de log toutes les heures.&lt;/p&gt;  &lt;p&gt;(&lt;strong&gt;&lt;u&gt;Note&lt;/u&gt;&lt;/strong&gt; : Le Update Statistics dans la copie d’écran précédente ne SERT à RIEN : Voir le post de Dieu Paul Randal sur le sujet : &lt;a title="http://www.sqlskills.com/BLOGS/PAUL/post/Search-Engine-QA-10-Rebuilding-Indexes-and-Updating-Statistics.aspx" href="http://www.sqlskills.com/BLOGS/PAUL/post/Search-Engine-QA-10-Rebuilding-Indexes-and-Updating-Statistics.aspx"&gt;http://www.sqlskills.com/BLOGS/PAUL/post/Search-Engine-QA-10-Rebuilding-Indexes-and-Updating-Statistics.aspx&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;Voici les données du problème : APRES le travail du premier sous plan (sauvegarde complète) la sauvegarde de mon journal de log est énorme (mettons pour l’exemple 100 Mo), alors que ce travail journalier ne représente que peu de transactions et ne génère qu’une petite sauvegarde (mettons 1 Mo)&lt;/p&gt;  &lt;p&gt;Voici une copie d’écran de ce qui se passe sur mon poste de dév :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotmim.com/blogs/mim/image_19EA18C7.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_thumb_20013F95.png" width="454" height="128" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Bon chez moi, avec le peu de données et surtout pas beaucoup de mouvements sur ma base de test, ça représente pas grand chose, mais imaginez ce qui arrive sur une base de données de plusieurs GO ou TB.. ça peut poser très vite un soucis, surtout si celle ci est beaucoup utilisée (ce qui est quand même le principe d’utilisation d’une base !)&lt;/p&gt;  &lt;p&gt;Pour exemple, j’ai un client qui travaille sur &lt;strong&gt;Team Foundation Server&lt;/strong&gt; et dont le log sauvegardé après le backup complet fait exactement la taille de la base de données, soit prés de 200 Go…. C’est long et ça prend de la place !&lt;/p&gt;  &lt;p&gt;Mais surtout, avant de penser à “&lt;strong&gt;comment&lt;/strong&gt;” résoudre ce problème, c’est “&lt;strong&gt;pourquoi&lt;/strong&gt;” ça grossit comme ça lors de la sauvegarde du premier journal de transaction après la sauvegarde complète ?&lt;/p&gt;  &lt;p&gt;&lt;u&gt;Une Fausse idée&lt;/u&gt; : Un backup full&lt;strong&gt; NE génère PAS&lt;/strong&gt; d’entrée des données sauvegardées dans le journal de Log (enfin si peu). Bon ça c’est dit, et on l’oublie pas.&lt;/p&gt;  &lt;p&gt;Par contre, si, une ré indexation complète EST journalisée, toutes les opérations sont écrites dans le journal de log. Et quand un fait un Rebuild, bah il écrit toutes les données réindexées dans le journal de log (modulo les index non fragmentés non reconstruits) Idem pour la mise à jour des stats par exemple.&lt;/p&gt;  &lt;p&gt;Du coup on s’étonne moins de retrouver un log qui correspond presque à la taille de notre base ! (imaginez sur une très très très grosse base) Tout dépend du niveau de fragmentation des index, bref, problématique.&lt;/p&gt;  &lt;p&gt;Alors la solution ? En fait, Y’a 2 solutions, tout dépend de votre architecture.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;1) Vous disposez de suffisamment de place pour stocker votre log énormissime. &lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;STOP ! Laissez le comme ça le pauvre (enfin pauvre… façon de parler ;)). &lt;/p&gt;  &lt;p&gt;NE FAITES PAS de shrink de votre log. SQL SERVER aura besoin de cet espace au prochain backup complet. Ne faites pas de shrink, vous ne ferez que générer de la fragmentation de votre disque dur, inutilement.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;NE FAITES PAS DE SHRINK DANS VOS PLANS DE MAINTENANCE&lt;/strong&gt; (Vous sentez le cri du coeur là ? Y’a pas UNE société où je ne rencontre pas cette hérésie dans les plans de maintenance ! Prenez des bonnes résolutions pour cette année 2010, virez moi ça de vos plans de maintenance)&lt;/p&gt;  &lt;p&gt;Ok votre log ne génère que 10% d’espace en journée, c’est un fait. Mais cet espace est NECESSAIRE à SQL SERVER lors de son plan de maintenance. NE FAITES PAS DE SHRINK (on le dira jamais assez)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;2) Vous ne disposez pas de suffisamment de place pour stocker un log énormissime.&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Bon, là il va falloir faire des concessions. D’abord cette technique ne fonctionnera pas si vous avez votre base de données en mode Mirroir ou en réplication transactionnelle par exemple (dans ce cas, cf solution 1 et achetez du disque dur :))&lt;/p&gt;  &lt;p&gt;Si ce n’est pas le cas, on peut créer une solution qui va désactiver le log pendant la reconstruction de l’index complet et le réactiver juste avant le backup (puisque celui ci ne génère pas grand chose dans le log)&lt;/p&gt;  &lt;p&gt;SI vous voulez vous convaincre de cette solution, un petit tour sur ce post (de Dieu, encore une fois) devrez vous convaincre de continuer la lecture de ce post : &lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.sqlskills.com/BLOGS/PAUL/post/Misconceptions-around-the-log-and-log-backups-how-to-convince-yourself.aspx" href="http://www.sqlskills.com/BLOGS/PAUL/post/Misconceptions-around-the-log-and-log-backups-how-to-convince-yourself.aspx"&gt;http://www.sqlskills.com/BLOGS/PAUL/post/Misconceptions-around-the-log-and-log-backups-how-to-convince-yourself.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Bon, l’idée c’est de désactiver l’écriture du journal de log avant la ré indexation et de la réactiver juste après. &lt;/p&gt;  &lt;p&gt;&lt;u&gt;Note&lt;/u&gt;: je n’utilise pas l’instruction &lt;strong&gt;BACKUP LOG MaBase WITH TRUNCATE_ONLY, &lt;/strong&gt;celle ci est devenue obsolète. Je pointe vers un sujet de Christian sur ce point là : &lt;a title="http://blogs.codes-sources.com/christian/archive/2007/08/19/sql-server-interdire-les-op-rations-de-troncation-du-journal-de-transaction-truncate-only-no-log.aspx" href="http://blogs.codes-sources.com/christian/archive/2007/08/19/sql-server-interdire-les-op-rations-de-troncation-du-journal-de-transaction-truncate-only-no-log.aspx"&gt;http://blogs.codes-sources.com/christian/archive/2007/08/19/sql-server-interdire-les-op-rations-de-troncation-du-journal-de-transaction-truncate-only-no-log.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Nous utilisons donc une astuce similaire qui consiste à passer du mode de recouvrement Complet au mode de recouvrement Simple (et re hop, re post de Christian sur le sujet : &lt;a title="http://blogs.codes-sources.com/christian/archive/2007/02/12/sql-server-faq-sql-pourquoi-mon-fichier-de-log-ldf-est-il-aussi-gros-comment-diminuer-sa-taille.aspx" href="http://blogs.codes-sources.com/christian/archive/2007/02/12/sql-server-faq-sql-pourquoi-mon-fichier-de-log-ldf-est-il-aussi-gros-comment-diminuer-sa-taille.aspx"&gt;http://blogs.codes-sources.com/christian/archive/2007/02/12/sql-server-faq-sql-pourquoi-mon-fichier-de-log-ldf-est-il-aussi-gros-comment-diminuer-sa-taille.aspx&lt;/a&gt; )&lt;/p&gt;  &lt;p&gt;Voila ce que ça donne lors de la modification de mon plan de maintenance (Notez au passage que j’ai fais sauter le Update Statistics, qui sert à rien ici)&lt;/p&gt;  &lt;p align="center"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_78E68052.png" width="304" height="294" /&gt;&lt;strong&gt;&lt;font size="1"&gt;Etape 1 : Passage en mode simple&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p align="center"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_7AD3CF5B.png" width="304" height="283" /&gt;&lt;font size="1"&gt;&lt;strong&gt;Etape 2 : Re passage en mode complet (à placer après la réindexation)&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font size="2"&gt;Ce qui donne un plan de maintenance ressemblant à peu prés à ça :&lt;/font&gt;&lt;/p&gt;   &lt;strong&gt;&lt;font size="1"&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/blockquote&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_666E09D0.png" width="454" height="458" /&gt;&lt;/p&gt;  &lt;p&gt;Après exécution de ce plan là, et exécution de la sauvegarde du log, on retrouve quelque chose de plus … concis :)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://www.dotmim.com/blogs/mim/image_49A46EEE.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_thumb_69AF55DE.png" width="454" height="210" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Voilà une solution qui permet de sauvegarder de l’espace disque, sans passer par du Shrink File ABUSIF ! (on le dira jamais assez !!!)&lt;/p&gt;  &lt;p&gt;Bon Plan de maintenances de Noel à tous ! &lt;/p&gt;&lt;img src="http://www.dotmim.com/aggbug.aspx?PostID=560" width="1" height="1"&gt;</description>
      <category domain="http://www.dotmim.com/blogs/mim/archive/tags/SQL+SERVER+2005/default.aspx">SQL SERVER 2005</category>
      <category domain="http://www.dotmim.com/blogs/mim/archive/tags/SQL+SERVER+2008/default.aspx">SQL SERVER 2008</category>
      <category domain="http://www.dotmim.com/blogs/mim/archive/tags/Maintenance+Plan/default.aspx">Maintenance Plan</category>
    </item>
    <item>
      <title>Memory Leak sur le Tooltip dans une fenêtre MDI</title>
      <link>http://www.dotmim.com/blogs/mim/archive/2009/12/29/memory-leak-sur-le-tooltip-dans-une-fen-234-tre-mdi.aspx</link>
      <pubDate>Tue, 29 Dec 2009 11:37:30 GMT</pubDate>
      <guid isPermaLink="false">f24f4a04-d5df-4071-90fb-39191e3ba06c:558</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Mimetis</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">1</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotmim.com/blogs/mim/rsscomments.aspx?PostID=558</wfw:commentRss>
      <comments>http://www.dotmim.com/blogs/mim/archive/2009/12/29/memory-leak-sur-le-tooltip-dans-une-fen-234-tre-mdi.aspx#comments</comments>
      <description>&lt;p&gt;Je ne parle pas souvent de sujet de ce type, me cantonnant la plupart du temps à des astuces liées à l’accès aux données ou à de la synchro, sujets que j’affectionne particulièrement, mais aujourd’hui je vais faire une exception pour vous parler d’un outil qui m’a permis de déceler un horrible bug dans le Framework.Net (Si si c’est rare, mais ça arrive, on est humain !)&lt;/p&gt;  &lt;p&gt;Bon… bug certes, mais dans un cas tellement particulier ! Imaginez qu’il vous faut mettre en relation : Une fenêtre mère Parent, une fenêtre fille MDI et un User Control contenant un ToolTip. Oui, faut chercher loin (vous imaginez même pas)&lt;/p&gt;  &lt;p&gt;Et bien sachez que le Tooltip génère un memory leak (fuite mémoire en français dans le texte) ! Celui ci gardant une référence sur la fenêtre mère (Cherchez pas pourquoi, moi j’ai tenté de trouver une explication rationnelle, et après je suis allez voir Avatar, j’ai laissé tomber l’affaire).&lt;/p&gt;  &lt;p&gt;Pour en arriver à cette conclusion, je me suis d’abord arracher la moitié de la tignasse, j’ai sacrifié 4 pingouins et descendu une quantité non négligeable de férro rocher (merci Mag au passage !)&lt;/p&gt;  &lt;p&gt;Ensuite j’ai commencé à faire le tour des outils de diagnostic de mémoire, et le moins qu’on puisse dire, c’est qu’il y a du lourd sur le marché.&lt;/p&gt;  &lt;p&gt;Je me suis tourné vers une solution proposé par &lt;a href="http://www.red-gate.com/products/ANTS_Memory_Profiler/index.htm"&gt;Red Gate : Memory Profiler&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="2_profiling_application_screen" border="0" alt="2_profiling_application_screen" src="http://www.dotmim.com/blogs/mim/2_profiling_application_screen_0B986647.png" width="404" height="347" /&gt; &lt;/p&gt;  &lt;p&gt;Le principe est assez simple : Vous prenez une photo étalon de votre application à un instant T, puis à un instant T+1 et vous comparez les résultats :&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="3_first_snapshot_results" border="0" alt="3_first_snapshot_results" src="http://www.dotmim.com/blogs/mim/3_first_snapshot_results_41B9DE96.png" width="404" height="362" /&gt;&lt;/p&gt;  &lt;p&gt;Vous pouvez même obtenir un graphe complet (graphe de rétention) représentant le chainage de votre instance en mémoire avec le GC qui l’empêche de collecter ^^&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="12_object_retention_graph" border="0" alt="12_object_retention_graph" src="http://www.dotmim.com/blogs/mim/12_object_retention_graph_03FCD10D.png" width="404" height="309" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Grace à cet outil, j’ai pu remonter pas mal de soucis dans l’application que j’ai du auditer, et notamment ce fameux bug du ToolTip.&lt;/p&gt;  &lt;p&gt;D’abord, à chaque “ouverture –fermeture” d’une fenêtre la mémoire n’était jamais libérer (même en forçant le Garbage Collector) &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_1A033C9F.png" width="404" height="61" /&gt; &lt;/p&gt;  &lt;p&gt;Le nombre d’instances en mémoire explosent très vite du coup : &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_204A132D.png" width="404" height="459" /&gt;Je note surtout la présence de ma fenêtre MDI, qui contient l’ensemble des autres composants. ah ah ! problème ici :) &lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_16254C35.png" width="404" height="54" /&gt;Et comme on peut s’y attendre, j’ai bien 7 instances en mémoire, correspondant aux 7 “ouverture fermeture” de ma fenêtre… &lt;/p&gt;  &lt;p&gt;Allez hop un petit tour sur le graphe de rétention et voila ce que ça donne :&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_231F2C46.png" width="404" height="450" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;J’ai passé un bon moment à comprendre que le problème ne venait pas du bouton Valider, mais du Tooltip lui même… C’est vrai, on s’attend plus à avoir un problème dans SON code plutôt que dans le code du .NET en fait :)&lt;/p&gt;  &lt;p&gt;Bref, un petit tour dans le user control incriminé, un bon pattern &lt;strong&gt;IDisposable&lt;/strong&gt; qui va bien, et voilà le “patch” :&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_1E0CC8CA.png" width="454" height="159" /&gt;Petit test pour vérifier tout ça :&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_2F10F6AD.png" width="404" height="62" /&gt; &lt;/p&gt;  &lt;p&gt;La fuite mémoire n’a plus l’air de la partie. On va quand même vérifier les instances en mémoire :&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_5572D9F8.png" width="404" height="139" /&gt; &lt;/p&gt;  &lt;p&gt;AH ben y’en a quand même beaucoup moins !&lt;/p&gt;  &lt;p&gt;Et voilà, un petit soucis de régler :)&lt;/p&gt;  &lt;p&gt;Next !!!!&lt;/p&gt;  &lt;p&gt;Bon monitoring de Noel à tous! &lt;/p&gt;&lt;img src="http://www.dotmim.com/aggbug.aspx?PostID=558" width="1" height="1"&gt;</description>
    </item>
    <item>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://benoitlaut.net/Trackback.aspx?guid=a88ab13a-f267-4737-8853-40b516287df0</ping>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://benoitlaut.net/pingback.aspx</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://benoitlaut.net/PermaLink,guid,a88ab13a-f267-4737-8853-40b516287df0.aspx</target>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Benoît Laut</creator>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://benoitlaut.net/CommentView,guid,a88ab13a-f267-4737-8853-40b516287df0.aspx</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://benoitlaut.net/SyndicationService.asmx/GetEntryCommentsRss?guid=a88ab13a-f267-4737-8853-40b516287df0</commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Pour continuer la découverte du TFS SDK, je vous propose de découvrir comment retrouver
l’adresse du Team System Web Access (TSWA) d’un serveur Team grâce au TFS SDK. Pour
info je n’ai trouvé aucune documentation concernant cette partie du SDK sur la MSDN.
</p>
        <p>
Pourquoi avoir besoin de récupérer les URL ? Tout simplement lorsque l’on étend les
fonctionnalités de TFS vers d’autres outils tiers. Par exemple, dans une fonctionnalité
de <a href="http://bowie.codeplex.com" target="_blank">BOWIE 2010</a> d’envoie de
Work Items par mail, je voulais, pour chacun des work items, avoir un lien qui pointe
vers la page d’édition du work item comme indiqué ci-dessous :
</p>
        <p>
          <a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/CommentretrouverladresseduTeamSystemWebA_11A7D/image_2.png">
            <img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/CommentretrouverladresseduTeamSystemWebA_11A7D/image_thumb.png" width="371" height="310" />
          </a>
        </p>
        <p>
Pour cela nous avons besoin d’une instance de la classe TeamFoundationServer que l’on
trouve dans l’assembly Microsoft.TeamFoundation.Client.dll. Il faut ensuite récupérer
une instance de la classe TswaClientHyperlinkService via la méthode GetService de
l’objet TeamFoundationServer :
</p>
        <p></p>
        <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:40b5b7f7-183b-4c17-ae78-cf13ed8b673b" class="wlWriterEditableSmartContent">
          <pre name="code" class="c#">TeamFoundationServer server = TeamFoundationServerFactory.GetServer("http://localhost:8080/tfs/DefaultCollection");
TswaClientHyperlinkService tswa = server.GetService&lt;TswaClientHyperlinkService&gt;();</pre>
        </div>
Grâce à cette classe nous allons pouvoir récupérer les url du Team System Web Access.
Dans mon cas, pour récupérer l’url d’un work item à partir de son Id, il suffit d’utiliser
la méthode GetWorkItemEditorUrl(int id) : 
<p></p><p></p><div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:8e6e7793-3263-47af-b5a4-d7240fd8334a" class="wlWriterEditableSmartContent"><pre name="code" class="c#">int wiId = 3;
Uri wiUri = tswa.GetWorkItemEditorUrl(wiId);</pre></div><p></p><p>
On obtient une URL du style : <a title="http://win2008ben:8080/tfs/web/wi.aspx?pcguid=7e6d1e34-000d-4adb-ad5e-93db70187570&amp;id=3" href="http://localhost:8080/tfs/web/wi.aspx?pcguid=7e6d1e34-000d-4adb-ad5e-93db70187570&amp;id=3">http://localhost:8080/tfs/web/wi.aspx?pcguid=7e6d1e34-000d-4adb-ad5e-93db70187570&amp;id=3</a></p><p>
Cette URL permet d’accéder à la page suivante :
</p><p><a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/CommentretrouverladresseduTeamSystemWebA_11A7D/image_4.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/CommentretrouverladresseduTeamSystemWebA_11A7D/image_thumb_1.png" width="531" height="455" /></a></p><p>
Voici quelques unes des méthodes de la classe TswaClientHyperlinkService permettant
de récupérer les url d’objets TFS:
</p><ul><li>
GetChangesetDetailsUrl(int changeSetId) 
</li><li>
GetHomeUrl(Uri projectUri) 
</li><li>
GetShelvesetDetailsUrl(string shelvesetName, string shelvesetOwner) 
</li><li>
GetSourceExplorerUrl(string serverItemPath) 
</li><li>
GetViewBuildDetailsUrl(Uri buildUri) 
</li><li>
GetWorkItemQueryEditorUrl(Uri projectUri, string queryPath) 
</li><li>
…</li></ul><p>
La prochaine fois je vous ferai découvrir l’API de Build du TFS SDK, via le type IBuildServer.
</p><img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=a88ab13a-f267-4737-8853-40b516287df0" /></body>
      <title>Comment retrouver l’adresse du Team System Web Access avec le TFS SDK 2010 ?</title>
      <guid isPermaLink="false">http://benoitlaut.net/PermaLink,guid,a88ab13a-f267-4737-8853-40b516287df0.aspx</guid>
      <link>http://benoitlaut.net/2009/12/21/CommentRetrouverLadresseDuTeamSystemWebAccessAvecLeTFSSDK2010.aspx</link>
      <pubDate>Mon, 21 Dec 2009 19:17:37 GMT</pubDate>
      <description>&lt;p&gt;
Pour continuer la découverte du TFS SDK, je vous propose de découvrir comment retrouver
l’adresse du Team System Web Access (TSWA) d’un serveur Team grâce au TFS SDK. Pour
info je n’ai trouvé aucune documentation concernant cette partie du SDK sur la MSDN.
&lt;/p&gt;
&lt;p&gt;
Pourquoi avoir besoin de récupérer les URL ? Tout simplement lorsque l’on étend les
fonctionnalités de TFS vers d’autres outils tiers. Par exemple, dans une fonctionnalité
de &lt;a href="http://bowie.codeplex.com" target="_blank"&gt;BOWIE 2010&lt;/a&gt; d’envoie de
Work Items par mail, je voulais, pour chacun des work items, avoir un lien qui pointe
vers la page d’édition du work item comme indiqué ci-dessous :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/CommentretrouverladresseduTeamSystemWebA_11A7D/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/CommentretrouverladresseduTeamSystemWebA_11A7D/image_thumb.png" width="371" height="310"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Pour cela nous avons besoin d’une instance de la classe TeamFoundationServer que l’on
trouve dans l’assembly Microsoft.TeamFoundation.Client.dll. Il faut ensuite récupérer
une instance de la classe TswaClientHyperlinkService via la méthode GetService de
l’objet TeamFoundationServer :
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:40b5b7f7-183b-4c17-ae78-cf13ed8b673b" class="wlWriterEditableSmartContent"&gt;&lt;pre name="code" class="c#"&gt;TeamFoundationServer server = TeamFoundationServerFactory.GetServer("http://localhost:8080/tfs/DefaultCollection");
TswaClientHyperlinkService tswa = server.GetService&amp;lt;TswaClientHyperlinkService&amp;gt;();&lt;/pre&gt;
&lt;/div&gt;
Grâce à cette classe nous allons pouvoir récupérer les url du Team System Web Access.
Dans mon cas, pour récupérer l’url d’un work item à partir de son Id, il suffit d’utiliser
la méthode GetWorkItemEditorUrl(int id) : 
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:8e6e7793-3263-47af-b5a4-d7240fd8334a" class="wlWriterEditableSmartContent"&gt;&lt;pre name="code" class="c#"&gt;int wiId = 3;
Uri wiUri = tswa.GetWorkItemEditorUrl(wiId);&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
On obtient une URL du style : &lt;a title="http://win2008ben:8080/tfs/web/wi.aspx?pcguid=7e6d1e34-000d-4adb-ad5e-93db70187570&amp;amp;id=3" href="http://localhost:8080/tfs/web/wi.aspx?pcguid=7e6d1e34-000d-4adb-ad5e-93db70187570&amp;amp;id=3"&gt;http://localhost:8080/tfs/web/wi.aspx?pcguid=7e6d1e34-000d-4adb-ad5e-93db70187570&amp;amp;id=3&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Cette URL permet d’accéder à la page suivante :
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://benoitlaut.net/content/binary/WindowsLiveWriter/CommentretrouverladresseduTeamSystemWebA_11A7D/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://benoitlaut.net/content/binary/WindowsLiveWriter/CommentretrouverladresseduTeamSystemWebA_11A7D/image_thumb_1.png" width="531" height="455"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Voici quelques unes des méthodes de la classe TswaClientHyperlinkService permettant
de récupérer les url d’objets TFS:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
GetChangesetDetailsUrl(int changeSetId) 
&lt;li&gt;
GetHomeUrl(Uri projectUri) 
&lt;li&gt;
GetShelvesetDetailsUrl(string shelvesetName, string shelvesetOwner) 
&lt;li&gt;
GetSourceExplorerUrl(string serverItemPath) 
&lt;li&gt;
GetViewBuildDetailsUrl(Uri buildUri) 
&lt;li&gt;
GetWorkItemQueryEditorUrl(Uri projectUri, string queryPath) 
&lt;li&gt;
…&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
La prochaine fois je vous ferai découvrir l’API de Build du TFS SDK, via le type IBuildServer.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://benoitlaut.net/aggbug.ashx?id=a88ab13a-f267-4737-8853-40b516287df0" /&gt;</description>
      <comments>http://benoitlaut.net/CommentView,guid,a88ab13a-f267-4737-8853-40b516287df0.aspx</comments>
      <category>Outlook Work Items Extension</category>
      <category>Team System Web Access</category>
      <category>TFS SDK</category>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-3135430140435538927</guid>
      <pubDate>Tue, 15 Dec 2009 16:13:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-12-15T19:55:26.034+01:00</updated>
      <title>Optimisation du référencement avec le SEO Toolkit</title>
      <description>&lt;p&gt;Je viens de découvrir grâce à &lt;a href="http://weblogs.asp.net/scottgu/archive/2009/12/15/search-engine-optimization-seo-toolkit.aspx"&gt;Scott Guthrie&lt;/a&gt; un outil qui va vite devenir indispensable à tout développeur de sites web : le SEO toolkit. SEO, pour ceux qui ne le savent pas, signifie “Search Engine Optimisation”. Il s’agit d’optimiser son site web pour que les moteurs de recherche en indexent mieux le contenu, afin d’apparaitre plus haut dans les résultats de recherche.&lt;/p&gt;  &lt;p&gt;Le SEO toolkit peut être téléchargé sur &lt;a href="http://www.microsoft.com/web/page.aspx?templang=en-us&amp;amp;chunkfile=seo.html"&gt;le site de Microsoft&lt;/a&gt;, ou bien directement à partir de l’outil “Web Platform Installer” (qu’il vous faudra de toute façon utiliser pour l’installer). &lt;/p&gt;  &lt;p&gt;Une fois installé, le principe est simple : vous mettez l’URL de la page d’accueil de votre site, et l’outil va parcourir tout votre site et vous signaler tout ce que vous pourriez améliorer. Vous pouvez l’utiliser avec n’importe quel site, pas besoin d’avoir d’utiliser IIS : le programme agit comme un bot qui va télécharger les pages de votre site web, comme le ferait n’importe quel moteur de recherche.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_1fIQLbpqRAw/Sye1tuJ85_I/AAAAAAAAByM/XWb-qidkAT4/s1600-h/image%5B4%5D.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_1fIQLbpqRAw/Sye1uSPzipI/AAAAAAAAByQ/wDwALa5915o/image_thumb%5B2%5D.png?imgmax=800" width="762" height="451" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Une fois l’analyse du site terminée, vous aurez de nombreuses informations sur le site analysé, de différents types. Ainsi, cet outil est très utile pour, entre autres, retrouver les liens cassés à l’intérieur de vos pages.&lt;/p&gt;  &lt;p&gt;Je ne saurai trop vous conseiller de le tester de suite afin de vous faire votre propre idée.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-3135430140435538927?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/12/optimisation-du-referencement-avec-le.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total>
    </item>
    <item>
      <title>Interfaces professionnelles avec Windows Mobile (Part 2)</title>
      <link>http://blogs.developpeur.org/vko/archive/2009/12/09/interfaces-professionnelles-avec-windows-mobile-part-2.aspx</link>
      <pubDate>Wed, 09 Dec 2009 20:12:04 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:47386</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Vko</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">4</comments>
      <comments>http://blogs.developpeur.org/vko/comments/47386.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/vko/commentrss.aspx?PostID=47386</commentRss>
      <description>
  
Dans la première partie, nous avons vu un aperçu des problématiques et des limitations de Windows Mobile lors la création de formulaires.
Dans cette seconde partie, nous allons examiner les outils mis à notre disposition afin de créer des formulair...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=47386" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/vko/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-978722883363182789</guid>
      <pubDate>Mon, 07 Dec 2009 16:17:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-12-07T17:46:08.418+01:00</updated>
      <category domain="http://www.blogger.com/atom/ns#">SigmaT</category>
      <category domain="http://www.blogger.com/atom/ns#">TFS</category>
      <category domain="http://www.blogger.com/atom/ns#">Job</category>
      <category domain="http://www.blogger.com/atom/ns#">Bewise</category>
      <title>Des nouvelles de Bewise</title>
      <description>&lt;p&gt;Je ne vais pas parler d’asp.net aujourd’hui (et c’est pourtant pas l’envie qui m’en manque), mais vous donner quelques nouvelles de Bewise.&lt;/p&gt;  &lt;p&gt;Pour commencer, je vous informe que Bewise sera présent au prochain SigmaT, qui se déroulera ce vendredi 11 décembre à l’IRIT, à l’université Paul Sabatier de Toulouse. Ionut Milhalcea vous y présentera une session “Pratiques agiles avec Team Foundation Server 2010”. Pour plus d’informations, le programme se trouve à cette adresse : &lt;a title="http://www.sigmat.fr/dotclear/index.php?post/2009/11/24/Programme-du-SigmaT12" href="http://www.sigmat.fr/dotclear/index.php?post/2009/11/24/Programme-du-SigmaT12"&gt;http://www.sigmat.fr/dotclear/index.php?post/2009/11/24/Programme-du-SigmaT12&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Allez-y nombreux, et pensez à &lt;a href="http://www.sigmat.fr/dotclear/index.php?form/inscription"&gt;vous inscrire&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;En toute logique, après ce séminaire vous devriez être pris d’une envie irrésistible de venir travailler avec nous ! ;) Eh bien, sachez que c’est maintenant chose possible, puisque Bewise recrute ! Regardez les offres ci-dessous, et si vous pensez correspondre aux profils demandés n’hésitez pas à postuler.&lt;/p&gt;  &lt;h3&gt;Consultant Sharepoint&lt;/h3&gt;  &lt;p&gt;Bewise est une structure en forte expansion. Pour l’accompagner, nous recherchons un&amp;#160; &lt;b&gt;&lt;u&gt;consultant(e) Sharepoint&lt;/u&gt;&lt;/b&gt; ayant une bonne connaissance sur les technologies Microsoft maîtrisant les points suivants :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0p9W_GhAI/AAAAAAAABsE/GHQ80dtaOHs/s1600-h/clip_image002%5B51%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0p9p8_VQI/AAAAAAAABsI/1sfH0K2GTZY/clip_image002_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; WSS / MOSS&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0p-PXGOBI/AAAAAAAABsM/fGVhNGy-7H8/s1600-h/clip_image002%5B1%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[1]" border="0" alt="clip_image002[1]" src="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0p-U2fueI/AAAAAAAABsQ/PsTXFV0Jukk/clip_image002%5B1%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; ASP.NET&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0p-2XtEyI/AAAAAAAABsU/UuopOmu4yXM/s1600-h/clip_image002%5B2%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[2]" border="0" alt="clip_image002[2]" src="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0p_OnvYII/AAAAAAAABsY/yJyyYl8yhSI/clip_image002%5B2%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; SQL Server 2008&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0p_hOWlAI/AAAAAAAABsc/bXNyJuElKpI/s1600-h/clip_image002%5B3%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[3]" border="0" alt="clip_image002[3]" src="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qAPAif-I/AAAAAAAABsg/8fc-UdpPmPk/clip_image002%5B3%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Architecture logicielle&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qAbrVRWI/AAAAAAAABsk/loTbeBEwgJo/s1600-h/clip_image002%5B4%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[4]" border="0" alt="clip_image002[4]" src="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qAxnBGgI/AAAAAAAABso/rx1fZtMnbVI/clip_image002%5B4%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Microsoft .NET 2.0, 3.0, 3.5&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qBD2mFOI/AAAAAAAABss/Gga_1YgVeF0/s1600-h/clip_image002%5B5%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[5]" border="0" alt="clip_image002[5]" src="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qBgWsSZI/AAAAAAAABsw/kFV2bmhH05c/clip_image002%5B5%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Visual C#.NET&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qBwLlJSI/AAAAAAAABs0/FnU05fBPvDI/s1600-h/clip_image002%5B6%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[6]" border="0" alt="clip_image002[6]" src="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qCap36uI/AAAAAAAABs4/eAAPgbLTSO4/clip_image002%5B6%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Visual Studio 2008&lt;/p&gt;  &lt;p&gt;La connaissance de Sharepoint 2010 ou de MS CRM 4.0 serait un plus.&lt;/p&gt;  &lt;p&gt;Principales missions : &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qCqXIHNI/AAAAAAAABs8/Vd7xk5AKzJk/s1600-h/clip_image002%5B7%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[7]" border="0" alt="clip_image002[7]" src="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0qDH_rNBI/AAAAAAAABtA/HSNxOa4BGok/clip_image002%5B7%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Architecture et Conception d’applications Web et portail collaboratifs&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0qDRxmPaI/AAAAAAAABtE/pkWSQKIBub8/s1600-h/clip_image002%5B8%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[8]" border="0" alt="clip_image002[8]" src="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qD4hbH5I/AAAAAAAABtI/1oJ5z_U56_A/clip_image002%5B8%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Développement, tests et livraison de solutions&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qEOK5g_I/AAAAAAAABtM/ezQr-uhnzKc/s1600-h/clip_image002%5B9%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[9]" border="0" alt="clip_image002[9]" src="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qErPCKYI/AAAAAAAABtQ/mQNOkNrEQW0/clip_image002%5B9%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Animation de formation et de séminaires&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qE6RHcbI/AAAAAAAABtU/ejdvi1iMLIg/s1600-h/clip_image002%5B10%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[10]" border="0" alt="clip_image002[10]" src="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qFKG5FhI/AAAAAAAABtY/PHVuDZULRtw/clip_image002%5B10%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Consulting sur les technologies Microsoft auprès de nos clients&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qFW2nsoI/AAAAAAAABtc/sgFqlULUNmU/s1600-h/clip_image002%5B11%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[11]" border="0" alt="clip_image002[11]" src="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qF8abjDI/AAAAAAAABtg/ZPOpGYylOJw/clip_image002%5B11%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Gestion de projets&lt;/p&gt;  &lt;p&gt;Vous êtes autonome, rigoureux, pédagogue avec un bon sens du relationnel et passionné par les technologies Microsoft. &lt;/p&gt;  &lt;p&gt;Rémunération : selon profil&lt;/p&gt;  &lt;p&gt;Votre profil correspond à notre poste ? Vous avez envie de rejoindre une équipe dynamique à taille humaine dans le Sud Ouest ? Bewise a besoin de vous. &lt;/p&gt;  &lt;p&gt;Envoyez votre CV à &lt;a href="mailto:job@bewise.fr"&gt;job@bewise.fr&lt;/a&gt; en indiquant « [ConsultantMOSS2010] » dans le sujet du mail.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Consultant Business Intelligence Microsoft&lt;/h3&gt;  &lt;p&gt;Bewise est une structure en forte expansion. Pour l’accompagner, nous recherchons un &lt;b&gt;&lt;u&gt;consultant(e) décisionnel&lt;/u&gt;&lt;/b&gt; ayant une bonne connaissance sur les technologies Microsoft maîtrisant les points suivants :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0qGVF6txI/AAAAAAAABtk/pubJAlK7RSU/s1600-h/clip_image002%5B12%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[12]" border="0" alt="clip_image002[12]" src="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qGgY4BeI/AAAAAAAABto/Mq-nvB0ToKc/clip_image002%5B12%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; L’ensemble des technologies décisionnelles de Microsoft&lt;/p&gt;  &lt;p&gt;o SQL Server 2008 R2&lt;/p&gt;  &lt;p&gt;o Analysis Services&lt;/p&gt;  &lt;p&gt;o Integration Services&lt;/p&gt;  &lt;p&gt;o Reporting Services&lt;/p&gt;  &lt;p&gt;o Monitoring Server&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qHMx8_eI/AAAAAAAABts/tyubXssDvlI/s1600-h/clip_image002%5B13%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[13]" border="0" alt="clip_image002[13]" src="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qHbE4OMI/AAAAAAAABtw/gY82pbI_Ya4/clip_image002%5B13%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; MOSS&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qHw2t6CI/AAAAAAAABt0/3x6uoC6PMkE/s1600-h/clip_image002%5B14%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[14]" border="0" alt="clip_image002[14]" src="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0qIElf_PI/AAAAAAAABt4/najlfiZ6GDM/clip_image002%5B14%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Architecture logicielle&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0qIi9JHGI/AAAAAAAABt8/T8s7MNpC1Io/s1600-h/clip_image002%5B15%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[15]" border="0" alt="clip_image002[15]" src="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qI4NzarI/AAAAAAAABuA/eR9pnTdte6s/clip_image002%5B15%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Microsoft .NET&lt;/p&gt;  &lt;p&gt;Principales missions : &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qJZJ7agI/AAAAAAAABuE/v1Q0gtatBEw/s1600-h/clip_image002%5B16%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[16]" border="0" alt="clip_image002[16]" src="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qJofbI9I/AAAAAAAABuI/AZWnLin_V-w/clip_image002%5B16%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Architecture et Conception de solutions décisionnelles&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qKFfU7rI/AAAAAAAABuM/S8P_chktE2c/s1600-h/clip_image002%5B17%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[17]" border="0" alt="clip_image002[17]" src="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qKVvQa4I/AAAAAAAABuQ/r3YSS6hl7xY/clip_image002%5B17%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Développement, tests et livraison de solutions&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qK-fN-wI/AAAAAAAABuU/qp65mV4g3u0/s1600-h/clip_image002%5B18%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[18]" border="0" alt="clip_image002[18]" src="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qLKYAroI/AAAAAAAABuY/RM9j6xzpsD8/clip_image002%5B18%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Animation de formation et de séminaires&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qLdy0j3I/AAAAAAAABuc/nuI5xYLPciQ/s1600-h/clip_image002%5B19%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[19]" border="0" alt="clip_image002[19]" src="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qL6crejI/AAAAAAAABug/KFc4qL3f2R0/clip_image002%5B19%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Consulting sur les technologies Microsoft auprès de nos clients&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qMFdZpzI/AAAAAAAABuk/EDVpmCsXvtw/s1600-h/clip_image002%5B20%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[20]" border="0" alt="clip_image002[20]" src="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qMrgXgjI/AAAAAAAABuo/Rgh7y_uYL3A/clip_image002%5B20%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Gestion de projets&lt;/p&gt;  &lt;p&gt;Vous êtes autonome, rigoureux, pédagogue avec un bon sens du relationnel et passionné par les technologies Microsoft. &lt;/p&gt;  &lt;p&gt;Rémunération : selon profil&lt;/p&gt;  &lt;p&gt;Votre profil correspond à notre poste ? Vous avez envie de rejoindre une équipe dynamique à taille humaine dans le Sud Ouest ? Bewise a besoin de vous. &lt;/p&gt;  &lt;p&gt;Envoyez votre CV à &lt;a href="mailto:job@bewise.fr"&gt;job@bewise.fr&lt;/a&gt; en indiquant « [ConsultantBI2010] » dans le sujet du mail.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Consultant sur les technologies Microsoft&lt;/h3&gt;  &lt;p&gt;Bewise est une structure en forte expansion. Pour l’accompagner, nous recherchons un&amp;#160; consultant(e) ayant une bonne connaissance sur les technologies de développement Microsoft maîtrisant les points suivants :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0qM0WA7mI/AAAAAAAABus/HPO6mjh2QzQ/s1600-h/clip_image002%5B21%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[21]" border="0" alt="clip_image002[21]" src="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qN3jlqNI/AAAAAAAABuw/VuR6oX1lgkc/clip_image002%5B21%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; SQL Server 2008&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0qOHefTqI/AAAAAAAABu0/Rqha44a9A_c/s1600-h/clip_image002%5B22%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[22]" border="0" alt="clip_image002[22]" src="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qOl5G-1I/AAAAAAAABu4/K9PbuEV37-I/clip_image002%5B22%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Architecture logicielle&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qO69iHVI/AAAAAAAABu8/bsKPH50muHA/s1600-h/clip_image002%5B23%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[23]" border="0" alt="clip_image002[23]" src="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0qPJXLuhI/AAAAAAAABvA/YfBE0i34ohU/clip_image002%5B23%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Microsoft .NET 2.0, 3.0, 3.5, 4.0&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qPtaM1jI/AAAAAAAABvE/B30d2TwwmCI/s1600-h/clip_image002%5B24%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[24]" border="0" alt="clip_image002[24]" src="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0qP_TkmkI/AAAAAAAABvI/eL3s129hmiM/clip_image002%5B24%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; ASP.NET, Ajax&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0qQCvfBHI/AAAAAAAABvM/eBimP3PPFMU/s1600-h/clip_image002%5B25%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[25]" border="0" alt="clip_image002[25]" src="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0qQoEdSBI/AAAAAAAABvQ/7KNEgvHrWyg/clip_image002%5B25%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; WPF&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0qQyuouvI/AAAAAAAABvU/hZ3aZ-Qe0Oo/s1600-h/clip_image002%5B26%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[26]" border="0" alt="clip_image002[26]" src="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qRTuHjYI/AAAAAAAABvY/-LL2jxpD0RI/clip_image002%5B26%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; WCF&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qR9BFonI/AAAAAAAABvc/yJJfxLDCkcc/s1600-h/clip_image002%5B27%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[27]" border="0" alt="clip_image002[27]" src="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qSBBwBvI/AAAAAAAABvg/A4--MWkr7fw/clip_image002%5B27%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; C#/VB&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qSqBDCOI/AAAAAAAABvk/k06uRi8Y7uE/s1600-h/clip_image002%5B28%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[28]" border="0" alt="clip_image002[28]" src="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0qS8GsFmI/AAAAAAAABvo/kD4vYBqLv6U/clip_image002%5B28%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Visual Studio 2008, 2010&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qTedVtwI/AAAAAAAABvs/33Me-Cx-BdQ/s1600-h/clip_image002%5B29%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[29]" border="0" alt="clip_image002[29]" src="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qTrPUYII/AAAAAAAABvw/NenFEAXwgHk/clip_image002%5B29%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; TFS 2008, 2010&lt;/p&gt;  &lt;p&gt;La connaissance de C++, DirectX ou GDI serait un plus.&lt;/p&gt;  &lt;p&gt;Principales missions : &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qUKKq6jI/AAAAAAAABv0/hUodqVoM3e8/s1600-h/clip_image002%5B30%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[30]" border="0" alt="clip_image002[30]" src="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0qUSDCW2I/AAAAAAAABv4/sWLbMXQ7wyk/clip_image002%5B30%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Architecture et Conception de solutions décisionnelles&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0qU4scahI/AAAAAAAABv8/KgrXwdn4xxc/s1600-h/clip_image002%5B31%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[31]" border="0" alt="clip_image002[31]" src="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qVBC8XaI/AAAAAAAABwA/eevlnfjPgfs/clip_image002%5B31%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Développement, tests et livraison de solutions&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qVX0RfWI/AAAAAAAABwE/4iyDpcYm03o/s1600-h/clip_image002%5B32%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[32]" border="0" alt="clip_image002[32]" src="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qVwzXQ9I/AAAAAAAABwI/KBmIjfIPLj0/clip_image002%5B32%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Animation de formation et de séminaires&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0qWMXLslI/AAAAAAAABwM/BVRYFrYMNd4/s1600-h/clip_image002%5B33%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[33]" border="0" alt="clip_image002[33]" src="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qWqUjo1I/AAAAAAAABwQ/Yn7WN9BeVFA/clip_image002%5B33%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Consulting sur les technologies Microsoft auprès de nos clients&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qW2aKpiI/AAAAAAAABwU/pVlYTtQ9E8M/s1600-h/clip_image002%5B34%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[34]" border="0" alt="clip_image002[34]" src="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qXGGB9JI/AAAAAAAABwY/04CHdt2s6iI/clip_image002%5B34%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Gestion de projets&lt;/p&gt;  &lt;p&gt;Vous êtes autonome, rigoureux, pédagogue avec un bon sens du relationnel et passionné par les technologies Microsoft. &lt;/p&gt;  &lt;p&gt;Rémunération : selon profil&lt;/p&gt;  &lt;p&gt;Votre profil correspond à notre poste ? Vous avez envie de rejoindre une équipe dynamique à taille humaine dans le Sud Ouest ? Bewise a besoin de vous. &lt;/p&gt;  &lt;p&gt;Envoyez votre CV à &lt;a href="mailto:job@bewise.fr"&gt;job@bewise.fr&lt;/a&gt; en indiquant « [ConsultantNET2010] » dans le sujet du mail.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Consultant fonctionnel sur les technologies Microsoft&lt;/h3&gt;  &lt;p&gt;Bewise est une structure en forte expansion. Pour l’accompagner, nous recherchons un&amp;#160; &lt;b&gt;&lt;u&gt;consultant(e) fonctionnel&lt;/u&gt;&lt;/b&gt; ayant une bonne connaissance des technologies Microsoft. &lt;/p&gt;  &lt;p&gt;Vous connaissez les produits Microsoft suivants :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0qXunl0pI/AAAAAAAABwc/vDIqHJZQGbQ/s1600-h/clip_image002%5B35%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[35]" border="0" alt="clip_image002[35]" src="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qX6CZDDI/AAAAAAAABwg/GnK9xvWhX2s/clip_image002%5B35%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; MOSS&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qYes1-pI/AAAAAAAABwk/hkJKX5b13p8/s1600-h/clip_image002%5B36%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[36]" border="0" alt="clip_image002[36]" src="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qYuPEj5I/AAAAAAAABwo/03xTLxDOwiA/clip_image002%5B36%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; MS CRM 4.0&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qZCAS3TI/AAAAAAAABws/vOMn1_swpZw/s1600-h/clip_image002%5B37%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[37]" border="0" alt="clip_image002[37]" src="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qZgI7WiI/AAAAAAAABww/Kin4iCMYuIw/clip_image002%5B37%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; SQL Server Business Intelligence&lt;/p&gt;  &lt;p&gt;La connaissance des autres produits serveur de Microsoft (BizTalk Server, Team Foundation Server, etc.) serait un plus.&lt;/p&gt;  &lt;p&gt;Principales missions : &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0qZx7AJhI/AAAAAAAABw0/eEEYPXT8WLI/s1600-h/clip_image002%5B38%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[38]" border="0" alt="clip_image002[38]" src="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qadFZuWI/AAAAAAAABw4/i6nT1e0IRhk/clip_image002%5B38%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; traduction des besoins utilisateurs en cahiers des charges, écriture de spécifications&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qapIo5JI/AAAAAAAABw8/8UpgKrRVnE4/s1600-h/clip_image002%5B39%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[39]" border="0" alt="clip_image002[39]" src="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qa8zd_2I/AAAAAAAABxA/hyJuIVRdiH0/clip_image002%5B39%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; assistance à la définition des besoins et des solutions &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qbDhGa0I/AAAAAAAABxE/q4e8WqMm7wk/s1600-h/clip_image002%5B40%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[40]" border="0" alt="clip_image002[40]" src="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qbgOzAZI/AAAAAAAABxI/AtAjj_TFx_U/clip_image002%5B40%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; accompagnement des utilisateurs sur la prise en main et la maîtrise des outils&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qb7IWDJI/AAAAAAAABxM/m0rlEak4jpA/s1600-h/clip_image002%5B41%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[41]" border="0" alt="clip_image002[41]" src="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qcX5QD0I/AAAAAAAABxQ/rbyFqgw02q0/clip_image002%5B41%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; conseil en processus, en conduite de changement&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qcvwPnVI/AAAAAAAABxU/n4MXyVcNwh4/s1600-h/clip_image002%5B42%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[42]" border="0" alt="clip_image002[42]" src="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qdGr1cbI/AAAAAAAABxY/gVhLVxTBarQ/clip_image002%5B42%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; animation de séminaires autour des technologies &lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0qdWeCfaI/AAAAAAAABxc/sis-TNMLrgk/s1600-h/clip_image002%5B43%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[43]" border="0" alt="clip_image002[43]" src="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qdqtIIoI/AAAAAAAABxg/NE6cvexDLsc/clip_image002%5B43%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; participation aux avant-ventes. &lt;/p&gt;  &lt;p&gt;Vous avez un bon sens du relationnel, vous êtes pédagogue, vous avez de bonnes qualités rédactionnelles ?    &lt;br /&gt;Vous avez le sens du service, vous êtes méthodique et organisé ?     &lt;br /&gt;Vous êtes attiré par les technologies Microsoft ?&lt;/p&gt;  &lt;p&gt;Votre profil correspond à notre poste ? Vous avez envie de rejoindre une équipe dynamique à taille humaine dans le Sud Ouest ? Bewise a besoin de vous. &lt;/p&gt;  &lt;p&gt;Rémunération : selon profil&lt;/p&gt;  &lt;p&gt;Envoyez votre CV à &lt;a href="mailto:job@bewise.fr"&gt;job@bewise.fr&lt;/a&gt; en indiquant « [ConsultantFONC2010] » dans le sujet du mail.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Stagiaire&lt;/h3&gt;  &lt;p&gt;Bewise est une structure en forte expansion. Pour l’accompagner, nous recherchons un stagiaire qui travaillera sur les technologies de développement Microsoft, à savoir :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qeNCeqRI/AAAAAAAABxk/KQfDHwPnLM0/s1600-h/clip_image002%5B44%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[44]" border="0" alt="clip_image002[44]" src="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qecC90oI/AAAAAAAABxo/-8R2hRyp6U4/clip_image002%5B44%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Microsoft .NET 4.0&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_1fIQLbpqRAw/Sx0qegflgKI/AAAAAAAABxs/8011NSx8bhU/s1600-h/clip_image002%5B45%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[45]" border="0" alt="clip_image002[45]" src="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qfA8Ac7I/AAAAAAAABxw/u3Ub5pSdUPw/clip_image002%5B45%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; ASP.NET, WPF, WCF&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh4.ggpht.com/_1fIQLbpqRAw/Sx0qfR0difI/AAAAAAAABx0/gjdllBSA_u0/s1600-h/clip_image002%5B46%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[46]" border="0" alt="clip_image002[46]" src="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qf1iKtmI/AAAAAAAABx4/F6wcy1Xv31U/clip_image002%5B46%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Visual Studio .NET 2010&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qgJphgfI/AAAAAAAABx8/iomO_GdWYKk/s1600-h/clip_image002%5B47%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[47]" border="0" alt="clip_image002[47]" src="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qgjI6hmI/AAAAAAAAByA/IOaQu_5drLQ/clip_image002%5B47%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; SQL Server 2008R2&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh3.ggpht.com/_1fIQLbpqRAw/Sx0qg4A-qiI/AAAAAAAAByE/KrnKk6r8YLA/s1600-h/clip_image002%5B48%5D%5B2%5D.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002[48]" border="0" alt="clip_image002[48]" src="http://lh6.ggpht.com/_1fIQLbpqRAw/Sx0qhZBPzzI/AAAAAAAAByI/wefoS9m6MCQ/clip_image002%5B48%5D_thumb.gif?imgmax=800" width="24" height="23" /&gt;&lt;/a&gt; Sharepoint 2010&lt;/p&gt;  &lt;p&gt;Qualités attendues : autonomie, rigueur, passionné par les technologies et forte motivation.&lt;/p&gt;  &lt;p&gt;A l’heure actuelle le sujet de stage n’est pas complètement défini, mais fera intervenir plusieurs des technologies précédentes.&lt;/p&gt;  &lt;p&gt;La durée minimale du stage est de 3 mois ETP (stage de fin d’étude, contrat de professionnalisation en alternance). Le poste est à pourvoir en 2010.&lt;/p&gt;  &lt;p&gt;Vous avez envie de rejoindre une équipe sympa, jeune et dynamique ? Envoyez votre CV et votre lettre de motivation à &lt;a href="mailto:job@bewise.fr"&gt;job@bewise.fr&lt;/a&gt; en indiquant [StagiaireQ12010] dans le sujet du mail.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-978722883363182789?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/12/des-nouvelles-de-bewise.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <title>Bewise recrute</title>
      <description>&lt;p&gt;Bewise lance une vague de recrutements pour compléter son équipe de tueurs à gages.&lt;/p&gt;  &lt;p&gt;Voici un extract de l’annonce, si vous êtes interessés, n’hésitez pas à postuler!&lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Consultant Sharepoint&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;WSS / MOSS&lt;/li&gt;    &lt;li&gt;ASP.NET&lt;/li&gt;    &lt;li&gt;SQL Server 2008&lt;/li&gt;    &lt;li&gt;Architecture logicielle&lt;/li&gt;    &lt;li&gt;Microsoft .NET 2.0, 3.0, 3.5&lt;/li&gt;    &lt;li&gt;Visual C#.NET&lt;/li&gt;    &lt;li&gt;Visual Studio 2008&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;La connaissance de Sharepoint 2010 ou de MS CRM 4.0 serait un plus.&lt;/p&gt;  &lt;p&gt;Principales missions : &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Architecture et Conception d’applications Web et portail collaboratifs&lt;/li&gt;    &lt;li&gt;Développement, tests et livraison de solutions&lt;/li&gt;    &lt;li&gt;Animation de formation et de séminaires&lt;/li&gt;    &lt;li&gt;Consulting sur les technologies Microsoft auprès de nos clients&lt;/li&gt;    &lt;li&gt;Gestion de projets&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Vous êtes autonome, rigoureux, pédagogue avec un bon sens du relationnel et passionné par les technologies Microsoft. &lt;/p&gt;  &lt;p&gt;Rémunération : selon profil&lt;/p&gt;  &lt;p&gt;Votre profil correspond à notre poste ? Vous avez envie de rejoindre une équipe dynamique à taille humaine dans le Sud Ouest ? Bewise a besoin de vous. &lt;/p&gt;  &lt;p&gt;Envoyez votre CV à &lt;a href="mailto:job@bewise.fr"&gt;job@bewise.fr&lt;/a&gt; en indiquant « [ConsultantMOSS2010] » dans le sujet du mail.&lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Consultant Business Intelligence Microsoft&lt;/h3&gt;  &lt;p&gt;L’ensemble des technologies décisionnelles de Microsoft&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SQL Server 2008 R2&lt;/li&gt;    &lt;li&gt;Analysis Services&lt;/li&gt;    &lt;li&gt;Integration Services&lt;/li&gt;    &lt;li&gt;Reporting Services&lt;/li&gt;    &lt;li&gt;Monitoring Server&lt;/li&gt;    &lt;li&gt;MOSS&lt;/li&gt;    &lt;li&gt;Architecture logicielle&lt;/li&gt;    &lt;li&gt;Microsoft .NET&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Principales missions : &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Architecture et Conception de solutions décisionnelles&lt;/li&gt;    &lt;li&gt;Développement, tests et livraison de solutions&lt;/li&gt;    &lt;li&gt;Animation de formation et de séminaires&lt;/li&gt;    &lt;li&gt;Consulting sur les technologies Microsoft auprès de nos clients&lt;/li&gt;    &lt;li&gt;Gestion de projets&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Vous êtes autonome, rigoureux, pédagogue avec un bon sens du relationnel et passionné par les technologies Microsoft. &lt;/p&gt;  &lt;p&gt;Rémunération : selon profil&lt;/p&gt;  &lt;p&gt;Votre profil correspond à notre poste ? Vous avez envie de rejoindre une équipe dynamique à taille humaine dans le Sud Ouest ? Bewise a besoin de vous. &lt;/p&gt;  &lt;p&gt;Envoyez votre CV à &lt;a href="mailto:job@bewise.fr"&gt;job@bewise.fr&lt;/a&gt; en indiquant « [ConsultantBI2010] » dans le sujet du mail.&lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Consultant sur les technologies Microsoft&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;SQL Server 2008&lt;/li&gt;    &lt;li&gt;Architecture logicielle&lt;/li&gt;    &lt;li&gt;Microsoft .NET 2.0, 3.0, 3.5, 4.0&lt;/li&gt;    &lt;li&gt;ASP.NET, Ajax&lt;/li&gt;    &lt;li&gt;WPF&lt;/li&gt;    &lt;li&gt;WCF&lt;/li&gt;    &lt;li&gt;C#/VB&lt;/li&gt;    &lt;li&gt;Visual Studio 2008, 2010&lt;/li&gt;    &lt;li&gt;TFS 2008, 2010&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;La connaissance de C++, DirectX ou GDI serait un plus.&lt;/p&gt;  &lt;p&gt;Principales missions : &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Architecture et Conception de solutions décisionnelles&lt;/li&gt;    &lt;li&gt;Développement, tests et livraison de solutions&lt;/li&gt;    &lt;li&gt;Animation de formation et de séminaires&lt;/li&gt;    &lt;li&gt;Consulting sur les technologies Microsoft auprès de nos clients&lt;/li&gt;    &lt;li&gt;Gestion de projets&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Vous êtes autonome, rigoureux, pédagogue avec un bon sens du relationnel et passionné par les technologies Microsoft. &lt;/p&gt;  &lt;p&gt;Rémunération : selon profil&lt;/p&gt;  &lt;p&gt;Votre profil correspond à notre poste ? Vous avez envie de rejoindre une équipe dynamique à taille humaine dans le Sud Ouest ? Bewise a besoin de vous. &lt;/p&gt;  &lt;p&gt;Envoyez votre CV à &lt;a href="mailto:job@bewise.fr"&gt;job@bewise.fr&lt;/a&gt; en indiquant « [ConsultantNET2010] » dans le sujet du mail.&lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Consultant fonctionnel sur les technologies Microsoft&lt;/h3&gt;  &lt;p&gt;Vous connaissez les produits Microsoft suivants :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;MOSS&lt;/li&gt;    &lt;li&gt;MS CRM 4.0&lt;/li&gt;    &lt;li&gt;SQL Server Business Intelligence&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;La connaissance des autres produits serveur de Microsoft (BizTalk Server, Team Foundation Server, etc.) serait un plus.&lt;/p&gt;  &lt;p&gt;Principales missions : &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;traduction des besoins utilisateurs en cahiers des charges, écriture de spécifications&lt;/li&gt;    &lt;li&gt;assistance à la définition des besoins et des solutions &lt;/li&gt;    &lt;li&gt;accompagnement des utilisateurs sur la prise en main et la maîtrise des outils&lt;/li&gt;    &lt;li&gt;conseil en processus, en conduite de changement&lt;/li&gt;    &lt;li&gt;animation de séminaires autour des technologies &lt;/li&gt;    &lt;li&gt;participation aux avant-ventes. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Vous avez un bon sens du relationnel, vous êtes pédagogue, vous avez de bonnes qualités rédactionnelles ?   &lt;br /&gt;Vous avez le sens du service, vous êtes méthodique et organisé ?    &lt;br /&gt;Vous êtes attiré par les technologies Microsoft ?&lt;/p&gt;  &lt;p&gt;Votre profil correspond à notre poste ? Vous avez envie de rejoindre une équipe dynamique à taille humaine dans le Sud Ouest ? Bewise a besoin de vous. &lt;/p&gt;  &lt;p&gt;Rémunération : selon profil&lt;/p&gt;  &lt;p&gt;Envoyez votre CV à &lt;a href="mailto:job@bewise.fr"&gt;job@bewise.fr&lt;/a&gt; en indiquant « [ConsultantFONC2010] » dans le sujet du mail.&lt;/p&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Stagiaire&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Microsoft .NET 4.0&lt;/li&gt;    &lt;li&gt;ASP.NET, WPF, WCF&lt;/li&gt;    &lt;li&gt;Visual Studio .NET 2010&lt;/li&gt;    &lt;li&gt;SQL Server 2008R2&lt;/li&gt;    &lt;li&gt;Sharepoint 2010&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Qualités attendues : autonomie, rigueur, passionné par les technologies et forte motivation.&lt;/p&gt;  &lt;p&gt;A l’heure actuelle le sujet de stage n’est pas complètement défini, mais fera intervenir plusieurs des technologies précédentes.&lt;/p&gt;  &lt;p&gt;La durée minimale du stage est de 3 mois ETP (stage de fin d’étude, contrat de professionnalisation en alternance). Le poste est à pourvoir en 2010.&lt;/p&gt;  &lt;p&gt;Vous avez envie de rejoindre une équipe sympa, jeune et dynamique ? Envoyez votre CV et votre lettre de motivation à &lt;a href="mailto:job@bewise.fr"&gt;job@bewise.fr&lt;/a&gt; en indiquant [StagiaireQ12010] dans le sujet du mail.&lt;/p&gt;</description>
      <link>http://www.catuhe.com/post/Bewise-recrute.aspx</link>
      <author>kosh</author>
      <comments>http://www.catuhe.com/post/Bewise-recrute.aspx#comment</comments>
      <guid>http://www.catuhe.com/post.aspx?id=d1c4868c-8cac-4278-aac4-bdabcdc1a5e7</guid>
      <pubDate>Fri, 04 Dec 2009 18:20:08 +0200</pubDate>
      <category>.Net</category>
      <category>Bewise</category>
      <publisher xmlns="http://purl.org/dc/elements/1.1/">kosh</publisher>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/pingback.axd</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/post.aspx?id=d1c4868c-8cac-4278-aac4-bdabcdc1a5e7</target>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">1</comments>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://www.catuhe.com/trackback.axd?id=d1c4868c-8cac-4278-aac4-bdabcdc1a5e7</ping>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/post/Bewise-recrute.aspx#comment</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/syndication.axd?post=d1c4868c-8cac-4278-aac4-bdabcdc1a5e7</commentRss>
    </item>
    <item>
      <title>[Windows Mobile] Afficher une fen&amp;#234;tre lors d’une exception non g&amp;#233;r&amp;#233;e</title>
      <link>http://blogs.developpeur.org/vko/archive/2009/12/03/windows-mobile-afficher-une-fen-tre-lors-d-une-exception-non-g-r-e.aspx</link>
      <pubDate>Thu, 03 Dec 2009 18:14:42 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:47326</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Vko</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">2</comments>
      <comments>http://blogs.developpeur.org/vko/comments/47326.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/vko/commentrss.aspx?PostID=47326</commentRss>
      <description>
  
Personne n’est à l’abri d’une exception non gérée, c’est à dire une exception que vous n’avez pas “catché” et qui fait planter méchamment votre application. Heureusement il est possible de détecter ce type de plantage et d’afficher une fenêtre.
Pou...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=47326" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/vko/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category>
    </item>
    <item>
      <title>Coup de gueule : Windows Media Foundation et .Net</title>
      <description>&lt;p&gt;Le genre de truc qui me broute à un niveau stratosphérique. Microsoft se décide à remplacer DirectShow et franchement ce n’est pas un mal. La nouvelle API s’appelle Windows Media Foundation et est plutôt sympatique.&lt;/p&gt;  &lt;p&gt;La version 1.0 de cette charmante API livrée avec Windows Vista ne supportait pas .Net. Ok, erreur de jeunesse, j’en ai fais des pires et je suis magnanime. Attendons donc la sortie de la 2.0 qui vient avec Windows 7.&lt;/p&gt;  &lt;p&gt;Et là c’est le drame! Toujours pas de support de .Net. C’est quand même hallucinant ce double discours. D’un coté on sort des frameworks .Net de plus en plus puissants et de l’autre, il y a trois bourrins qui continuent à developper des API sans donner un support .Net. Mais jamais ils ne font des réunions entre eux? Alors en plus ce que je préfére c’est les réponses sur les forums : “oui, ce n’est pas prévu de supporter .Net car l’alignement lunaire n’est pas favorable et ma tante a mangé une pomme”.&lt;/p&gt;  &lt;p&gt;Heureusement qu’il y a des courageux qui se font chier à transcrire les interfaces COM en .Net comme par exemple ce site : &lt;a title="http://mfnet.sourceforge.net/" href="http://mfnet.sourceforge.net/"&gt;http://mfnet.sourceforge.net/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Donc messieurs de la team Windows Media Foundation, je vous dis : Carton rouge!&lt;/p&gt;</description>
      <link>http://www.catuhe.com/post/Coup-de-gueule-Windows-Media-Foundation-et-Net.aspx</link>
      <author>kosh</author>
      <comments>http://www.catuhe.com/post/Coup-de-gueule-Windows-Media-Foundation-et-Net.aspx#comment</comments>
      <guid>http://www.catuhe.com/post.aspx?id=864e7d31-f660-44b8-9d47-5d6443b65f53</guid>
      <pubDate>Thu, 03 Dec 2009 09:17:00 +0200</pubDate>
      <category>.Net</category>
      <publisher xmlns="http://purl.org/dc/elements/1.1/">kosh</publisher>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/pingback.axd</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/post.aspx?id=864e7d31-f660-44b8-9d47-5d6443b65f53</target>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">2</comments>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://www.catuhe.com/trackback.axd?id=864e7d31-f660-44b8-9d47-5d6443b65f53</ping>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/post/Coup-de-gueule-Windows-Media-Foundation-et-Net.aspx#comment</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/syndication.axd?post=864e7d31-f660-44b8-9d47-5d6443b65f53</commentRss>
    </item>
    <item>
      <title>Layout pour Windows Mobile (Part 1)</title>
      <link>http://blogs.developpeur.org/vko/archive/2009/11/30/layout-pour-windows-mobile-part-1.aspx</link>
      <pubDate>Mon, 30 Nov 2009 21:00:00 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:47272</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Vko</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">2</comments>
      <comments>http://blogs.developpeur.org/vko/comments/47272.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/vko/commentrss.aspx?PostID=47272</commentRss>
      <description>
  
Windows Mobile est, contrairement à ce que l’on pourrait croire, une plateforme ultra complète pour le développement mobile : Compact Framework, office, téléphonie, connectivité, Bluetooth, GPS, notifications, gesture, Web Service, Threading …
Malg...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=47272" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/vko/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category>
    </item>
    <item>
      <title>Bewise parle Agile</title>
      <link>http://blog.djeepy1.net/2009/11/30/bewise-parle-agile/</link>
      <comments>http://blog.djeepy1.net/2009/11/30/bewise-parle-agile/#comments</comments>
      <pubDate>Mon, 30 Nov 2009 11:56:23 +0000</pubDate>
      <creator xmlns="http://purl.org/dc/elements/1.1/">djeepy1</creator>
      <category><![CDATA[Bewise]]></category>
      <category><![CDATA[Agile]]></category>
      <category><![CDATA[Méthodologie]]></category>
      <guid isPermaLink="false">http://djeepy1.wordpress.com/2009/11/30/bewise-parle-agile/</guid>
      <description><![CDATA[Vous ne le savez peut-être pas mais dans une vie antérieure, j’ai été passionné de méthodologie et de gestion de projet. Il y a plus de cinq ans, dans une entreprise ou la règle d’or était le Time To Market, j’ai pu apporter une vision plus agile du développement.
Chez Bewise, la méthodologie a aussi une [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.djeepy1.net&blog=7511412&post=184&subd=djeepy1&ref=&feed=1" />]]></description>
      <encoded xmlns="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Vous ne le savez peut-être pas mais dans une vie antérieure, j’ai été passionné de méthodologie et de gestion de projet. Il y a plus de cinq ans, dans une entreprise ou la règle d’or était le Time To Market, j’ai pu apporter une vision plus agile du développement.</p>
<p>Chez Bewise, la méthodologie a aussi une place importante. Un domaine métier y est même dédié : AMI. De nombreux débats ont lieu au sein de nos projets (mais aussi à la machine à café. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p>Pour montrer son attachement aux méthodologies agiles, Bewise, via l’un de nos consultants (Ionut Mihalcea), animera un séminaire pour l’association SigmaT qui promeut l’agilité dans le sud-ouest.</p>
<p>Ce sera le 11 décembre à l’université Paul Sabatier et le sujet est : <strong>Pratiques Agiles avec Team Foundation Server 2010</strong></p>
<p>Le programme complet se trouve ici :<br />
<a href="http://www.sigmat.fr/dotclear/index.php?post/2009/11/24/Programme-du-SigmaT12">http://www.sigmat.fr/dotclear/index.php?post/2009/11/24/Programme-du-SigmaT12</a></p>
<p>Pour vous inscrire : <a title="http://www.sigmat.fr/dotclear/index.php?form/inscription" href="http://www.sigmat.fr/dotclear/index.php?form/inscription">http://www.sigmat.fr/dotclear/index.php?form/inscription</a><img style="display:inline;margin-left:0;margin-right:0;border:0;" title="image" src="http://djeepy1.files.wordpress.com/2009/11/image.png?w=244&#038;h=64" border="0" alt="image" width="244" height="64" align="right" /></p>
<br />Publié dans Bewise Tagged: Agile, Bewise, Méthodologie <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/djeepy1.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/djeepy1.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/djeepy1.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/djeepy1.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/djeepy1.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/djeepy1.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/djeepy1.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/djeepy1.wordpress.com/184/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/djeepy1.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/djeepy1.wordpress.com/184/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.djeepy1.net&blog=7511412&post=184&subd=djeepy1&ref=&feed=1" />]]></encoded>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blog.djeepy1.net/2009/11/30/bewise-parle-agile/feed/</commentRss>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <content url="http://1.gravatar.com/avatar/d5bd484f181f5352c2e531cb5cc78aef?s=96&amp;d=http%3A%2F%2Fa.wordpress.com%2Fi%2Fmu.gif&amp;r=G" medium="image" xmlns="http://search.yahoo.com/mrss/">
        <title type="html">djeepy1</title>
      </content>
      <content url="http://djeepy1.files.wordpress.com/2009/11/image.png" medium="image" xmlns="http://search.yahoo.com/mrss/">
        <title type="html">image</title>
      </content>
    </item>
    <item>
      <title>Changement de plate-forme de blog</title>
      <link>http://blog.djeepy1.net/2009/11/22/changement-de-plate-forme-de-blog/</link>
      <comments>http://blog.djeepy1.net/2009/11/22/changement-de-plate-forme-de-blog/#comments</comments>
      <pubDate>Sun, 22 Nov 2009 22:26:34 +0000</pubDate>
      <creator xmlns="http://purl.org/dc/elements/1.1/">djeepy1</creator>
      <category><![CDATA[Uncategorized]]></category>
      <guid isPermaLink="false">http://djeepy1.wordpress.com/2009/11/22/changement-de-plate-forme-de-blog/</guid>
      <description><![CDATA[Je viens de migrer le blog de la plate-forme DotClear de Gandi vers WordPress.
L’URL reste la même (même le feed RSS si votre lecteur supporte les redirections).
Ce que ça change ? Pour je ne sais quelle raison, Google n’indexait pas mon blog (hébergé chez Gandi). J’espère que ce sera mieux avec WordPress.
A bientôt…
Publié dans Uncategorized [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.djeepy1.net&blog=7511412&post=181&subd=djeepy1&ref=&feed=1" />]]></description>
      <encoded xmlns="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Je viens de migrer le blog de la plate-forme DotClear de Gandi vers WordPress.</p>
<p>L’URL reste la même (même le feed RSS si votre lecteur supporte les redirections).</p>
<p>Ce que ça change ? Pour je ne sais quelle raison, Google n’indexait pas mon blog (hébergé chez Gandi). J’espère que ce sera mieux avec WordPress.</p>
<p>A bientôt…</p>
<br />Publié dans Uncategorized  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/djeepy1.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/djeepy1.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/djeepy1.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/djeepy1.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/djeepy1.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/djeepy1.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/djeepy1.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/djeepy1.wordpress.com/181/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/djeepy1.wordpress.com/181/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/djeepy1.wordpress.com/181/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.djeepy1.net&blog=7511412&post=181&subd=djeepy1&ref=&feed=1" />]]></encoded>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blog.djeepy1.net/2009/11/22/changement-de-plate-forme-de-blog/feed/</commentRss>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <content url="http://1.gravatar.com/avatar/d5bd484f181f5352c2e531cb5cc78aef?s=96&amp;d=http%3A%2F%2Fa.wordpress.com%2Fi%2Fmu.gif&amp;r=G" medium="image" xmlns="http://search.yahoo.com/mrss/">
        <title type="html">djeepy1</title>
      </content>
    </item>
    <item>
      <title>[PDC 2009] Sync Framework et SQL Azure : Connecter vos applications avec le CLOUD !</title>
      <link>http://www.dotmim.com/blogs/mim/archive/2009/11/20/pdc-2009-sync-framework-et-sql-azure-connecter-vos-applications-avec-le-cloud.aspx</link>
      <pubDate>Fri, 20 Nov 2009 02:55:48 GMT</pubDate>
      <guid isPermaLink="false">f24f4a04-d5df-4071-90fb-39191e3ba06c:557</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Mimetis</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotmim.com/blogs/mim/rsscomments.aspx?PostID=557</wfw:commentRss>
      <comments>http://www.dotmim.com/blogs/mim/archive/2009/11/20/pdc-2009-sync-framework-et-sql-azure-connecter-vos-applications-avec-le-cloud.aspx#comments</comments>
      <description>&lt;p&gt;Et voilà la dernière session de la PDC, enfin la session que j’attendais depuis le début (j’exagère à peine) En même temps on se garde le meilleur pour la fin :)&lt;/p&gt;  &lt;p&gt;Présenté par &lt;strong&gt;Marc Scurell&lt;/strong&gt;, Lead PM sur le sujet. Le but de la présentation est biensur de nous présenter &lt;a href="http://blogs.msdn.com/sync/archive/2009/11/17/announcing-sql-azure-data-sync-november-ctp-available-for-download.aspx"&gt;SQL Azure Data Sync&lt;/a&gt; sorti le jour du KeyNote (bon ça a fait moins de bruit que la sortie de SL4 beta, je vous l’accorde volontiers !)&lt;/p&gt;  &lt;p&gt;Basé sur le &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=89adbb1e-53ff-41b5-ba17-8e43a2e66254&amp;amp;displaylang=en"&gt;Sync Framework V2&lt;/a&gt; , Marc nous fait un tour d’horizon du framework, avec pas mal de théorie, intéressant pour ceux qui n’ont pas suivi mes webcasts et articles ;)&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;margin-left:0px;border-top:0px;margin-right:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_73BDD3A0.png" width="246" height="157" /&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;margin-left:0px;border-top:0px;margin-right:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_61A16A46.png" width="214" height="157" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;SQL Azure Data Sync&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotmim.com/blogs/mim/image_75F70A04.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px 10px 0px 0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" align="left" src="http://www.dotmim.com/blogs/mim/image_thumb_391E7433.png" width="248" height="170" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Le Wizard qui va permettre de connecter une base de données locale avec SQL Azure, avec une base de données local SQL SERVER 2008.&lt;/p&gt;  &lt;p&gt;Tout se passe par le wizard, qui va créer toute l’architecture sur SQL AZURE, parfait réplica de la base locale. A noter que le tracking des changements se fait via le Change Tracking de SQL SERVER 2008, mais j’ai pu voir encore des tables supplémentaires contenant des métadatas encore nécessaires pour faire fonctionner le tout.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_445762A3.png" width="457" height="227" /&gt; &lt;/p&gt;  &lt;p&gt;Vient ensuite une démo de synchronisation entre SQL AZURE et SQL SERVER CE. Ce qu’est sympa c’est que le template VS pour SQL CE va générer via son wizard non seulement la première synchronisation mais aussi le code nécessaire pour reproduire une synchronisation complète en .NET&lt;/p&gt;  &lt;p&gt;Du coup la synchro entre une base de données sql ce et sql azure se résume en 1 ligne !&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_28928B13.png" width="456" height="51" /&gt; &lt;/p&gt;  &lt;p&gt;Pour aller plus loin; on peut meme imaginer des scénarios 3 Tiers, avec de la logique métier officiant entre les bases de données locale et les bases SQL Azure :&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_18569D4D.png" width="457" height="315" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Synchronisation avec un client Silverlight&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Une démo très très sympa vient conclure ma PDC, une synchronisation entre SQL Azure et un client Silverlight (où je vous rappelle nous n’avons PAS ADO.NET et encore moins la possibilité d’accéder à une base Compact)&lt;/p&gt;  &lt;p&gt;Le principe est donc de synchroniser la base SQL Azure avec l ‘IsolatedStorage local disponible depuis SL :&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_31027238.png" width="457" height="312" /&gt; Ca, ça m’a bien bluffé, ils ont écrit le SyncProvider spécial pour l’IsolatedStorage. Espérons qu’ils le fourniront en sample :)&lt;/p&gt;  &lt;p&gt;Pour finir la roadmap de Sync Framework : On s’oriente vers début 2010 avec la sortie du Sync Framework V2.1 avec le full support Azure et la V3 en cours d’année.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_702FB461.png" width="459" height="323" /&gt; &lt;/p&gt;  &lt;p&gt;Voilà la PDC c’est fini pour cette année, et contrairement à l’année passée, aucune prochaine date n’a été annoncée, on va donc je pense revenir à un cycle plus classique de 3 ou 4 ans avant la prochaine PDC !&lt;/p&gt;  &lt;p&gt;J’en profite au passage pour remercier Laurent de Techheadbrothers et Thomas de Microsoft qui m’ont permis d’assister cette année à ce grand évènement. Merci !&lt;/p&gt;&lt;img src="http://www.dotmim.com/aggbug.aspx?PostID=557" width="1" height="1"&gt;</description>
      <category domain="http://www.dotmim.com/blogs/mim/archive/tags/PDC+2009/default.aspx">PDC 2009</category>
    </item>
    <item>
      <title>[PDC 2009] XAML Futures for .Net and Silverlight</title>
      <link>http://www.dotmim.com/blogs/mim/archive/2009/11/20/pdc-2009-xaml-futures-for-net-and-silverlight.aspx</link>
      <pubDate>Fri, 20 Nov 2009 02:42:59 GMT</pubDate>
      <guid isPermaLink="false">f24f4a04-d5df-4071-90fb-39191e3ba06c:556</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Mimetis</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotmim.com/blogs/mim/rsscomments.aspx?PostID=556</wfw:commentRss>
      <comments>http://www.dotmim.com/blogs/mim/archive/2009/11/20/pdc-2009-xaml-futures-for-net-and-silverlight.aspx#comments</comments>
      <description>&lt;p&gt;Voici venir les innovations du langage XAML. &lt;/p&gt;  &lt;p&gt;Session assez intéressante sur les apports futurs au langage XAML. On notera surtout la naissance d’un nouveau namespace (et meme sa propre dll) dédié entièrement au XAML : &lt;strong&gt;System.Xaml&lt;/strong&gt; située dans&lt;strong&gt; System.Xaml.dll&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_2FB2F776.png" width="454" height="375" /&gt; &lt;/p&gt;  &lt;p&gt;Au niveau des nouveautés du langage, j’ai pu voir l’ajout de code inline, comme les évènements (bien que je ne sois pas fondamentalement convaincu de l’apport de la chose :)) ou encore l’exécution de code simple comme dans l’exemple suivant :&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_3103A223.png" width="454" height="285" /&gt; &lt;/p&gt;  &lt;p&gt;Ca ca peut m’intéresser dans les expressions de Binding tiens.. mais j’ai des doutes !&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;XamlDom : Travailler avec un modèle objet Xaml Complet.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Un peu comme un &lt;strong&gt;XmlDocument&lt;/strong&gt; va permettre de se ballader dans un document Xml, &lt;strong&gt;XamlDom&lt;/strong&gt; va nous permettre de nous ballader dans un document Xaml, et récupérer de précieuses informations sur les noeuds xaml. Sur l’exemple on verra même comment récupérer le type de l’UIElement associé au noeud en cours !&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_6051C555.png" width="454" height="356" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_071BC797.png" width="454" height="222" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_70F5106A.png" width="454" height="197" /&gt;Du coup sérialiser un simple bouton XAML devient beaucoup plus aisé !&lt;/p&gt;  &lt;p&gt;Dans la copie d’écran suivante vous avez&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Le bouton &lt;strong&gt;Xaml&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Le code nécessaire pour sérialiser notre bouton à l’ancienne : avec un &lt;strong&gt;XamlXmlWriter&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Le code nécessaire avec &lt;strong&gt;XamlDom&lt;/strong&gt; (utilisation d’un &lt;strong&gt;XamlDomObject&lt;/strong&gt;)&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_20BF8C5F.png" width="454" height="373" /&gt; &lt;/p&gt;  &lt;p&gt;Du coup (encore) ce modèle objet abouti va ouvrir des portes à des outils comme l’analyse statique du code Xaml avec FxCop. D’ailleurs l’équipe chargée de Xaml est trés proche de l’équipe FxCop pour fournir un environnement de travail évolué à ce niveau là.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_16F6D28F.png" width="454" height="362" /&gt; &lt;/p&gt;  &lt;p&gt;Nous avons droit enfin à un chapitre consacré à l’amélioration de la localisation Xaml que ce soit en SL4 ou en WPF (On part de tellement loin avec des outils comme LocBaml qu’on ne peut QUE faire BCP mieux) La démo est assez convaincante, un peu comme de l’asp.net, où l’on génère les ressources avec VS 2010 depuis un simple menu qui va lancer un parse complet du document Xaml&lt;/p&gt;  &lt;p&gt;Au niveau des designers VS 2010 et Blend, on note des améliorations notables des performances ou encore l’ajout de l’IntelliSense dans Blend :&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_7261F2B2.png" width="454" height="381" /&gt; &lt;/p&gt;  &lt;p&gt;Vous pouvez d’ores et déjà télécharger la CPT de la Microsoft XAML Toolkit à cette adresse : &lt;a href="http://code.msdn.microsoft.com/xaml"&gt;http://code.msdn.microsoft.com/xaml&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.dotmim.com/aggbug.aspx?PostID=556" width="1" height="1"&gt;</description>
      <category domain="http://www.dotmim.com/blogs/mim/archive/tags/PDC+2009/default.aspx">PDC 2009</category>
    </item>
    <item>
      <title>[PDC 2009] Hybrid applications avec Azure</title>
      <link>http://www.dotmim.com/blogs/mim/archive/2009/11/19/pdc-2009-hybrid-applications-avec-azure.aspx</link>
      <pubDate>Thu, 19 Nov 2009 21:46:45 GMT</pubDate>
      <guid isPermaLink="false">f24f4a04-d5df-4071-90fb-39191e3ba06c:555</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Mimetis</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotmim.com/blogs/mim/rsscomments.aspx?PostID=555</wfw:commentRss>
      <comments>http://www.dotmim.com/blogs/mim/archive/2009/11/19/pdc-2009-hybrid-applications-avec-azure.aspx#comments</comments>
      <description>&lt;p&gt;Voilà une session animée par Clemens Vaster en personne.&lt;/p&gt;  &lt;p&gt;Celui ci va nous parler de la communication entre applications externes et AZURE. Alors forcément, partant de la, on pense forcément Service Bus ! Alors oui la session fut en partie consacrée au service bus, mais pas que :)&lt;/p&gt;  &lt;p&gt;Pour nous introduire sa problématique Clemens Vaster (CV) fait mumuse avec DinnerNow.net, un projet démo qu’il utilise depuis des lustres pour aborder des sujets divers et variés.&lt;/p&gt;  &lt;p&gt;Chose intéressante, son application existe et comme toute VRAI application, a un historique, des contraintes architecturales fortes. Potentiellement toutes les briques ne sont pas migrables sur AZURE :&lt;/p&gt;  &lt;p&gt;Un peu &lt;a href="http://www.techheadbrothers.com/Articles.aspx/plateforme-azure-migrer"&gt;comme je l’ai fais&lt;/a&gt;, le contexte est de prendre une application déjà existante et de la porter sur le CLOUD :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Des choses que vous ne pouvez pas exécuter dans le Cloud &lt;/li&gt;    &lt;li&gt;Des choses que vous ne voulez pas exécuter dans le cloud &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_70CD701F.png" width="452" height="339" /&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;Biensur le Sevice bus est LA solution pour mettre en relation un service WCF, quelque soit les contraintes de votre Intranet. &lt;/p&gt;  &lt;p&gt;Mais que se passe t’il si le service exposé ne sait pas parler WCF ou ne sait pas communiquer par HTTP ? Prenons par exemple SMPT, SNMP, POP, IMAP … TDS !&lt;/p&gt;  &lt;p&gt;TDS est le protocole de communication de SQL SERVER sur un port 1433 en général. Justement nous voudrions (Surtout Clemens Vaster en fait :)) faire communiquer notre Web Role avec une base de données sur un intranet local, serveur situé biensur derrière toutes les barrières des sécurité classiques (firewall, proxy, isa etc …)&lt;/p&gt;  &lt;p&gt;CV va donc pendant sa session nous démontrer comment utiliser le Service Bus et un projet Bridge pour réussir à faire ce que l’on appelle communément du Tunneling :&lt;/p&gt;  &lt;p&gt;Nous avons deux composants : “Port Bridge Service” et “Port Bridge Agent”&lt;/p&gt;  &lt;p&gt;L’agent a pour rôle d’écouter et d’accepter des connexions TCP (ou named pipe) sur un port configurable. le service lui doit accepter ces connexions et établir un duplex channel avec l’agent, via le Service bus. Il a ensuite la charge traiter les données de l’agent avec le sercice à l’écoute et vice versa :&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image5_5D635A12.png" width="465" height="165" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Clemens Vasters a mis à jour son blog pour expliquer comment faire du tunneling grace à son Bridge et le Service Bus AZURE : &lt;a title="http://blogs.msdn.com/clemensv/archive/2009/11/18/port-bridge.aspx" href="http://blogs.msdn.com/clemensv/archive/2009/11/18/port-bridge.aspx"&gt;http://blogs.msdn.com/clemensv/archive/2009/11/18/port-bridge.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Session intéressante, assez technique, enfin …. trés technique :) &lt;/p&gt;&lt;img src="http://www.dotmim.com/aggbug.aspx?PostID=555" width="1" height="1"&gt;</description>
      <category domain="http://www.dotmim.com/blogs/mim/archive/tags/PDC+2009/default.aspx">PDC 2009</category>
    </item>
    <item>
      <title>[PDC 2009] Windows Azure advanced</title>
      <link>http://www.dotmim.com/blogs/mim/archive/2009/11/19/pdc-2009-windows-azure-advanced.aspx</link>
      <pubDate>Thu, 19 Nov 2009 01:07:50 GMT</pubDate>
      <guid isPermaLink="false">f24f4a04-d5df-4071-90fb-39191e3ba06c:554</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Mimetis</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotmim.com/blogs/mim/rsscomments.aspx?PostID=554</wfw:commentRss>
      <comments>http://www.dotmim.com/blogs/mim/archive/2009/11/19/pdc-2009-windows-azure-advanced.aspx#comments</comments>
      <description>&lt;p&gt;Nouvelle sessions sur Azure, et le dévelopement avancé d’application pour la plateforme, présenté par Steve Marx. technical strategist sur azure. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotmim.com/blogs/mim/image_7C5E745E.png"&gt;&lt;img style="margin:0px 5px;" title="image" border="0" alt="image" align="left" src="http://www.dotmim.com/blogs/mim/image_thumb_4A62BFD5.png" width="244" height="194" /&gt;&lt;/a&gt;L’application exemple prend un Load Balancer; des noeuds IIS, des noeuds permettant de faire de la recherche, et des noeuds gérant des requetes SMTP externes.&lt;/p&gt;  &lt;p&gt;Le principe va etre de monter un architecture comprenant un gros moteur de recherche qui va etre réparti sur plusieurs noeuds azure.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img style="border-bottom:0px;border-left:0px;display:inline;margin-left:0px;border-top:0px;margin-right:0px;border-right:0px;" title="image" border="0" alt="image" align="right" src="http://www.dotmim.com/blogs/mim/image_59A5FC17.png" width="244" height="174" /&gt;&lt;/p&gt;  &lt;p&gt;Durant sa session, il nous présentera des points comme : La communication inter roles, les Endpoints non HTTP, les cycles de vies des instances, ou encore les tailles des VMs (ça c’etait le plus simple, un simple attribut dans le fichier xml de config !)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotmim.com/blogs/mim/image_5ADA6F29.png"&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px 5px 0px 0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" align="left" src="http://www.dotmim.com/blogs/mim/image_thumb_2AAFD20E.png" width="115" height="244" /&gt;&lt;/a&gt; Les noeuds web sont basés sur ASP.NET MVC&lt;/p&gt;  &lt;p&gt;Le moteur de recherche est Lucene.net, une API populaire portée de java&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Aprés nous avoir bien expliqué la différence entre les messages reçus par un Web Role et un Worker Role (grosso modo, le web role est soutenu par un IIS qui gère les requêtes entrantes, alors que votre Worker Role reçoit n’importe quel type de message) Steve nous parle un peu des Endpoints :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;InputEndpoint&lt;/strong&gt;. Permet d’écouter sur des ports specifiques des requêtes entrantes &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;InternalEndpoint &lt;/strong&gt;: Permet de communiquer entre différents roles à l’intérieur de votre architecture AZURE : de la communication inter roles &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_788881C3.png" width="454" height="308" /&gt; &lt;/p&gt;  &lt;p&gt;Durant sa session, Steve nous montrera même comment se passer des queues, qui ont l’avantage et l’inconvénient de délivrer un message à un seul Endpoint, là où il nous faut dispatcher le message sur tous les noeuds : Il va passer par les Table Storage (je vais rester assez vague sur sa technique, parce que j’ai d’une part, pas tout suivi, et d’autre part, il est lui meme rester assez flou :))&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_6D7B2F14.png" width="454" height="403" /&gt; &lt;/p&gt;  &lt;p&gt;Bref une démo pur code, bien HardCore, le source code de la session devrait être dispo rapidemment sur le blog du monsieur.&lt;/p&gt;  &lt;p&gt;Le blog du monsieur, où le source devrait être rapidemment disponible : &lt;a href="http://blogs.smarx.com"&gt;http://blogs.smarx.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.dotmim.com/aggbug.aspx?PostID=554" width="1" height="1"&gt;</description>
      <category domain="http://www.dotmim.com/blogs/mim/archive/tags/PDC+2009/default.aspx">PDC 2009</category>
    </item>
    <item>
      <title>[PDC 2009] Projet Quadrant et Langage M</title>
      <link>http://www.dotmim.com/blogs/mim/archive/2009/11/19/pdc-2009-projet-quadrant-et-langage-m.aspx</link>
      <pubDate>Thu, 19 Nov 2009 00:56:28 GMT</pubDate>
      <guid isPermaLink="false">f24f4a04-d5df-4071-90fb-39191e3ba06c:553</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Mimetis</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotmim.com/blogs/mim/rsscomments.aspx?PostID=553</wfw:commentRss>
      <comments>http://www.dotmim.com/blogs/mim/archive/2009/11/19/pdc-2009-projet-quadrant-et-langage-m.aspx#comments</comments>
      <description>&lt;p&gt;&amp;#160;&lt;img style="border-bottom:0px;border-left:0px;margin:0px 10px 0px 0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" align="left" src="http://www.dotmim.com/blogs/mim/image_09F0FEB3.png" width="404" height="292" /&gt; &lt;/p&gt;  &lt;p&gt;Voilà une session qui a été un peu mon heure “détente” de la journée. &lt;/p&gt;  &lt;p&gt;La session est animée par deux joyeux lurons, Douglas Purdy et Chris Sells qui nous ont présenté le Projet Quadrant, et le langage “M”&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;On se retrouve ici avec une application “Quadrant” permettant de naviguer dans les données SQL SERVER; trés facilement. &lt;/p&gt;  &lt;p&gt;Mieux il devient possible et intuitif de créeer des vues Maitres Détail de vos données, simplement avec du glisser-déposer.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_2A742A66.png" width="244" height="204" /&gt;&amp;#160;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_713D01C9.png" width="244" height="204" /&gt; &lt;/p&gt;  &lt;p&gt;Chaque écran est finalement une vue de vos données, cet écran est en fait construit à partir de ce fameux langage “M” D’ailleurs, il est facile de faire un “clic-droit” sur le formulaire pour voir le script “M” qui est à l’origine du formulaire; un peu comme vous le feriez avec le source d’un code HTML.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_103FD310.png" width="354" height="313" /&gt; &lt;/p&gt;  &lt;p&gt;Voilà une session sympa, un peu décalée par rapport à l’ensemble des sujets du jour (AZUuuuuuuuuure) et qui fut ma fois bien fun !&lt;/p&gt;&lt;img src="http://www.dotmim.com/aggbug.aspx?PostID=553" width="1" height="1"&gt;</description>
      <category domain="http://www.dotmim.com/blogs/mim/archive/tags/PDC+2009/default.aspx">PDC 2009</category>
    </item>
    <item>
      <title>[PDC 2009] Keynote Day 2 : Silverlight 4 annoncé ! (et dispo !!)</title>
      <link>http://www.dotmim.com/blogs/mim/archive/2009/11/19/pdc-2009-keynote-day-2-silverlight-4-annonc-233-et-dispo.aspx</link>
      <pubDate>Thu, 19 Nov 2009 00:44:10 GMT</pubDate>
      <guid isPermaLink="false">f24f4a04-d5df-4071-90fb-39191e3ba06c:552</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Mimetis</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotmim.com/blogs/mim/rsscomments.aspx?PostID=552</wfw:commentRss>
      <comments>http://www.dotmim.com/blogs/mim/archive/2009/11/19/pdc-2009-keynote-day-2-silverlight-4-annonc-233-et-dispo.aspx#comments</comments>
      <description>&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px 20px 0px 0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" align="left" src="http://www.dotmim.com/blogs/mim/image3_4187BA4A.png" width="244" height="195" /&gt; C’est parti pour le keynote de la deuxième journée. &lt;/p&gt;  &lt;p&gt;La première partie du keynote est axée sur &lt;strong&gt;Windows 7&lt;/strong&gt;, la volonté de MS de fournir un OS d’excellente facture, en prenant en compte les retours des utilisateurs.&lt;/p&gt;  &lt;p&gt;Nous avons droit ensuite à une démonstration de l’UAC, ou encore le “Shake and minimaze”. Bref, rien de particulier, juste quelques features “funs et utilles” de Windows 7.&lt;/p&gt;  &lt;p&gt;On passe ensuite au hardware et Windows 7 avec une démonstration de mini PC, et la charge qu’ils sont capables d’accepter avec Windows 7&lt;/p&gt;  &lt;p&gt;Quelques démos sur le ScreenTouch, allez on va pas se priver, ils nous montrent du matos !&lt;/p&gt;  &lt;p&gt;Bref, un bon début de Keynote, résolument marketing avec une dévotion totale à Windows 7&lt;/p&gt;  &lt;p&gt;En même temps, faut bien l’avouer, Windows 7 EST une réussite. Ok, let’s go to the next, show me new Stuff !!!&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Internet Explorer 9&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Ah tiens, je me remets de mes émotions (&lt;a title="http://microsoftpdc.com/tablet" href="http://microsoftpdc.com/tablet"&gt;http://microsoftpdc.com/tablet&lt;/a&gt;) pour voir l’annonce de IE 9, avec des capacités encore plus évoluées et un test ACID3, (presque) concluant.&lt;/p&gt;  &lt;p&gt;Ah mais je rêve, IE9 fait du rendu Direct X ! oulà oulà ! un Full Rendering D2D sur IE 9, ça calme !&lt;/p&gt;  &lt;p&gt;Scott Guthrie fait son entrée, et nous parle de Silverlight 3. C’est beau, et on est pas en reste en France avec des sites comme Canal +, Le tour de France ou encore Rolland Garros sont alors plein cadre, plein slide :)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;ANNONCE DE SILVERLIGHT 4 &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Avant d’aller plus loin non seulement l’annonce est faite, mais la béta est déjà disponible sur &lt;a href="http://www.silverlight.net"&gt;http://www.silverlight.net&lt;/a&gt; Y’a plus qu’a !&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px 0px 0px 10px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" align="right" src="http://www.dotmim.com/blogs/mim/image7_46C67B2E.png" width="244" height="191" /&gt; Allez, c’est parti pour les démos. Une des nouveautés concerne la gestion des médias, webcams et micros. &lt;/p&gt;  &lt;p&gt;Scott Gu nous fait une démo, avec des effets appliqués en temps réél au rendu, pixels shaders.&lt;/p&gt;  &lt;p&gt;Avec son style bien particulier la salle est pliée quand il prend un screenshot de sa tête déformée par un effet appliquée en live sur sa webcam !&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px 10px 0px 0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" align="left" src="http://www.dotmim.com/blogs/mim/image11_361E5A73.png" width="211" height="244" /&gt;Une démo de scan d’un code barre sur SL4, bref ça donne quelque chose d’extraordinaire dans moins de 5 Mo quand même ! &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;IIS Smooth Streaming &lt;/strong&gt;: Bon ça c’est pas nouveau, mais peu de personnes connaissent. Je vous conseille de vous rendre ici pour plus d’infos : &lt;a title="http://www.smoothhd.com/" href="http://www.smoothhd.com/"&gt;http://www.smoothhd.com/&lt;/a&gt; Une démo sur IPhone; après on dira que MS est pas ouvert :) Bon ok, la démo a pas marché, mais on y croit ! :)&lt;/p&gt;  &lt;p&gt;Sinon au menu de &lt;strong&gt;Silverlight 4&lt;/strong&gt;, on a noté encore :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Gestion du clic droit (Mais ouiiiiiiiiiiiiiiiiiiii)&lt;/li&gt;    &lt;li&gt;Rich Text Editor&lt;/li&gt;    &lt;li&gt;Printing &lt;/li&gt;    &lt;li&gt;Clipoboard access &lt;/li&gt;    &lt;li&gt;Mouse wheel &lt;/li&gt;    &lt;li&gt;Implicit style (mais ouiiiiiiiiiiiii)&lt;/li&gt;    &lt;li&gt;Drag drop &lt;/li&gt;    &lt;li&gt;CommandBinding (MVVM) &lt;/li&gt;    &lt;li&gt;Additionnal Controls &lt;/li&gt;    &lt;li&gt;Support HTML &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px 10px 0px 0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" align="left" src="http://www.dotmim.com/blogs/mim/image_719E1D99.png" width="244" height="185" /&gt; S’en suit une démo d’un éditeur HTML dans Silverlight 4. &lt;/p&gt;  &lt;p&gt;Ca en jette pas mal, le drag and drop d’un fichier Word dans une fenêtre SL4 contenant l’éditeur wysiwyg&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Au niveau des données; quelques améliorations notables comme:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Le partage d’assemblies entre SL et .NET 4&lt;/li&gt;    &lt;li&gt;Améliorations du Databinding&lt;/li&gt;    &lt;li&gt;Support du multicast UDP&lt;/li&gt;    &lt;li&gt;Améliorations REST&lt;/li&gt;    &lt;li&gt;Améliorations WCF&lt;/li&gt;    &lt;li&gt;Intégrations des WCF RIA SERVICES&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;margin-left:0px;border-top:0px;margin-right:0px;border-right:0px;" title="image" border="0" alt="image" align="right" src="http://www.dotmim.com/blogs/mim/image_76CCB8B0.png" width="244" height="238" /&gt; Sur ce dernier point &lt;strong&gt;Scott Hanselman&lt;/strong&gt; viendra nous faire une démo de RIA Services. Rien de bien extraordinaire, mais qui fait son petit effet :)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;On passe ensuite au support avancé dans Visual Studio 2010. Là au menu, en vrac nous avons :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Un éditeur Wysiwyg dans VS 2010&lt;/li&gt;    &lt;li&gt;Améliorations de l’IntelliSense dans le XAML&lt;/li&gt;    &lt;li&gt;Améliorations des designers pour le data binding, les layouts et les styles&lt;/li&gt;    &lt;li&gt;Intégration des RIA Services&lt;/li&gt;    &lt;li&gt;Support du Full Trust en mode OOB&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_36F2AC5E.png" width="454" height="257" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_4A4F9A98.png" width="454" height="420" /&gt; &lt;/p&gt;  &lt;p&gt;Au niveau performance SL4 nous promet d’être 2 x plus performant et de démarrer 30% plus rapidement.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px 5px 0px 0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" align="left" src="http://www.dotmim.com/blogs/mim/image_3A8BF195.png" width="242" height="244" /&gt; Une démo très très sympa sur une application Facebook sur Silverlight 4. &lt;/p&gt;  &lt;p&gt;Y’a pas à dire, ça déchire du taureau des Landes.. avec accès direct au matériel (upload du photo de son device en simple glissé-déposé)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;La dernière partie du KeyNote sera axé sur Office 2010 et les nouveautés Sharepoint. Etant loin d’être expert sur le sujet, je laisse le soin à &lt;a href="http://blogs.developpeur.org/redo/"&gt;Redo&lt;/a&gt; qui est assis à coté de moi, de vous &lt;a href="http://blogs.developpeur.org/redo/archive/2009/11/18/pdc-2009-d2-3-3-office-sharepoint-2010-visual-studio-2010-une-int-gration-compl-te.aspx"&gt;relater la fin de session&lt;/a&gt; !&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Voilà, direction les sessions. La journée s’annonce chargée !&lt;/p&gt;&lt;img src="http://www.dotmim.com/aggbug.aspx?PostID=552" width="1" height="1"&gt;</description>
      <category domain="http://www.dotmim.com/blogs/mim/archive/tags/PDC+2009/default.aspx">PDC 2009</category>
    </item>
    <item>
      <title>[PDC 2009] Mon nouveau laptop PDC 2009 !!</title>
      <link>http://www.dotmim.com/blogs/mim/archive/2009/11/18/pdc-2009-mon-nouveau-laptop-pdc-2009.aspx</link>
      <pubDate>Wed, 18 Nov 2009 21:47:39 GMT</pubDate>
      <guid isPermaLink="false">f24f4a04-d5df-4071-90fb-39191e3ba06c:551</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Mimetis</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotmim.com/blogs/mim/rsscomments.aspx?PostID=551</wfw:commentRss>
      <comments>http://www.dotmim.com/blogs/mim/archive/2009/11/18/pdc-2009-mon-nouveau-laptop-pdc-2009.aspx#comments</comments>
      <description>&lt;p&gt;Et voilà je suis en possession de mon nouveau laptop offert par MS pendant la PDC.&lt;/p&gt;  &lt;p&gt;Moi qui voulait en acheter un !!! &lt;/p&gt;  &lt;p&gt;Tiens, quelques photos de la bête !&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="CIMG1588" border="0" alt="CIMG1588" src="http://www.dotmim.com/blogs/mim/CIMG1588_1F75E1FF.jpg" width="244" height="184" /&gt; &lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="CIMG1592" border="0" alt="CIMG1592" src="http://www.dotmim.com/blogs/mim/CIMG1592_0FC25EC9.jpg" width="244" height="184" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="CIMG1591" border="0" alt="CIMG1591" src="http://www.dotmim.com/blogs/mim/CIMG1591_644E1801.jpg" width="244" height="184" /&gt; &lt;/p&gt;  &lt;p&gt;Tiens, en comparaison de ma machine actuelle, ca va me changer ;) (et encore je vous parle pas du poids !!)&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="CIMG1589" border="0" alt="CIMG1589" src="http://www.dotmim.com/blogs/mim/CIMG1589_509108A0.jpg" width="244" height="184" /&gt;&lt;/p&gt;&lt;img src="http://www.dotmim.com/aggbug.aspx?PostID=551" width="1" height="1"&gt;</description>
      <category domain="http://www.dotmim.com/blogs/mim/archive/tags/PDC+2009/default.aspx">PDC 2009</category>
    </item>
    <item>
      <title>[PDC 2009] Sql Azure : Present and Future</title>
      <link>http://www.dotmim.com/blogs/mim/archive/2009/11/18/pdc-2009-sql-azure-present-and-future.aspx</link>
      <pubDate>Wed, 18 Nov 2009 03:44:01 GMT</pubDate>
      <guid isPermaLink="false">f24f4a04-d5df-4071-90fb-39191e3ba06c:549</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Mimetis</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotmim.com/blogs/mim/rsscomments.aspx?PostID=549</wfw:commentRss>
      <comments>http://www.dotmim.com/blogs/mim/archive/2009/11/18/pdc-2009-sql-azure-present-and-future.aspx#comments</comments>
      <description>&lt;p&gt;Juste aprés la session sur Azure Present and Future, voici la même mais cette fois ci pour SQL AZURE&lt;/p&gt;  &lt;p&gt;Les nouveautés présentés vont tourner autour de :&lt;img style="border-bottom:0px;border-left:0px;margin:0px 0px 0px 5px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" align="right" src="http://www.dotmim.com/blogs/mim/image_653F0900.png" width="244" height="189" /&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Intégration avancée dans SSMS SQL SERVER 2008 R2 &lt;/li&gt;    &lt;li&gt;Intégration dans Visual Studio 2010 &lt;/li&gt;    &lt;li&gt;Reporting &lt;/li&gt;    &lt;li&gt;Synchronisation &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Alors bon, un peu déçu sur le coup car au final, aucune démo ni sur la BI, Reporting et encore moins sur Data Sync.&lt;/p&gt;  &lt;p&gt;Il faut croire qu’il faudra attendre les sessions dédiées sur ces sujets !&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Sinon pour le reste :&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;margin:0px 15px 0px 0px;display:inline;border-top:0px;border-right:0px;" title="image" border="0" alt="image" align="left" src="http://www.dotmim.com/blogs/mim/image_19630C7A.png" width="244" height="157" /&gt; J’ai pu voir le plan d’exécution d’une query sur SQL AZURE depuis Visual Studio 2010. Sympa !&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Nous avons droit à une présentation du système de backup, bien que cette partie ne nous concerne pas puisque totalement pris en compte par SQL AZURE.    &lt;br /&gt;Par contre possibilité de configurer et gérer les backups.&lt;/p&gt;  &lt;p&gt;Système de Clone : Possibilité de Cloner les bases de données :&lt;/p&gt;  &lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_261D16FE.png" width="454" height="323" /&gt; &lt;/p&gt;  &lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;height:57px;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Create&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;Database&lt;/span&gt; xx.ProdClone &lt;span style="color:#0000ff;"&gt;as&lt;/span&gt; CLONE &lt;span style="color:#0000ff;"&gt;of&lt;/span&gt; xyz.Prod&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;D’autres points, en vrac:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Support de providers SaaS (Api, template, Meta-data tracking, Support de scénarios) &lt;/li&gt;

  &lt;li&gt;Support du DAC &lt;/li&gt;

  &lt;li&gt;Support de Data Sync &lt;/li&gt;

  &lt;li&gt;Dynamic database splits &lt;/li&gt;

  &lt;li&gt;Merge databases &lt;/li&gt;

  &lt;li&gt;Management across group of databases &lt;/li&gt;

  &lt;li&gt;Aditionnal database size options &lt;/li&gt;

  &lt;li&gt;Multiple database connections &lt;/li&gt;

  &lt;li&gt;fan-out query on multiple databases &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Les demandes utilisateurs (je n’ai pas su voir si cela allait être intégré) &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Support for profiler &lt;/li&gt;

  &lt;li&gt;support spatial &lt;/li&gt;

  &lt;li&gt;Full Text Search &lt;/li&gt;

  &lt;li&gt;Change Tracking &lt;/li&gt;

  &lt;li&gt;CLR &lt;/li&gt;

  &lt;li&gt;BI &lt;/li&gt;

  &lt;li&gt;Encryption &lt;/li&gt;

  &lt;li&gt;Additionnal authentication &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tiens, une info (on s’en serait douté mais bon) “Dallas” utilise SQL AZURE.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sql Azure codename “Vidalia”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Le principe : Séparer le contrôle des données des données elles-même. &lt;/p&gt;

&lt;p&gt;Pas de démo sur le sujet, le principe reste sympa. A tester :)&lt;/p&gt;&lt;img src="http://www.dotmim.com/aggbug.aspx?PostID=549" width="1" height="1"&gt;</description>
      <category domain="http://www.dotmim.com/blogs/mim/archive/tags/PDC+2009/default.aspx">PDC 2009</category>
    </item>
    <item>
      <title>[PDC 2009] WPF Performance Tuning and Analysis</title>
      <link>http://www.dotmim.com/blogs/mim/archive/2009/11/18/pdc-2009-wpf-performance-tuning-and-analysis.aspx</link>
      <pubDate>Wed, 18 Nov 2009 02:59:25 GMT</pubDate>
      <guid isPermaLink="false">f24f4a04-d5df-4071-90fb-39191e3ba06c:548</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Mimetis</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotmim.com/blogs/mim/rsscomments.aspx?PostID=548</wfw:commentRss>
      <comments>http://www.dotmim.com/blogs/mim/archive/2009/11/18/pdc-2009-wpf-performance-tuning-and-analysis.aspx#comments</comments>
      <description>&lt;p&gt;Voilà une session que j’ai nommé “Killer Session” ! (en fin de journée je vous explique pas !)&lt;/p&gt;  &lt;p&gt;Session animée par deux (jeunes) membres de l’équipe WPF Performance (Blogs &lt;a title="http://blogs.msdn.com/jgoldb/" href="http://blogs.msdn.com/jgoldb/"&gt;http://blogs.msdn.com/jgoldb/&lt;/a&gt; et &lt;a href="http://blogs.msdn.com/ricom"&gt;http://blogs.msdn.com/ricom&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;Autant le dire de suite, ces deux jeunes envoient du bois !&lt;/p&gt;  &lt;p&gt;Je ne vais pas rentrer dans les détails, la session est très technique. Quelques slides pour résumer la philosophie du truc :&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_0C29E8A3.png" width="454" height="347" /&gt; &lt;/p&gt;  &lt;p&gt;Oui les mesures, et surtout l’expérience !&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_4AFB1DA4.png" width="454" height="332" /&gt; &lt;/p&gt;  &lt;p&gt;je ne résiste pas à la tentation de vous montrer un des exemples découvert pendant la session:&lt;/p&gt;  &lt;p&gt;Il s’agit d’éviter de charger des modules inutilement dans votre code.&lt;/p&gt;  &lt;p&gt;Supposons que j’ai dans un “IF” un appel à un objet externe, faisant parti d’une dll supplémentaire :&lt;/p&gt;  &lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// Some code&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// /...&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;&amp;#160; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (!expected)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt; {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (COMClassLogger log = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; COMClassLogger())&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt;     {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt;   8:&lt;/span&gt;         log.WriteLog(&lt;span style="color:#006080;"&gt;&amp;quot;Error&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum9"&gt;   9:&lt;/span&gt;     }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum10"&gt;  10:&lt;/span&gt; }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum11"&gt;  11:&lt;/span&gt;&amp;#160; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum12"&gt;  12:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// Some code&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum13"&gt;  13:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// /...&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Votre module est loadé lors du chargement de l’assembly principal, alors que celle ci peut ne pas être utilisé (Peut être parce qu’on passe pas dans le IF :))&lt;/p&gt;

&lt;p&gt;Oui monsieur, l’évaluation du IF est fait au runtime, pas à la compil !!!&lt;/p&gt;

&lt;p&gt;Le truc pour éviter ça c’est d’exporter votre appel dans une méthode, “like this” :&lt;/p&gt;

&lt;p&gt;Si lors du chargement, votre module supplémentaire ne fait pas parti du corps de la méthode de chargement, il ne sera pas chargé. On fait donc un truc du genre :&lt;/p&gt;

&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// Some code&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// /...&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;&amp;#160; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;if&lt;/span&gt; (!expected)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt; {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt;     WriteLogEntry();&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt; }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt;   8:&lt;/span&gt;&amp;#160; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum9"&gt;   9:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// Some code&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum10"&gt;  10:&lt;/span&gt; &lt;span style="color:#008000;"&gt;// /...&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum11"&gt;  11:&lt;/span&gt; }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum12"&gt;  12:&lt;/span&gt;&amp;#160; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum13"&gt;  13:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt;  &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; WriteLogEntry()&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum14"&gt;  14:&lt;/span&gt; {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum15"&gt;  15:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (COMClassLogger log = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; COMClassLogger())&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum16"&gt;  16:&lt;/span&gt;     {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum17"&gt;  17:&lt;/span&gt;         log.WriteLog(&lt;span style="color:#006080;"&gt;&amp;quot;Error&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum18"&gt;  18:&lt;/span&gt;    }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum19"&gt;  19:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Le problème c’est le JIT compiler va optimiser ce code est “coupé-coller” le corps de la méthode au niveau de l’appelant. Donc un coup d’épée dans l’eau !&lt;/p&gt;

&lt;p&gt;Bref, il nous faut donc indiquer à .NET de ne PAS faire faire ce qu’on appelle du “Inlining”, en marquant notre méthode avec un attribut MethodImpl, “like that” :&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;padding-bottom:4px;line-height:12pt;background-color:#f4f4f4;margin:20px 0px 10px;padding-left:4px;width:97.5%;padding-right:4px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;padding-top:4px;" id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; [MethodImpl(MethodImplOptions.NoInlining)]&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;private&lt;/span&gt;  &lt;span style="color:#0000ff;"&gt;void&lt;/span&gt; WriteLogEntry()&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt; {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;using&lt;/span&gt; (COMClassLogger log = &lt;span style="color:#0000ff;"&gt;new&lt;/span&gt; COMClassLogger())&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt;     {&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt;         log.WriteLog(&lt;span style="color:#006080;"&gt;&amp;quot;Error&amp;quot;&lt;/span&gt;);&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt;     }&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;border-right-style:none;background-color:#f4f4f4;margin:0em;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;font-size:8pt;border-left-style:none;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt;   8:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Et voilà un module non chargé, qui pourrait bien faire ramer (potentiellement) notre application au démarrage !&lt;/p&gt;

&lt;p&gt;C’était je pense un des exemples les plus simple de la session :)&lt;/p&gt;

&lt;p&gt;Nos deux compères ont beaucoup utiliser les outils de traces à disposition; voici un bon slide qui résume ceux qu’ils ont utilisé :&lt;/p&gt;

&lt;p&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="image" border="0" alt="image" src="http://www.dotmim.com/blogs/mim/image_3510E9AD.png" width="454" height="338" /&gt; &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Voilà, bonne optimisation à tous :)&lt;/p&gt;&lt;img src="http://www.dotmim.com/aggbug.aspx?PostID=548" width="1" height="1"&gt;</description>
      <category domain="http://www.dotmim.com/blogs/mim/archive/tags/PDC+2009/default.aspx">PDC 2009</category>
    </item>
    <item>
      <title>[PDC 2009] SQL AZURE Data Sync</title>
      <link>http://www.dotmim.com/blogs/mim/archive/2009/11/18/pdc-2009-sql-azure-data-sync.aspx</link>
      <pubDate>Tue, 17 Nov 2009 23:14:22 GMT</pubDate>
      <guid isPermaLink="false">f24f4a04-d5df-4071-90fb-39191e3ba06c:547</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Mimetis</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.dotmim.com/blogs/mim/rsscomments.aspx?PostID=547</wfw:commentRss>
      <comments>http://www.dotmim.com/blogs/mim/archive/2009/11/18/pdc-2009-sql-azure-data-sync.aspx#comments</comments>
      <description>&lt;p&gt;Et voilà, la session n’est pas encore donnée (elle aura lieu Jeudi) mais déjà la CTP de SQL DATA Sync est disponible !&lt;/p&gt;  &lt;p&gt;Je reviendrais dessus rapidement mais voici déjà l’annonce sur le Blog de la team Sync :&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/sync/archive/2009/11/17/announcing-sql-azure-data-sync-november-ctp-available-for-download.aspx" href="http://blogs.msdn.com/sync/archive/2009/11/17/announcing-sql-azure-data-sync-november-ctp-available-for-download.aspx"&gt;http://blogs.msdn.com/sync/archive/2009/11/17/announcing-sql-azure-data-sync-november-ctp-available-for-download.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;CA, ça roxe !&lt;/p&gt;&lt;img src="http://www.dotmim.com/aggbug.aspx?PostID=547" width="1" height="1"&gt;</description>
      <category domain="http://www.dotmim.com/blogs/mim/archive/tags/PDC+2009/default.aspx">PDC 2009</category>
    </item>
    <item>
      <title>La boite de dialogue PrintDialog ne veut pas s’afficher !?</title>
      <link>http://blogs.developpeur.org/vko/archive/2009/11/17/la-boite-de-dialogue-printdialog-ne-veut-pas-s-afficher.aspx</link>
      <pubDate>Tue, 17 Nov 2009 11:17:34 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:47106</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Vko</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">1</comments>
      <comments>http://blogs.developpeur.org/vko/comments/47106.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/vko/commentrss.aspx?PostID=47106</commentRss>
      <description>
  Si un jour vous utilisez la boite de dialogue PrintDialog, positionnez la propriété UseExDialog à True histoire d’éviter de perdre du temps.  En fait, dans la plupart des cas cela n’aura pas d’incidence. Par contre si vous êtes sur Windows 7 en 64 bit...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=47106" width="1" height="1"&gt;</description>
    </item>
    <item>
      <title>Le truc à la con du jour : plantage du Windows Form Designer de Visual Studio</title>
      <description>&lt;p&gt;Un truc qui peut arriver et qui est bien gonflant : le plantage du Windows Form Designer.&lt;/p&gt;  &lt;p&gt;Cela se produit souvent quand on a un contrôle qui hérite d’un autre ou un formulaire qui hérite d’un parent.&lt;/p&gt;  &lt;p&gt;La solution (après des années de recherches et des financements de l’armée):&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Allez dans le menu Tools/Options/Windows Form Designer&lt;/li&gt;    &lt;li&gt;Mettre l’option AutoPopulateToolbox à faux&lt;/li&gt;    &lt;li&gt;Lancer en ligne de commande de Visual Studio : mage –cc&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Et le tour est joué!&lt;/p&gt;  &lt;p&gt;Bon le rapport entre la toolbox et le biniou n’est pas claire mais tant que ça marche:)&lt;/p&gt;</description>
      <link>http://www.catuhe.com/post/Le-truc-a-la-con-du-jour-plantage-du-Windows-Form-Designer-de-Visual-Studio.aspx</link>
      <author>kosh</author>
      <comments>http://www.catuhe.com/post/Le-truc-a-la-con-du-jour-plantage-du-Windows-Form-Designer-de-Visual-Studio.aspx#comment</comments>
      <guid>http://www.catuhe.com/post.aspx?id=7a1f4dd6-3c2a-4d77-b497-32b6d2dbc783</guid>
      <pubDate>Tue, 17 Nov 2009 11:28:34 +0200</pubDate>
      <category>.Net</category>
      <category>Windows Forms</category>
      <publisher xmlns="http://purl.org/dc/elements/1.1/">kosh</publisher>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/pingback.axd</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/post.aspx?id=7a1f4dd6-3c2a-4d77-b497-32b6d2dbc783</target>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">1</comments>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://www.catuhe.com/trackback.axd?id=7a1f4dd6-3c2a-4d77-b497-32b6d2dbc783</ping>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/post/Le-truc-a-la-con-du-jour-plantage-du-Windows-Form-Designer-de-Visual-Studio.aspx#comment</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/syndication.axd?post=7a1f4dd6-3c2a-4d77-b497-32b6d2dbc783</commentRss>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-2242180640574693740</guid>
      <pubDate>Fri, 13 Nov 2009 14:28:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-11-13T15:44:26.790+01:00</updated>
      <category domain="http://www.blogger.com/atom/ns#">MVC</category>
      <title>ASP.NET MVC : Changer de ViewEngine (2/2)</title>
      <description>&lt;p&gt;Nous avons vu dans mon précédent post comment apporter des modifications au ViewEngine utilisé par défaut par MVC. Aujourd’hui, ça va se compliquer puisque nous allons voir ce qu’il est nécessaire de savoir pour créer un ViewEngine complet.&lt;/p&gt;  &lt;p&gt;Contrairement à ce que nous avons vu précédemment, où nous ne faisions qu’apporter des modification au WebFormViewEngine, cette fois nous aurons un contrôle total du code HTML qui sera généré, libre à vous d’utiliser des pages PHP ou de créer votre propre langage serveur ! Par contre, je ne vous cache pas que mettre ça en place vous demandera un peu plus de boulot que d’utiliser les webforms.&lt;/p&gt;  &lt;p&gt;Pour créer un nouveau View Engine from scratch, il va nous falloir implémenter 2 interfaces: IView, qui représentera nos vues (ce qui nous permettre de renvoyer le code html au client), et IViewEngine, qui nous servira à charger la vue correcte en fonction du contexte et du nom de la vue.&lt;/p&gt;  &lt;p&gt;Commençons par la vue : l’interface IView nous demande de faire une méthode Render, qui reçoit des informations dans le viewContext, et devra écrire le code HTML à renvoyer au client dans un TextWriter.&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Consolas"&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;MyCompletelySpecificView&lt;/font&gt;&lt;font color="#000000"&gt; : &lt;/font&gt;&lt;font color="#2b91af"&gt;IView&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #region&lt;/font&gt;&lt;font color="#000000"&gt; IView Members          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;font color="#000000"&gt; Render(&lt;/font&gt;&lt;font color="#2b91af"&gt;ViewContext&lt;/font&gt;&lt;font color="#000000"&gt; viewContext, System.IO.&lt;/font&gt;&lt;font color="#2b91af"&gt;TextWriter&lt;/font&gt;&lt;font color="#000000"&gt; writer)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#008000"&gt;// on va faire notre rendu ici&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;          &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #endregion&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Nous avons ici toute liberté pour faire ce que nous voulons ! Nous allons par exemple aller chercher notre vue en base de données : pour cela, nous avons une table toute simple avec 2 colonnes : le nom de la vue, et le code HTML correspondant.&lt;/p&gt;  &lt;p&gt;Nous pouvons créer notre DatabaseView qui ira chercher en base de données le code html, au lieu de chercher un fichier.&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Consolas"&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;DatabaseView&lt;/font&gt;&lt;font color="#000000"&gt; : &lt;/font&gt;&lt;font color="#2b91af"&gt;IView&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt; viewName;          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt; DatabaseView(&lt;/font&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt; viewName)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;font color="#000000"&gt;.viewName = viewName;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;          &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #region&lt;/font&gt;&lt;font color="#000000"&gt; IView Members          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;font color="#000000"&gt; Render(&lt;/font&gt;&lt;font color="#2b91af"&gt;ViewContext&lt;/font&gt;&lt;font color="#000000"&gt; viewContext, System.IO.&lt;/font&gt;&lt;font color="#2b91af"&gt;TextWriter&lt;/font&gt;&lt;font color="#000000"&gt; writer)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;font color="#2b91af"&gt;DatabaseViewsDataContext&lt;/font&gt;&lt;font color="#000000"&gt; context = &lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;DatabaseViewsDataContext&lt;/font&gt;&lt;font color="#000000"&gt;())          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#2b91af"&gt;ViewContent&lt;/font&gt;&lt;font color="#000000"&gt; content = context.ViewContents.SingleOrDefault(v =&amp;gt; v.ViewName == viewName);          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;font color="#000000"&gt; (content != &lt;/font&gt;&lt;font color="#0000ff"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; writer.Write(content.Text);           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;          &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #endregion&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Il ne nous reste plus qu’à créer le View Engine qui va bien, pour pouvoir appeler correctement nos vues. Nous avons 3 méthodes à implémenter : pour récupérer une vue, pour récupérer une vue partielle, et pour libérer la mémoire de notre vue.&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Consolas"&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;DatabaseViewEngine&lt;/font&gt;&lt;font color="#000000"&gt; : &lt;/font&gt;&lt;font color="#2b91af"&gt;IViewEngine&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #region&lt;/font&gt;&lt;font color="#000000"&gt; IViewEngine Members          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;ViewEngineResult&lt;/font&gt;&lt;font color="#000000"&gt; FindPartialView(&lt;/font&gt;&lt;font color="#2b91af"&gt;ControllerContext&lt;/font&gt;&lt;font color="#000000"&gt; controllerContext, &lt;/font&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#000000"&gt; partialViewName, &lt;/font&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;font color="#000000"&gt; useCache)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;ViewEngineResult&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;DatabaseView&lt;/font&gt;&lt;font color="#000000"&gt;(partialViewName), &lt;/font&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;font color="#000000"&gt;);          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;ViewEngineResult&lt;/font&gt;&lt;font color="#000000"&gt; FindView(&lt;/font&gt;&lt;font color="#2b91af"&gt;ControllerContext&lt;/font&gt;&lt;font color="#000000"&gt; controllerContext, &lt;/font&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#000000"&gt; viewName, &lt;/font&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#000000"&gt; masterName, &lt;/font&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;font color="#000000"&gt; useCache)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;ViewEngineResult&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;DatabaseView&lt;/font&gt;&lt;font color="#000000"&gt;(viewName), &lt;/font&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;font color="#000000"&gt;);          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;font color="#000000"&gt; ReleaseView(&lt;/font&gt;&lt;font color="#2b91af"&gt;ControllerContext&lt;/font&gt;&lt;font color="#000000"&gt; controllerContext, &lt;/font&gt;&lt;font color="#2b91af"&gt;IView&lt;/font&gt;&lt;font color="#000000"&gt; view)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#2b91af"&gt;IDisposable&lt;/font&gt;&lt;font color="#000000"&gt; disposableView = view &lt;/font&gt;&lt;font color="#0000ff"&gt;as&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;IDisposable&lt;/font&gt;&lt;font color="#000000"&gt;;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;font color="#000000"&gt; (disposableView != &lt;/font&gt;&lt;font color="#0000ff"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; disposableView.Dispose();           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;          &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #endregion&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;J’ai ici fait au plus simple, mais vous avez tout loisir pour faire plus compliqué si vous le désirez, pour gérer les vues mobiles, ou bien différentes langues. N’oubliez pas non plus de gérer le cache lorsqu’on vous le demande (et oui, refaire un ViewEngine, ça veut dire qu’il faut TOUT refaire).&lt;/p&gt;  &lt;p&gt;Voilà, vous avez toutes les clés en main pour créer votre propre View Engine, maintenant à vous de jouer !&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Cross-posté vers &lt;a href="http://www.techheadbrothers.com/"&gt;Tech Head Brothers&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-2242180640574693740?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/11/aspnet-mvc-changer-de-viewengine-22.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-5065211897464753434</guid>
      <pubDate>Tue, 10 Nov 2009 11:03:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-11-13T15:40:36.490+01:00</updated>
      <category domain="http://www.blogger.com/atom/ns#">MVC</category>
      <title>ASP.NET MVC : Changer de ViewEngine (1/2)</title>
      <description>&lt;p&gt;Nous avons vu dans un précédent post comment changer de ControllerFactory, maintenant nous allons voir comment changer de ViewEngine.&lt;/p&gt;  &lt;p&gt;Mon problème, comme la dernière fois, est que je n’aime pas la convention par défaut de MVC : si je ne mets pas mes vues dans le dossier “Views”, il ne les trouve pas. Je vais donc créer mon propre ViewEngine ; ou plutot je vais étendre celui utilisé par défaut pour redéfinir les dossiers où chercher.&lt;/p&gt;  &lt;p&gt;Avant de faire ça, nous allons d’abord regarder comment fonctionne le WebFormViewEngine : &lt;a href="http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24471"&gt;le code source est disponible&lt;/a&gt;, ne nous privons pas d’aller y jeter un oeil !     &lt;br /&gt;La classe hérite de VirtualPathProviderViewEngine, classe abstraite qui permet d’aller chercher les fichiers dans le site à partir de chemins virtuels asp.net (vous savez, ceux qui commencent par ~). Regardons son constructeur :&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Courier New"&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt; WebFormViewEngine() {          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MasterLocationFormats = &lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#000000"&gt;[] {          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;~/Views/{1}/{0}.master&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;,          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;~/Views/Shared/{0}.master&amp;quot;          &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; };          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ViewLocationFormats = &lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#000000"&gt;[] {          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;~/Views/{1}/{0}.aspx&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;,          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;~/Views/{1}/{0}.ascx&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;,          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;~/Views/Shared/{0}.aspx&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;,          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;~/Views/Shared/{0}.ascx&amp;quot;          &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; };          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; PartialViewLocationFormats = ViewLocationFormats;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/font&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Ici on initialise 3 tableaux de String, qui contiennent les emplacements où chercher nos vues, pour les master pages, les vues et les vues partielles. Ainsi, si je veux redéfinir l’emplacement de mes vues, je pourrai me contenter d’hériter de WebFormViewEngine et de remplacer ces valeurs par les miennes :&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Consolas"&gt;&lt;font size="1"&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;MyCustomViewEngine&lt;/font&gt;&lt;font color="#000000"&gt; : &lt;/font&gt;&lt;font color="#2b91af"&gt;WebFormViewEngine&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;{           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt; MyCustomViewEngine()          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; MasterLocationFormats = &lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#000000"&gt;[] {          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;~/MesMasterPages/{1}/{0}.master&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;,          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;~/MesMasterPages/{0}.master&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; };           &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ViewLocationFormats = &lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#000000"&gt;[] {          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;~/MesVues/{1}/{0}.aspx&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;,          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;~/MesVues/{0}.aspx&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; };           &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; PartialViewLocationFormats = &lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#000000"&gt;[] {          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;~/MesVues/{1}/{0}.ascx&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;,          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;~/MesVues/{0}.ascx&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; };           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;}           &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;On va maintenant aller un peu plus loin, en créant un ViewEngine qui va renvoyer des vues différentes en fonction du contexte. Un exemple pratique : on veut créer des vues spécifiques pour les appareils mobiles. &lt;/p&gt;  &lt;p&gt;Par exemple, si je veux définir un site “normal” à l’adresse &lt;a href="http://www.monsite.com"&gt;http://www.monsite.com&lt;/a&gt;, et un site mobile à l’adresse &lt;a href="http://m.monsite.com"&gt;http://m.monsite.com&lt;/a&gt;, je vais router les dns de mes deux sous-domaines vers le même site, et mon ViewEngine fera le tri :&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Consolas"&gt;&lt;font size="1"&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;MobileViewSelector&lt;/font&gt;&lt;font color="#000000"&gt; : &lt;/font&gt;&lt;font color="#2b91af"&gt;WebFormViewEngine&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;{           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;override&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;ViewEngineResult&lt;/font&gt;&lt;font color="#000000"&gt; FindView(&lt;/font&gt;&lt;font color="#2b91af"&gt;ControllerContext&lt;/font&gt;&lt;font color="#000000"&gt; controllerContext, &lt;/font&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#000000"&gt; viewName, &lt;/font&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#000000"&gt; masterName, &lt;/font&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;&lt;font color="#000000"&gt; useCache)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#008000"&gt;// on récupère le domaine utilisé pour venir sur le site&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt; domain = controllerContext.RequestContext.HttpContext.Request.Url.Authority.ToLower();          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#008000"&gt;// si on est sur un domaine pour mobile, on va chercher la vue dans un sous-dossiers &amp;quot;mobile&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;font color="#000000"&gt; (domain.StartsWith(&lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;m&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;) || domain.StartsWith(&lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;iphone&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;))          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; viewName = &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;Mobile/&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt; + viewName;          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#008000"&gt;// on appelle la requête de base&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;base&lt;/font&gt;&lt;font color="#000000"&gt;.FindView(controllerContext, viewName, masterName, useCache);          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;}           &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Dans cet exemple, si on se connecte au site en utilisant le sous domaine “m” (ou même “iphone”, parce que c’est à la mode, même si le résultat est exactement le même), la vue sera recherchée dans un sous-dossier “Mobile” du dossier des vues, sinon on récupère la vue normale. Bien sûr, l’utilisation du sous domaine n’est qu’un exemple, vous pouvez router vos vues en fonction de variables de sessions, de paramètres passés dans la requête ou tout ce que vous désirez.&lt;/p&gt;  &lt;p&gt;Il suffit ensuite de créer toutes nos vues en double : une vue normale, et une vue mobile, et ça fonctionnera. C’est là un des points forts de MVC, le contrôleur n’a pas besoin d’être modifié : il fait uniquement son boulot de contrôleur et envoie des informations à la vue. Ensuite que la vue soit faite pour un PC ou un mobile ne le concerne plus.&lt;/p&gt;  &lt;p&gt;Dernière petite chose pour que ça fonctionne, il ne faut pas oublier d’enregistrer notre ViewEngine dans le global.asax :&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Consolas"&gt;&lt;font size="1"&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;font color="#000000"&gt; Application_Start()          &lt;br /&gt;{           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; RegisterRoutes(&lt;/font&gt;&lt;font color="#2b91af"&gt;RouteTable&lt;/font&gt;&lt;font color="#000000"&gt;.Routes);          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#008000"&gt;// On supprime le ViewEngine par défaut, on n'en a plus besoin&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#2b91af"&gt;ViewEngines&lt;/font&gt;&lt;font color="#000000"&gt;.Engines.Clear();          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#008000"&gt;// On enregistre notre ViewEngine &lt;/font&gt;&lt;font color="#000000"&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#2b91af"&gt;ViewEngines&lt;/font&gt;&lt;font color="#000000"&gt;.Engines.Add(&lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;MobileViewSelector&lt;/font&gt;&lt;font color="#000000"&gt;());          &lt;br /&gt;}           &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Nous verrons dans un prochain post comment modifier le ViewEngine plus en profondeur. Nous n’avons ici modifié que l’appel des fichiers aspx, mais il est possible de modifier totalement le système de rendu, si par exemple vous ne souhaitez pas utiliser de webforms.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Cross-posté vers &lt;a href="http://www.techheadbrothers.com/"&gt;Tech Head Brothers&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-5065211897464753434?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/11/aspnet-mvc-changer-de-viewengine-12.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <guid isPermaLink="false">25</guid>
      <link>http://feedproxy.google.com/~r/PaslatekBlog/~3/c3MfwsMHkQU/deacutesinstallation-custom-pour-windows-mobile-customaction-for-windows-mobile-20091106-25.aspx</link>
      <title>Désinstallation custom pour Windows Mobile (CustomAction for Windows Mobile)</title>
      <description>&lt;p&gt;Les seuls projets d’installation pour Windows Mobile qui sont fournis par Visual Studio sont les projet “Smart Device CAB project”. Malheureusement pour les développeurs DotNet ce type de projets ne supporte pas les custom actions comme le font les projet MSI classiques pour les applications Desktop. Ces customs actions nous permette d’intervenir lors de l’installation et/ou de la désinstallation. Ma problématique pour Windows mobile, c’est que lors de la désinstallation de mon application, les fichiers de données utilisateurs crées par l’application empêche la suppression totale du répertoire de l’application. D’une part ce n’est pas “propre” et d’autre part mon application ne sera pas validée pour les règles du MarketPlace par exemple si je compte publier sur cette plateforme mon application. Heureusement, il est tout de même possible de personnaliser notre projet CAB en ajoutant une DLL faite en C++ natif qui va utiliser le SDK de Windows Mobile et proposer des méthodes appelées automatiquement par l’installeur ou le désinstalleur :&lt;/p&gt;  &lt;p&gt;Le principe est donc simple, et la procédure la suivante : (source &lt;a href="http://msdn.microsoft.com/en-us/library/aa924308.aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/aa924308.aspx&lt;/a&gt; )    &lt;br /&gt;- créer un projet de type C++ Smart Device :    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.paslatek.net/Attachments.ashx?id=39"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://www.paslatek.net/Attachments.ashx?id=40" width="397" height="243" /&gt;&lt;/a&gt;- inclure les SDK des plateforme ciblées :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.paslatek.net/Attachments.ashx?id=41"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://www.paslatek.net/Attachments.ashx?id=42" width="396" height="336" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- choisir un projet de type DLL :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.paslatek.net/Attachments.ashx?id=43"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://www.paslatek.net/Attachments.ashx?id=44" width="398" height="337" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- dans le fichier cpp, inclure le header &amp;quot;ce_setup.h&amp;quot;&lt;/p&gt;  &lt;p&gt;- en fin de fichier cpp coller le code suivant :&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:33ae0154-3165-43f1-9937-f1a33f092b29" class="wlWriterEditableSmartContent"&gt;&lt;pre name="code" class="c"&gt;codeINSTALL_INIT Install_Init(
    HWND        hwndParent,
    BOOL        fFirstCall,     // is this the first time this function is being called?
    BOOL        fPreviouslyInstalled,
    LPCTSTR     pszInstallDir
)
{
// TODO: Add custom installation code here
	
// To continue installation, return codeINSTALL_INIT_CONTINUE
// If you want to cancel installation, 
// return codeINSTALL_INIT_UNINSTALL;
return codeINSTALL_INIT_CONTINUE;

}



codeINSTALL_EXIT Install_Exit(
    HWND    hwndParent,
    LPCTSTR pszInstallDir,
    WORD    cFailedDirs,
    WORD    cFailedFiles,
    WORD    cFailedRegKeys,
    WORD    cFailedRegVals,
    WORD    cFailedShortcuts
)
{
// TODO: Add custom installation code here


// To exit the installation DLL normally, 
// return codeINSTALL_EXIT_DONE
// To unistall the application after the function exits,
 //return codeINSTALL_EXIT_UNINSTALL;
 
 return codeINSTALL_EXIT_DONE;
}

codeUNINSTALL_INIT Uninstall_Init(
    HWND        hwndParent,
    LPCTSTR     pszInstallDir
)
{
// TODO: Add custom uninstallation code here

// To continue uninstallation, return codeUNINSTALL_INIT_CONTINUE
// If you want to cancel installation,
// return codeUNINSTALL_INIT_CANCEL
return codeUNINSTALL_INIT_CONTINUE;
}

codeUNINSTALL_EXIT Uninstall_Exit(
    HWND    hwndParent
)
{
// TODO: Add custom uninstallation code here

	return codeUNINSTALL_EXIT_DONE;
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;- ajouter un fichier.def à votre projet&amp;#160; :&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.paslatek.net/Attachments.ashx?id=45"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://www.paslatek.net/Attachments.ashx?id=46" width="432" height="277" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;- et coller le code suivant à la fin de ce fichier def :&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:1f76ef1a-63e4-41aa-831a-bf0e1c4fe282" class="wlWriterEditableSmartContent"&gt;&lt;pre name="code" class="c"&gt;EXPORTS 
Install_Init @1
Install_Exit @2
Uninstall_Init @3
Uninstall_Exit @4&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;- dernière étape, indiquer à notre projet CAB d’utiliser cette dll lors de l’installation et désinstallation, pour cela on a 2 options: &lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;soit vous utilisez un projet de type Smart Device CAB, et dans ce cas vous pouvez spécifier directement la dll dans les propriétés du projet CAB: &lt;a href="http://www.paslatek.net/Attachments.ashx?id=47"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="http://www.paslatek.net/Attachments.ashx?id=48" width="294" height="155" /&gt;&lt;/a&gt; &lt;/p&gt;

  &lt;p&gt;soit vous générez le CAB vous même à partir d’un fichier inf, et dans ce cas on a une directive à ajouter dans la section [DefaultInstall] : CESetupDLL=nom de la dll.dll&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Et voilà, on dispose maintenant de 4 méthodes prêtes à coder pour insérer notre logique au début de l’installation, à la fin de l’installation, au début de la désinstallation et à la fin de la désinstallation. Vous constaterez que :
  &lt;br /&gt;- dans la signature de ces méthodes qu’on reçoit en paramètre le chemin d’installation de l’application, indispensable pour agir sur le contenu des dossiers…

  &lt;br /&gt;- des codes de retours différents sont possible pour demander par exemple l’échec de l’installation (et donc un rollback) &lt;/p&gt;

&lt;p&gt;Après il ne reste plus qu’à savoir faire un peu de C++ pour intégrer la logique désirée. Pour ma part mon problème initial est bien de pouvoir supprimer mon dossier d’application à la désinstallation de l’application, même si ce dossier contient des données utilisateurs générées par l’application elle même. &lt;/p&gt;

&lt;p&gt;Comme je suis un mec sympa ;) je vous donne le code d’une fonction qui va bien pour supprimer le contenu d’un dossier de manière récursive, et oui on est en C++ ici et c’est tout même un peu plus fastidieux qu’en C#&amp;#160; : (bon j’avoue, en fait j’ai récupéré &lt;a href="http://msdn.microsoft.com/en-us/library/aa365200(VS.85).aspx" target="_blank"&gt;ce code ici&lt;/a&gt; et ensuite l’ai adapté à mon besoin ;) )&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:c3bea4ee-4a78-468a-84f5-aca2b8e37e00" class="wlWriterEditableSmartContent"&gt;&lt;pre name="code" class="c"&gt;BOOL DeleteDirectory(const TCHAR* sPath) {

   WIN32_FIND_DATA ffd;
   LARGE_INTEGER filesize;
   TCHAR szDir[MAX_PATH];
   TCHAR FileName[MAX_PATH];
   size_t length_of_arg;
   HANDLE hFind = INVALID_HANDLE_VALUE;
   DWORD dwError=0;
   
   // Check that the input path plus 3 is not longer than MAX_PATH.
   // Three characters are for the "\*" plus NULL appended below.
   StringCchLength(sPath, MAX_PATH, &amp;amp;length_of_arg);
   if (length_of_arg &amp;gt; (MAX_PATH - 3))
   {
      return FALSE;
   }

   // Prepare string for use with FindFile functions.  First, copy the
   // string to a buffer, then append '\*' to the directory name.
   StringCchCopy(szDir, MAX_PATH,sPath);
   StringCchCat(szDir, MAX_PATH, TEXT("\\*"));
   StringCchCopy(FileName, MAX_PATH,sPath);
   StringCchCat(FileName, MAX_PATH,TEXT("\\"));

   // Find the first file in the directory.
   hFind = FindFirstFile(szDir, &amp;amp;ffd);
   if (INVALID_HANDLE_VALUE == hFind) 
   {
      return FALSE;
   } 
   // List all the files in the directory with some info about them.
   do
   {
	   _tcscat(FileName,ffd.cFileName);
      if (ffd.dwFileAttributes &amp;amp; FILE_ATTRIBUTE_DIRECTORY)
      {
		  DeleteDirectory(FileName);
		  RemoveDirectory(FileName);
          StringCchCopy(FileName, MAX_PATH,sPath);
		  StringCchCat(FileName, MAX_PATH,TEXT("\\"));
      }
      else
      {
		  DeleteFile(FileName);
         StringCchCopy(FileName, MAX_PATH,sPath);
		 StringCchCat(FileName, MAX_PATH,TEXT("\\"));
      }
   }
   while (FindNextFile(hFind, &amp;amp;ffd) != 0);
   FindClose(hFind);
   return dwError;
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Et l’utilisation dans ma désinstallation :&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:1dcc872c-7a01-4577-8369-3e1d54b1e33f" class="wlWriterEditableSmartContent"&gt;&lt;pre name="code" class="c"&gt;codeUNINSTALL_INIT Uninstall_Init(
    HWND        hwndParent,
    LPCTSTR     pszInstallDir
)
{
	try
	{
		DeleteDirectory(pszInstallDir);
		RemoveDirectory(pszInstallDir);
	}
	catch(...)
	{}
	return codeUNINSTALL_INIT_CONTINUE;
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Enjoy !&lt;/strong&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 06 Nov 2009 14:46:07 +0100</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-11-06T14:46:07+01:00</updated>
      <author>lionel limozin</author>
      <creator>lionel limozin</creator>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://www.paslatek.net/deacutesinstallation-custom-pour-windows-mobile-customaction-for-windows-mobile-20091106-25.aspx</origLink>
    </item>
    <item>
      <title>[Tips] RIA Services Class Library : le RiaContext n’est pas g&amp;#233;n&amp;#233;r&amp;#233;</title>
      <link>http://blogs.developpeur.org/vko/archive/2009/11/06/tips-ria-services-class-library-le-riacontext-n-est-pas-g-n-r.aspx</link>
      <pubDate>Fri, 06 Nov 2009 08:57:49 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:47010</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Vko</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">1</comments>
      <comments>http://blogs.developpeur.org/vko/comments/47010.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/vko/commentrss.aspx?PostID=47010</commentRss>
      <description>
  
La Microsoft .NET RIA Services July 2009 Preview apporte un nouveau template de projet : .NET RIA Services Class Library. Ce template génère 2 projets :
   Une librairie de classe .NET dans lequel vous allez pouvoir mettre tous vos domaines    Une ...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=47010" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/vko/archive/tags/Silverlight/default.aspx">Silverlight</category>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-1758164442448112676</guid>
      <pubDate>Sat, 31 Oct 2009 21:51:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-10-31T22:51:26.534+01:00</updated>
      <category domain="http://www.blogger.com/atom/ns#">MVC</category>
      <title>ASP.NET MVC : Pas de cache dans le Controller Factory</title>
      <description>&lt;p&gt;J’ai récemment expliqué &lt;a href="http://blog.adhess.net/2009/10/aspnet-mvc-changer-de-controllerfactory.html"&gt;comment changer de Controller Factory&lt;/a&gt; dans MVC, mais depuis ce jour il y a un truc qui me tracasse : l’exemple que j’ai donné n’était pas du tout optimisé. En effet, on instancie un nouveau contrôleur à chaque requête, alors qu’on pourrait très bien en instancier un seul et le mettre en cache. Vu que ça prenait que quelques lignes de code, j’ai décidé d’étendre le DefaultControllerFactory pour y ajouter un cache des contrôleurs. Et là, déception, j’ai une exception lorsque lance mon application :&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;A single instance of controller 'MyMvcApplication.Controllers.HomeController' cannot be used to handle multiple requests. If a custom controller factory is in use, make sure that it creates a new instance of the controller for each request.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;A la première requête, la charge se charge correctement, mais lors du chargement de la seconde page (et donc quand le cache est utilisé), le controller refuse de faire son boulot.&lt;/p&gt;  &lt;p&gt;Je suis allé faire un petit tour dans &lt;a href="http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=33836"&gt;le code source&lt;/a&gt; pour voir comment était créé le contrôleur, et effectivement à chaque requête une nouvelle instance est créée, comme dans mon ControllerFactory perso. D’après Scott Hanselman, mettre en cache une instance d’un contrôleur pourrait avoir des effets de bord non désirés (&lt;a href="http://twitter.com/shanselman/status/5265360733"&gt;source&lt;/a&gt;). Ne vous embêtez donc pas à vouloir optimiser plus que ça, le fonctionnement de base fonctionne très bien… ou alors il vous faudra recoder complètement le contrôleur de base de MVC pour le rendre capable de gérer le cache (bon courage).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-1758164442448112676?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/10/aspnet-mvc-pas-de-cache-dans-le.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <title>[Silverlight] Impossible d’installer RIA Services !?</title>
      <link>http://blogs.developpeur.org/vko/archive/2009/10/29/silverlight-impossible-d-installer-ria-services.aspx</link>
      <pubDate>Thu, 29 Oct 2009 17:50:59 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:46943</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Vko</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <comments>http://blogs.developpeur.org/vko/comments/46943.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/vko/commentrss.aspx?PostID=46943</commentRss>
      <description>
  
Petite surprise durant l’installation de RIA Services. Je télécharge l’install de RIA Services July 2009 Preview (au préalable j’avais installé les pré-requis). Et blam ! L’installeur me dit que je n’avais pas installer le SDK Beta 3 ? 
En fait j’a...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=46943" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/vko/archive/tags/Silverlight/default.aspx">Silverlight</category>
    </item>
    <item>
      <title>Article sur l’optimisation des Shaders DirectX10</title>
      <description>&lt;p&gt;Je viens de publier un superbe article (n’ayons pas peur des mots) sur DirectX 10 et l’optimisation des shaders.&lt;/p&gt;  &lt;p&gt;Cet article est hébergé par le célébre site &lt;a href="http://www.techheadbrothers.com/Articles.aspx/conception-avancee-shaders-directx-10-0"&gt;www.techheadbrothers.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;N’hesitez donc pas à aller le lire si le sujet vous intéresse.&lt;/p&gt;</description>
      <link>http://www.catuhe.com/post/Article-sur-le28099optimisation-des-Shaders-DirectX10.aspx</link>
      <author>kosh</author>
      <comments>http://www.catuhe.com/post/Article-sur-le28099optimisation-des-Shaders-DirectX10.aspx#comment</comments>
      <guid>http://www.catuhe.com/post.aspx?id=8c8bef9b-4af4-46ef-ab69-933bba5c2fc1</guid>
      <pubDate>Thu, 29 Oct 2009 00:58:26 +0200</pubDate>
      <category>.Net</category>
      <category>DirectX</category>
      <category>3D</category>
      <publisher xmlns="http://purl.org/dc/elements/1.1/">kosh</publisher>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/pingback.axd</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/post.aspx?id=8c8bef9b-4af4-46ef-ab69-933bba5c2fc1</target>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://www.catuhe.com/trackback.axd?id=8c8bef9b-4af4-46ef-ab69-933bba5c2fc1</ping>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/post/Article-sur-le28099optimisation-des-Shaders-DirectX10.aspx#comment</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/syndication.axd?post=8c8bef9b-4af4-46ef-ab69-933bba5c2fc1</commentRss>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-8757894288625676720</guid>
      <pubDate>Tue, 27 Oct 2009 10:20:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-10-27T11:20:58.141+01:00</updated>
      <category domain="http://www.blogger.com/atom/ns#">JavaScript</category>
      <category domain="http://www.blogger.com/atom/ns#">Ajax</category>
      <category domain="http://www.blogger.com/atom/ns#">ASP.NET</category>
      <category domain="http://www.blogger.com/atom/ns#">Article</category>
      <title>Article : les nouveautés d’ASP.NET 4</title>
      <description>&lt;p&gt;Pour une fois, on va oublier un peu MVC pour en revenir aux bonnes vieilles WebForm. Au programme de ce nouvel article : les nouveautés d’ASP.NET 4 !&lt;/p&gt;  &lt;p&gt;Au programme, de nombreuses optimisations, et quelques nouveautés intéressantes, notamment avec ASP.NET Ajax et le JavaScript.&lt;/p&gt;  &lt;p&gt;Découvrez-le sur le site de Bewise :&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.bewise.fr/article/138/Les-nouveautes-d-ASP-NET4.aspx" href="http://www.bewise.fr/article/138/Les-nouveautes-d-ASP-NET4.aspx"&gt;http://www.bewise.fr/article/138/Les-nouveautes-d-ASP-NET4.aspx&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-8757894288625676720?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/10/article-les-nouveautes-daspnet-4.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-2106169782239137148</guid>
      <pubDate>Thu, 22 Oct 2009 07:32:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-10-22T09:32:44.521+02:00</updated>
      <category domain="http://www.blogger.com/atom/ns#">MVC</category>
      <category domain="http://www.blogger.com/atom/ns#">Ajax</category>
      <category domain="http://www.blogger.com/atom/ns#">ASP.NET</category>
      <category domain="http://www.blogger.com/atom/ns#">Article</category>
      <title>Article : Utiliser Ajax avec ASP.NET MVC</title>
      <description>&lt;p&gt;Après mon précédent article, qui présentait les bases de ASP.NET MVC, je me suis dit qu’il pourrait être sympa de faire un peu d’Ajax. &lt;/p&gt;  &lt;p&gt;Dans cet article, pas de JavaScript ni de WebServices (bien qu’il soit tout à fait possible, et certainement très intéressant, d’en faire avec MVC), je me concentre uniquement sur les moyens de faire de l’Ajax spécifiques à MVC, en utilisant l’AjaxHelper du framework.&lt;/p&gt;  &lt;p&gt;Vous allez voir qu’encore une fois, c’est très simple à mettre en place, et la séparation des couches est toujours de la partie puisqu’on utilise toujours les contrôleurs et les vues, de la même manière qu’avec des requêtes http classiques. &lt;/p&gt;  &lt;p&gt;Je vous laisse découvrir l’article sur Tech Head Brothers :&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.techheadbrothers.com/Articles.aspx/ajaxhelper-aspnet-mvc" href="http://www.techheadbrothers.com/Articles.aspx/ajaxhelper-aspnet-mvc"&gt;http://www.techheadbrothers.com/Articles.aspx/ajaxhelper-aspnet-mvc&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-2106169782239137148?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/10/article-utiliser-ajax-avec-aspnet-mvc.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <title>Les classes Timers de .NET</title>
      <description>&lt;p&gt;Une question qui revient souvent concerne le fait qu’il y existe deux classes Timers dans le .NET : System.Windows.Forms.Timer et System.Timers.Timer.&lt;/p&gt;  &lt;p&gt;Alors pourquoi me direz-vous? Et bien parce que ce ne sont pas les mêmes usages.&lt;/p&gt;  &lt;h3&gt;System.Windows.Forms.Timers&lt;/h3&gt;  &lt;p&gt;Ce timer se base sur un message Windows envoyé à l’application et qui sera donc traité par la boucle des messages et donc dans le thread de l’interface.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Avantage&lt;/em&gt; : Pas besoin de faire des Invoke pour accéder à l’interface puisque l’événement levé par le timer sera traité par le thread de l’interface.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Inconvénient&lt;/em&gt; : Le timer n’est pas précis car il passe par le système de messages de Windows. De plus il ne profite pas des multi-cpus du fait que tout est exécuté par un seul thread.&lt;/p&gt;  &lt;h3&gt;System.Timers.Timer&lt;/h3&gt;  &lt;p&gt;Ce timer se base sur des timers natifs (qui utilisent des threads). &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Avantage&lt;/em&gt; : Très précis et gére bien les ressources mutli-cpus.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Inconvénient&lt;/em&gt; : Nécessite des Invoke pour accéder à l’interface.&lt;/p&gt;</description>
      <link>http://www.catuhe.com/post/Les-classes-Timers-de-NET.aspx</link>
      <author>kosh</author>
      <comments>http://www.catuhe.com/post/Les-classes-Timers-de-NET.aspx#comment</comments>
      <guid>http://www.catuhe.com/post.aspx?id=6edf6f60-942d-4ed6-9154-34af83d9b986</guid>
      <pubDate>Wed, 21 Oct 2009 13:08:27 +0200</pubDate>
      <category>.Net</category>
      <category>Windows</category>
      <category>Windows Forms</category>
      <publisher xmlns="http://purl.org/dc/elements/1.1/">kosh</publisher>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/pingback.axd</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/post.aspx?id=6edf6f60-942d-4ed6-9154-34af83d9b986</target>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">2</comments>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://www.catuhe.com/trackback.axd?id=6edf6f60-942d-4ed6-9154-34af83d9b986</ping>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/post/Les-classes-Timers-de-NET.aspx#comment</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/syndication.axd?post=6edf6f60-942d-4ed6-9154-34af83d9b986</commentRss>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-3668949398729122594</guid>
      <pubDate>Mon, 19 Oct 2009 10:25:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-10-19T12:27:44.338+02:00</updated>
      <category domain="http://www.blogger.com/atom/ns#">MVC</category>
      <category domain="http://www.blogger.com/atom/ns#">ASP.NET</category>
      <title>Tip : des ActionLink plus propres avec ASP.NET MVC</title>
      <description>&lt;p&gt;Malgré tout le bien que je pense d’ASP.NET MVC (qui est, je le rappelle, le meilleur framework de développement web du monde, que dis-je, de l’univers !), je me vois parfois obligé de reconnaître qu’il a des défauts. L’un des plus ennuyeux est l’utilisation de chaînes de caractères et d’objets anonymes dans les helpers Html, source potentielle d’erreurs, qui ne seront pas détectées à la compilation.&lt;/p&gt;  &lt;p&gt;Pour remédier à ce soucis, nous avons la possibilité d’étendre le Html Helper, afin d’ajouter nos propres méthodes de création de liens. &lt;/p&gt;  &lt;p&gt;Pour commencer, nous allons créer une classe par contrôleur, dans laquelle nous définirons les méthodes qui renverront les liens vers chaque action. Cette classe va se baser sur le HtmlHelper pour créer les liens, donc n’oublions pas de le passer dans le constructeur :&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Courier New"&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;HomeLinks          &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; {          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;HtmlHelper&lt;/font&gt;&lt;font color="#000000"&gt; html;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt; HomeLinks(&lt;/font&gt;&lt;font color="#2b91af"&gt;HtmlHelper&lt;/font&gt;&lt;font color="#000000"&gt; html)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;font color="#000000"&gt;.html = html;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt; Index(&lt;/font&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt; linkText)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#000000"&gt; html.ActionLink(linkText, &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;Index&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;Home&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;);          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt; Details(&lt;/font&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt; linkText, &lt;/font&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt;&lt;font color="#000000"&gt; id)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#000000"&gt; html.ActionLink(linkText, &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;Details&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;Home&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#000000"&gt; { id = id });          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/font&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Une fois cette classe créée, on va ajouter une méthode au HtmlHelper pour pouvoir y accéder depuis notre vue :&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Courier New"&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;LinkHelper          &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; {          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;HomeLinks&lt;/font&gt;&lt;font color="#000000"&gt; HomeLinks(&lt;/font&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;HtmlHelper&lt;/font&gt;&lt;font color="#000000"&gt; Html)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;HomeLinks&lt;/font&gt;&lt;font color="#000000"&gt;(Html);          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;AccountLinks&lt;/font&gt;&lt;font color="#000000"&gt; AccountLinks(&lt;/font&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;HtmlHelper&lt;/font&gt;&lt;font color="#000000"&gt; Html)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;AccountLinks&lt;/font&gt;&lt;font color="#000000"&gt;(Html);          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/font&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Notez que j’ai séparé les liens de chaque contrôleur dans des classes distinctes par soucis de clarté, mais ce n’est absolument pas obligatoire : vous pouvez si vous le souhaitez étendre directement le HtmlHelper par vos liens :&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Courier New"&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt; Index(&lt;/font&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;HtmlHelper&lt;/font&gt;&lt;font color="#000000"&gt; Html, &lt;/font&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt; linkText)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#000000"&gt; Html.ActionLink(linkText, &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;Index&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;Home&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;);          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/font&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Pour pouvoir appeler vos méthodes depuis vos pages aspx, n’oubliez pas d’ajouter leur namespace dans le web.config :&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Courier New"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;pages&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;namespaces&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;add&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#ff0000"&gt;namespace&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;MyMvcApp.LinkHelpers&lt;/font&gt;&lt;font color="#000000"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&amp;gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/font&gt;&lt;font color="#a31515"&gt;namespaces&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/font&gt;&lt;font color="#a31515"&gt;pages&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Et voilà, plus besoin de faire passer de chaines de caractères en dur dans vos liens, vous pouvez utiliser ces méthodes avec des vrais noms et des paramètres typés !&lt;/p&gt;  &lt;p&gt;Ainsi, les 2 lignes suivantes créeront le même lien :&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Courier New"&gt;&lt;font size="2"&gt;&amp;lt;%&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#000000"&gt; Html.ActionLink(&lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;Details pour l'id numero 5&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;Details&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;Home&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#000000"&gt; { id = 5 }&amp;#160; %&amp;gt;          &lt;br /&gt;&amp;lt;%&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#000000"&gt; Html.HomeLinks().Details(&lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;Details pour l'id numero 5&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;, 5) %&amp;gt; &lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-3668949398729122594?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/10/tip-des-actionlink-plus-propres-avec.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-5636552041755477511</guid>
      <pubDate>Fri, 16 Oct 2009 12:06:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-10-16T15:22:44.275+02:00</updated>
      <category domain="http://www.blogger.com/atom/ns#">MVC</category>
      <category domain="http://www.blogger.com/atom/ns#">.NET</category>
      <category domain="http://www.blogger.com/atom/ns#">ASP.NET</category>
      <title>ASP.NET MVC : changer de ControllerFactory</title>
      <description>&lt;p&gt;Le framework ASP.NET MVC utilise ce qu’on appelle “convention over configuration”, ce qui signifie qu’on n’a pas besoin de configurer manuellement notre application pour avoir une application qui fonctionne, tant que l’on respecte certaines conventions. Si l’on ne souhaite pas utiliser ces conventions, on a toujours la possibilité de configurer l’application pour travailler autrement.&lt;/p&gt;  &lt;p&gt;En pratique, qu’est-ce que ça signifie ?&lt;/p&gt;  &lt;p&gt;Lorsque l’on crée un nouveau projet MVC, les contrôleurs sont disposés dans le dossier « Controllers » de l’application, et leur nom doit forcément se terminer par « Controller ». Si on crée un contrôleur dans un autre namespace, ou si son nom est incorrect, le contrôleur ne sera pas reconnu par MVC. Pour pouvoir changer cette convention, on a la possibilité de créer notre propre ControllerFactory, dans lequel on pourra définir nos règles d’appel de nos contrôleurs.&lt;/p&gt;  &lt;p&gt;Pour créer un ControllerFactory, il va falloir créer une nouvelle classe qui implémentera l’interface IControllerFactory, contenant 2 méthodes :&lt;/p&gt;  &lt;p&gt;IController CreateController(System.Web.Routing.RequestContext requestContext, string controllerName)    &lt;br /&gt;et     &lt;br /&gt;void ReleaseController(IController controller)&lt;/p&gt;  &lt;p&gt;La première va nous permettre de renvoyer une instance d’un contrôleur en fonction de son nom, et éventuellement de paramètres venant de la requête ; la seconde va nous permettre de libérer un contrôleur qui n’est plus utilisé. Le résultat ressemblera à quelque chose comme ça :&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Courier New"&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;CustomControllerFactory&lt;/font&gt;&lt;font color="#000000"&gt; : &lt;/font&gt;&lt;font color="#2b91af"&gt;IControllerFactory          &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; {          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;IController&lt;/font&gt;&lt;font color="#000000"&gt; CreateController(System.Web.Routing.&lt;/font&gt;&lt;font color="#2b91af"&gt;RequestContext&lt;/font&gt;&lt;font color="#000000"&gt; requestContext, &lt;/font&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#000000"&gt; controllerName)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;&lt;font color="#000000"&gt;.IsNullOrEmpty(controllerName))          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;throw&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;ArgumentNullException&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;Controller name can't be empty&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;);          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt; controllerType = &lt;/font&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt;.Concat(&lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;MyMvcApplication.CustomController.&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;, controllerName);          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#2b91af"&gt;IController&lt;/font&gt;&lt;font color="#000000"&gt; controller = &lt;/font&gt;&lt;font color="#2b91af"&gt;Activator&lt;/font&gt;&lt;font color="#000000"&gt;.CreateInstance(&lt;/font&gt;&lt;font color="#2b91af"&gt;Type&lt;/font&gt;&lt;font color="#000000"&gt;.GetType(controllerType)) &lt;/font&gt;&lt;font color="#0000ff"&gt;as&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;IController&lt;/font&gt;&lt;font color="#000000"&gt;;          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#000000"&gt; controller;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;font color="#000000"&gt; ReleaseController(&lt;/font&gt;&lt;font color="#2b91af"&gt;IController&lt;/font&gt;&lt;font color="#000000"&gt; controller)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#2b91af"&gt;IDisposable&lt;/font&gt;&lt;font color="#000000"&gt; disposableController = controller &lt;/font&gt;&lt;font color="#0000ff"&gt;as&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;IDisposable&lt;/font&gt;&lt;font color="#000000"&gt;;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;font color="#000000"&gt; (disposableController != &lt;/font&gt;&lt;font color="#0000ff"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; disposableController.Dispose();           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/font&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Une fois notre classe créée, il faut l’enregistrer pour qu’elle soit utilisée à la place de la Factory par défaut. Pour ça, on a une méthode SetControllerFactory qu’il nous faut appeler au démarrage de l’application, dans le global.asax :&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Courier New"&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt;&lt;font color="#000000"&gt; Application_Start()          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; RegisterRoutes(&lt;/font&gt;&lt;font color="#2b91af"&gt;RouteTable&lt;/font&gt;&lt;font color="#000000"&gt;.Routes);          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#2b91af"&gt;ControllerBuilder&lt;/font&gt;&lt;font color="#000000"&gt;.Current.SetControllerFactory(&lt;/font&gt;&lt;font color="#0000ff"&gt;typeof&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2b91af"&gt;CustomControllerFactory&lt;/font&gt;&lt;font color="#000000"&gt;));          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/font&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Une fois ceci fait, nos anciens contrôleurs ne sont plus appelés, la recherche se fera dans le namespace MyMvcApplication.CustomController comme cela a été défini dans notre CustomControllerFactory.&lt;/p&gt;  &lt;p&gt;Crossposté vers &lt;a href="http://www.techheadbrothers.com/Astuces.aspx/aspnet-mvc-changer-controllerfactory"&gt;Tech Head Brothers&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-5636552041755477511?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/10/aspnet-mvc-changer-de-controllerfactory.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <title>[WPF] Thumb … la suite !</title>
      <link>http://blogs.developpeur.org/vko/archive/2009/10/16/wpf-thumb-la-suite.aspx</link>
      <pubDate>Fri, 16 Oct 2009 06:39:00 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:46754</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Vko</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">1</comments>
      <comments>http://blogs.developpeur.org/vko/comments/46754.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/vko/commentrss.aspx?PostID=46754</commentRss>
      <description>
  
Comme promis, voici un exemple plus concret de l’utilité du contrôle Thumb.
Voici comment en 20 minutes et à l’aide de 2 Thumbs, on peut déplacer et redimensionner des contrôles très simplement. 

  Edit : suite à une remarque judicieuse, je vous...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=46754" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/vko/archive/tags/WPF/default.aspx">WPF</category>
    </item>
    <item>
      <guid isPermaLink="false">24</guid>
      <link>http://feedproxy.google.com/~r/PaslatekBlog/~3/CjId9_iLUuo/desactiver-le-context-menu-dans-le-webbrowser-de-wpf-20091012-24.aspx</link>
      <title>Desactiver le context menu dans le webbrowser de WPF</title>
      <description>&lt;p&gt;J’avais eu le même problème il y a peu sur le navigateur de windows mobile… J’embarque dans un contrôle WPF le WebBrowser, et je veux empêcher les utilisateurs de l’application d’avoir accès au menu en clic droite. Alors là je commence à chercher les évènements sur le contrôle WebBrowser, et je constate que ContextMenu_Opening ne convient pas, et qu’il ne me reste que l’évènement “MessageHook” qui permet d’intercepter les messages win32. Alors là je cherche la valeur de WM_CONTEXTMENU et sur MSDN on me dit que c’est 0x7B. Et bien figurez vous que j’ai plein de messages qui arrivent, donc le hook fonctionne, mais pas de message avec la valeur 0x7B :( (faudra que j’investigue d’ailleurs) … Et bien pragmatisme oblige, il y a une solution bien plus simple !!! modifier un tout petit peu le html que je donne en contenu à ce contrôle pour y mettre ceci : &amp;lt;body&amp;#160; &lt;strong&gt;oncontextmenu=&amp;quot;return false;&amp;quot;&lt;/strong&gt;&amp;gt; et le tour est joué ! Comme quoi on cherche toujours trop compliqué :)&lt;/p&gt;</description>
      <pubDate>Mon, 12 Oct 2009 17:49:27 +0200</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-10-12T17:49:27+02:00</updated>
      <author>lionel limozin</author>
      <creator>lionel limozin</creator>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://www.paslatek.net/desactiver-le-context-menu-dans-le-webbrowser-de-wpf-20091012-24.aspx</origLink>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-3478235960250109361</guid>
      <pubDate>Sat, 03 Oct 2009 10:40:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-10-03T14:54:13.662+02:00</updated>
      <category domain="http://www.blogger.com/atom/ns#">.NET</category>
      <title>Convertir le temps Unix en DateTime .NET</title>
      <description>&lt;p&gt;Si vous faites du .NET, il y a peu de chances que vous ayez besoin d’utiliser le temps Unix. Cependant, si jamais vous en avez besoin, il n’y a pas à ma connaissance de méthode effectuant la conversion dans le framework .NET, il va donc falloir effectuer la conversion à la main. Heureusement, ce n’est pas compliqué.&lt;/p&gt;  &lt;p&gt;Le temps Unix est défini par un nombre entier, représentant le nombre de secondes écoulées depuis le début de l’univers, le 1er janvier 1970. Lorsqu’on sait ça, la conversion est toute simple :&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Courier New"&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;font color="#000000"&gt; origin = &lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;font color="#000000"&gt;(1970, 1, 1);          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;font color="#000000"&gt; UnixTimeToDateTime(&lt;/font&gt;&lt;font color="#0000ff"&gt;long&lt;/font&gt;&lt;font color="#000000"&gt; timespan)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#000000"&gt; origin.AddSeconds(timespan);          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;static&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;long&lt;/font&gt;&lt;font color="#000000"&gt; DateTimeToUnixTime(&lt;/font&gt;&lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;&lt;font color="#000000"&gt; date)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#2b91af"&gt;TimeSpan&lt;/font&gt;&lt;font color="#000000"&gt; ts = date - origin;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;font color="#0000ff"&gt;long&lt;/font&gt;&lt;font color="#000000"&gt;)ts.TotalSeconds;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/font&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Pour la petite histoire, lorsque le temps Unix est codé sur un entier 32 bits, on ne peux coder les dates que jusqu’au 19 janvier 2038, si ce système est encore utilisé ce jour là, on risque d’avoir le fameux &lt;a href="http://fr.wikipedia.org/wiki/Bogue_de_l'an_2038"&gt;bug de l’an 2038&lt;/a&gt;, un bug &lt;a href="http://xkcd.com/607/"&gt;encore pire que le bug de l’an 2000&lt;/a&gt;. Heureusement, les systèmes 64 bits devraient se généraliser dans les années à venir pour nous éviter ces problèmes.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-3478235960250109361?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/10/convertir-le-temps-unix-en-datetime-net.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <title>[WPF] D&amp;#233;placer des Windows sans bordure</title>
      <link>http://blogs.developpeur.org/vko/archive/2009/09/30/wpf-d-placer-des-windows-sans-bordure.aspx</link>
      <pubDate>Wed, 30 Sep 2009 06:29:00 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:46592</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Vko</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">3</comments>
      <comments>http://blogs.developpeur.org/vko/comments/46592.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/vko/commentrss.aspx?PostID=46592</commentRss>
      <description>
  
WPF offre la possibilité de masquer la bordure et la barre de titre. Parfait pour créer des fenêtres arrondies, rondes, etc. Mais attention sans barre de titre, il n’est plus possible de déplacer une fenêtre !! “Don’t panic”, il existe un contrôle t...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=46592" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/vko/archive/tags/WPF/default.aspx">WPF</category>
    </item>
    <item>
      <title>Thread ou ThreadPool ?</title>
      <link>http://blogs.developpeur.org/vko/archive/2009/09/16/thread-ou-threadpool.aspx</link>
      <pubDate>Wed, 16 Sep 2009 16:50:00 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:46429</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Vko</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <comments>http://blogs.developpeur.org/vko/comments/46429.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/vko/commentrss.aspx?PostID=46429</commentRss>
      <description>
  L'asynchronisme est quelque chose de complexe : la bonne technique (Thread, ThreadPool, ...), la synchronisation, la concurrence, etc. Il existe de nombreux ouvrages à ce sujet mais certaines règles très simples peuvent vous faciliter le travail.  La ...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=46429" width="1" height="1"&gt;</description>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-8685904696766794153</guid>
      <pubDate>Wed, 16 Sep 2009 11:02:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-09-17T17:25:40.497+02:00</updated>
      <category domain="http://www.blogger.com/atom/ns#">JavaScript</category>
      <category domain="http://www.blogger.com/atom/ns#">Ajax</category>
      <title>Microsoft annonce son Ajax Content Delivery Network.</title>
      <description>&lt;p&gt;Il faut croire que Scott Guthrie lis régulièrement mon blog, puisque suite à &lt;a href="http://blog.adhess.net/2009/09/referencer-des-scripts-javascript-dans.html"&gt;mon dernier post&lt;/a&gt;, il vient de bloguer pour annoncer &lt;a href="http://weblogs.asp.net/scottgu/archive/2009/09/15/announcing-the-microsoft-ajax-cdn.aspx"&gt;le lancement du Microsoft Ajax CDN&lt;/a&gt;. (et j’ai découvert par la même occasion ce qu’était un &lt;a href="http://fr.wikipedia.org/wiki/Content_Delivery_Network"&gt;CDN&lt;/a&gt;, un peu de culture ne fais jamais de mal :)&lt;/p&gt;  &lt;p&gt;Ce CDN est un ensemble de serveurs qui vont proposer plusieurs librairies Ajax (pour le moment sont disponibles les librairies ASP.NET Ajax et jQuery [update: le pluin de validation jQuery est aussi disponible : &lt;a href="http://stephenwalther.com/blog/archive/2009/09/16/microsoft-ajax-cdn-and-the-jquery-validation-library.aspx"&gt;blog de Stephen Walther&lt;/a&gt;]) que vous pourrez référencer directement depuis votre site web. C’est totalement gratuit et sans inscription préalable, il suffit de faire un lien directement vers le fichier javascript :&lt;/p&gt;  &lt;p&gt;&lt;font face=" Courier New"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;script&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#ff0000"&gt;src&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;http://ajax.Microsoft.com/ajax/jQuery/jquery-1.3.2.min.js&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515"&gt;script&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Ceci a plusieurs avantages :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;La requête sera plus rapide (à moins que vous n’ayez une infrastructure comparable à celle de Microsoft ;) &lt;/li&gt;    &lt;li&gt;Si l’utilisateur est allé sur un autre site référençant le même fichier, il sera déjà en cache &lt;/li&gt;    &lt;li&gt;La bande passante est offerte (même si les fichiers JS c’est pas ce qui en consomme le plus, c’est déjà ça de pris) &lt;/li&gt;    &lt;li&gt;On s’embête plus avec les liens relatifs (ça c’est moi qui l’ajoute, mais j’avoue que c’est quand même léger comme avantage :) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Le CDN sera aussi intégré à ASP.NET 4, puisqu’on pourra préciser dans le ScriptManager si on désire l’utiliser :&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_1fIQLbpqRAw/SrDFrMg8OrI/AAAAAAAABq4/ImGZUhxvfdw/image%5B4%5D.png?imgmax=800" width="240" height="118" /&gt;&lt;/p&gt;  &lt;p&gt;La liste des fichiers disponibles sur le CDN peut être consultée sur le site d’ASP.NET : &lt;a title="http://www.asp.net/ajax/cdn/" href="http://www.asp.net/ajax/cdn/"&gt;http://www.asp.net/ajax/cdn/&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-8685904696766794153?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/09/microsoft-annonce-son-ajax-content.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <guid isPermaLink="false">23</guid>
      <link>http://feedproxy.google.com/~r/PaslatekBlog/~3/yTMAmoqnGSU/shared_ptr-ou-comment-eacuteviter-les-fuites-meacutemoires-en-c-33-20090909-23.aspx</link>
      <title>shared_ptr ou comment éviter les fuites mémoires en C++ (3/3)</title>
      <description>&lt;p&gt;Pour finaliser plus proprement mon exemple de conversion d’un objet managé en pointeur natif void*, sans avoir à se soucier de la gestion de la destruction, j’ai donc “encapsulé” cette logique dans une classe template native. Cette classe, que j’ai nommé cli_ptr, va donc me permettre de :    &lt;br /&gt;- récupérer simplement un void* à partir d’une instance d’un objet managé,     &lt;br /&gt;- récupérer simplement une instance de cette classe à partir d’un void* (qui doit tout de même être à la base obtenue par la même mécanique du GChandle)     &lt;br /&gt;- récupérer simplement une instance de l’objet managé directement typé (d’où la classe template qui me permettra de prendre en charge le cast)     &lt;br /&gt;- tout ça sans jamais à avoir me poser la question de la gestion de la mémoire !&lt;/p&gt;  &lt;p&gt;Voilà pour un exemple plus parlant, un code qui utilise ma classe :&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:32e613dc-b52a-40a7-a715-c4d15d61a62c" class="wlWriterEditableSmartContent"&gt;&lt;pre name="code" class="c"&gt;for(int i=0;i&amp;lt;99999999;i++)
{

    //on cree un cli_ptr templatisé avec un objet managé. Le tout dans un shared_ptr
    shared_ptr&amp;lt;cli_ptr&amp;lt;String&amp;gt;&amp;gt; ptr = cli_ptr&amp;lt;String&amp;gt;::Create(gcnew String("hello leaks !"));

    for(int j=0;j&amp;lt;99;j++)
    {
        //on obtient l'objet managé transformé en void* par la mecanique du GCHandle interne
        void* natptr = ptr-&amp;gt;GetNative();

        //à partir de ce "type" de void* on peut recree un cli_ptr "templatisé"
        shared_ptr&amp;lt;cli_ptr&amp;lt;String&amp;gt;&amp;gt; ptr2 =  cli_ptr&amp;lt;String&amp;gt;::Create(natptr);

        //on récupère notre objet managé typé sur le cli_ptr
        String^ mptr = ptr2-&amp;gt;GetManaged&amp;lt;String&amp;gt;();

        Console::WriteLine(mptr);
    }
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Vous constatez donc que j’utilise le shared_ptr pour stocker une instance de ma classe cli_ptr, ça c’est pour prendre les bonnes habitudes de ne plus faire de new ou de delete ! En plus ma classe cli_ptr propose 2 méthode static “Create” qui prennent soit le pointeur managé soit le pointeur natif. Enfin cette classe propose 2 methodes d’instance qui permettent de récupérer le pointeur natif et le pointeur managé. En interne cette classe utilise un shared_ptr&amp;lt;void&amp;gt; pour stocker le pointeur natif (obtenu avec le GCHandle) et ce shared_ptr est crée en fournissant un deleter pour détruire correctement le GCHandle (voir part 2/3 de cette série de post c’est quasi le même code mais mieux “rangé”)&lt;/p&gt;

&lt;p&gt;Bon trêve de blabla, voilà le code de la classe en question avec quelques commentaires, ça sera j’espère suffisamment parlant:&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:fc4c9a9f-b2a0-47dd-99a7-060911ba2c7b" class="wlWriterEditableSmartContent"&gt;&lt;pre name="code" class="c"&gt;#include &amp;lt;memory&amp;gt;
#include &amp;lt;vcclr.h&amp;gt;
using namespace System;
using namespace System::Runtime::InteropServices;
using namespace std::tr1;

#pragma once

//methode de destruction d'un void* qui provient d'un GCHandle
void Deleter(void* p)
{
	IntPtr ptr = IntPtr(p);
	GCHandle gcPtr = GCHandle::FromIntPtr(ptr);
	if(gcPtr.IsAllocated)
	{
		gcPtr.Free();
	}
}

template &amp;lt;class N&amp;gt; class cli_ptr
{
private:
	//pointeur de void* stocké en tant que shared_ptr
	shared_ptr&amp;lt;void&amp;gt; m_natptr;

public:
	//methode statique de creation d'un cli_ptr à partir d'un objet managé.
	static shared_ptr&amp;lt;cli_ptr&amp;gt; Create(Object^ mngdObj)
	{
		shared_ptr&amp;lt;cli_ptr&amp;gt; p(new cli_ptr(mngdObj));
		return p;
	}

	//methode statique de creation d'un cli_ptr à partir d'un void*
	// Attention ce void* doit provenir à la base d'un objet managé passé à un GCHandle
	static shared_ptr&amp;lt;cli_ptr&amp;gt; Create(void* natObj)
	{
		IntPtr ptr = IntPtr(natObj);
		GCHandle gcPtr = GCHandle::FromIntPtr(ptr);
		shared_ptr&amp;lt;cli_ptr&amp;gt; p;
		if(gcPtr.IsAllocated)
		{
			p = shared_ptr&amp;lt;cli_ptr&amp;gt;(new cli_ptr(gcPtr.Target));
		}
		return p;
	}

	//constructeur. à partir de l'instance d'objet managé, on obtient un void* qu'on garde dans notre shared_ptr membre privé
	cli_ptr(Object^ mngdObj)
	{
		GCHandle gcPtr = GCHandle::Alloc(mngdObj);   
		IntPtr ptr = GCHandle::ToIntPtr(gcPtr); 
		shared_ptr&amp;lt;void&amp;gt; sp(shared_ptr&amp;lt;void&amp;gt;(ptr.ToPointer(), Deleter));
		m_natptr = sp;
	}

	//methode qui recupère le void*
	void* GetNative()
	{
		if(m_natptr)
			return m_natptr.get();
		else
			return NULL;
	}
	
	//methode qui récupère le pointeur managé et fait le cast directement dans le bon type par le biais du template
	template&amp;lt;class N&amp;gt; N^ GetManaged()
	{
		if(m_natptr)
		{
			IntPtr ptr = IntPtr(m_natptr.get());
			GCHandle gcPtr = GCHandle::FromIntPtr(ptr);
			if(gcPtr.IsAllocated)
			{
				return dynamic_cast&amp;lt;N^&amp;gt;(gcPtr.Target);
			}
			else
				return nullptr;
		}
		else
			return nullptr;

	}

};
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Je ne remet pas ça avec le graph perfmon, car c’est toujours le calme plat question consommation mémoire ! vive le shared_ptr !!&lt;/p&gt;

&lt;p&gt;voi aussi &lt;a href="http://www.paslatek.net/shared_ptr-ou-comment-eacuteviter-les-fuites-meacutemoires-en-c-part1-20090812-20.aspx"&gt;shared_ptr ou comment éviter les fuites mémoires en C++ 1/3&lt;/a&gt; 

  &lt;br /&gt;et &lt;a href="http://www.paslatek.net/shared_ptr-ou-comment-eacuteviter-les-fuites-meacutemoires-en-c-part-2-20090831-22.aspx"&gt;shared_ptr ou comment éviter les fuites mémoires en C++ 2/3&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 09 Sep 2009 15:23:39 +0200</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-09-09T15:23:39+02:00</updated>
      <author>lionel limozin</author>
      <creator>lionel limozin</creator>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://www.paslatek.net/shared_ptr-ou-comment-eacuteviter-les-fuites-meacutemoires-en-c-33-20090909-23.aspx</origLink>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-171568572111434739</guid>
      <pubDate>Mon, 07 Sep 2009 13:43:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-09-17T17:29:46.579+02:00</updated>
      <category domain="http://www.blogger.com/atom/ns#">JavaScript</category>
      <category domain="http://www.blogger.com/atom/ns#">ASP.NET</category>
      <category domain="http://www.blogger.com/atom/ns#">HTML</category>
      <title>Référencer des scripts JavaScript dans une MasterPage</title>
      <description>&lt;p&gt;Lorsqu’on utilise des fichiers JavaScript externes, il faut les référencer dans l’en-tête de notre page html, tout comme on le fait pour nos fichiers CSS. Par contre, contrairement aux fichiers CSS, les références vers les fichiers JavaScript peuvent poser problème si la MasterPage est utilisée par plusieurs pages situées dans des dossiers différents.&lt;/p&gt;  &lt;p&gt;L’en-tête de nos pages aspx contient l’attribut runat=”server” par défaut, ce qui va permettre au serveur de parcourir le contenu du &amp;lt;head&amp;gt;, afin de mettre à jour les liens vers nos fichiers css (ou d’autres types de liens, si par exemple vous avez défini un flux RSS). Cependant, ceci ne s’applique pas aux balises &amp;lt;script&amp;gt;, utilisées pour appeler les fichiers JavaScript : si on essaie d’interpréter cette balise coté serveur, le serveur va essayer d’exécuter son contenu (et donc le contenu du fichier .js), ce qui ne fonctionnera pas puisque le JavaScript est du code destiné au navigateur.&lt;/p&gt;  &lt;p&gt;Pour référencer correctement nos fichiers, il va donc falloir explicitement demander la construction du chemin relatif correct. Pour cela, il va nous falloir utiliser la méthode ResolveClientUrl de la classe Control.&lt;/p&gt;  &lt;p&gt;&lt;font face=" Courier New"&gt;&lt;font color="#0000ff"&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;script&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#ff0000"&gt;src&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;lt;%= ResolveClientUrl(&amp;quot;~/Scripts/jquery-1.3.2.js&amp;quot;)%&amp;gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515"&gt;script&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Ceci fonctionne aussi bien avec ASP.NET Webforms qu’avec le nouveau Framework ASP.NET MVC.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-171568572111434739?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/09/referencer-des-scripts-javascript-dans.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-5702301067662354499</guid>
      <pubDate>Mon, 07 Sep 2009 09:22:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-09-09T14:41:46.227+02:00</updated>
      <category domain="http://www.blogger.com/atom/ns#">MVC</category>
      <category domain="http://www.blogger.com/atom/ns#">ASP.NET</category>
      <category domain="http://www.blogger.com/atom/ns#">Article</category>
      <title>Article : introduction à ASP.NET MVC</title>
      <description>&lt;p&gt;Les plus observateurs de mes lecteurs auront certainement remarqué que je me suis dernièrement pris de passion pour ASP.NET MVC. &lt;/p&gt;  &lt;p&gt;Effectivement, je suis vraiment devenu fan de ce nouveau Framework, et je ne pouvait pas garder ça pour moi… &lt;/p&gt;  &lt;p&gt;J’ai donc écrit un article, et qui est disponible sur le site de Bewise :&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.bewise.fr/article/129/Introduction-a-ASP-NET-MVC.aspx" href="http://www.bewise.fr/article/129/Introduction-a-ASP-NET-MVC.aspx"&gt;Introduction à ASP.NET MVC&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-5702301067662354499?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/09/article-introduction-aspnet-mvc.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <title>Enum.TryParse ?</title>
      <link>http://blogs.developpeur.org/vko/archive/2009/09/02/enum-tryparse.aspx</link>
      <pubDate>Wed, 02 Sep 2009 07:00:00 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:46325</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Vko</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">7</comments>
      <comments>http://blogs.developpeur.org/vko/comments/46325.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/vko/commentrss.aspx?PostID=46325</commentRss>
      <description>
  Alors qu’on peut trouver int.TryParse, DateTime.TryParse dans le Framework .NET, la méthode Enum.TryParse n’existe pas.   La méthode intuitivement utilisée pour essayer de convertir une chaîne de caractères en une Enum est la suivante  :             1...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=46325" width="1" height="1"&gt;</description>
    </item>
    <item>
      <guid isPermaLink="false">22</guid>
      <link>http://feedproxy.google.com/~r/PaslatekBlog/~3/c6G6wC-7IBk/shared_ptr-ou-comment-eacuteviter-les-fuites-meacutemoires-en-c-part-23-20090831-22.aspx</link>
      <title>shared_ptr ou comment éviter les fuites mémoires en C++ (part 2/3)</title>
      <description>&lt;p&gt;Dans ma série de mes découvertes sur les nouveautés de C++ avec Visual Studio 2008 (SP1) et 2010 j’ai décidé de vous faire un post supplémentaire sur le shared_ptr. En effet cette petite classe est bien sympathique et fourni des “mécaniques” pratiques notamment sur la destruction “personnalisée” de vos pointeurs.&lt;/p&gt;  &lt;p&gt;Il est relativement courant d’utiliser des factory pour instancier des objets de manières un peu particulières et en général dans ce cas on a aussi des méthodes particulières pour détruire ces objets. C’est assez typique quand on utilise des méthodes de l’API de windows où il faut appeler d’autres méthodes pour libérer des ressources. J’ai cherché un cas concret et c’est vrai que ce qui me plais le plus avec le c++ de visual studio aujourd’hui c’est sa faculté à gérer le C++ natif et le C++ managé en même temps. L’interop quoi ! :)&lt;/p&gt;  &lt;p&gt;Donc ce cas concret le voilà. J’ai une application à développer qui doit répondre à un modèle particulier “natif”. C’est à dire que pour s’intégrer dans l’application globale mon projet doit implémenter un certain nombre de méthodes native. Et bien sûr moi à l’intérieur de tout ça j’utilise du managé ! Mais cette API ne me permet de faire transiter que des pointeurs de type (void*) pour récupérer mes billes… Donc je passe mon temps à stocker mes object managés en pointeurs natifs (via GCHandle et IntPtr) ou l’inverse. Et bien sûr ici j’ai déjà un risque de fuite mémoires.&lt;/p&gt;  &lt;p&gt;Trêve de blablas, voilà un exemple de code qui sera plus parlant. J’ai fait 2 “helper” méthodes pour gérer cette conversion :&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:0eb3877b-7147-4ce0-b319-48533e077abc" class="wlWriterEditableSmartContent"&gt;&lt;pre name="code" class="c"&gt;void* GetAsNativePointer(Object^ managedObj)
{
	GCHandle gcPtr = GCHandle::Alloc(managedObj);
	IntPtr ptr = GCHandle::ToIntPtr(gcPtr);
	return ptr.ToPointer();
}

Object^ GetAsManagedPointer(void* nativeObj)
{
	IntPtr ptr = IntPtr(nativeObj);
	GCHandle gcPtr = GCHandle::FromIntPtr(ptr);
	if(gcPtr.IsAllocated==false)
		return  nullptr;
	Object^ toReturn = gcPtr.Target;
	return toReturn;
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Ici j’ai tout de suite une fuite mémoire si j’appelle régulièrement ces méthodes sans jamais désallouer le GCHandle qui est crée par la 1er méthode. Par exemple le main ci dessous et le résultat sur perfmon :&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:9e9052a1-b447-47a8-85ed-fec01c476b99" class="wlWriterEditableSmartContent"&gt;&lt;pre name="code" class="c"&gt;int main(array&amp;lt;System::String ^&amp;gt; ^args)
{
    Console::WriteLine(L"Hello Leaks !");
	CMyObject^ obj = gcnew CMyObject();
	obj-&amp;gt;Data = "String datas to fill a bit of memory";

	for(int a=0;a&amp;lt;99999999;a++)
	{
		void* nativeObj = GetAsNativePointer(obj);
		Object^ managed = GetAsManagedPointer(nativeObj);
		Object^ managed2 = GetAsManagedPointer(nativeObj);
	}
    Console::WriteLine(L"Leaks finished!");
	Console::ReadLine();
    return 0;
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.paslatek.net/Attachments.ashx?id=35"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.paslatek.net/Attachments.ashx?id=36" width="460" height="331" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Il faut donc que je modifie mon main pour utiliser une méthode de nettoyage du GCHandle. ci dessous la méthode en question (notez l’appel à Free() sur le GCHandle), le main et le résultat perfmon :&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:2adabfb2-379a-423c-8d3a-c01f77f5def0" class="wlWriterEditableSmartContent"&gt;&lt;pre name="code" class="c"&gt;void FreeNativePointerPointingOnManagedObj(void* nativeObj)
{
	IntPtr ptr = IntPtr(nativeObj);
	GCHandle gcPtr = GCHandle::FromIntPtr(ptr);
	if(gcPtr.IsAllocated)
	{
		gcPtr.Free();
	}
}

(...)

int main(array&amp;lt;System::String ^&amp;gt; ^args)
{
    Console::WriteLine(L"Hello Leaks !");
	CMyObject^ obj = gcnew CMyObject();
	obj-&amp;gt;Data = "String datas to fill a bit of memory";

	for(int a=0;a&amp;lt;99999999;a++)
	{
		void* nativeObj = GetAsNativePointer(obj);
		Object^ managed = GetAsManagedPointer(nativeObj);
		Object^ managed2 = GetAsManagedPointer(nativeObj);

		//nettoyage
		FreeNativePointerPointingOnManagedObj(nativeObj);
	}

    Console::WriteLine(L"Leaks finished!");
	Console::ReadLine();
    return 0;
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.paslatek.net/Attachments.ashx?id=37"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.paslatek.net/Attachments.ashx?id=38" width="468" height="337" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Bon maintenant je pense que vous voyez où je veux en venir ! Cette méthode FreeNativePointerOnManagedObj est “pénible” à appeler, et encore une fois il faut que je prévois tout les cas de sortie de mon code pour être sûr de bien appeler cette méthode quoiqu’il arrive. Je vais donc modifier mon code pour utiliser un shared_ptr&amp;lt;void&amp;gt; au lieu d’un void*. En plus lors de la création de ce shared_ptr, je vais lui fournir la méthode FreeNativePointerOnManagedObj en tant que deleter. C’est à dire que lorsque le compteur de référence de mon shared_ptr sera à 0, au lieu d’appeler le destructeur du void contenu dedans, il appellera le deleter en question ! &lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Je change donc la signature de mes méthodes pour faire transiter un shared_ptr de void, notez l’instanciation de ce pointeur avec un deleter : shared_ptr&amp;lt;void&amp;gt; p (ptr.ToPointer(),FreeNativePointerPointingOnManagedObj);&lt;/p&gt;

&lt;p&gt;L’ensemble du code final :&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:9b731d80-bedc-430b-a9dd-35db862fb140" class="wlWriterEditableSmartContent"&gt;&lt;pre name="code" class="c"&gt;//on garde poiur le deleter une signature qui renvoi void et
//	prend le pointeur du même type que celui assigné au shared_ptr ici un void* donc
void FreeNativePointerPointingOnManagedObj(void* nativeObj)
{
	IntPtr ptr = IntPtr(nativeObj);
	GCHandle gcPtr = GCHandle::FromIntPtr(ptr);
	if(gcPtr.IsAllocated)
	{
		gcPtr.Free();
	}
}

//on remplace le type de retour par le shared_ptr
shared_ptr&amp;lt;void&amp;gt; GetAsNativePointer(Object^ managedObj)
{
	GCHandle gcPtr = GCHandle::Alloc(managedObj);
	IntPtr ptr = GCHandle::ToIntPtr(gcPtr);
	//création du pointeur en lui passant le deleter
	shared_ptr&amp;lt;void&amp;gt; p (ptr.ToPointer(),FreeNativePointerPointingOnManagedObj);
	return p;
}

//on change la signature du parametre
Object^ GetAsManagedPointer(shared_ptr&amp;lt;void&amp;gt; nativeObj)
{
	//on utilise la méthode get pour récupérer le void*
	IntPtr ptr = IntPtr(nativeObj.get());
	GCHandle gcPtr = GCHandle::FromIntPtr(ptr);
	if(gcPtr.IsAllocated==false)
		return  nullptr;
	Object^ toReturn = gcPtr.Target;
	return toReturn;
}

//dans le main on change juste le type de pointeur natif qu'on trimballe
// et on a plus besoin de penser au nettoyage !
int main(array&amp;lt;System::String ^&amp;gt; ^args)
{
    Console::WriteLine(L"Hello Leaks !");
	CMyObject^ obj = gcnew CMyObject();
	obj-&amp;gt;Data = "String datas to fill a bit of memory";

	for(int a=0;a&amp;lt;99999999;a++)
	{
		shared_ptr&amp;lt;void&amp;gt; nativeObj = GetAsNativePointer(obj);
		Object^ managed = GetAsManagedPointer(nativeObj);
		Object^ managed2 = GetAsManagedPointer(nativeObj);

		//ici plus besoin de nettoyage, le shared_ptr s'en charge
	}

    Console::WriteLine(L"Leaks finished!");
	Console::ReadLine();
    return 0;
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Bon je vous remet pas le graph perfmon, c’est le même que précédemment, c’est à dire calme plat sur la mémoire ! :D&lt;/p&gt;

&lt;p&gt;La prochaine étape, mettre des helper méthode sous forme d’une jolie classe dédiée à ce genre de mécanique en interop !…&lt;/p&gt;

&lt;p&gt;voi aussi &lt;a href="http://www.paslatek.net/shared_ptr-ou-comment-eacuteviter-les-fuites-meacutemoires-en-c-part1-20090812-20.aspx"&gt;shared_ptr ou comment éviter les fuites mémoires en C++ 1/3&lt;/a&gt;

  &lt;br /&gt;et &lt;a href="http://www.paslatek.net/shared_ptr-ou-comment-eacuteviter-les-fuites-meacutemoires-en-c-33-20090909-23.aspx"&gt;shared_ptr ou comment éviter les fuites mémoires en C++ 3/3&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 31 Aug 2009 11:59:20 +0200</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-08-31T11:59:20+02:00</updated>
      <author>lionel limozin</author>
      <creator>lionel limozin</creator>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://www.paslatek.net/shared_ptr-ou-comment-eacuteviter-les-fuites-meacutemoires-en-c-part-23-20090831-22.aspx</origLink>
    </item>
    <item>
      <guid isPermaLink="false">21</guid>
      <link>http://feedproxy.google.com/~r/PaslatekBlog/~3/n-0U4PO9eKU/formations-microsoft-agrave-des-prix-tres-preacutefeacuterentiels-20090827-21.aspx</link>
      <title>Formations Microsoft à des prix TRES préférentiels !!</title>
      <description>&lt;p&gt;Allez, un peu de Pub ne fait pas de mal :)    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.bewise.fr/actualite/90/Offres-promotionnelles.aspx"&gt;Microsoft et Bewise vous proposent de profiter de cette fin d’été pour former vos collaborateurs aux sujets suivants&lt;/a&gt; : &lt;/p&gt;  &lt;p&gt;- Découverte de Windows Azure&lt;/p&gt;  &lt;p&gt;- Développement parallèle avec ParallelFX 4.0&lt;/p&gt;  &lt;p&gt;- Nouveautés SQL Server 2008&lt;/p&gt;  &lt;p&gt;- Découverte de .Net 4.0 et Visual Studio 2010&lt;/p&gt;  &lt;p&gt;- Utilisation avancée de Silverlight&lt;/p&gt;  &lt;p&gt;- Utilisation avancée de WPF&lt;/p&gt;  &lt;p&gt;- Découverte de Silverlight&lt;/p&gt;  &lt;p&gt;- Découverte de WPF&lt;/p&gt;  &lt;p&gt;· &lt;i&gt;&lt;u&gt;Date &lt;/u&gt;&lt;/i&gt;: chacune de ces formations sera donnée sur septembre et/ou octobre 2009&lt;/p&gt;  &lt;p&gt;· &lt;i&gt;&lt;u&gt;Durée&lt;/u&gt;&lt;/i&gt; : 3 jours chacune&lt;/p&gt;  &lt;p&gt;· &lt;i&gt;&lt;u&gt;Lieu&lt;/u&gt;&lt;/i&gt; : chez Bewise ou dans vos locaux&lt;/p&gt;  &lt;p&gt;· &lt;i&gt;&lt;u&gt;Formateur – consultant&lt;/u&gt;&lt;/i&gt; : certifié Microsoft Certified Trainer (MCT)&lt;/p&gt;  &lt;p&gt;· &lt;i&gt;&lt;u&gt;Financement&lt;/u&gt;&lt;/i&gt; : Bewise est centre de formation agréé pour une prise en charge par vos OPCA&lt;/p&gt;  &lt;p&gt;· &lt;i&gt;&lt;u&gt;Prix&lt;/u&gt;&lt;/i&gt; : &lt;b&gt;490 € HT par stagiaire pour les 3 jours de formation&lt;/b&gt; !!!! &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Contact au 05 61 75 13 13&lt;/b&gt; pour connaitre les dates précises de la formation qui vous intéresse et les places disponibles !&lt;/p&gt;</description>
      <pubDate>Thu, 27 Aug 2009 18:11:05 +0200</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-08-27T18:11:05+02:00</updated>
      <author>lionel limozin</author>
      <creator>lionel limozin</creator>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://www.paslatek.net/formations-microsoft-agrave-des-prix-tres-preacutefeacuterentiels-20090827-21.aspx</origLink>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-5556584187956924698</guid>
      <pubDate>Fri, 21 Aug 2009 08:10:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-08-21T10:19:43.938+02:00</updated>
      <title>Formations Microsoft à des prix TRES préférentiels !!</title>
      <description>&lt;p&gt;Les températures grimpent, nos prix baissent !&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://www.bewise.fr/actualite/90/Offres-promotionnelles.aspx"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh4.ggpht.com/_1fIQLbpqRAw/So5WhEolRfI/AAAAAAAABqU/EJnZK_Bl9NU/image%5B12%5D.png?imgmax=800" width="319" height="178" /&gt;&lt;/a&gt;&lt;a href="http://www.bewise.fr/actualite/90/Offres-promotionnelles.aspx"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://lh5.ggpht.com/_1fIQLbpqRAw/So5WiE06gwI/AAAAAAAABqY/EDAVHTPOrgQ/image%5B13%5D.png?imgmax=800" width="292" height="172" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Microsoft et Bewise vous proposent de profiter de cette fin d’été pour former vos collaborateurs aux sujets suivants : &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Découverte de Windows Azure &lt;/li&gt;    &lt;li&gt;Développement parallèle avec ParallelFX 4.0 &lt;/li&gt;    &lt;li&gt;Nouveautés SQL Server 2008 &lt;/li&gt;    &lt;li&gt;Découverte de .Net 4.0 et Visual Studio 2010 &lt;/li&gt;    &lt;li&gt;Utilisation avancée de Silverlight &lt;/li&gt;    &lt;li&gt;Utilisation avancée de WPF &lt;/li&gt;    &lt;li&gt;Découverte de Silverlight &lt;/li&gt;    &lt;li&gt;Découverte de WPF &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;· &lt;i&gt;&lt;u&gt;Date &lt;/u&gt;&lt;/i&gt;: chacune de ces formations sera donnée sur septembre et/ou octobre 2009&lt;/p&gt;  &lt;p&gt;· &lt;i&gt;&lt;u&gt;Durée&lt;/u&gt;&lt;/i&gt; : 3 jours chacune&lt;/p&gt;  &lt;p&gt;· &lt;i&gt;&lt;u&gt;Lieu&lt;/u&gt;&lt;/i&gt; : chez Bewise ou dans vos locaux&lt;/p&gt;  &lt;p&gt;· &lt;i&gt;&lt;u&gt;Formateur – consultant&lt;/u&gt;&lt;/i&gt; : certifié Microsoft Certified Trainer (MCT)&lt;/p&gt;  &lt;p&gt;· &lt;i&gt;&lt;u&gt;Financement&lt;/u&gt;&lt;/i&gt; : Bewise est centre de formation agréé pour une prise en charge par vos OPCA&lt;/p&gt;  &lt;p&gt;· &lt;i&gt;&lt;u&gt;Prix&lt;/u&gt;&lt;/i&gt; : &lt;strong&gt;&lt;font color="#ff0000"&gt;490 € HT par stagiaire pour les 3 jours de formation !!!!&lt;/font&gt;&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Contactez-nous au 05 61 75 13 13&lt;/b&gt; pour connaitre les dates précises de la formation qui vous intéresse et les places disponibles !&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-5556584187956924698?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/08/formations-microsoft-des-prix-tres.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <guid isPermaLink="false">20</guid>
      <link>http://feedproxy.google.com/~r/PaslatekBlog/~3/pNQ5is0mXbg/shared_ptr-ou-comment-eacuteviter-les-fuites-meacutemoires-en-c-13-20090812-20.aspx</link>
      <title>shared_ptr ou comment éviter les fuites mémoires en C++ (1/3)</title>
      <description>&lt;p&gt;Petit post rapide pour parler d’une découverte que j’ai faite il y a peu :). En me remettant un peu le nez dans le C++ et notamment sur les nouveautés de Visual C++ 2010 (et 2008 avec le Feature Pack) j’ai découvert avec plaisir cette classe : shared_ptr.&lt;/p&gt;  &lt;p&gt;En 2 mots, c’est une classe générique chargée d’encapsuler un pointeur et chargée de le supprimer quand il n’est plus utilisé. Donc grâce à cette classe on ne fait plus de “new” ni de “delete”&lt;/p&gt;  &lt;p&gt;Par exemple le code ci dessous, j’ai “oublié” de deleter mes pointeurs de Cregion dans le cas d’une exception (cas relativement classique quand on a beaucoup de cause de sortie de code et que l’on ne les prévoit pas tous). Le résultat sur la mémoire est immédiat. (Evidemment pour l’exemple je déclenche une exception dans la méthode DisplayName de la classe Cregion)&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:d076aae9-1bf0-42f5-a69b-f466161d9016" class="wlWriterSmartContent"&gt;   &lt;pre class="c" name="code"&gt;int _tmain(int argc, _TCHAR* argv[])
{
	int retChar = 0;
	for(int i=0;i&amp;lt;99999999;i++)
	{
		Cregion *region = NULL;
		try
		{
			region = new Cregion(&amp;quot;PACA&amp;quot;);
			region-&amp;gt;DisplayName();

			//(... some more code ... )

			if(region!=NULL)
				delete region;
		}
		catch(...)
		{
			cout &amp;lt;&amp;lt; &amp;quot;exception &amp;quot; &amp;lt;&amp;lt; endl;
		}
	}
	cout &amp;lt;&amp;lt; &amp;quot;ok&amp;quot; &amp;lt;&amp;lt; endl;
	cin &amp;gt;&amp;gt; retChar;
	return 0;
}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Voici le “résultat” sur perfmon des octets consommés par mon appli : 
  &lt;br /&gt;&lt;a href="http://www.paslatek.net/Attachments.ashx?id=31"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.paslatek.net/Attachments.ashx?id=32" width="582" height="408" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Voici un code qui utilise la classe shared_ptr pour faire la même chose (et donc même exception dans la méthode DisplayName).&lt;/p&gt;

&lt;p&gt;Notez l’utilisation de la méthode make_shared qui se charge de créer l’instance de Cregion et me renvoi directement le shared_ptr.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:115edd9b-4d2e-4a4c-b757-8aa342726bd8" class="wlWriterSmartContent"&gt;
  &lt;pre class="c" name="code"&gt;int _tmain(int argc, _TCHAR* argv[])
{
	int retChar = 0;
	for(int i=0;i&amp;lt;99999999;i++)
	{
		try
		{
			shared_ptr&amp;lt;Cregion&amp;gt; region = make_shared&amp;lt;Cregion&amp;gt;(&amp;quot;PACA&amp;quot;);
			region-&amp;gt;DisplayName();
			
			//(... some more code ... )

			//pas besoin de delete ici, le shared_ptr s'en charge
		}
		catch(...)
		{
			cout &amp;lt;&amp;lt; &amp;quot;exception &amp;quot; &amp;lt;&amp;lt; endl;
		}
	}
	cout &amp;lt;&amp;lt; &amp;quot;ok&amp;quot; &amp;lt;&amp;lt; endl;
	cin &amp;gt;&amp;gt; retChar;
	return 0;
}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Et voici le graph perfmon pour ce code. La différence est évidente :)&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.paslatek.net/Attachments.ashx?id=33"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://www.paslatek.net/Attachments.ashx?id=34" width="582" height="410" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;p.s. : pour utiliser shared_ptr sous Visual Studio 2010, j’ai ajouté un include dans le stdafx : #include &amp;lt;memory&amp;gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;voi aussi &lt;a href="http://www.paslatek.net/shared_ptr-ou-comment-eacuteviter-les-fuites-meacutemoires-en-c-part-2-20090831-22.aspx"&gt;shared_ptr ou comment éviter les fuites mémoires en C++ 2/3&lt;/a&gt; 

  &lt;br /&gt;et &lt;a href="http://www.paslatek.net/shared_ptr-ou-comment-eacuteviter-les-fuites-meacutemoires-en-c-33-20090909-23.aspx"&gt;shared_ptr ou comment éviter les fuites mémoires en C++ 3/3&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 12 Aug 2009 17:34:51 +0200</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-08-12T17:34:51+02:00</updated>
      <author>lionel limozin</author>
      <creator>lionel limozin</creator>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://www.paslatek.net/shared_ptr-ou-comment-eacuteviter-les-fuites-meacutemoires-en-c-13-20090812-20.aspx</origLink>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-2836026946925086445</guid>
      <pubDate>Thu, 06 Aug 2009 10:58:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-08-24T18:11:42.651+02:00</updated>
      <category domain="http://www.blogger.com/atom/ns#">MVC</category>
      <title>Localisation avec ASP.NET MVC</title>
      <description>&lt;span xmlns="xmlns"&gt;   &lt;p&gt;Et oui, je suis encore en train de m'amuser avec la preview de MVC 2. A force de découvrir de nouvelles fonctionnalités qui roxent toutes plus les unes que les autres, je m'étais fait à l'idée que MVC était parfait…      &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;Jusqu'à la nuit dernière, où j'ai fait un cauchemar : je devais gérer la localisation dans un site web, et je ne savait pas comment faire ! En effet, si ASP.NET gère très facilement la localisation sur les contrôles serveur, avec MVC on a tendance à ne pas les utiliser, et l'outil de génération des fichiers de ressources, même s'il est toujours présent, ne génère donc rien. Je me suis donc levé, ai rallumé mon ordinateur, et me suis penché sur la question.     &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;Eh bien, je ne vais pas faire durer le suspens plus longtemps, la gestion de la localisation avec MVC n'est pas beaucoup plus compliquée qu'avant. En effet, si les fichiers de ressource ne sont pas générés automatiquement, rien ne nous empêche de les créer nous même et de les appeler dans nos pages.     &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;J'ai donc créé un fichier Strings.resx, Strings.fr.resx et Strings.en.resx ; dans lequel j'ai mis une chaine de caractère nommée &amp;quot;Texte1&amp;quot;, que j'ai traduite en anglais et en français.      &lt;br /&gt;Dans la page aspx, pour afficher mon texte localisé, c'est tout simple :       &lt;br /&gt;&amp;#160; &amp;lt;%= Strings.Texte1 %&amp;gt;       &lt;br /&gt;Ceci affiche donc mon texte dans la bonne langue, en fonction de la culture sélectionnée. Rien de bien compliqué, donc…      &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;Là où je me suis un peu plus creusé la tête, c'est quand j'ai voulu donner à l'utilisateur la possibilité de changer de langue. Encore une fois, c'est pas plus compliqué qu'en ASP.NET classique. N'oublions pas que dans ASP.NET MVC, il y a ASP.NET : une ViewPage MVC est une page comme une autre !      &lt;br /&gt;Pour changer la culture d'une page, il suffit de changer la culture du thread courant dans la méthode InitializeCulture() de la page.       &lt;br /&gt;Mais comment faire ici, puisque avec MVC on n'a plus de code behind ? Eh bien, tout simplement en changeant la page de base. Dans les directives de mes pages aspx, j'ai changé ça:       &lt;br /&gt;&lt;span style="font-family: courier new; font-size: 10pt"&gt;&lt;span style="background-color: yellow"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: blue"&gt;@ &lt;/span&gt;&lt;span style="color: #a31515"&gt;Page &lt;/span&gt;&lt;span style="color: red"&gt;Inherits&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;System.Web.Mvc.ViewPage&amp;quot; &lt;/span&gt;&lt;span style="background-color: yellow"&gt;%&amp;gt;&lt;/span&gt;&lt;/span&gt;      &lt;br /&gt;par :       &lt;br /&gt;&lt;span style="font-family: courier new; font-size: 10pt"&gt;&lt;span style="background-color: yellow"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: blue"&gt;@ &lt;/span&gt;&lt;span style="color: #a31515"&gt;Page &lt;/span&gt;&lt;span style="color: red"&gt;Inherits&lt;/span&gt;&lt;span style="color: blue"&gt;=&amp;quot;MvcTools.BasePage&amp;quot; &lt;/span&gt;&lt;span style="background-color: yellow"&gt;%&amp;gt;&lt;/span&gt;&lt;/span&gt;      &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;Avec ma classe BasePage qui hérite de ViewPage et qui redéfinit le InitializeCulture() :     &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_1fIQLbpqRAw/SpK7vQn3ZbI/AAAAAAAABqk/srEPkqrUo0c/image%5B5%5D.png?imgmax=800" width="529" height="531" /&gt; &lt;/p&gt;    &lt;p&gt;Dans cet exemple, on vérifie au chargement de la page si la culture est sauvegardée en session, si elle n'existe pas on définit une culture par défaut ; puis on change la culture du thread courant. Il suffit de faire ça pour qu'au chargement de notre page aspx le bon fichier de ressource soit chargé.     &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;Ensuite, pour que l'utilisateur puisse changer de ressource, c'est tout simple : on est en MVC, on crée donc une action dans notre contrôleur qui va changer la culture. Puisqu'on a défini la culture dans la Session, on y a directement accès depuis le contrôleur pour le mettre à jour :     &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;&lt;img alt="" src="http://lh6.ggpht.com/_1fIQLbpqRAw/Snq3ZU-Sw8I/AAAAAAAABhU/TnDRnr9ncxo/image%5B11%5D.png?imgmax=800" /&gt;&lt;/p&gt; &lt;/span&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-2836026946925086445?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/08/localisation-avec-aspnet-mvc.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <title>Que la force du Design soit avec vous</title>
      <link>http://blog.djeepy1.net/2009/08/06/que-la-force-du-design-soit-avec-vous/</link>
      <comments>http://blog.djeepy1.net/2009/08/06/que-la-force-du-design-soit-avec-vous/#comments</comments>
      <pubDate>Thu, 06 Aug 2009 08:49:00 +0000</pubDate>
      <creator xmlns="http://purl.org/dc/elements/1.1/">djeepy1</creator>
      <category><![CDATA[Uncategorized]]></category>
      <guid isPermaLink="false">http://djeepy1.wordpress.com/2009/08/06/que-la-force-du-design-soit-avec-vous/</guid>
      <description><![CDATA[&#60;séquence type=&#160;&#187;promotion&#160;&#187;&#62;
Vertice Design est un studio
graphique spécialisé dans le design et l&#8217;ergonomie d&#8217;applications web, windows
et mobile.
Les équipes maîtrisent des outils
variés tels que la gamme Expression de Microsoft, la gamme CS4 d&#8217;Adobe, 3ds Max,
Nova&#8230;
En plus de la réalisation d&#8217;interfaces graphiques originales et à votre
image, Vertice Design propose des formations afin d&#8217;acquérir des compétences sur
des logiciels tels [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.djeepy1.net&blog=7511412&post=42&subd=djeepy1&ref=&feed=1" />]]></description>
      <encoded xmlns="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>&lt;séquence type=&nbsp;&raquo;promotion&nbsp;&raquo;&gt;</p>
<p><img src="http://media.djeepy1.net/public/bewise/vertice-design.jpg" alt="" style="float:left;margin:0 1em 1em 0;" title="vertice-design.jpg, août 2009" />Vertice Design est un studio<br />
graphique spécialisé dans le design et l&#8217;ergonomie d&#8217;applications web, windows<br />
et mobile.</p>
<p>Les équipes maîtrisent des outils<br />
variés tels que la gamme Expression de Microsoft, la gamme CS4 d&#8217;Adobe, 3ds Max,<br />
Nova&#8230;</p>
<p>En plus de la réalisation d&#8217;interfaces graphiques originales et à votre<br />
image, Vertice Design propose des formations afin d&#8217;acquérir des compétences sur<br />
des logiciels tels que Expression Web, Blend, Silverlight, Flash, Expression<br />
Design, Illustrator&#8230;</p>
<p>N&#8217;hésitez pas à aller visiter leur site internet pour en savoir plus : <a href="http://www.verticedesign.com/">http://www.verticedesign.com</a></p>
<p>&lt;/séquence&gt;</p>
<br />Publié dans Uncategorized  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/djeepy1.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/djeepy1.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/djeepy1.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/djeepy1.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/djeepy1.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/djeepy1.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/djeepy1.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/djeepy1.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/djeepy1.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/djeepy1.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.djeepy1.net&blog=7511412&post=42&subd=djeepy1&ref=&feed=1" />]]></encoded>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blog.djeepy1.net/2009/08/06/que-la-force-du-design-soit-avec-vous/feed/</commentRss>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <content url="http://1.gravatar.com/avatar/d5bd484f181f5352c2e531cb5cc78aef?s=96&amp;d=http%3A%2F%2Fa.wordpress.com%2Fi%2Fmu.gif&amp;r=G" medium="image" xmlns="http://search.yahoo.com/mrss/">
        <title type="html">djeepy1</title>
      </content>
      <content url="http://media.djeepy1.net/public/bewise/vertice-design.jpg" medium="image" xmlns="http://search.yahoo.com/mrss/">
        <title type="html">vertice-design.jpg, août 2009</title>
      </content>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-1896920786455660642</guid>
      <pubDate>Wed, 05 Aug 2009 09:00:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-10-19T11:10:52.939+02:00</updated>
      <category domain="http://www.blogger.com/atom/ns#">MVC 2</category>
      <category domain="http://www.blogger.com/atom/ns#">MVC</category>
      <category domain="http://www.blogger.com/atom/ns#">Linq</category>
      <title>Utiliser les DataAnnotations avec LinqToSql</title>
      <description>&lt;p&gt;ASP.NET MVC 2 est arrivé avec une nouveauté très pratique : la validation de données par DataAnnotation. Le principe : on définit sur notre modèle les contraintes à vérifier, et MVC se charge de faire les vérifications (côté serveur uniquement dans la première preview, et normalement une vérification client devrait être générée à l’aide de jQuery dans les prochaines versions).&lt;/p&gt;  &lt;p&gt;Par exemple, j’ai la classe suivante :&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Courier New"&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;Contact          &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; {          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt; Login { &lt;/font&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;font color="#000000"&gt;; &lt;/font&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;font color="#000000"&gt;; }          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt; Email { &lt;/font&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;font color="#000000"&gt;; &lt;/font&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;font color="#000000"&gt;; }          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;Int16&lt;/font&gt;&lt;font color="#000000"&gt; Age { &lt;/font&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;font color="#000000"&gt;; &lt;/font&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;font color="#000000"&gt;; }          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/font&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Je vais pouvoir lui ajouter les règles de validation de cette manière (sans oublier de référencer System.ComponentModel.DataAnnotations) :&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Courier New"&gt;&lt;font size="2"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;Contact          &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; {          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [&lt;/font&gt;&lt;font color="#2b91af"&gt;Required&lt;/font&gt;&lt;font color="#000000"&gt;(ErrorMessage=&lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;The login is required&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;)]          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [&lt;/font&gt;&lt;font color="#2b91af"&gt;StringLength&lt;/font&gt;&lt;font color="#000000"&gt;(20, ErrorMessage=&lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;Must be less than 20 characters&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;)]          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt; Login { &lt;/font&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;font color="#000000"&gt;; &lt;/font&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;font color="#000000"&gt;; }          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [&lt;/font&gt;&lt;font color="#2b91af"&gt;Required&lt;/font&gt;&lt;font color="#000000"&gt;(ErrorMessage=&lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;The e-mail is required&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;)]          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [&lt;/font&gt;&lt;font color="#2b91af"&gt;RegularExpression&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#a31515"&gt;@&amp;quot;([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;,ErrorMessage=&lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;Incorrect e-mail address&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;)]          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt; Email { &lt;/font&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;font color="#000000"&gt;; &lt;/font&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;font color="#000000"&gt;; }          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [&lt;/font&gt;&lt;font color="#2b91af"&gt;Range&lt;/font&gt;&lt;font color="#000000"&gt;(0,120)]          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;Int16&lt;/font&gt;&lt;font color="#000000"&gt; Age { &lt;/font&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;font color="#000000"&gt;; &lt;/font&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;font color="#000000"&gt;; }          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/font&gt;&lt;/font&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Par contre, un problème se pose lorsque notre modèle provient de code généré. Si on veut annoter nos classes, toutes nos règles de validations disparaitront si on regénère le code. &lt;/p&gt;  &lt;p&gt;Heureusement, les p’tits gars de chez Microsoft ont pensé à tout, et nous ont fourni un système pour mettre nos annotations dans une classe partielle :&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Courier New"&gt;&lt;font size="2"&gt;[&lt;/font&gt;&lt;font color="#2b91af"&gt;MetadataType&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#0000ff"&gt;typeof&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#2b91af"&gt;ContactMD&lt;/font&gt;&lt;font color="#000000"&gt;))]          &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;partial&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;Contact          &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;{          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#0000ff"&gt;class&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;ContactMD          &lt;br /&gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&amp;#160;&amp;#160; {          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [&lt;/font&gt;&lt;font color="#2b91af"&gt;Required&lt;/font&gt;&lt;font color="#000000"&gt;(ErrorMessage = &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;The login is required&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;)]          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [&lt;/font&gt;&lt;font color="#2b91af"&gt;StringLength&lt;/font&gt;&lt;font color="#000000"&gt;(20, ErrorMessage = &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;Must be less than 20 characters&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;)]          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt; Login { &lt;/font&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;font color="#000000"&gt;; &lt;/font&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;font color="#000000"&gt;; }          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [&lt;/font&gt;&lt;font color="#2b91af"&gt;Required&lt;/font&gt;&lt;font color="#000000"&gt;(ErrorMessage = &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;The e-mail is required&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;)]          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [&lt;/font&gt;&lt;font color="#2b91af"&gt;RegularExpression&lt;/font&gt;&lt;font color="#000000"&gt;(&lt;/font&gt;&lt;font color="#a31515"&gt;@&amp;quot;([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;, ErrorMessage = &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;Incorrect e-mail address&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;)]          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt; Email { &lt;/font&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;font color="#000000"&gt;; &lt;/font&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;font color="#000000"&gt;; }          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [&lt;/font&gt;&lt;font color="#2b91af"&gt;Range&lt;/font&gt;&lt;font color="#000000"&gt;(0, 120)]          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;Int16&lt;/font&gt;&lt;font color="#000000"&gt; Age { &lt;/font&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt;&lt;font color="#000000"&gt;; &lt;/font&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt;&lt;font color="#000000"&gt;; }          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;}&lt;/font&gt;&lt;/font&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Ici, la classe Contact a été générée par LinqToSql, et contient les propriétés Login, Email et Age. Je ne peux donc pas les remettre dans la classe partielle.    &lt;br /&gt;Il faut dans ce cas créer une autre classe, ContactMD, qui contient les mêmes propriétés que Contact, et sur laquelle on mets nos annotations.     &lt;br /&gt;Et on ajoute une annotation MetadataType sur notre classe Contact pour définir dans quelle classe se trouvent les annotations.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-1896920786455660642?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/08/mvc-utiliser-les-dataannotations-avec.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-8443796879208752551</guid>
      <pubDate>Tue, 04 Aug 2009 15:59:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-10-23T14:54:56.191+02:00</updated>
      <category domain="http://www.blogger.com/atom/ns#">JavaScript</category>
      <category domain="http://www.blogger.com/atom/ns#">MVC</category>
      <category domain="http://www.blogger.com/atom/ns#">Ajax</category>
      <category domain="http://www.blogger.com/atom/ns#">HTML</category>
      <title>ASP.NET MVC, Ajax, et XHTML : on ne plaisante pas avec la validité du code !</title>
      <description>&lt;p&gt;Update : Avec la preview 2, le problème est malheureusement toujours présent.&lt;/p&gt;  &lt;p&gt;Si vous êtes tombé ici en cherchant comment faire de l’Ajax avec ASP.NET MVC, je vous conseille d’aller voir cet article sur Tech Head Brothers : &lt;a href="http://www.techheadbrothers.com/Articles.aspx/ajaxhelper-aspnet-mvc"&gt;L’AjaxHelper de ASP.NET MVC&lt;/a&gt;&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;Ce post est une réaction à chaud après avoir perdu quelques heures à comprendre pourquoi mon appel Ajax ne fonctionnait pas.&lt;/p&gt;  &lt;p&gt;Je viens d’installer la preview d’&lt;a href="http://weblogs.asp.net/scottgu/archive/2009/07/31/asp-net-mvc-v2-preview-1-released.aspx"&gt;ASP.NET MVC 2&lt;/a&gt;, et après avoir découvert avec enthousiasme les nouveautés, j’ai décidé de tester les Ajax Helpers que je n’avais pas encore pris le temps de regarder dans la première version.&lt;/p&gt;  &lt;p&gt;J’ai donc décidé de faire un moteur de recherche asynchrone : une textbox, un bouton pour valider, et une zone avec les résultats qui se mettra à jour toute seule sans recharger la page :&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Consolas"&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;div&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#ff0000"&gt;class&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;search&amp;quot;&amp;gt;&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;p&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#000000"&gt;Recherche d'article&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;p&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;p&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;lt;% using (Ajax.BeginForm(&amp;quot;AjaxSearch&amp;quot;, &amp;quot;Search&amp;quot;,          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new AjaxOptions() { UpdateTargetId = &amp;quot;searchResult&amp;quot; }))           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {%&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;%= Html.TextBox(&amp;quot;s&amp;quot;) %&amp;gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;input&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;submit&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#ff0000"&gt;value&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Search&amp;quot;/&amp;gt;&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;%} %&amp;gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;p&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;p&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#ff0000"&gt;id&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;searchResult&amp;quot;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;p&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;div&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;          &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Le fonctionnement est très simple : on utilise un formulaire qui fera un appel Ajax, qu’on initialise à l’aide du Ajax.BeginForm    &lt;br /&gt;On lui passe en paramètre le nom de l’action et du contrôleur MVC qu’on veut appeler, ainsi que les AjaxOptions : ici je demande à ce que le résultat mette à jour l’élément avec l’id “searchResult”, situé un peu plus bas.&lt;/p&gt;  &lt;p&gt;Coté serveur, j’ai donc une action qui va me renvoyer une liste d’articles correspondant à la recherche :&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Consolas"&gt;&lt;font size="1"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#2b91af"&gt;ActionResult&lt;/font&gt;&lt;font color="#000000"&gt; AjaxSearch()          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#2b91af"&gt;String&lt;/font&gt;&lt;font color="#000000"&gt; s =&amp;#160; Request[&lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;s&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;];          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;font color="#000000"&gt; data = Context.Articles.Where(a =&amp;gt; a.Title.Contains(s)).ToList();          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt;&lt;font color="#000000"&gt; (data.Count == &lt;/font&gt;&lt;font color="#a52a2a"&gt;0&lt;/font&gt;&lt;font color="#000000"&gt;)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#000000"&gt; Content(&lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;No article found&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;);          &lt;br /&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt;&lt;font color="#000000"&gt; View(data);          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }           &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Et cette action renvoie une vue, qui est ici une vue partielle (ascx) :&lt;/p&gt;  &lt;div style="border-bottom: #000000 1px solid; border-left: #000000 1px solid; margin-left: 10pt; border-top: #000000 1px solid; margin-right: 2pt; border-right: #000000 1px solid"&gt;   &lt;div style="background-color: #dcdcdc; white-space: nowrap; overflow: scroll"&gt;&lt;font face=" Consolas"&gt;&lt;font size="1"&gt;&amp;lt;%&lt;/font&gt;&lt;font color="#0000ff"&gt;@&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#800000"&gt;Control&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#ff0000"&gt;Language&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;C#&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;font color="#ff0000"&gt;Inherits&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;System.Web.Mvc.ViewUserControl&amp;lt;IEnumerable&amp;lt;MyMvcWiki.Models.Article&amp;gt;&amp;gt;&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt; %&amp;gt;          &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;ul&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;% &lt;/font&gt;&lt;font color="#0000ff"&gt;foreach&lt;/font&gt;&lt;font color="#000000"&gt; (&lt;/font&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt;&lt;font color="#000000"&gt; item &lt;/font&gt;&lt;font color="#0000ff"&gt;in&lt;/font&gt;&lt;font color="#000000"&gt; Model)          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { %&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;li&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160; &amp;lt;%&lt;/font&gt;&lt;font color="#0000ff"&gt;=&lt;/font&gt;&lt;font color="#000000"&gt; Html.ActionLink(item.Title, &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;Details&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;font color="#a31515"&gt;&amp;quot;Wiki&amp;quot;&lt;/font&gt;&lt;font color="#000000"&gt;, &lt;/font&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt;&lt;font color="#000000"&gt; { id=item.Id }, &lt;/font&gt;&lt;font color="#0000ff"&gt;null&lt;/font&gt;&lt;font color="#000000"&gt;) %&amp;gt;          &lt;br /&gt;&amp;#160;&amp;#160; &lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;li&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;% } %&amp;gt;           &lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;ul&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;font color="#000000"&gt;          &lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Et voilà, Ajax avec MVC, c’est pas plus compliqué que ça !    &lt;br /&gt;Enfin, en théorie, puisqu’il suffit de tester la page pour avoir une belle erreur, avec un message très explicite afin de faciliter le débugage :     &lt;br /&gt;“Error: Unknown runtime error”     &lt;br /&gt;Erreur d’autant plus incompréhensible que lorsque la recherche ne renvoie aucun résultat, le message “No article found” s’affiche correctement.&lt;/p&gt;  &lt;p&gt;Je me suis donc arraché les cheveux sur cette erreur, puisque le code me semblait parfaitement correct de bout en bout, jusqu’à ce que je comprenne ce qui n’allait pas.    &lt;br /&gt;Revoyons de plus près ce qui se passe coté client :     &lt;br /&gt;On fait un appel Ajax qui va mettre à jour ma page. La réponse du serveur doit mettre à jour l’élément avec l’id “searchResult”. Dans mon code, il s’agit d’un élément &amp;lt;p&amp;gt;.     &lt;br /&gt;La réponse du serveur renvoie une liste d’articles sous forme de liste à puces &amp;lt;ul&amp;gt; &amp;lt;li&amp;gt;.     &lt;br /&gt;Et si on se décide à lire les spécifications du xhtml, on se rend compte que c’est interdit. Et oui, un paragraphe ne doit pas contenir d’éléments de type bloc, donc pas de &amp;lt;ul&amp;gt;…     &lt;br /&gt;Il suffit de remplacer mon &amp;lt;p id=”searchResult”&amp;gt; pas un &amp;lt;div id=”searchResult”&amp;gt; pour que ça fonctionne !&lt;/p&gt;  &lt;p&gt;Je suis partagé sur cette erreur : d’un coté, c’est vrai que c’est bien de forcer les développeurs à faire du code correct, mais j’aurais quand même apprécié avoir un message d’erreur plus explicite.&lt;/p&gt;  &lt;p&gt;En dehors de ça, j’avoue que je suis conquis pas les méthodes Ajax fournies avec MVC. Les accrocs à l’UpdatePanel ne seront pas dépaysés (enfin, pas plus qu’ils ne l’étaient en passant de WebForms à MVC). C’est très facile et rapide à mettre en place, sans avoir à écrire de javascript. Tout en laissant la possibilité aux fans de JavaScript de faire leurs appels Ajax à la main (avec jQuery par exemple, qui est inclut de base dans les nouveaux projets MVC).&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-8443796879208752551?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/08/aspnet-mvc-ajax-et-xhtml-on-ne.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-1923279686293016901</guid>
      <pubDate>Tue, 04 Aug 2009 09:06:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-08-04T11:11:20.072+02:00</updated>
      <title>Découvrez Vertice Design</title>
      <description>&lt;p&gt;Vertice Design est un studio graphique spécialisé dans le design et l'ergonomie d'applications web, windows et mobile.&lt;a href="http://www.verticedesign.com"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="vertice-design" border="0" alt="vertice-design" src="http://lh4.ggpht.com/_1fIQLbpqRAw/Snf7N51N6vI/AAAAAAAABgk/2yNcQd-ElW0/vertice-design.jpg?imgmax=800" width="240" height="240" /&gt;&lt;/a&gt;     &lt;br /&gt;Les équipes maîtrisent des outils variés tels que la gamme Expression de Microsoft, la gamme CS4 d'Adobe, 3ds Max, Nova...     &lt;br /&gt;En plus de la réalisation d'interfaces graphiques originales et à votre image, Vertice Design propose des formations afin d'acquérir des compétences     &lt;br /&gt;sur des logiciels tels que Expression Web, Blend, Silverlight, Flash, Expression Design, Illustrator...     &lt;br /&gt;N'hésitez pas à aller visiter leur site internet pour en savoir plus : &lt;a href="http://www.verticedesign.com"&gt;http://www.verticedesign.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-1923279686293016901?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/08/decouvrez-vertice-design.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-2661757067011288732.post-406479737031733715</guid>
      <pubDate>Wed, 22 Jul 2009 14:27:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-07-22T07:50:16.143-07:00</updated>
      <title>Multiple Host Header (mutiple binding) IIS 7 &amp; WCF</title>
      <description>WCF "by design" ne supporte pas plusieurs binding sur un même site. Ce qui est génant, car on trouve très souvent plusieurs binding.... Si vous utilisez le Framework 3.5, il est assez simple de "by passer" ce problème. Coller ces lignes dans le fichier de config du service:&lt;br /&gt;&lt;br /&gt;&amp;lt;system.servicemodel&amp;gt;&lt;br /&gt;&amp;lt;servicehostingenvironment&amp;gt;&lt;br /&gt;&amp;lt;baseaddressprefixfilters&amp;gt;&lt;br /&gt;&amp;lt;add prefix=&amp;quot;http://MonSite.com:9000&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/baseaddressprefixfilters&amp;gt;&lt;br /&gt;&amp;lt;/servicehostingenvironment&amp;gt;&lt;br /&gt;&amp;lt;/system.serviceModel&amp;gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2661757067011288732-406479737031733715?l=becauseofintellisense.blogspot.com' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://becauseofintellisense.blogspot.com/2009/07/multiple-host-header-mutiple-binding.html</link>
      <author>nicolas.bruschini@bewise.fr (Rouge)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <title>Le truc à la con du jour : Associer un designer par défaut à un type pour la PropertyGrid</title>
      <description>&lt;p&gt;Le problème est le suivant : je voudrais mettre un TypeConverter et un designer par défaut sur un type donné sans pour autant aller me mettre les tags [TypeConverter] et [Editor] sur chaque propriété utilisant mon type.&lt;/p&gt;  &lt;p&gt;Et comme souvent avec le framework .Net la solution est simple : Il est possible de référencer de manière statique ces attributs sur les types plutôt que sur les propriétés.&lt;/p&gt;  &lt;p&gt;La solution en image:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;            TypeDescriptor.AddAttributes(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(RGBAColor),
                &lt;span class="kwrd"&gt;new&lt;/span&gt; EditorAttribute(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(RGBAColorDesigner), &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(UITypeEditor)),
                &lt;span class="kwrd"&gt;new&lt;/span&gt; TypeConverterAttribute(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(RGBATypeConverter))
                );&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Ainsi on peut voir que j’associe directement un éditeur et un TypeConverter sur mon type RGBAColor.&lt;/p&gt;

&lt;p&gt;Elle est pas belle la vie?&lt;/p&gt;</description>
      <link>http://www.catuhe.com/post/Le-truc-a-la-con-du-jour-Associer-un-designer-par-defaut-a-un-type-pour-la-PropertyGrid.aspx</link>
      <author>kosh</author>
      <comments>http://www.catuhe.com/post/Le-truc-a-la-con-du-jour-Associer-un-designer-par-defaut-a-un-type-pour-la-PropertyGrid.aspx#comment</comments>
      <guid>http://www.catuhe.com/post.aspx?id=c1f9b543-4b19-41be-aeaa-5ff15b027145</guid>
      <pubDate>Sat, 18 Jul 2009 10:59:33 +0200</pubDate>
      <category>Windows Forms</category>
      <category>.Net</category>
      <publisher xmlns="http://purl.org/dc/elements/1.1/">kosh</publisher>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/pingback.axd</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/post.aspx?id=c1f9b543-4b19-41be-aeaa-5ff15b027145</target>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://www.catuhe.com/trackback.axd?id=c1f9b543-4b19-41be-aeaa-5ff15b027145</ping>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/post/Le-truc-a-la-con-du-jour-Associer-un-designer-par-defaut-a-un-type-pour-la-PropertyGrid.aspx#comment</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/syndication.axd?post=c1f9b543-4b19-41be-aeaa-5ff15b027145</commentRss>
    </item>
    <item>
      <title><![CDATA[Perte de boutons sur Custom Ribbon Word /Excel]]></title>
      <link>http://vsto-sps.over-blog.com/article-33723216.html</link>
      <description><![CDATA[Bonjour,<br> Il peut vous arriver de customiser le Ribbon d'une application Word ou Excel lors d'un developpement VSTO.<br> Avec SharePoint, il se peut que les boutons situés dans votre "Onglet" disparaissent lors d'un save, lorsque celui-ci n'a jamais été selectionné et ce avant le save par[...]</br></br>]]></description>
      <pubDate>Sun, 12 Jul 2009 02:45:00 +0200</pubDate>
      <guid>http://vsto-sps.over-blog.com/article-33723216.html</guid>
      <category>Visual Studio Tool For Office</category>
      <comments>http://vsto-sps.over-blog.com/article-33723216-6.html#anchorComment</comments>
    </item>
    <item>
      <title>Renouvellement MVP</title>
      <link>http://blog.djeepy1.net/2009/07/09/renouvellement-mvp/</link>
      <comments>http://blog.djeepy1.net/2009/07/09/renouvellement-mvp/#comments</comments>
      <pubDate>Thu, 09 Jul 2009 10:31:00 +0000</pubDate>
      <creator xmlns="http://purl.org/dc/elements/1.1/">djeepy1</creator>
      <category><![CDATA[Bewise]]></category>
      <guid isPermaLink="false">http://djeepy1.wordpress.com/2009/07/09/renouvellement-mvp/</guid>
      <description><![CDATA[Bonjour à tous,
Comme je suis actuellement en vacances depuis 2 semaines avec des difficultés à trouver des accès Wi-Fi (rendez-vous compte, je suis au McDo..), je n&#8217;ai pas pu annoncer la bonne nouvelle&#8230; Je suis renouvelé MVP SQL.
Voila, je suis content de moi. Je vais reprendre un peu les publications et migrer mon blog vers [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.djeepy1.net&blog=7511412&post=43&subd=djeepy1&ref=&feed=1" />]]></description>
      <encoded xmlns="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Bonjour à tous,</p>
<p><img src="http://media.djeepy1.net/public/bandeaux/MVP-portrait.png" alt="" style="float:left;margin:0 1em 1em 0;" title="MVP-portrait.png, juil 2008" />Comme je suis actuellement en vacances depuis 2 semaines avec des difficultés à trouver des accès Wi-Fi (rendez-vous compte, je suis au McDo..), je n&#8217;ai pas pu annoncer la bonne nouvelle&#8230; Je suis renouvelé MVP SQL.</p>
<p>Voila, je suis content de moi. Je vais reprendre un peu les publications et migrer mon blog vers une autre plate-forme (qui sera référencée par Google par exemple). Je vais aussi préparer activement&nbsp;l&#8217;arrivée des prochaines versions de SQL Server comme Gemini. </p>
<p>Je compte bien aussi retourner au MVP Summit 2010&#8230;s&#8217;il y en a un.</p>
<p>&nbsp;</p>
<p>PS : Concernant mon absence sur ce blog depuis quelques temps, ce n&#8217;est pas dû à des vacances à rallonge mais à de nouvelles responsabilités chez Bewise plus importantes et donc plus chronophages. Mais ne vous impatientez pas, je reviens bientôt sur plein de sujets passionants autour du décionnel et de la gestion des données <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<br />Publié dans Bewise  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/djeepy1.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/djeepy1.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/djeepy1.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/djeepy1.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/djeepy1.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/djeepy1.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/djeepy1.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/djeepy1.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/djeepy1.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/djeepy1.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.djeepy1.net&blog=7511412&post=43&subd=djeepy1&ref=&feed=1" />]]></encoded>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blog.djeepy1.net/2009/07/09/renouvellement-mvp/feed/</commentRss>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <content url="http://1.gravatar.com/avatar/d5bd484f181f5352c2e531cb5cc78aef?s=96&amp;d=http%3A%2F%2Fa.wordpress.com%2Fi%2Fmu.gif&amp;r=G" medium="image" xmlns="http://search.yahoo.com/mrss/">
        <title type="html">djeepy1</title>
      </content>
      <content url="http://media.djeepy1.net/public/bandeaux/MVP-portrait.png" medium="image" xmlns="http://search.yahoo.com/mrss/">
        <title type="html">MVP-portrait.png, juil 2008</title>
      </content>
    </item>
    <item>
      <title>Evolutions du moteur 3D soft</title>
      <description>&lt;p&gt;Je viens de rajouter la gestion d’une source lumineuse à mon moteur 3D soft.&lt;/p&gt;  &lt;p&gt;Notre modèle objet est donc composé des entités suivantes:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Scene&lt;/li&gt;    &lt;li&gt;Objet&lt;/li&gt;    &lt;li&gt;Camera&lt;/li&gt;    &lt;li&gt;Light&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;La scène est composée d’une liste d’objets, d’une lumière et d’une caméra active.&lt;/p&gt;  &lt;p&gt;Un objet est composé d’une liste de vertices (des points 3D) et de faces. Chaque face est responsable de son rendu.&lt;/p&gt;  &lt;p&gt;Pour optimiser un peu tout ça, j’ai rajouté une classe qui simule les buffers de travail dans une image (la classe UnsafeBitmap).&lt;/p&gt;  &lt;p&gt;La prochaine étape va être d’accèlerer le rendu en refaisant l’algorithme de remplissage de faces (rastérisation).&lt;/p&gt;  &lt;p&gt;Tout ceci se trouve &lt;a href="http://www.catuhe.com/softengine/softengine.zip" target="_blank"&gt;ici&lt;/a&gt;.&lt;/p&gt;</description>
      <link>http://www.catuhe.com/post/Evolutions-du-moteur-3D-soft.aspx</link>
      <author>kosh</author>
      <comments>http://www.catuhe.com/post/Evolutions-du-moteur-3D-soft.aspx#comment</comments>
      <guid>http://www.catuhe.com/post.aspx?id=f636c55c-b075-4257-b39f-0af8cb032abe</guid>
      <pubDate>Sat, 20 Jun 2009 15:17:38 +0200</pubDate>
      <category>3D</category>
      <category>.Net</category>
      <category>Win32</category>
      <category>Windows</category>
      <publisher xmlns="http://purl.org/dc/elements/1.1/">kosh</publisher>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/pingback.axd</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/post.aspx?id=f636c55c-b075-4257-b39f-0af8cb032abe</target>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://www.catuhe.com/trackback.axd?id=f636c55c-b075-4257-b39f-0af8cb032abe</ping>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/post/Evolutions-du-moteur-3D-soft.aspx#comment</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/syndication.axd?post=f636c55c-b075-4257-b39f-0af8cb032abe</commentRss>
    </item>
    <item>
      <title>Evolutions du moteur 3D soft</title>
      <description>&lt;p&gt;Je viens de rajouter la gestion d’une source lumineuse à mon moteur 3D soft.&lt;/p&gt;  &lt;p&gt;Notre modèle objet est donc composé des entités suivantes:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Scene&lt;/li&gt;    &lt;li&gt;Objet&lt;/li&gt;    &lt;li&gt;Camera&lt;/li&gt;    &lt;li&gt;Light&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;La scène est composée d’une liste d’objets, d’une lumière et d’une caméra active.&lt;/p&gt;  &lt;p&gt;Un objet est composé d’une liste de vertices (des points 3D) et de faces. Chaque face est responsable de son rendu.&lt;/p&gt;  &lt;p&gt;Pour optimiser un peu tout ça, j’ai rajouté une classe qui simule les buffers de travail dans une image (la classe UnsafeBitmap).&lt;/p&gt;  &lt;p&gt;La prochaine étape va être d’accèlerer le rendu en refaisant l’algorithme de remplissage de faces (rastérisation).&lt;/p&gt;  &lt;p&gt;Tout ceci se trouve &lt;a href="http://www.catuhe.com/softengine/softengine.zip" target="_blank"&gt;ici&lt;/a&gt;.&lt;/p&gt;</description>
      <link>http://www.catuhe.com/post/Evolutions-du-moteur-3D-soft.aspx</link>
      <author>kosh</author>
      <comments>http://www.catuhe.com/post/Evolutions-du-moteur-3D-soft.aspx#comment</comments>
      <guid>http://www.catuhe.com/post.aspx?id=f636c55c-b075-4257-b39f-0af8cb032abe</guid>
      <pubDate>Sat, 20 Jun 2009 15:17:38 +0200</pubDate>
      <category>3D</category>
      <category>.Net</category>
      <category>Win32</category>
      <category>Windows</category>
      <publisher xmlns="http://purl.org/dc/elements/1.1/">kosh</publisher>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/pingback.axd</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/post.aspx?id=f636c55c-b075-4257-b39f-0af8cb032abe</target>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://www.catuhe.com/trackback.axd?id=f636c55c-b075-4257-b39f-0af8cb032abe</ping>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/post/Evolutions-du-moteur-3D-soft.aspx#comment</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/syndication.axd?post=f636c55c-b075-4257-b39f-0af8cb032abe</commentRss>
    </item>
    <item>
      <title>Améliorer le tableau croisé dynamique de Excel</title>
      <link>http://blog.djeepy1.net/2009/05/28/ameliorer-le-tableau-croise-dynamique-de-excel/</link>
      <comments>http://blog.djeepy1.net/2009/05/28/ameliorer-le-tableau-croise-dynamique-de-excel/#comments</comments>
      <pubDate>Thu, 28 May 2009 12:00:00 +0000</pubDate>
      <creator xmlns="http://purl.org/dc/elements/1.1/">djeepy1</creator>
      <category><![CDATA[Business Intelligence]]></category>
      <guid isPermaLink="false">http://djeepy1.wordpress.com/2009/05/28/ameliorer-le-tableau-croise-dynamique-de-excel/</guid>
      <description><![CDATA[J&#8217;ai souvent eu des questions d&#8217;utilisateurs avancés d&#8217;Excel pour enrichir l&#8217;utilisation du tableau croisé dynamique. 
Même si nativement, Excel est sans doute le meilleur client Analysis Services, il lui reste quelques lacunes, qui nécessitent souvent l&#8217;intervention des équipes informatiques. Un exemple est l&#8217;ajout de calculs simples (ratio, sommes, etc.). 
Pour faire cela, on doit écrire [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.djeepy1.net&blog=7511412&post=44&subd=djeepy1&ref=&feed=1" />]]></description>
      <encoded xmlns="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>J&#8217;ai souvent eu des questions d&#8217;utilisateurs avancés d&#8217;<strong>Excel</strong> pour enrichir l&#8217;utilisation du <strong>tableau croisé dynamique</strong>. </p>
<p>Même si nativement, Excel est sans doute le meilleur client Analysis Services, il lui reste quelques lacunes, qui nécessitent souvent l&#8217;intervention des équipes informatiques. Un exemple est l&#8217;ajout de calculs simples (ratio, sommes, etc.). </p>
<p>Pour faire cela, on doit écrire un membre calculé en MDX qui prend en charge le calcul. Je vous avais montré comment en ajouter un dans Report Builder 2.0 <a href="http://blog.djeepy1.net/post/2009/01/21/Report-Builder-20-Creer-un-membre-calcule-sans-passer-par-SSAS">dans un précédent post</a>.</p>
<p>Maintenant, la même opération est possible directement dans Excel grâce à un <strong>add-in</strong> qui vient de sortir sur CodePlex : <strong>OlapPivotTableExtend</strong></p>
<p><img src="http://media.djeepy1.net/public/business-intelligence/.addinexcel_m.jpg" alt="" style="display:block;margin:0 auto;" title="addinexcel.png, mai 2009" />Vous pouvez trouver toutes les infos et le télécharger ici : <a href="http://www.codeplex.com/OlapPivotTableExtend">http://www.codeplex.com/OlapPivotTableExtend</a>.</p>
<p>Il y a évidemment plein d&#8217;autres fonctionnalités : <strong>recherche</strong>, <strong>bibliothèque de calcul</strong>, etc. L&#8217;une de mes préférées est sans aucun doute de pouvoir récupérer la <strong>requête MDX</strong> générée, chose qu&#8217;il fallait faire avec du code VBA ou bien un Profiler.</p>
<br />Publié dans Business Intelligence  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/djeepy1.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/djeepy1.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/djeepy1.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/djeepy1.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/djeepy1.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/djeepy1.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/djeepy1.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/djeepy1.wordpress.com/44/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/djeepy1.wordpress.com/44/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/djeepy1.wordpress.com/44/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.djeepy1.net&blog=7511412&post=44&subd=djeepy1&ref=&feed=1" />]]></encoded>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blog.djeepy1.net/2009/05/28/ameliorer-le-tableau-croise-dynamique-de-excel/feed/</commentRss>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <content url="http://1.gravatar.com/avatar/d5bd484f181f5352c2e531cb5cc78aef?s=96&amp;d=http%3A%2F%2Fa.wordpress.com%2Fi%2Fmu.gif&amp;r=G" medium="image" xmlns="http://search.yahoo.com/mrss/">
        <title type="html">djeepy1</title>
      </content>
      <content url="http://media.djeepy1.net/public/business-intelligence/.addinexcel_m.jpg" medium="image" xmlns="http://search.yahoo.com/mrss/">
        <title type="html">addinexcel.png, mai 2009</title>
      </content>
    </item>
    <item>
      <title>WPF and Silverlight Designer for Visual Studio 2010 </title>
      <link>http://blogs.developpeur.org/vko/archive/2009/05/28/wpf-and-silverlight-designer-for-visual-studio-2010.aspx</link>
      <pubDate>Thu, 28 May 2009 08:40:00 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:45413</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Vko</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <comments>http://blogs.developpeur.org/vko/comments/45413.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/vko/commentrss.aspx?PostID=45413</commentRss>
      <description>
  Un nouvel espace dédié au designer de Visual Studio 2010 pour WPF et Silverlight vient d'ouvrir ses portes. 
On pourra y trouver des resources (blog, articles, webcast) sur tout ce qui concerne WPF et Silverlight dans Visual Studio 2010.
Hop ! Ca se...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=45413" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/vko/archive/tags/WPF/default.aspx">WPF</category>
      <category domain="http://blogs.developpeur.org/vko/archive/tags/VS2010/default.aspx">VS2010</category>
    </item>
    <item>
      <title><![CDATA[Look4Tag Release]]></title>
      <link>http://dotnet.over-blog.fr/article-31559997.html</link>
      <description><![CDATA[<p> Look4Tag est un plugin Outlook qui permet de taguer les messages et de les trier au travers d’une interface ergonomique en WPF. Ce plugin s’adresse aux utilisateurs possédant un grand nombre de messages dans leur boite mail et désireux d’obtenir rapidement différentes vues de ce même ensemble.<br>[...]</br></p>]]></description>
      <pubDate>Mon, 18 May 2009 11:30:00 +0200</pubDate>
      <guid>http://dotnet.over-blog.fr/article-31559997.html</guid>
      <category>Vsto</category>
      <comments>http://dotnet.over-blog.fr/article-31559997-6.html#anchorComment</comments>
    </item>
    <item>
      <title>Le truc à la con du jour : Comportement étrange du FileSystemWatcher</title>
      <description>&lt;p&gt;Dans le cadre de Nova, j’ai du utiliser le FileSystemWatcher pour tracer les modifications sur un fichier donné. Jusque là tout va bien me direz vous.&lt;/p&gt;  &lt;p&gt;Toutefois, j’ai eu un comportement bien étrange : chaque fois que je modifiais le fichier surveillé je recevais deux événements Changed de la part du watcher.&lt;/p&gt;  &lt;p&gt;Tel un docteur House de l’informatique, je me suis donc livré à un raisonnement différentiel (mon dieu que je me la pète).&lt;/p&gt;  &lt;p&gt;Voici donc les symptômes:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Le double événement est systématique &lt;/li&gt;    &lt;li&gt;Il peut parfois y en avoir trois &lt;/li&gt;    &lt;li&gt;Si le NotifyFilter est sur Name ou Size, le problème disparait &lt;/li&gt;    &lt;li&gt;Aucun bug ne semble connu sur le sujet &lt;/li&gt;    &lt;li&gt;Si le fichier n’est pas sur mon bureau mais dans un répertoire d’un disque annexe, le problème disparait &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;A partir de cela j’ai finalement trouvé le coupable : Windows! En effet lors de la modification de mon fichier, Windows lance ce cher indexeur et ajoute donc une notification. Si en plus j’ai un anti-virus actif c’est coup triple.&lt;/p&gt;  &lt;p&gt;C’est le fait que sur un disque annexe je n’ai pas le problème qui m’a mit la puce à l’oreille. En effet, Windows est configuré pour n’indexer que mon profil et pas des répertoires extérieurs.&lt;/p&gt;  &lt;p&gt;Connaissant le coupable, le traitement est relativement simple. Je me suis fait une petite variable de type DateTime qui stocke la date de dernière modification de mon fichier. Si cette valeur est égale à la LastAccessTime de mon fichier je ne fais rien sinon je lance mon code:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;            DateTime previous = lastAccessedDates[sender &lt;span class="kwrd"&gt;as&lt;/span&gt; FileSystemWatcher];
            FileInfo fileInfo = &lt;span class="kwrd"&gt;new&lt;/span&gt; FileInfo(e.FullPath);

            &lt;span class="kwrd"&gt;if&lt;/span&gt; (fileInfo.LastAccessTime &amp;gt; previous)
            {
                lastAccessedDates[sender &lt;span class="kwrd"&gt;as&lt;/span&gt; FileSystemWatcher] = fileInfo.LastAccessTime;
               &lt;span class="rem"&gt;// Code de traitement&lt;/span&gt;
            }&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;</description>
      <link>http://www.catuhe.com/post/Le-truc-a-la-con-du-jour-Comportement-etrange-du-FileSystemWatcher.aspx</link>
      <author>kosh</author>
      <comments>http://www.catuhe.com/post/Le-truc-a-la-con-du-jour-Comportement-etrange-du-FileSystemWatcher.aspx#comment</comments>
      <guid>http://www.catuhe.com/post.aspx?id=66aba8e5-4f75-43e0-98a0-98f9ca51c6b0</guid>
      <pubDate>Sat, 09 May 2009 11:37:27 +0200</pubDate>
      <category>Windows Forms</category>
      <category>.Net</category>
      <publisher xmlns="http://purl.org/dc/elements/1.1/">kosh</publisher>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/pingback.axd</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/post.aspx?id=66aba8e5-4f75-43e0-98a0-98f9ca51c6b0</target>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">1</comments>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://www.catuhe.com/trackback.axd?id=66aba8e5-4f75-43e0-98a0-98f9ca51c6b0</ping>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/post/Le-truc-a-la-con-du-jour-Comportement-etrange-du-FileSystemWatcher.aspx#comment</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/syndication.axd?post=66aba8e5-4f75-43e0-98a0-98f9ca51c6b0</commentRss>
    </item>
    <item>
      <title>[Techdays 2009] retour sur mes sessions au techdays 2009</title>
      <link>http://blogs.developpeur.org/musashi/archive/2009/04/26/techdays-2009-retour-sur-mes-sessions-au-techdays-2009.aspx</link>
      <pubDate>Sun, 26 Apr 2009 17:44:41 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:45011</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">musashi</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <comments>http://blogs.developpeur.org/musashi/comments/45011.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/musashi/commentrss.aspx?PostID=45011</commentRss>
      <description>
  Bonjour lecteur,  J’ai eu le plaisir d’animer deux sessions au techdays que vous pouvez retrouver ici :  RDA106 : WPF pour les développeurs Windows Forms  IND115 : Le cycle de vie des applications Web en détail  Au plaisir de lire vos remarques.  Musa...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=45011" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/musashi/archive/tags/Techdays/default.aspx">Techdays</category>
    </item>
    <item>
      <guid isPermaLink="false">19</guid>
      <link>http://feedproxy.google.com/~r/PaslatekBlog/~3/VxBkgzJzh68/creacuteer-un-volet-daction-dans-word-2007-avec-vsto-20090426-19.aspx</link>
      <title>Créer un volet d'action dans Word 2007 avec VSTO</title>
      <description>&lt;p&gt;Je profite de ma dernière démo que j'ai montrée à la BDC 2009 pour un petit tutorial basique sur l'utilisation de Custom Task Panes dans Word 2009 avec VSTO. Le principe est assez simple : je vais créer un addin applicatif pour word 2007 avec Visual studio 2008. Cet addin ajoutera un onglet au ruban. Cet onglet contient un bouton qui permet de faire apparaitre mon panneau d'action. Le panneau contient au final un contrôle utilisateur maison, pour la démo un &amp;quot;joli&amp;quot; contrôle WPF qui affiche une liste de contacts. De plus le contrôle en question me lève des évènements que je vais utiliser pour ajouter du contenu à mon document Word. Pour commencer... &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.paslatek.net/code/WordAddin1.zip"&gt;&lt;strong&gt;Téléchargez&lt;/strong&gt;&lt;strong&gt; le code source ici&lt;/strong&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Visual Studio 2008 propose nativement des modèles de projet office 2003 et 2007. Je choisi donc un nouveau projet &amp;quot;Word 2007 Add-in&amp;quot; :&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://www.paslatek.net/Attachments.ashx?id=25"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="396" alt="image" src="http://www.paslatek.net/Attachments.ashx?id=26" width="554" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Ensuite j'ajoute un ruban et un bouton pour déclencher l'affichage de mon panneau. Là c'est facile je fais click droit sur mon projet, ajouter un nouvel élément, je choisi dans la rubrique &amp;quot;office&amp;quot; le ruban. J'ouvre le ruban dans le designer et j'ajoute par glissé déposé un bouton : &lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://www.paslatek.net/Attachments.ashx?id=27"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="217" alt="image" src="http://www.paslatek.net/Attachments.ashx?id=28" width="358" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Un simple double click sur ce bouton me génère la méthode qui va intercepter le click sur ce bouton (comme pour n'importe quelle application winform). C'est là que commence la partie un peu plus &amp;quot;ardue&amp;quot;. VSTO ne propose pas de designer pour les &amp;quot;custom task panes&amp;quot; et pas de branchement automatique. Il faut le faire par code ! Bon ceci dit c'est fait en quelques étapes : &lt;/p&gt;  &lt;p&gt;1) il faut récupérer la référence de la fenêtre en cours. Elle nous sera nécessaire pour créer notre objet de type CustomTaskPane    &lt;br /&gt;2) il faut vérifier que le panneau n'a pas été déjà créé pour le document en cours (sinon on aura plusieurs fois le même panneau)     &lt;br /&gt;3) on créer un UserControl qui sera le contrôle WinForm affiché dans le panneau. Dans mon cas je crée en plus un contrôle de type ElementHost qui va me permettre d'y intégrer un contrôle WPF. De plus je garde une référence globale sur le contrôle WPF car je vais me brancher sur un de ses événements     &lt;br /&gt;4) on crée un objet de type CustomTaskPane et on y insère notre UserControl. &lt;/p&gt;  &lt;p&gt;Voilà &amp;quot;l'illustration&amp;quot; de ces étapes par le code : &lt;/p&gt;  &lt;p&gt;1) Fenêtre en cours&amp;#160; (on défini aussi un titre à notre panneau pour pouvoir le retrouver) : &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:2e87a832-37f1-4c78-802b-e3b8a81628de" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c#"&gt;// recuperation de la fenetre en cours
Microsoft.Office.Interop.Word.Window _Window;
_Window = Globals.ThisAddIn.Application.ActiveDocument.ActiveWindow;

// titre du panneau
string _Title;
_Title = "Mes contacts";&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;2) Vérification que le panneau n'est pas déjà existant pour le document en cours : &lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;div class="wlWriterEditableSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:d3b85440-022f-4025-88e2-854d9c70a8e7" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c#"&gt;//on verifie que le panneau n'est pas dejà present
// pour celà on le cherche dans la collection des CustomTaskPanes par son titre et sa fenêtre
var customPane = Globals.ThisAddIn.CustomTaskPanes.FirstOrDefault(p =&amp;gt; p.Title == _Title &amp;amp;&amp;amp; p.Window == _Window);
if (customPane != null)
{
    customPane.Visible = true;
    return;
}&lt;/pre&gt;&lt;/div&gt;

&lt;br /&gt;

&lt;p&gt;Si le panneau à déjà été crée précédemment sur ce document et que l'utilisateur l'a fermé et bien l'instance existe encore, elle est juste cachée. Il suffit donc de remettre le panneau visible. &lt;/p&gt;

&lt;p&gt;3) Création du UserControl et paramétrage (j'inclus donc à l'intérieur un contrôle WPF qui pourrait être utilisé de manière totalement indépendante donc je ne détaillerai pas le code de ce contrôle. Sachez juste qu'il récupère une liste d'images dans un dossier local et crée des entités de type &amp;quot;contact&amp;quot; avec l'image, le nom et le prénom.) :&lt;/p&gt;

&lt;div class="wlWriterEditableSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:cd220bc4-c455-4165-9d38-2d31ae558712" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c#"&gt;// creation du UserControl à afficher
UserControl _Control;
_Control = new UserControl();

//on y inclut le control WPF
elementHost = new ElementHost();
rotator = new ImageRotator();
elementHost.Child = rotator;
elementHost.Dock = DockStyle.Fill;
_Control.Controls.Add(elementHost);
//on se branche sur l'évènement de ce contole
rotator.OnDoubleClick += new ContactDoubleClickHandler(rotator_OnDoubleClick);&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;4) on crée l'objet CustomTaskPane et on l'ajoute à la collection des CustomTaskPane : &lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;div class="wlWriterEditableSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:8d94ce90-95b3-40a8-8a74-72593f707490" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c#"&gt;// on creer le panneau
Microsoft.Office.Tools.CustomTaskPane _CustomTaskPane;
_CustomTaskPane = Globals.ThisAddIn.CustomTaskPanes.Add(_Control, _Title, _Window);

// choix du docking possible. On empeche en horizontal
_CustomTaskPane.DockPositionRestrict = Microsoft.Office.Core.MsoCTPDockPositionRestrict.msoCTPDockPositionRestrictNoHorizontal;

// visibilité
_CustomTaskPane.Visible = true;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Je me suis branché sur l'évènement de double click du contrôle WPF. Cela me permet de récupérer un objet de type Contact et d'exploiter ces données pour les insérer dans le document Word. Je vous met le code pour info sur l'utilisation du modèle objet de Word :&lt;/p&gt;

&lt;div class="wlWriterEditableSmartContent" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:f47836da-ba1d-41e6-b616-ecf986cc5f14" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre name="code" class="c#"&gt;void rotator_OnDoubleClick(object sender, ContactDoubleClickEventArgs e)
{
    if (e.Contact == null)
        return;
    string text = string.Format("{0} {1}\r\n{2}\r\n{3}\r\n{4}\r\n",
        e.Contact.Prenom,
        e.Contact.Nom,
        e.Contact.Societe,
        e.Contact.Adresse1,
        e.Contact.Adresse2
        );
    //creation d'une table
    Table tb = Globals.ThisAddIn.Application.Selection.Document.Tables.Add(
        Globals.ThisAddIn.Application.Selection.Range,
        1, 3, ref missing, ref missing);
    tb.Rows[1].Cells[3].Range.Text = text;

    //creation de l'image
    Bitmap high = new Bitmap(e.Contact.Image);
    Image bpm = high.GetThumbnailImage(320, 240, null, IntPtr.Zero);
    high.Dispose();
    bpm.Save(@"temp.jpg");
    bpm.Dispose();

    //insertion de l'image dans le tableau
    tb.Rows[1].Cells[1].Range.InlineShapes.AddPicture(@"temp.jpg", ref missing, ref missing, ref missing);
}&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Il ne reste plus qu'à exécuter le projet. Visual Studio lance Word et installe l'addin. Je click sur mon onglet puis sur le bouton. Le volet s'affiche à droite. Je peux double cliquer sur un des contacts, ça insère dans mon document l'image et l'adresse postale de ce contact: &lt;/p&gt;

&lt;p align="center"&gt;&lt;a href="http://www.paslatek.net/Attachments.ashx?id=29"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="279" alt="image" src="http://www.paslatek.net/Attachments.ashx?id=30" width="397" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.paslatek.net/code/WordAddin1.zip"&gt;&lt;strong&gt;Téléchargez&lt;/strong&gt;&lt;strong&gt; le code source ici&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sun, 26 Apr 2009 13:21:05 +0200</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-04-26T13:21:05+02:00</updated>
      <author>lionel limozin</author>
      <creator>lionel limozin</creator>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://www.paslatek.net/creacuteer-un-volet-daction-dans-word-2007-avec-vsto-20090426-19.aspx</origLink>
    </item>
    <item>
      <title>BDC2009 – Debriefing</title>
      <link>http://blog.djeepy1.net/2009/04/26/bdc2009-debriefing/</link>
      <comments>http://blog.djeepy1.net/2009/04/26/bdc2009-debriefing/#comments</comments>
      <pubDate>Sun, 26 Apr 2009 10:25:00 +0000</pubDate>
      <creator xmlns="http://purl.org/dc/elements/1.1/">djeepy1</creator>
      <category><![CDATA[Bewise]]></category>
      <guid isPermaLink="false">http://djeepy1.wordpress.com/2009/04/26/bdc2009-debriefing/</guid>
      <description><![CDATA[L&#8217;événement annuel organisé par Bewise a eu lieu ce mardi. Pour la 3eme fois, ce fût un succès.
Cette année, nous avons dépassé les 500 participants (décomptage en cours). Merci à tous pour votre participation. C&#8217;est encourageant de voir que les nouvelles technologies déplacent autant de monde, signe que l&#8217;investissement informatique n&#8217;est pas si morose en [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.djeepy1.net&blog=7511412&post=45&subd=djeepy1&ref=&feed=1" />]]></description>
      <encoded xmlns="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><img src="http://media.djeepy1.net/public/bandeaux/logo_bewise.jpg" alt="" style="float:left;margin:0 1em 1em 0;" title="logo_bewise.jpg, jan 2008" />L&#8217;événement annuel organisé par Bewise a eu lieu ce mardi. Pour la 3eme fois, ce fût un succès.</p>
<p>Cette année, nous avons dépassé les <span class="Apple-style-span" style="font-weight:bold;">500 participants</span> (décomptage en cours). Merci à tous pour votre participation. C&#8217;est encourageant de voir que les nouvelles technologies déplacent autant de monde, signe que l&#8217;investissement informatique n&#8217;est pas si morose en cette période de crise.</p>
<p>Laurent Cotton et moi-même avons assuré les sessions plénières qui avaient pour thème une présentation des outils mis en place pour traiter les données de la BDC (inscriptions &#8211; évaluations). Cela nous a permis de parler de <span class="Apple-style-span" style="font-weight:bold;">MOSS</span> (Sharepoint) et de <span class="Apple-style-span" style="font-weight:bold;">Business Intelligence</span>.</p>
<p>J&#8217;ai pu présenter l&#8217;intérêt de se lancer dans un projet décisionnel afin d&#8217;obtenir des capacités d&#8217;analyse des données élevées, même avec une forte volumétrie et un modèle complexe. J&#8217;ai pu aussi montrer la facilité de créer des rapports plus ou moins complexes en quelques clics, sans avoir recours à un outil de développement.</p>
<p><img src="http://media.djeepy1.net/public/events/bdc/BDC2009-pleniere.PNG" alt="" style="float:right;margin:0 0 1em 1em;" title="BDC2009-pleniere.PNG, avr 2009" />En période de crise, un projet décisionnel peut être un formidable levier. Il permet de produire de la valeur ajoutée (marge, CA, prospection, productivité, etc.) à partir de vos données. </p>
<p>C&#8217;est ce que j&#8217;ai montré avec l&#8217;analyse des données de la BDC.</p>
<p>Evidemment, vous pourrez retrouver très bientôt la session en <span class="Apple-style-span" style="font-weight:bold;">webcast</span>. </p>
<p>Concernant le code des démos, étant donné qu&#8217;une bonne partie des applications présentées sont des applications internes, utilisant les données des participants, je vais être obligé de faire des extracts pas forcément utilisables.</p>
<br />Publié dans Bewise  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/djeepy1.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/djeepy1.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/djeepy1.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/djeepy1.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/djeepy1.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/djeepy1.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/djeepy1.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/djeepy1.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/djeepy1.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/djeepy1.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.djeepy1.net&blog=7511412&post=45&subd=djeepy1&ref=&feed=1" />]]></encoded>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blog.djeepy1.net/2009/04/26/bdc2009-debriefing/feed/</commentRss>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <content url="http://1.gravatar.com/avatar/d5bd484f181f5352c2e531cb5cc78aef?s=96&amp;d=http%3A%2F%2Fa.wordpress.com%2Fi%2Fmu.gif&amp;r=G" medium="image" xmlns="http://search.yahoo.com/mrss/">
        <title type="html">djeepy1</title>
      </content>
      <content url="http://media.djeepy1.net/public/bandeaux/logo_bewise.jpg" medium="image" xmlns="http://search.yahoo.com/mrss/">
        <title type="html">logo_bewise.jpg, jan 2008</title>
      </content>
      <content url="http://media.djeepy1.net/public/events/bdc/BDC2009-pleniere.PNG" medium="image" xmlns="http://search.yahoo.com/mrss/">
        <title type="html">BDC2009-pleniere.PNG, avr 2009</title>
      </content>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-8611506370018775634</guid>
      <pubDate>Fri, 24 Apr 2009 13:39:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-08-26T17:23:12.297+02:00</updated>
      <category domain="http://www.blogger.com/atom/ns#">MVC</category>
      <category domain="http://www.blogger.com/atom/ns#">ASP.NET</category>
      <category domain="http://www.blogger.com/atom/ns#">BDC</category>
      <title>BDC 2009 – ASP.NET MVC</title>
      <description>&lt;p&gt;Je vous ai annoncé hier que mon post sur MVC arriverait d’ici quelques jours, cependant je me suis rendu compte un peu tard que la fin de la semaine arrivait à grand pas, et comme j’ai promis de mettre les sources de ma démo sur mon blog avant la fin de la semaine, me voilà déjà de retour !&lt;/p&gt;  &lt;p&gt;Le sujet du jour est donc MVC : un nouveau type de projet web qui va nous aider à bien structurer notre application, en séparant les différentes couches : Modèle, Vue et Controleur. Contrairement à Ajax que j’ai présenté dans mon message précédent, ASP.NET MVC est disponible en version finale, totalement supporté par Microsoft et donc utilisable en production.    &lt;br /&gt;Avant de démarrer, il va falloir vérifier qu’on a bien tout installé :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Comme d’habitude, il nous faut Visual Studio 2008 SP1, et comme d’habitude, &lt;a href="http://www.microsoft.com/express/vwd/"&gt;Visual Web Developer Express&lt;/a&gt; fera parfaitement l’affaire. &lt;/li&gt;    &lt;li&gt;Ensuite, il va falloir installer MVC. Pour ça, il suffit d’aller le &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=53289097-73ce-43bf-b6a6-35e00103cb4b&amp;amp;displaylang=en"&gt;télécharger&lt;/a&gt; et d’exécuter le msi. Notez que vous pouvez aussi télécharger le code source, disponible sous licence &lt;a href="http://www.microsoft.com/france/sharedsource/licensingbasics/sharedsourcelicenses.mspx#E4B"&gt;Ms-PL&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;Pour ensuite bien apprendre à utiliser MVC, &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=1e0be0b2-910a-4676-9f3a-41e4d9c0fc08"&gt;un training kit&lt;/a&gt; est disponible gratuitement, tout comme &lt;a href="http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf"&gt;un tutorial en pdf&lt;/a&gt; pour créer un site MVC from scratch. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Et comme promis, voilà &lt;a href="http://bdc2009.adhess.net/BewiseBlog.zip"&gt;le code source et les slides de ma démo&lt;/a&gt;. Il s’agit d’un mini moteur de blog totalement fait avec MVC. On peut créer des posts, les voir, les modifier, les supprimer…     &lt;br /&gt;J’ai modifié le blog depuis mardi, pour ne plus utiliser de base de données, afin de ne pas pénaliser ceux qui n’ont pas SQL Server. Du coup tout est stocké en mémoire, et donc rien n’est sauvegardé. Mais en fait c’est pas grave, puisque l’utilisation de MVC permets de changer facilement la couche d’accès aux données avec un minimum d’impact sur le reste du site, vous pourrez donc si vous le souhaitez enregistrer vos données dans votre propre base de données, ou dans des fichiers xml. C’est pas beau la vie ? ;)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-8611506370018775634?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/04/bdc-2009-aspnet-mvc.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <guid isPermaLink="false">18</guid>
      <link>http://feedproxy.google.com/~r/PaslatekBlog/~3/D6D28lqVSy8/la-bdc-2009-cest-fini-20090424-18.aspx</link>
      <title>La BDC 2009 c'est fini !</title>
      <description>&lt;p&gt;Ça c'est fait ! L'évènement a été un succès. Près de 500 personnes sont venus nous voir au stade Ernest Wallon à Toulouse ! Pour ma part j'ai donné une session donc sur VSTO et MOSS devant une petite salle, mais salle comble (plus de 40 personnes à vue d'œil) et cela c'est très bien passé. Les slides et les démos seront bientôt disponibles sur le site de Bewise et je vous tiendrais au courant quand ils y seront. Malheureusement ma session n'a pas été filmé, donc il n'y aura pas de webcast...&lt;/p&gt; &lt;p&gt;Cette année avec Alexandre nous avions pris le parti de ne pas rentrer dans les détails technique et de rester à montrer les possibilités fonctionnelles de VSTO. Les détails techniques étant disponibles ensuite sur le stand. A priori cela à plutôt était bien perçu car le public était vraiment constitué autant de développeurs que d'admin réseaux ou de décideurs. &lt;/p&gt; &lt;p&gt;J'espère que ceux qui sont venus on apprécié la journée, nous on reste un peu sur les rotules, mais un bon repos ce week end et ça ira mieux ! :D &lt;/p&gt;</description>
      <pubDate>Fri, 24 Apr 2009 12:37:46 +0200</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-04-24T12:37:46+02:00</updated>
      <author>lionel limozin</author>
      <creator>lionel limozin</creator>
      <origLink xmlns="http://rssnamespace.org/feedburner/ext/1.0">http://www.paslatek.net/la-bdc-2009-cest-fini-20090424-18.aspx</origLink>
    </item>
    <item>
      <title><![CDATA[Customiser Visual Studio]]></title>
      <link>http://dotnet.over-blog.fr/article-30612096.html</link>
      <description><![CDATA[<p style="margin: 0cm 0cm 10pt;"> Il est possible de customiser Visual Studio en partant d’un fichier .vssettings qui contient la configuration des font/couleurs. Histoire de vous mettre l’eau à la bouche, voici le résultat final.<br> <a onclick="function onclick() { function onclick() { function onclick() { function onclick() { window.open(this.href); return false; } } } }" href= "http://idata.over-blog.com/2/36/82/82//screenshot-vs_thumb.png"><br> <img height="170" width="300" src="http://idata.over-blog.com/2/36/82/82//screenshot-vs_thumb.png" class="CtreTexte"><br></a> </p> <p style="margin: 0cm 0cm 10pt;"> Ce package a été mis à disposition par rob conery, il contient les fichiers de configuration[...]</br></br></br></p>]]></description>
      <pubDate>Fri, 24 Apr 2009 09:03:00 +0200</pubDate>
      <guid>http://dotnet.over-blog.fr/article-30612096.html</guid>
      <category>Visual Studio</category>
      <comments>http://dotnet.over-blog.fr/article-30612096-6.html#anchorComment</comments>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-8784565852130509881</guid>
      <pubDate>Thu, 23 Apr 2009 10:22:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-08-26T17:22:44.199+02:00</updated>
      <category domain="http://www.blogger.com/atom/ns#">JavaScript</category>
      <category domain="http://www.blogger.com/atom/ns#">Ajax</category>
      <category domain="http://www.blogger.com/atom/ns#">ASP.NET</category>
      <category domain="http://www.blogger.com/atom/ns#">BDC</category>
      <title>BDC 2009 – ASP.NET 4.0 - JavaScript</title>
      <description>&lt;p&gt;La BDC c’est fini pour cette année, toute l’équipe de Bewise a été heureuse de vous recevoir et vous donne d’ores et déjà rendez-vous l’année prochaine pour une quatrième édition !&lt;/p&gt;  &lt;p&gt;A titre personnel, j’ai été ravi de voir tant de monde interressé par le développement web, et les nouveautés d’ASP.net. Pour ceux qui sont interressés, voici tout ce dont vous avez besoin pour tester les prochaines nouveautés Ajax et Javascript d’ASP.NET&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Visual Studio 2008 SP1: pour ceux qui ne l’ont pas, vous pouvez télécharger gratuitement &lt;a href="http://www.microsoft.com/express/vwd/"&gt;Visual Web Developer Express&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://jquery.com/"&gt;jQuery&lt;/a&gt;, la librairie javascript open-source. &lt;/li&gt;    &lt;li&gt;Pour ceux qui désirent l’intellisense jQuery dans VS2008, il vous faudra installer &lt;a href="http://code.msdn.microsoft.com/KB958502/Release/ProjectReleases.aspx?ReleaseId=1736"&gt;le patch qui va bien&lt;/a&gt;, et télécharger le fichier –vsdoc.js disponible sur le site de jQuery (sur la page de téléchargement, lien “Documentation : Visual Studio”) &lt;/li&gt;    &lt;li&gt;La preview d’ASP.NET 4.0 Ajax, disponible sur &lt;a href="http://aspnet.codeplex.com/Wiki/View.aspx?title=AJAX"&gt;codeplex&lt;/a&gt;. Il s’agit de plusieurs fichiers JavaScript que vous pouvez utiliser directement dans vos projets. Attention, il s’agit encore d’une preview, non destinée à être utilisée en production. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Si vous n’avez pas envie de coder de suite, vous pouvez vous contenter de jeter un coup d’oeil au &lt;a href="http://bdc2009.adhess.net/JavaScript.zip"&gt;code source et aux slides de mes démos JavaScript&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;La première démo montre comment utiliser les client templates pour afficher une liste d’images dont les noms sont contenus dans un tableau javascript, et comment les déplacer avec la souris grâce à jQuery.    &lt;br /&gt;Non, vous ne rêvez pas, tout le code se trouve bien dans la page default.aspx (sauf le tableau en javascript qui se trouve dans un fichier js séparé, mais ça c’est pas vraiment du code ;)&lt;/p&gt;  &lt;p&gt;La seconde démo est à peine plus compliquée, puisqu’au lieu de stocker ma liste de cartes dans une variable javascript, elle m’est renvoyée par le serveur à l’aide d’une requête Ajax.&lt;/p&gt;  &lt;p&gt;Voilà, avec tout ça il y a déjà moyen de bien s’amuser !&lt;/p&gt;  &lt;p&gt;Je vous donne rendez-vous d’ici quelques jours sur ce même blog pour un post sur ASP.NET MVC, avec un résumé de ma présentation et le code source de ma démo.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-8784565852130509881?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/04/bdc-2009-aspnet-40-javascript.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total>
    </item>
    <item>
      <title>TechDays 2009 – Présentation générale SQL Server 2008</title>
      <link>http://blog.djeepy1.net/2009/04/12/techdays-2009-presentation-generale-sql-server-2008/</link>
      <comments>http://blog.djeepy1.net/2009/04/12/techdays-2009-presentation-generale-sql-server-2008/#comments</comments>
      <pubDate>Sun, 12 Apr 2009 09:37:00 +0000</pubDate>
      <creator xmlns="http://purl.org/dc/elements/1.1/">djeepy1</creator>
      <category><![CDATA[SQL Server]]></category>
      <guid isPermaLink="false">http://djeepy1.wordpress.com/2009/04/12/techdays-2009-presentation-generale-sql-server-2008/</guid>
      <description><![CDATA[La session que j&#8217;ai co-animée aux TechDays 2009 (avec Patrick Guimonnet et Christophe Laporte) est maintenant disponible en webcast.
Si vous n&#8217;avez pas pu venir ou si vous souahitez la revoir, suivez ce lien : http://www.microsoft.com/france/vision/mstechdays09/Webcast.aspx?eID=1b96e365-db8a-4339-91b6-c217c9a15423
Le sujet est simple : Présentation générale de SQL Server 2008. 
C&#8217;est une session Découverte (Level 100) donc je ne fais que survoler [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.djeepy1.net&blog=7511412&post=46&subd=djeepy1&ref=&feed=1" />]]></description>
      <encoded xmlns="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>La session que j&#8217;ai co-animée aux <span class="Apple-style-span" style="font-weight:bold;">TechDays 2009</span> (avec Patrick Guimonnet et Christophe Laporte) est maintenant disponible en webcast.</p>
<p>Si vous n&#8217;avez pas pu venir ou si vous souahitez la revoir, suivez ce lien : <a href="http://www.microsoft.com/france/vision/mstechdays09/Webcast.aspx?eID=1b96e365-db8a-4339-91b6-c217c9a15423">http://www.microsoft.com/france/vision/mstechdays09/Webcast.aspx?eID=1b96e365-db8a-4339-91b6-c217c9a15423</a></p>
<p>Le sujet est simple : <span class="Apple-style-span" style="text-decoration:underline;">Présentation générale de SQL Server 2008</span>. </p>
<p>C&#8217;est une session <span class="Apple-style-span" style="font-weight:bold;">Découverte</span> (Level 100) donc je ne fais que survoler les fonctionnalités de la nouvelle version, ce qui est déjà difficile en 1h. Cette session a été aussi le lieu pour le témoignage client de <span class="Apple-style-span" style="font-weight:bold;">Christophe Laporte</span>, DBA d&#8217;Index Multimédia qui est venu faire un retour sur la <span class="Apple-style-span" style="font-weight:bold;">migration</span> qu&#8217;il a opéré et les <span class="Apple-style-span" style="font-weight:bold;">gains</span> apportés par la nouvelle version de la base de données.   </p>
<br />Publié dans SQL Server  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/djeepy1.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/djeepy1.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/djeepy1.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/djeepy1.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/djeepy1.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/djeepy1.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/djeepy1.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/djeepy1.wordpress.com/46/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/djeepy1.wordpress.com/46/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/djeepy1.wordpress.com/46/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.djeepy1.net&blog=7511412&post=46&subd=djeepy1&ref=&feed=1" />]]></encoded>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blog.djeepy1.net/2009/04/12/techdays-2009-presentation-generale-sql-server-2008/feed/</commentRss>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <content url="http://1.gravatar.com/avatar/d5bd484f181f5352c2e531cb5cc78aef?s=96&amp;d=http%3A%2F%2Fa.wordpress.com%2Fi%2Fmu.gif&amp;r=G" medium="image" xmlns="http://search.yahoo.com/mrss/">
        <title type="html">djeepy1</title>
      </content>
    </item>
    <item>
      <title>SQL Server 2008 Service Pack 1</title>
      <link>http://blog.djeepy1.net/2009/04/12/sql-server-2008-service-pack-1/</link>
      <comments>http://blog.djeepy1.net/2009/04/12/sql-server-2008-service-pack-1/#comments</comments>
      <pubDate>Sun, 12 Apr 2009 09:10:00 +0000</pubDate>
      <creator xmlns="http://purl.org/dc/elements/1.1/">djeepy1</creator>
      <category><![CDATA[SQL Server]]></category>
      <guid isPermaLink="false">http://djeepy1.wordpress.com/2009/04/12/sql-server-2008-service-pack-1/</guid>
      <description><![CDATA[Le SP1 de SQL Server 2008 est disponible. En anglais et en Français (ainsi que d&#8217;auters langues évidemment). 
http://www.microsoft.com/downloads/details.aspx?displaylang=en&#38;FamilyID=66ab3dbb-bf3e-4f46-9559-ccc6a4f9dc19
Les habituels frileux des nouvelles versions n&#8217;auront plus d&#8217;excuse pour passer à SQL Server 2008.
Qu&#8217;apporte ce Service Pack :

Des corrections de bugs évidemment (d&#8217;où l&#8217;importance de remonter les infos sur Connect) &#8211; je ne pense pas avoir [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.djeepy1.net&blog=7511412&post=47&subd=djeepy1&ref=&feed=1" />]]></description>
      <encoded xmlns="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Le <span class="Apple-style-span" style="font-weight:bold;">SP1</span> de <span class="Apple-style-span" style="font-weight:bold;">SQL Server 2008</span> est disponible. En anglais et en Français (ainsi que d&#8217;auters langues évidemment). </p>
<p><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=66ab3dbb-bf3e-4f46-9559-ccc6a4f9dc19">http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=66ab3dbb-bf3e-4f46-9559-ccc6a4f9dc19</a></p>
<p>Les habituels frileux des nouvelles versions n&#8217;auront plus d&#8217;excuse pour passer à SQL Server 2008.</p>
<p>Qu&#8217;apporte ce Service Pack :</p>
<ul>
<li>Des corrections de bugs évidemment (d&#8217;où l&#8217;importance de remonter les infos sur <a href="https://connect.microsoft.com" target="_blank">Connect</a>) &#8211; je ne pense pas avoir le temps de vous en détailler&#8230;</li>
<li><span class="Apple-style-span" style="font-weight:bold;">Report Builder 2.0</span> en mode click-once (je sais que du monde l&#8217;attendait <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )</li>
<li>La possibilité d&#8217;inclure le SP1 dans une installation de base ce qui permet d&#8217;installer SQL Server 2008 ET le SP1 en une fois (accélération des migrations sur des environnements de production) &#8211; cette fonctionnalité s&#8217;appelle <span class="Apple-style-span" style="font-weight:bold;">Splistream</span></li>
</ul>
<p> </p>
<p>PS : Je ne suis pas très attentif et assidu ces derniers temps en partie à cause d&#8217;une BDC 2009 à préparer, d&#8217;un projet de Business Intelligence en cours et d&#8217;autres raisons qu&#8217;il est prématuré d&#8217;annoncer. Je m&#8217;en excuse dans ce billet. D&#8217;autant plus que j&#8217;ai des milliers de sujets dans les cartons&#8230;</p>
<br />Publié dans SQL Server  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/djeepy1.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/djeepy1.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/djeepy1.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/djeepy1.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/djeepy1.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/djeepy1.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/djeepy1.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/djeepy1.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/djeepy1.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/djeepy1.wordpress.com/47/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.djeepy1.net&blog=7511412&post=47&subd=djeepy1&ref=&feed=1" />]]></encoded>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blog.djeepy1.net/2009/04/12/sql-server-2008-service-pack-1/feed/</commentRss>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <content url="http://1.gravatar.com/avatar/d5bd484f181f5352c2e531cb5cc78aef?s=96&amp;d=http%3A%2F%2Fa.wordpress.com%2Fi%2Fmu.gif&amp;r=G" medium="image" xmlns="http://search.yahoo.com/mrss/">
        <title type="html">djeepy1</title>
      </content>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-4645950562657827676</guid>
      <pubDate>Fri, 10 Apr 2009 14:15:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-04-10T16:15:36.273+02:00</updated>
      <category domain="http://www.blogger.com/atom/ns#">BDC</category>
      <category domain="http://www.blogger.com/atom/ns#">Bewise</category>
      <title>Bewise Day Conference 2009</title>
      <description>&lt;p&gt;Pour la 3ème année consécutive, Bewise revient vous présenter les dernières technologies Microsoft à la BDC, qui cette année ne s’adresse pas uniquement aux développeurs mais à tous les professionnels de l’informatique, avec des sessions développement et des sessions IT.&lt;/p&gt;  &lt;p&gt;Je serai présent pour vous présenter les nouveautés prévues pour le prochain ASP.NET 4.0    &lt;br /&gt;Au programme : Ajax, JQuery, MVC et WebForms, ainsi que toute question qui vous passe par la tête, à l’espace de démonstration “Boostez vos sites avec ASP.NET 4.0”&lt;/p&gt;  &lt;p align="center"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="LogoASPNET" border="0" alt="LogoASPNET" src="http://lh6.ggpht.com/_1fIQLbpqRAw/Sd9Uh56bgfI/AAAAAAAABgc/CmWn6kxQH-8/LogoASPNET%5B7%5D.jpg?imgmax=800" width="240" height="46" /&gt;&lt;/p&gt;  &lt;p&gt;Lors de la dernière BDC, j’ai vu dans les yeux émerveillés de quelques étudiants l’envie, que dis-je, une volonté féroce de travailler à Bewise (et comme je les comprend !), je leur dédie donc cette vidéo, où vous pourrez découvrir la dure vie d’un développeur chez Bewise.&lt;/p&gt; &lt;iframe style="width: 500px; height: 375px" src="http://silverlight.services.live.com/invoke/58450/Bewise%20-%20BDC%202009%20-%20Un%20peu%20de%20fun%20dans%20un%20monde%20de%20brutes/iframe.html" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;p&gt;Découvrez d’autres vidéos sur les coulisses de l’évènement, et venez vous y inscrire, sur le site officiel : &lt;a href="http://bdc2009.bewise.fr?f=A56BC4FC-9B40-4e60-A8D5-B188D54819BC"&gt;http://bdc2009.bewise.fr&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-4645950562657827676?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/04/bewise-day-conference-2009.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-2661757067011288732.post-5439610032705110605</guid>
      <pubDate>Thu, 09 Apr 2009 13:41:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-04-09T06:55:22.035-07:00</updated>
      <title>Bewise Day Conference 2009</title>
      <description>Evenement Bewise Sud Ouest !&lt;br /&gt;&lt;p&gt;Les innovations technologiques Microsoft pour les développeurs et les IT pro présentées par les meilleurs experts de Bewise et Microsoft ! Evénement gratuit destiné aux professionnels du développement et de l'IT, aux enseignants et étudiants, venez découvrir:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;2 Sessions Plénières &lt;/li&gt;&lt;li&gt;8 Sessions Dédiées IT Pro et Développeurs &lt;/li&gt;&lt;li&gt;25 Espaces de démonstration &lt;/li&gt;&lt;li&gt;40 Experts Bewise &amp;amp; Microsoft &lt;/li&gt;&lt;/ul&gt;&lt;p align="center"&gt;Inscrivez-vous vite ! &lt;/p&gt;&lt;p align="center"&gt;&gt;&gt; &lt;a href="http://bdc2009.bewise.fr/inscription.aspx"&gt;S'inscrire&lt;/a&gt; &lt;&lt;&lt;/p&gt;&lt;a href="http://bdc2009.bewise.fr/"&gt;&lt;img id="BLOGGER_PHOTO_ID_5322687382350423090" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 109px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_oumjLG2Z2ck/Sd37-TNzZDI/AAAAAAAAJFc/zJ4PgPPA_qU/s320/BDC2009.png" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2661757067011288732-5439610032705110605?l=becauseofintellisense.blogspot.com' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://becauseofintellisense.blogspot.com/2009/04/bewise-day-conference-2009.html</link>
      <author>nicolas.bruschini@bewise.fr (Rouge)</author>
      <media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_oumjLG2Z2ck/Sd37-TNzZDI/AAAAAAAAJFc/zJ4PgPPA_qU/s72-c/BDC2009.png" height="72" width="72" />
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-2661757067011288732.post-2142137782418255383</guid>
      <pubDate>Fri, 03 Apr 2009 16:04:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-04-03T09:36:14.314-07:00</updated>
      <title>Ajax History - Server Side</title>
      <description>&lt;p class="MsoNormal"&gt;Vous utilisez des update panels pour améliorer les temps de réponses de votre site, mais vous vous rendez compte que les fonctions « page suivante » et « page précédente » de votre navigateur ne prennent pas en compte l’historique de votre navigation ? &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;Ajax permet pourtant de gérer cet historique de navigation. Néanmoins il vous faut gérer cet historique « à la main ». C'est-à-dire qu’à chaque évenement modifiant l’état de votre page, vous devez sauvegarder les valeurs des variables vous permettant de restituer le même état de navigation, ultérieurement. &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;Pour cela plusieurs étapes :&lt;/p&gt;&lt;ol&gt;&lt;li class="MsoNormal"&gt;Activer l’historique de navigation dans votre contrôle ScriptManager et s’abonner à l’évènement « OnNavigate »:&lt;?xml:namespace prefix = asp /&gt;&lt;asp:scriptmanager color="#ff0000"&gt;ID&lt;/span&gt;&lt;span style="color:#3366ff;"&gt;="ScriptManager1"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;EnableHistory&lt;/span&gt;&lt;span style="color:#3366ff;"&gt;="true"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;OnNavigate&lt;/span&gt;&lt;span style="color:#3366ff;"&gt;="ScriptManager1_Navigate"&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;runat&lt;/span&gt;&lt;span style="color:#3366ff;"&gt;="server"&lt;/span&gt; /&gt;&lt;br /&gt;Sauvegarder vos valeurs grâce à la méthode « AddHistoryPoint » du contrôle « ScriptManager ».&lt;br /&gt;Ex : if (!&lt;span style="color:#3366ff;"&gt;ScriptManager1&lt;/span&gt;.IsNavigating &amp;amp;&amp;amp; IsPostBack)&lt;br /&gt;{&lt;br /&gt;ScriptManager1.AddHistoryPoint(“Var1”, &lt;span style="color:#3366ff;"&gt;MaVariable&lt;/span&gt;.ToString());&lt;br /&gt;}&lt;/li&gt;&lt;li class="MsoNormal"&gt;Cette méthode prend des couples Key/Value. Ces ensembles Key/Value sont stockés dans l’URL. Ces valeurs peuvent être sécurisées grâce à l’attribut « &lt;span style="color:#ff0000;"&gt;EnableSecureHistoryState&lt;/span&gt; » du contrôle « ScriptManager ». Si ca valeur est à « True », les paires Key/Value seront chiffrées, sinon elles seront affichées en clair dans l’URL.&lt;/li&gt;&lt;li class="MsoNormal"&gt;Déclarer et implémenter la méthode « void ScriptManager1_Navigate(object sender, HistoryEventArgs e) » :&lt;br /&gt;void ScriptManager1_Navigate(object sender, HistoryEventArgs e)&lt;br /&gt;{&lt;br /&gt;&lt;span style="color:#3366ff;"&gt;MaVariable&lt;/span&gt; = e.State[“Var1”] ;&lt;br /&gt;}&lt;br /&gt;Cette méthode permet de recharger l’état de votre page. Cette méthode est déclenchée automatiquement lorsque le ScriptManager détecte des éléments dans l’url.&lt;/li&gt;&lt;/ol&gt;&lt;p class="MsoNormal"&gt;Ce mécanisme de gestion de la navigation côté serveur est également possible côté client.&lt;/p&gt;&lt;br /&gt;&lt;/asp:scriptmanager&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2661757067011288732-2142137782418255383?l=becauseofintellisense.blogspot.com' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://becauseofintellisense.blogspot.com/2009/04/ajax-history-server-side.html</link>
      <author>nicolas.bruschini@bewise.fr (Rouge)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <title><![CDATA[Mise en cache de Page / User control]]></title>
      <link>http://dotnet.over-blog.fr/article-29824573.html</link>
      <description><![CDATA[<p style="margin: 0cm 0cm 10pt;"> <span style="font-family: arial,helvetica,sans-serif;"><span style="font-size: 10pt;"><span style="color: #000000;">OutputCache permet de mettre en cache une page ou juste un user control. Cette instruction est typiquement utilisée pour le menu de votre site web. Il suffit de rajouter la ligne suivante dans l’entête.</span></span></span> </p> <p style= "line-height: normal; margin: 0cm 0cm 0pt; background: white; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"> <span style="font-family: "Courier New"; color: blue; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: FR; mso-ansi-language: EN;" lang= "EN"><</span><span style="font-family: "Courier New"; color: maroon; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: FR; mso-ansi-language: EN;" lang="EN">%@ OutputCache</span> <span style= "font-family: "Courier New"; color: red; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: FR; mso-ansi-language: EN;" lang= "EN">Duration</span><span style="font-family: "Courier New"; color: blue; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: FR; mso-ansi-language: EN;" lang="EN">="120"</span> <span style= "font-family: "Courier New"; color: red; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: FR; mso-ansi-language: EN;" lang= "EN">VaryByParam</span><span style= "font-family: "Courier New"; color: blue; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: FR; mso-ansi-language: EN;" lang="EN">="none"</span> <span style="font-family: "Courier New"; color: red; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: FR; mso-ansi-language: EN;" lang= "EN">%</span><span style="font-family: "Courier New"; color: blue; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: FR; mso-ansi-language: EN;" lang= "EN">></span> </p> <p style= "line-height: normal; margin: 0cm 0cm 0pt; background: white; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;"> <span style="font-family: "Courier New"; color: black; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-fareast-language: FR; mso-ansi-language: EN;" lang= "EN"> </span> </p> <p style="margin: 0cm 0cm 10pt;"> <span style="font-family: arial,helvetica,sans-serif;"><span style="font-size: 10pt;"><span style="color: #000000;">Mais que se passe t’il si votre[...]</span></span></span></p>]]></description>
      <pubDate>Fri, 03 Apr 2009 15:30:00 +0200</pubDate>
      <guid>http://dotnet.over-blog.fr/article-29824573.html</guid>
      <category>ASP.NET</category>
      <comments>http://dotnet.over-blog.fr/article-29824573-6.html#anchorComment</comments>
    </item>
    <item>
      <title><![CDATA[Bewise Day Conference 2009]]></title>
      <link>http://dotnet.over-blog.fr/article-29782511.html</link>
      <description><![CDATA[<p> <span style="font-family: arial,helvetica,sans-serif;"><span style="font-size: 10pt;"><span style="color: #000000;">Les innovations technologiques Microsoft pour les développeurs et les IT pro présentées par les meilleurs experts de Bewise et Microsoft !<br> Evénement gratuit destiné aux professionnels du développement et de l'IT, aux enseignants et étudiants, venez découvrir:<br></span><br></span></span> </p> <ul> <li> <span style="font-family: arial,helvetica,sans-serif;"><span style="font-size: 10pt;"><span style="color: #000000;">2 Sessions Plénières</span></span></span> </li> <li> <span style="font-family: arial,helvetica,sans-serif;"><span style="font-size: 10pt;"><span style="color: #000000;">8[...]</li></ul></br></br></br></span></span></span>]]></description>
      <pubDate>Thu, 02 Apr 2009 14:17:00 +0200</pubDate>
      <guid>http://dotnet.over-blog.fr/article-29782511.html</guid>
      <category>NEWS</category>
      <comments>http://dotnet.over-blog.fr/article-29782511-6.html#anchorComment</comments>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-2661757067011288732.post-3017273873864909548</guid>
      <pubDate>Wed, 01 Apr 2009 18:02:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-04-02T02:15:10.780-07:00</updated>
      <title>OBA - Office Business Application</title>
      <description>Evènement Bewise Sud Est !&lt;br /&gt;&lt;br /&gt;Le Mercredi 08 Avril, Bewise Sud Est organise un évènement autour d'Office Business Application et VSTO:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Quelles utilisations ?&lt;/li&gt;&lt;li&gt;Quelle utilité ?&lt;/li&gt;&lt;li&gt;Avec quels outils ?&lt;/li&gt;&lt;li&gt;A partir de quel existant ?&lt;/li&gt;&lt;li&gt;Quels sont les gains envisageables pour moi ou mon entité ?&lt;/li&gt;&lt;li&gt;Avantages&lt;/li&gt;&lt;li&gt;Inconvénients&lt;/li&gt;&lt;/ul&gt;Inscriptions : &lt;a href="http://bse.bewise.fr/EvenementOBA"&gt;http://bse.bewise.fr/EvenementOBA&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Profitez en, si ce sujet vous interesse... Bewise Sud Est présentera également un projet récent autour de ces technologies.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bse.bewise.fr/EvenementOBA"&gt;&lt;img id="BLOGGER_PHOTO_ID_5319787158449477938" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 109px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_oumjLG2Z2ck/SdOuPDQQ2TI/AAAAAAAAI-k/f7EAezXDNL4/s320/image003.jpg" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2661757067011288732-3017273873864909548?l=becauseofintellisense.blogspot.com' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://becauseofintellisense.blogspot.com/2009/04/oba-office-business-application.html</link>
      <author>nicolas.bruschini@bewise.fr (Rouge)</author>
      <media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_oumjLG2Z2ck/SdOuPDQQ2TI/AAAAAAAAI-k/f7EAezXDNL4/s72-c/image003.jpg" height="72" width="72" />
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-2661757067011288732.post-4201399843710991927</guid>
      <pubDate>Wed, 01 Apr 2009 13:00:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-04-01T06:03:37.076-07:00</updated>
      <title>C'est l'ouverture !</title>
      <description>Voici un nouveau blog, dans lequel, je l'espère, vous trouverez parfois quelques informations utiles pour vos développements autour des technologies Microsoft.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2661757067011288732-4201399843710991927?l=becauseofintellisense.blogspot.com' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://becauseofintellisense.blogspot.com/2009/04/cest-louverture.html</link>
      <author>nicolas.bruschini@bewise.fr (Rouge)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-4822490771065834796</guid>
      <pubDate>Mon, 23 Mar 2009 16:24:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2009-03-23T17:24:39.769+01:00</updated>
      <category domain="http://www.blogger.com/atom/ns#">JavaScript</category>
      <category domain="http://www.blogger.com/atom/ns#">HTML</category>
      <title>Un lien qui pointe vers… rien.</title>
      <description>&lt;p&gt;Aujourd’hui, un petit truc tout con, mais qu’il faut connaitre : comment créer un lien qui ne pointe vers rien ?&lt;/p&gt;  &lt;p&gt;En effet, lorsqu’on utilise javascript, on utilise très souvent des liens qui ne renvoient pas vers une autre page, mais comment écrire ces liens ?&lt;/p&gt;  &lt;p&gt;On voit très souvent, dans ces cas là, un lien qui pointe vers “#”. Ce type de lien ne me convient pas, car lorsqu’on clique dessus on est ramené au début de la page. En effet, le # permets de faire des liens vers des ancres dans la page, le # sans nom représente pour le navigateur le début de la page.&lt;/p&gt;  &lt;p&gt;Pour faire un lien qui ne va pas déplacer l’utilisateur dans la page, je vous propose deux solutions :&lt;/p&gt;  &lt;p&gt;- le lien sans href : on crée notre balise a, on mets nos évènement javascript si on en a besoin, mais on ne mets pas de href. Ainsi, on n’a pas de lien, et donc pas de déplacement dans la page. Par contre, le texte ne s’affichera pas comme un lien dans le navigateur client : couleur par défaut, pas de soulignement, et curseur par défaut. Il faut donc penser à bien afficher notre lien correctement à l’aide de CSS (vous pouvez notamment utiliser cursor: pointer; pour changer le curseur).&lt;/p&gt;  &lt;p&gt;- le lien javascript : il suffit de faire un lien de la manière suivante : &amp;lt;a href=&amp;quot;javascript:void(0)&amp;quot;&amp;gt;   &lt;br /&gt;La différence avec la méthode précédente : cette fois notre lien apparait vraiment comme un lien, pas besoin de faire un css spécifique si on veut qu’il s’affiche comme les autres. Mis à part l’affichage, le comportement sera exactement le même : ils ne font rien.&lt;/p&gt;  &lt;p&gt;Ainsi, vous pouvez placer du javascript dans vos balises a sans que vos utilisateurs ne cassent tout en cliquant alors qu’il ne fallait pas.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-4822490771065834796?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2009/03/un-lien-qui-pointe-vers-rien.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <title><![CDATA[LINQ : Compiled Queries]]></title>
      <link>http://dotnet.over-blog.fr/article-29822074.html</link>
      <description><![CDATA[<p> <span style="color: #000000;"><span style="font-family: Times New Roman; font-size: 12pt;">Le processus d’exécution d’une requête LinqToSql est le suivant :</span></span> </p> <ul> <li> <span style="color: #000000;"><span style="font-family: Times New Roman; font-size: 12pt;">Linq syntaxe <span style="mso-spacerun: yes;"> </span>=> Expression Tree => SQL</span></span> </li> </ul> <p> <span style="font-family: Times New Roman; font-size: 12pt;"><span style="color: #000000;">L’utilisation d’une compiled query permet de reprendre l’exécution d’une requête au niveau de l’expression Tree en cas d’exécution multiple afin d’accélérer le temps de réponse.<br></span></span> </p> <p> <span style="font-family: Times New Roman; font-size: 12pt;"><br>[...]</br></br></span></p>]]></description>
      <pubDate>Sun, 22 Mar 2009 14:25:00 +0100</pubDate>
      <guid>http://dotnet.over-blog.fr/article-29822074.html</guid>
      <category>LINQ</category>
      <comments>http://dotnet.over-blog.fr/article-29822074-6.html#anchorComment</comments>
    </item>
    <item>
      <title>[WPF] Afficher l'utilisation CPU à l'aide d'une jauge</title>
      <link>http://blogs.developpeur.org/vko/archive/2009/03/18/wpf-afficher-l-utilisation-cpu-l-aide-d-une-jauge.aspx</link>
      <pubDate>Wed, 18 Mar 2009 21:34:00 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:44390</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Vko</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <comments>http://blogs.developpeur.org/vko/comments/44390.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/vko/commentrss.aspx?PostID=44390</commentRss>
      <description>
  
     
       Voici une des démonstrations que j'avais présenté à la BDC 2008 afin de démystifier Blend. L'objectif était de transformer une barre de progression en jauge, tout ça en 10 minutes.  Pour réaliser cette démonstration, j'ai "simplement" ...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=44390" width="1" height="1"&gt;</description>
    </item>
    <item>
      <title>[WPF] HyperLink + Document + Copier/Coller = NotSupportedException</title>
      <link>http://blogs.developpeur.org/vko/archive/2009/03/10/wpf-hyperlink-document-copier-coller-notsupportedexception.aspx</link>
      <pubDate>Tue, 10 Mar 2009 20:11:00 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:44269</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Vko</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <comments>http://blogs.developpeur.org/vko/comments/44269.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/vko/commentrss.aspx?PostID=44269</commentRss>
      <description>
  La classe FlowDocument vous permet d'afficher n'importe quel type de contenu : texte, image, lien hypertexte, etc., extrêmement pratique ! Toutefois, elle présente un léger problème lorsqu'on utilise un HyperLink.
Exemple : le code ci-dessous permet ...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=44269" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/vko/archive/tags/WPF/default.aspx">WPF</category>
    </item>
    <item>
      <title>Performances avec WCF</title>
      <link>http://blogs.developpeur.org/vko/archive/2009/03/06/performances-avec-wcf.aspx</link>
      <pubDate>Fri, 06 Mar 2009 09:36:00 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:44205</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Vko</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">2</comments>
      <comments>http://blogs.developpeur.org/vko/comments/44205.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/vko/commentrss.aspx?PostID=44205</commentRss>
      <description>
  Si comme beaucoup de gens vous vous posez encore la question "WCF est-il plus performant que Remoting (ou WSE) ?" - oui il y a des gens qui se posent encore la question - je vous conseille d'aller voir ce petit comparatif de l'MSDN :
http://msdn.micr...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=44205" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/vko/archive/tags/WCF/default.aspx">WCF</category>
    </item>
    <item>
      <title><![CDATA[Transformations massives avec List(T).ConvertAll(TOutput)]]></title>
      <link>http://dotnet.over-blog.fr/article-29820646.html</link>
      <description><![CDATA[<p style="margin: 0cm 0cm 10pt;"> <span style="color: #000000;"><span style="font-family: Calibri; font-size: 12pt;">Une des nouveautés du Framework 3.5 est la méthode d'extention ContertAll.</span> <span style= "font-size: 12pt;"><span style="font-family: Calibri;">Cette méthode permet <span style="mso-spacerun: yes;"> </span>de convertir chaque élément de la liste d’origine dans un nouveau type de sortie. Le binding est précisé dans une méthode anonyme qui retourne l’instance du nouveau type. Voici un exemple utilisant[...]</span></span></span></p>]]></description>
      <pubDate>Tue, 03 Mar 2009 13:43:00 +0100</pubDate>
      <guid>http://dotnet.over-blog.fr/article-29820646.html</guid>
      <category>C#</category>
      <comments>http://dotnet.over-blog.fr/article-29820646-6.html#anchorComment</comments>
    </item>
    <item>
      <title>Comment faire un screenshoot d'un contrôle WPF ?</title>
      <link>http://blogs.developpeur.org/vko/archive/2009/02/25/comment-faire-un-screenshoot-d-un-contr-le-wpf.aspx</link>
      <pubDate>Wed, 25 Feb 2009 18:20:00 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:44131</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Vko</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">2</comments>
      <comments>http://blogs.developpeur.org/vko/comments/44131.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/vko/commentrss.aspx?PostID=44131</commentRss>
      <description>
  Rien de plus simple en WPF, je pense que le code ci-dessous se passe de commentaire :

   1: private void Screenshoot(FrameworkElement element, String filename)   2: {   3:     RenderTargetBitmap targetBitmap = new RenderTargetBitmap((int)element.Ac...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=44131" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/vko/archive/tags/WPF/default.aspx">WPF</category>
    </item>
    <item>
      <title><![CDATA[Masquer le "InformationPanel" sous Word / Excel avec VSTO]]></title>
      <link>http://vsto-sps.over-blog.com/article-27687753.html</link>
      <description><![CDATA[<p> Bonjour à tous,<br> Un petit tips rapide afin de masquer le " InformationPanel " sur Excel ou Word (c'est la même chose).<br> Ce panel est visible lorsque vous deployez votre addin sur un site SharePoint. Celui-ci affiche l'ensemble des ContentProperties (SharePoint) associés au document... <br> <br> Le[...]</br></br></br></br></p>]]></description>
      <pubDate>Sun, 08 Feb 2009 14:02:00 +0100</pubDate>
      <guid>http://vsto-sps.over-blog.com/article-27687753.html</guid>
      <category>Visual Studio Tool For Office</category>
      <comments>http://vsto-sps.over-blog.com/article-27687753-6.html#anchorComment</comments>
    </item>
    <item>
      <title><![CDATA[Connaitre l’état d’un service d’une machine distante]]></title>
      <link>http://dotnet.over-blog.fr/article-29815842.html</link>
      <description><![CDATA[<p style="MARGIN: 0cm 0cm 10pt"> <span style="font-size: 12pt;"><span style="font-family: Calibri;"><span style="font-family: arial,helvetica,sans-serif;"><span style="font-size: 10pt;"><span style="color: #000000;"><span style= "mso-fareast-language: FR;">Vous avez besoin de savoir si un service spécifique est démarré sur une machine distante ?, le</span> namespace « Win32_Service » de WMI est là pour ca.</span></span></span><br> <br></span></span> </p> <address class="contenuArticle"></address> <div style= "padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; background: #e5dfec; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: accent4; mso-background-themetint: 51; border: windowtext 1pt solid;"> <p style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"> <span style="FONT-FAMILY: arial black, avant garde"><span style="FONT-FAMILY: 'Courier New'; COLOR: #2b91af; FONT-SIZE: 10pt; mso-no-proof: yes">ConnectionOptions</span> <span style= "font-family: 'Courier New'; font-size: 10pt; mso-no-proof: yes;"><span style="color: #000000;">aConnectionOptions =</span> <span style="COLOR: blue">new</span> <span style= "color: #2b91af;">ConnectionOptions</span><span style="color: #000000;">();</span></span></span> </p> <p style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"> <span style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-no-proof: yes"><span style="color: #000000;">aConnectionOptions.Username = domain +</span> <span style="COLOR: #a31515">"\\"</span> <span style="color: #000000;">+ login;</span></span> </p> <p style="LINE-HEIGHT: normal; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none">[...]</div></br></br></p>]]></description>
      <pubDate>Tue, 03 Feb 2009 11:12:00 +0100</pubDate>
      <guid>http://dotnet.over-blog.fr/article-29815842.html</guid>
      <category>WMI</category>
      <comments>http://dotnet.over-blog.fr/article-29815842-6.html#anchorComment</comments>
    </item>
    <item>
      <title><![CDATA[Le club Microsoft en PACA !]]></title>
      <link>http://dotnet.over-blog.fr/article-29815415.html</link>
      <description><![CDATA[<p style="line-height: normal; margin: 0cm 0cm 0pt;"> <span style= "font-family: "Verdana","sans-serif"; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: FR;">Rejoignez nous au club MS Provence :</span> </p> <p style="line-height: normal; margin: 0cm 0cm 0pt;"> <span style= "font-family: "Verdana","sans-serif"; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: FR;"> </span> </p> <p style="line-height: normal; margin: 0cm 0cm 0pt;"> <span style= "font-family: "Verdana","sans-serif"; font-size: 10pt; mso-fareast-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: FR;">« Face à l'intérêt toujours grandissant pour les technologies Microsoft dans notre région PACA et suite au constat du manque de lieu d'échange et de partage d'information à destination des passionnés et des utilisateurs de ces technologies, nous avons[...]</span></p>]]></description>
      <pubDate>Tue, 03 Feb 2009 11:04:00 +0100</pubDate>
      <guid>http://dotnet.over-blog.fr/article-29815415.html</guid>
      <category>NEWS</category>
      <comments>http://dotnet.over-blog.fr/article-29815415-6.html#anchorComment</comments>
    </item>
    <item>
      <title><![CDATA[Linq To SharePoint]]></title>
      <link>http://vsto-sps.over-blog.com/article-27402198.html</link>
      <description><![CDATA[<span style="font-size: 10pt;">Marre du CAML ?<br> Vous pouvez utiliser le Linq afin de requêter les listes SharePoint.<br> .</span><span style="font-size: 10pt;"> </span> <p> <span style="font-size: 10pt; color: #008000;"><span style="font-size: 10pt; color: #008000;"><span style="color: #000000;"><span style="text-decoration: underline;">Exemple Requête Linq sur une liste SharePoint:<br></span>La requete ci-dessous remontera les items selon le ContentType et 2 autres conditions.<br></span></span></span> </p> <p> <span style="font-size: 10pt;"> </span> </p> <p> <span style="font-size: 8pt;"><span style="color: #2b91af;"><span style="color: #2b91af;">SPList</span></span> selectedList =[...]</br></br></p></br></br></span>]]></description>
      <pubDate>Sat, 31 Jan 2009 23:49:00 +0100</pubDate>
      <guid>http://vsto-sps.over-blog.com/article-27402198.html</guid>
      <category>SharePoint 2007</category>
      <comments>http://vsto-sps.over-blog.com/article-27402198-6.html#anchorComment</comments>
    </item>
    <item>
      <title><![CDATA[Un nouveau blog vient de naître...]]></title>
      <link>http://vsto-sps.over-blog.com/article-27401120.html</link>
      <description><![CDATA[<div class="contenuArticle"> <p> Bonjour à tous,<br> Un nouveau blog vient de naître... L'objectif de ce blog est de partager les différentes expériences que j'ai eu concernant les technologies SharePoint et VSTO.... J'espère que celui-ci pourra vous donner des axes de recherches concrets lors des différents travaux que vous[...]</br></p></div>]]></description>
      <pubDate>Sat, 31 Jan 2009 23:04:00 +0100</pubDate>
      <guid>http://vsto-sps.over-blog.com/article-27401120.html</guid>
      <category>Divers</category>
      <comments>http://vsto-sps.over-blog.com/article-27401120-6.html#anchorComment</comments>
    </item>
    <item>
      <title>[WPF] – Accéder à la boucle de rendu en WPF !</title>
      <link>http://blogs.developpeur.org/musashi/archive/2009/01/27/wpf-acc-der-la-boucle-de-rendu-en-wpf.aspx</link>
      <pubDate>Tue, 27 Jan 2009 21:03:10 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:43647</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">musashi</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <comments>http://blogs.developpeur.org/musashi/comments/43647.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/musashi/commentrss.aspx?PostID=43647</commentRss>
      <description>
  
    
      
       Un petit post rapide pour répondre à une question que l’on me pose souvent concernant WPF. Peut-on, comme en DirectX, accéder à la boucle de rendu qui par défaut est masquée ?  Pour être claire on accède pas directement à la bou...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=43647" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/musashi/archive/tags/WPF/default.aspx">WPF</category>
    </item>
    <item>
      <title><![CDATA[AccountManagement (Framework 3.5) - The directory service can perform the requested operation only on a leaf object]]></title>
      <link>http://dotnet.over-blog.fr/article-27232610.html</link>
      <description><![CDATA[<div class="divTitreArticle"> <address> <span style="font-family: arial,helvetica,sans-serif;"><span class="hitperso1" style="font-size: 10pt;">Le code suivant peut parfois renvoyer une exception.<br></span></span><br> </address> </div> <address class="contenuArticle"></address> <div style= "padding-right: 4pt; padding-left: 4pt; background: #e5dfec; padding-bottom: 1pt; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: accent4; mso-background-themetint: 51; border: windowtext 1pt solid;"> <span style="font-family: arial black,avant garde;"><span style="font-size: 10pt;"><span style="font-family: tahoma,arial,helvetica,sans-serif;"><span style="color: #2b91af;"><span style= "color: #2b91af;">ComputerPrincipal</span></span> <span style="color: #000000;">computer =</span> <span style="color: #2b91af;"><span style= "color: #2b91af;">ComputerPrincipal</span></span><span style="color: #000000;">.FindByIdentity(domainContext,</span> <span style="color: #2b91af;"><span style= "color: #2b91af;">IdentityType</span></span></span></span></span><span style="font-size: 10pt;"><span style="color: #000000;"><span style="font-family: tahoma,arial,helvetica,sans-serif;">.Name, computerName);<br> <br></span></span></span> <address> <span style="font-family: arial black,avant garde;"><span style="font-size: 10pt;"><span style="font-family: tahoma,arial,helvetica,sans-serif;"><span style= "color: #000000;">computer.Delete();</span></span></span></span> </address> </div> <p class="MsoNormal" style="margin: 0cm 0cm 10pt;"> <span style="font-size: 12pt; font-family: Calibri;"><br></span> </p> <address class="MsoNormal" style="margin: 0cm 0cm 10pt;"> <span style="mso-ansi-language: FR;">Après quelques recher<em style="mso-bidi-font-style: normal;">ches, il semble qu’une machine intégrée dans un domaine et tournant sous[...]</em></br></br></br></br></br></span></address>]]></description>
      <pubDate>Tue, 27 Jan 2009 14:28:00 +0100</pubDate>
      <guid>http://dotnet.over-blog.fr/article-27232610.html</guid>
      <category>C#</category>
      <comments>http://dotnet.over-blog.fr/article-27232610-6.html#anchorComment</comments>
    </item>
    <item>
      <title>Analyse des performances des Applications Windows MOBILE</title>
      <link>http://blogs.developpeur.org/musashi/archive/2009/01/25/analyse-des-performances-des-applications-windows-mobile.aspx</link>
      <pubDate>Sun, 25 Jan 2009 17:18:18 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:43618</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">musashi</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">1</comments>
      <comments>http://blogs.developpeur.org/musashi/comments/43618.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/musashi/commentrss.aspx?PostID=43618</commentRss>
      <description>
  Un petit post pour vous faire part d’un mini-tutoriel sur comment analyser les performances d’une application mobile Windows Mobile (basé sur Windows CE).  Vous trouverez, donc,  ci-dessous les outils disponibles pour l’analyse des performances sur un...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=43618" width="1" height="1"&gt;</description>
    </item>
    <item>
      <title>Support de plus de 3Go de RAM sous Vista 32 bits</title>
      <description>&lt;p&gt;Je viens tout juste d’installer Windows 7 (build 7000) sur ma machine. C’est vraiment un OS très prometteur qui risque bien de nous faire oublier les désagréments de Vista.&lt;/p&gt;  &lt;p&gt;Un truc qui m’a intrigué (parmi tant d’autres) est le support direct des 4Go de RAM de ma machine. &lt;/p&gt;  &lt;p&gt;Hélas, Visual Studio 2008 marche pour l’instant très mal sous Windows 7. &lt;/p&gt;  &lt;p&gt;Retour donc sous Vista.&lt;/p&gt;  &lt;p&gt;Cette histoire de 4Go m’a toutefois chiffonné. Sous Vista de base, mon système me donnait 3Go de dispo alors que sous Vista SP1 j’avais bien 4Go.&lt;/p&gt;  &lt;p&gt;Après une petite enquête il s’avère que Vista ne donne accès aux processus qu’à 3,12 Go (c’est précis) car il faut savoir que le matériel utilise un peu de la mémoire physique pour travailler (mapping de certains ressources comme la carte son, carte graphique, etc…).&lt;/p&gt;  &lt;p&gt;Heureusement, il existe une technique toute bête pour demander à Vista de ne plus se limiter à 3,x Go (avec un maximum a 4Go de toute manière).&lt;/p&gt;  &lt;p&gt;Il suffit pour cela de lancer une console en mode administrator et de taper la commande suivante:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;BCDEdit /set PAE forceenable&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Le mode PAE est un mode étendu des processeurs x86 qui permet d’avoir un adressage sur 36 bits (contre 32 normalement). Ceci permet donc théoriquement d’avoir 64Go de RAM. &lt;/p&gt;  &lt;p&gt;Toutefois sous Vista 32 bits cela permettra uniquement d’avoir droit à 4Go (dans l’absolu bien sûr) par processus.&lt;/p&gt;  &lt;p&gt;On pourrait alors se demander pourquoi Microsoft n’active pas par défaut ce mode? Tout simplement parce que finalement ca ne sert à rien. Le matériel va continuer à prendre sa place, donc on ne disposera finalement que de 3,x Go et la gestion de l’adressage en 36bits plutôt qu’en 32bits ralentit le système.&lt;/p&gt;</description>
      <link>http://www.catuhe.com/post/Support-de-plus-de-3Go-de-RAM-sous-Vista-32-bits.aspx</link>
      <author>kosh</author>
      <comments>http://www.catuhe.com/post/Support-de-plus-de-3Go-de-RAM-sous-Vista-32-bits.aspx#comment</comments>
      <guid>http://www.catuhe.com/post.aspx?id=36a67fec-d4b2-431f-b0f3-bf5961ef4add</guid>
      <pubDate>Sat, 10 Jan 2009 15:17:18 +0200</pubDate>
      <category>Win32</category>
      <category>Windows</category>
      <publisher xmlns="http://purl.org/dc/elements/1.1/">kosh</publisher>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/pingback.axd</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/post.aspx?id=36a67fec-d4b2-431f-b0f3-bf5961ef4add</target>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">5</comments>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://www.catuhe.com/trackback.axd?id=36a67fec-d4b2-431f-b0f3-bf5961ef4add</ping>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/post/Support-de-plus-de-3Go-de-RAM-sous-Vista-32-bits.aspx#comment</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/syndication.axd?post=36a67fec-d4b2-431f-b0f3-bf5961ef4add</commentRss>
    </item>
    <item>
      <title><![CDATA[Filtrer une collection d’objets fortement typée avec LINQ]]></title>
      <link>http://dotnet.over-blog.fr/article-29817215.html</link>
      <description><![CDATA[<p style="margin: 0cm 0cm 10pt;"> <span style="font-family: Calibri; font-size: 12pt;">LINQ permet grâce aux méthodes d’extensions combinées aux expressions anonymes d’effectuer des traitements métiers en une seule ligne de code.</span> </p> <p style="margin: 0cm 0cm 10pt;"> <span style="font-family: Calibri; font-size: 12pt;">L’exemple suivant permet de récupérer un sous ensemble de la collection d’article basé sur la propriété prix.<br> <br></span> </p> <address class="contenuArticle"></address> <div style= "padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; background: #e5dfec; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt; mso-background-themecolor: accent4; mso-background-themetint: 51; border: windowtext 1pt solid;"> <p> <span style="font-family: arial,helvetica,sans-serif;"><span style="color: #2b91af; font-size: 10pt;"><span style="color: #2b91af; font-size: 10pt;">List</span></span></span> <span style= "color: #000000; font-size: 10pt;"><</span><span style="color: #2b91af; font-size: 10pt;"><span style="color: #2b91af; font-size: 10pt;">Article</span></span><span style= "font-size: 10pt;"><span style="color: #000000;">> listArticle =[...]</div></br></br></span></span></p>]]></description>
      <pubDate>Sat, 03 Jan 2009 08:35:00 +0100</pubDate>
      <guid>http://dotnet.over-blog.fr/article-29817215.html</guid>
      <category>LINQ</category>
      <comments>http://dotnet.over-blog.fr/article-29817215-6.html#anchorComment</comments>
    </item>
    <item>
      <guid isPermaLink="false">tag:blogger.com,1999:blog-5619051591853320584.post-8374552071897258876</guid>
      <pubDate>Wed, 17 Dec 2008 18:44:00 +0000</pubDate>
      <updated xmlns="http://www.w3.org/2005/Atom">2008-12-17T19:51:24.754+01:00</updated>
      <title>Ouverture de Dotnet-France</title>
      <description>Un petit post pour parler de l'ouverture de Dotnet-France, un site web où vous pourrez réviser vos certifications gratuitement. Pour plus d'informations, je vous mets un copier-coller du communiqué de presse :&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;L’association Dotnet-France est fière de vous annoncer le lancement officiel de son site web accessible à l’adresse : http://www.dotnet-france.com. Ce lancement s’avère très important pour l’association puisqu’il scelle le travail de plusieurs mois pour chaque membre de l’équipe et le début de l’histoire Dotnet-France. &lt;br /&gt;&lt;br /&gt;En effet Dotnet-France ambitionne l’idée de devenir une des communautés les plus influentes auprès des étudiants et développeurs professionnels sur les technologies Microsoft. Et comme à Dotnet-France nous sommes convaincus de l’intérêt des certifications dans le parcours professionnel nous poursuivrons notre objectif en proposant le meilleur accompagnement possible dans le cursus certifiant. &lt;br /&gt;&lt;br /&gt;La première version du site propose donc un ensemble de fonctionnalités et contenus axés autour de l’auto-apprentissage des technologies de développement Microsoft. Entre autre nous pouvons citer : &lt;br /&gt;Des cours complets et gratuits pour chaque technologie (la liste des technologies ne cessera d’évoluer).&lt;br /&gt;Des examens blancs pour chaque certification (la liste des examens blancs ne cessera d’évoluer) avec un module de statistiques associé pour mieux appréhender son cursus. &lt;br /&gt;Des informations utiles sur les certifications pour présenter les différents cursus possibles, les intérêts et comment les passer.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;C'est par ici : &lt;a href="http://www.dotnet-france.com/"&gt;http://www.dotnet-france.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Et puisqu'on en est à faire de la pub, je vous annonce l'ouverture du blog de Lionel Limozin, qui vient rejoindre la grande famille des blogueurs de Bewise !&lt;br /&gt;C'est par là : &lt;a href="http://www.paslatek.net/"&gt;http://www.paslatek.net/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5619051591853320584-8374552071897258876?l=blog.adhess.net' alt='' /&gt;&lt;/div&gt;</description>
      <link>http://blog.adhess.net/2008/12/ouverture-de-dotnet-france.html</link>
      <author>noreply@blogger.com (Guillaume Lacasa)</author>
      <thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total>
    </item>
    <item>
      <title>Interop Win32 avec le Cross Fade Control</title>
      <description>&lt;p&gt;Lors d'une super session &amp;#224; la PDC 2008, j'ai d&amp;#233;couvert une API Win32 utilis&amp;#233;e dans la gestion des styles visuels nomm&amp;#233;e &lt;strong&gt;BufferedPaintRenderAnimation&lt;/strong&gt;. Cette derni&amp;#232;re est notamment utilis&amp;#233;e dans les boutons sur Vista pour faire l'effet de fondu.&lt;/p&gt;  &lt;p&gt;Je vous propose donc ici un petit contr&amp;#244;le .Net qui encapsule ce service:&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.ComponentModel;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Data;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Drawing;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Linq;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Windows.Forms;
&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Runtime.InteropServices;

&lt;span class="kwrd"&gt;namespace&lt;/span&gt; WindowsFormsApplication1
{
    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; CrossFadeControl : Control
    {
        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;enum&lt;/span&gt; FadeDirection
        {
            SourceDestination,
            DestinationSource
        }

        &lt;span class="kwrd"&gt;enum&lt;/span&gt; BP_ANIMATIONSTYLE
        {
            BPAS_NONE,
            BPAS_LINEAR,
            BPAS_CUBIC,
            BPAS_SINE
        }

        &lt;span class="kwrd"&gt;enum&lt;/span&gt; BP_BUFFERFORMAT
        {
            BPBF_COMPATIBLEBITMAP,
            BPBF_DIB,
            BPBF_TOPDOWNDIB,
            BPBF_TOPDOWNMONODIB
        }

        [StructLayout(LayoutKind.Sequential)]
        &lt;span class="kwrd"&gt;struct&lt;/span&gt; BP_ANIMATIONPARAMS
        {
            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; cbSize;
            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; dwFlags;
            &lt;span class="kwrd"&gt;public&lt;/span&gt; BP_ANIMATIONSTYLE style;
            &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; dwDuration;
        }

        [StructLayout(LayoutKind.Sequential)]
        &lt;span class="kwrd"&gt;struct&lt;/span&gt; BP_PAINTPARAMS
        {
            &lt;span class="kwrd"&gt;int&lt;/span&gt; cbSize;
            &lt;span class="kwrd"&gt;int&lt;/span&gt; dwFlags;
            IntPtr prcExclude;
            IntPtr pBlendFunction;
        }

        [DllImport(&lt;span class="str"&gt;&amp;quot;uxtheme.dll&amp;quot;&lt;/span&gt;)]
        &lt;span class="kwrd"&gt;extern&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; BufferedPaintInit();

        [DllImport(&lt;span class="str"&gt;&amp;quot;uxtheme.dll&amp;quot;&lt;/span&gt;)]
        &lt;span class="kwrd"&gt;extern&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; BufferedPaintUnInit();

        [DllImport(&lt;span class="str"&gt;&amp;quot;uxtheme.dll&amp;quot;&lt;/span&gt;)]
        &lt;span class="kwrd"&gt;extern&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; BufferedPaintRenderAnimation(IntPtr hWnd, IntPtr hDc);

        [DllImport(&lt;span class="str"&gt;&amp;quot;uxtheme.dll&amp;quot;&lt;/span&gt;)]
        &lt;span class="kwrd"&gt;extern&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; IntPtr BeginBufferedAnimation(IntPtr hwnd, IntPtr hdcTarget, 
            &lt;span class="kwrd"&gt;ref&lt;/span&gt; Rectangle rcTarget,
            BP_BUFFERFORMAT dwFormat, IntPtr pPaintParams, &lt;span class="kwrd"&gt;ref&lt;/span&gt; BP_ANIMATIONPARAMS pAnimationParams,
            &lt;span class="kwrd"&gt;out&lt;/span&gt; IntPtr phdcFrom,
            &lt;span class="kwrd"&gt;out&lt;/span&gt; IntPtr phdcTo);

        [DllImport(&lt;span class="str"&gt;&amp;quot;uxtheme.dll&amp;quot;&lt;/span&gt;)]
        &lt;span class="kwrd"&gt;extern&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; EndBufferedAnimation(IntPtr hbpAnimation, &lt;span class="kwrd"&gt;bool&lt;/span&gt; fUpdateTarget);

        [DllImport(&lt;span class="str"&gt;&amp;quot;uxtheme.dll&amp;quot;&lt;/span&gt;)]
        &lt;span class="kwrd"&gt;extern&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; BufferedPaintStopAllAnimations(IntPtr handle);

        &lt;span class="kwrd"&gt;int&lt;/span&gt; animDuration = 0;
        &lt;span class="kwrd"&gt;int&lt;/span&gt; targetAnimationDuration = 500;
        Image source;
        Image destination;
        FadeDirection direction;

        &lt;span class="kwrd"&gt;public&lt;/span&gt; FadeDirection Direction
        {
            get { &lt;span class="kwrd"&gt;return&lt;/span&gt; direction; }
            set { direction = &lt;span class="kwrd"&gt;value&lt;/span&gt;; }
        }

        &lt;span class="kwrd"&gt;public&lt;/span&gt; Image Source
        {
            get { &lt;span class="kwrd"&gt;return&lt;/span&gt; source; }
            set { source = &lt;span class="kwrd"&gt;value&lt;/span&gt;; }
        }

        &lt;span class="kwrd"&gt;public&lt;/span&gt; Image Destination
        {
            get { &lt;span class="kwrd"&gt;return&lt;/span&gt; destination; }
            set { destination = &lt;span class="kwrd"&gt;value&lt;/span&gt;; }
        }

        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; TargetAnimationDuration
        {
            get { &lt;span class="kwrd"&gt;return&lt;/span&gt; targetAnimationDuration; }
            set { targetAnimationDuration = &lt;span class="kwrd"&gt;value&lt;/span&gt;; }
        }

        &lt;span class="kwrd"&gt;public&lt;/span&gt; CrossFadeControl()
        {
            InitializeComponent();
            BufferedPaintInit();
        }

        ~CrossFadeControl()
        {
            BufferedPaintUnInit();
        }

        &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; StartAnimation()
        {
            animDuration = targetAnimationDuration;
            Invalidate();
        }

        Image GetSource()
        {
            &lt;span class="kwrd"&gt;switch&lt;/span&gt; (direction)
            {
                &lt;span class="kwrd"&gt;case&lt;/span&gt; FadeDirection.SourceDestination:
                    &lt;span class="kwrd"&gt;return&lt;/span&gt; source;
                &lt;span class="kwrd"&gt;case&lt;/span&gt; FadeDirection.DestinationSource:
                    &lt;span class="kwrd"&gt;return&lt;/span&gt; destination;
            }
            &lt;span class="kwrd"&gt;return&lt;/span&gt; source;
        }

        Image GetDestination()
        {
            &lt;span class="kwrd"&gt;switch&lt;/span&gt; (direction)
            {
                &lt;span class="kwrd"&gt;case&lt;/span&gt; FadeDirection.SourceDestination:
                    &lt;span class="kwrd"&gt;return&lt;/span&gt; destination;
                &lt;span class="kwrd"&gt;case&lt;/span&gt; FadeDirection.DestinationSource:
                    &lt;span class="kwrd"&gt;return&lt;/span&gt; source;
            }
            &lt;span class="kwrd"&gt;return&lt;/span&gt; destination;
        }

        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; OnPaint(PaintEventArgs pe)
        {
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (source == &lt;span class="kwrd"&gt;null&lt;/span&gt; || destination == &lt;span class="kwrd"&gt;null&lt;/span&gt;)
            {
                &lt;span class="kwrd"&gt;base&lt;/span&gt;.OnPaint(pe);
                &lt;span class="kwrd"&gt;return&lt;/span&gt;;
            }

            IntPtr hdc = pe.Graphics.GetHdc();

            &lt;span class="kwrd"&gt;if&lt;/span&gt; (BufferedPaintRenderAnimation(Handle, hdc) == 0)
            {
                &lt;span class="kwrd"&gt;if&lt;/span&gt; (animDuration == 0)
                {
                    pe.Graphics.ReleaseHdc(hdc);
                    pe.Graphics.DrawImage(GetSource(), ClientRectangle);

                    &lt;span class="kwrd"&gt;return&lt;/span&gt;;
                }

                BP_ANIMATIONPARAMS animParams = &lt;span class="kwrd"&gt;new&lt;/span&gt; BP_ANIMATIONPARAMS();
                animParams.cbSize = Marshal.SizeOf(animParams);
                animParams.style = BP_ANIMATIONSTYLE.BPAS_LINEAR;
                animParams.dwDuration = animDuration;

                IntPtr hdcFrom, hdcTo;
                Rectangle rect = ClientRectangle;
                IntPtr hbpAnimation = BeginBufferedAnimation(Handle, hdc, &lt;span class="kwrd"&gt;ref&lt;/span&gt; rect, 
                    BP_BUFFERFORMAT.BPBF_COMPATIBLEBITMAP,
                     IntPtr.Zero, &lt;span class="kwrd"&gt;ref&lt;/span&gt; animParams, &lt;span class="kwrd"&gt;out&lt;/span&gt; hdcFrom, &lt;span class="kwrd"&gt;out&lt;/span&gt; hdcTo);

                &lt;span class="kwrd"&gt;if&lt;/span&gt; (hbpAnimation != IntPtr.Zero)
                {
                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (hdcFrom != IntPtr.Zero)
                    {
                        Graphics gfx = Graphics.FromHdc(hdcFrom);
                        gfx.DrawImage(GetSource(), ClientRectangle);
                        gfx.Dispose();
                    }
                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (hdcTo != IntPtr.Zero)
                    {
                        Graphics gfx = Graphics.FromHdc(hdcTo);
                        gfx.DrawImage(GetDestination(), ClientRectangle);
                        gfx.Dispose();
                    }
                    animDuration = 0;
                    EndBufferedAnimation(hbpAnimation, &lt;span class="kwrd"&gt;true&lt;/span&gt;);
                }
            }
            pe.Graphics.ReleaseHdc(hdc);
        }

        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; OnSizeChanged(EventArgs e)
        {
            &lt;span class="kwrd"&gt;base&lt;/span&gt;.OnSizeChanged(e);
            BufferedPaintStopAllAnimations(Handle);
            Invalidate();
        }
    }
}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Gr&amp;#226;ce aux propri&amp;#233;t&amp;#233;s Source et Destination, il est possible de fournir les images qui vont servir de source et de cible pour le fading. La propri&amp;#233;t&amp;#233; Direction permet de dire si l'on passe de la source &amp;#224; la destination ou inversement.&lt;/p&gt;

&lt;p&gt;Finalement, la propri&amp;#233;t&amp;#233; TargetAnimationDuration donne, comme son nom l'indique, la dur&amp;#233;e de l'animation.&lt;/p&gt;

&lt;p&gt;Amusez vous avec ce contr&amp;#244;le, cela fera plaisir aux d&amp;#233;veloppeurs Win32 chez Microsoft^^.&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;</description>
      <link>http://www.catuhe.com/post/Interop-avec-le-Cross-fade-control.aspx</link>
      <author>kosh</author>
      <comments>http://www.catuhe.com/post/Interop-avec-le-Cross-fade-control.aspx#comment</comments>
      <guid>http://www.catuhe.com/post.aspx?id=cf9aeea9-e020-4b33-8702-83d36c7bbb8b</guid>
      <pubDate>Tue, 09 Dec 2008 17:03:55 +0200</pubDate>
      <category>.Net</category>
      <category>Win32</category>
      <publisher xmlns="http://purl.org/dc/elements/1.1/">kosh</publisher>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/pingback.axd</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/post.aspx?id=cf9aeea9-e020-4b33-8702-83d36c7bbb8b</target>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://www.catuhe.com/trackback.axd?id=cf9aeea9-e020-4b33-8702-83d36c7bbb8b</ping>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/post/Interop-avec-le-Cross-fade-control.aspx#comment</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/syndication.axd?post=cf9aeea9-e020-4b33-8702-83d36c7bbb8b</commentRss>
    </item>
    <item>
      <title>[WPF] Supprimer le padding des cellules d'une ListView</title>
      <link>http://blogs.developpeur.org/vko/archive/2008/09/08/wpf-supprimer-le-padding-des-cellules-d-une-listview.aspx</link>
      <pubDate>Mon, 08 Sep 2008 20:40:00 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:41415</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">Vko</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <comments>http://blogs.developpeur.org/vko/comments/41415.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/vko/commentrss.aspx?PostID=41415</commentRss>
      <description>
  Ce qu'il y a de bien avec WPF, c'est toutes ces petites choses qu'on trouve coder en dur. 
Prenez par exemple cette ListView avec un joli rectangle rouge de 20*20

&amp;lt;ListView DataContext="{StaticResource ds}" ItemsSource="{Binding}"&amp;gt;
    &amp;lt;...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=41415" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/vko/archive/tags/WPF/default.aspx">WPF</category>
    </item>
    <item>
      <title>Le truc &amp;agrave; la con du jour : Minimiser un formulaire avec Windows Mobile</title>
      <description>&lt;p&gt;Forcément, pour faire une minimisation, je me suis tout de suite tourné vers Form.WindowState. Et forcément, le compact framework ne supporte que les états Maximized et Normal :).&lt;/p&gt; &lt;p&gt;Donc on va une fois de plus faire un petit peu d'interop:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre class="csharpcode"&gt;        [DllImport(&lt;span class="str"&gt;"coredll.dll"&lt;/span&gt;)]
        &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;extern&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; ShowWindow(IntPtr hWnd, &lt;span class="kwrd"&gt;int&lt;/span&gt; nCmdShow);

        &lt;span class="kwrd"&gt;const&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; SW_MINIMIZED = 6;
        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; HideForTrue()
        {
            ShowWindow(&lt;span class="kwrd"&gt;this&lt;/span&gt;.Handle, SW_MINIMIZED);
        }&lt;/pre&gt;
&lt;p&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;/p&gt;
&lt;p&gt;C'est pas bien compliqué, ca fait juste appel à une fonction Win32 très classique.&lt;/p&gt;</description>
      <link>http://www.catuhe.com/post/Le-truc-agrave3b-la-con-du-jour-Minimiser-un-formulaire-avec-Windows-Mobile.aspx</link>
      <author>Kosh</author>
      <comments>http://www.catuhe.com/post/Le-truc-agrave3b-la-con-du-jour-Minimiser-un-formulaire-avec-Windows-Mobile.aspx#comment</comments>
      <guid>http://www.catuhe.com/post.aspx?id=c12dc90b-b894-45f9-96cf-f0adddbc320f</guid>
      <pubDate>Wed, 27 Aug 2008 12:41:46 +0200</pubDate>
      <category>.Net</category>
      <category>Windows Mobile</category>
      <publisher xmlns="http://purl.org/dc/elements/1.1/">Kosh</publisher>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/pingback.axd</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/post.aspx?id=c12dc90b-b894-45f9-96cf-f0adddbc320f</target>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">3</comments>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://www.catuhe.com/trackback.axd?id=c12dc90b-b894-45f9-96cf-f0adddbc320f</ping>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/post/Le-truc-agrave3b-la-con-du-jour-Minimiser-un-formulaire-avec-Windows-Mobile.aspx#comment</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/syndication.axd?post=c12dc90b-b894-45f9-96cf-f0adddbc320f</commentRss>
    </item>
    <item>
      <title>[WPF] - DataBinding - Part 2 - Les collections, les items, les listes et le changement de valeur dans le DataBinding</title>
      <link>http://blogs.developpeur.org/musashi/archive/2008/07/03/wpf-databinding-part-2-les-collections-les-items-les-listes-et-le-changement-de-valeur-dans-le-databinding.aspx</link>
      <pubDate>Thu, 03 Jul 2008 07:36:56 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:40359</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">musashi</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <comments>http://blogs.developpeur.org/musashi/comments/40359.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/musashi/commentrss.aspx?PostID=40359</commentRss>
      <description>
  Lorsque l'on souhaite développer une application de gestion, l'une des premières tâches effectuées est la liaison de données entre une collection(d'objet métier) et des contrôles visuelles: une liste déroulante, une liste de données. Il est alors poss...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=40359" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/musashi/archive/tags/WPF/default.aspx">WPF</category>
    </item>
    <item>
      <title>G&amp;eacute;rer sa propre fonction de messages avec le Compact Framework 2.0 (Pour Smartphone)</title>
      <description>&lt;p&gt;Contrairement aux Windows Forms, il n'est pas directement possible avec le .NET CF 2.0(SmartPhone) de surcharger la WndProc de ses formulaires.&lt;/p&gt; &lt;p&gt;Hors c'est parfois super utile! &lt;/p&gt; &lt;p&gt;Dans mon cas je voulais déclencher du code dès que l'utilisateur touche l'écran ou le clavier sans avoir à pourrir mon code avec des verrues de partout.&lt;/p&gt; &lt;p&gt;Le résultat c'est cadeau pour vous :) :&lt;/p&gt; &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 272px; background-color: #f4f4f4"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; height: 640px; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;partial&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; RootForm : Form
{
    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;const&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; GWL_WNDPROC = -4;

    &lt;span style="color: #0000ff"&gt;delegate&lt;/span&gt; IntPtr WndProcHandler(IntPtr hwnd, &lt;span style="color: #0000ff"&gt;uint&lt;/span&gt; msg, IntPtr wParam, IntPtr lParam);

    [DllImport(&lt;span style="color: #006080"&gt;"coredll.dll"&lt;/span&gt;, EntryPoint = &lt;span style="color: #006080"&gt;"GetWindowLong"&lt;/span&gt;)]
    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;extern&lt;/span&gt; IntPtr GetWindowLong(IntPtr hwnd, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; index);

    [DllImport(&lt;span style="color: #006080"&gt;"coredll.dll"&lt;/span&gt;)]
    &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;extern&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; SetWindowLong(IntPtr hwnd, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; index, IntPtr wndProc);

    [DllImport(&lt;span style="color: #006080"&gt;"coredll.dll"&lt;/span&gt;)]
    &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;extern&lt;/span&gt; IntPtr CallWindowProc(IntPtr prevWndFunc, IntPtr hwnd, &lt;span style="color: #0000ff"&gt;uint&lt;/span&gt; msg, IntPtr wParam, IntPtr lParam);

    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; IntPtr prevWndProc = IntPtr.Zero;
    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; WndProcHandler wndProc;

    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; RootForm()
    {
        InitializeComponent();

        wndProc = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; WndProcHandler(WndProc);

        prevWndProc = GetWindowLong(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Handle, GWL_WNDPROC);

        &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; success = SetWindowLong(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Handle, GWL_WNDPROC, Marshal.GetFunctionPointerForDelegate(wndProc));
    }

    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; IntPtr WndProc(IntPtr hwnd, &lt;span style="color: #0000ff"&gt;uint&lt;/span&gt; msg, IntPtr wParam, IntPtr lParam)
    {
        &lt;span style="color: #008000"&gt;// Mon code juste ici!&lt;/span&gt;
        &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; CallWindowProc(prevWndProc, hwnd, msg, wParam, lParam);
    } 
}&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Hope this help!&lt;/p&gt;</description>
      <link>http://www.catuhe.com/post/Geacute3brer-sa-propre-fonction-de-messages-avec-le-Compact-Framework-20-(Pour-Smartphone).aspx</link>
      <author>Kosh</author>
      <comments>http://www.catuhe.com/post/Geacute3brer-sa-propre-fonction-de-messages-avec-le-Compact-Framework-20-(Pour-Smartphone).aspx#comment</comments>
      <guid>http://www.catuhe.com/post.aspx?id=13ecd6fe-e754-43b6-a4f4-212dbbe56bff</guid>
      <pubDate>Fri, 30 May 2008 14:28:09 +0200</pubDate>
      <category>.Net</category>
      <category>Win32</category>
      <category>Windows Mobile</category>
      <publisher xmlns="http://purl.org/dc/elements/1.1/">Kosh</publisher>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/pingback.axd</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/post.aspx?id=13ecd6fe-e754-43b6-a4f4-212dbbe56bff</target>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">1</comments>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://www.catuhe.com/trackback.axd?id=13ecd6fe-e754-43b6-a4f4-212dbbe56bff</ping>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/post/Geacute3brer-sa-propre-fonction-de-messages-avec-le-Compact-Framework-20-(Pour-Smartphone).aspx#comment</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/syndication.axd?post=13ecd6fe-e754-43b6-a4f4-212dbbe56bff</commentRss>
    </item>
    <item>
      <title>G&amp;eacute;rer sa propre fonction de messages avec le Compact Framework 2.0 (Pour Smartphone)</title>
      <description>&lt;p&gt;Contrairement aux Windows Forms, il n'est pas directement possible avec le .NET CF 2.0(SmartPhone) de surcharger la WndProc de ses formulaires.&lt;/p&gt; &lt;p&gt;Hors c'est parfois super utile! &lt;/p&gt; &lt;p&gt;Dans mon cas je voulais déclencher du code dès que l'utilisateur touche l'écran ou le clavier sans avoir à pourrir mon code avec des verrues de partout.&lt;/p&gt; &lt;p&gt;Le résultat c'est cadeau pour vous :) :&lt;/p&gt; &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 272px; background-color: #f4f4f4"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; height: 640px; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;partial&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; RootForm : Form
{
    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;const&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; GWL_WNDPROC = -4;

    &lt;span style="color: #0000ff"&gt;delegate&lt;/span&gt; IntPtr WndProcHandler(IntPtr hwnd, &lt;span style="color: #0000ff"&gt;uint&lt;/span&gt; msg, IntPtr wParam, IntPtr lParam);

    [DllImport(&lt;span style="color: #006080"&gt;"coredll.dll"&lt;/span&gt;, EntryPoint = &lt;span style="color: #006080"&gt;"GetWindowLong"&lt;/span&gt;)]
    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;extern&lt;/span&gt; IntPtr GetWindowLong(IntPtr hwnd, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; index);

    [DllImport(&lt;span style="color: #006080"&gt;"coredll.dll"&lt;/span&gt;)]
    &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;extern&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; SetWindowLong(IntPtr hwnd, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; index, IntPtr wndProc);

    [DllImport(&lt;span style="color: #006080"&gt;"coredll.dll"&lt;/span&gt;)]
    &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;extern&lt;/span&gt; IntPtr CallWindowProc(IntPtr prevWndFunc, IntPtr hwnd, &lt;span style="color: #0000ff"&gt;uint&lt;/span&gt; msg, IntPtr wParam, IntPtr lParam);

    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; IntPtr prevWndProc = IntPtr.Zero;
    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; WndProcHandler wndProc;

    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; RootForm()
    {
        InitializeComponent();

        wndProc = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; WndProcHandler(WndProc);

        prevWndProc = GetWindowLong(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Handle, GWL_WNDPROC);

        &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; success = SetWindowLong(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Handle, GWL_WNDPROC, Marshal.GetFunctionPointerForDelegate(wndProc));
    }

    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; IntPtr WndProc(IntPtr hwnd, &lt;span style="color: #0000ff"&gt;uint&lt;/span&gt; msg, IntPtr wParam, IntPtr lParam)
    {
        &lt;span style="color: #008000"&gt;// Mon code juste ici!&lt;/span&gt;
        &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; CallWindowProc(prevWndProc, hwnd, msg, wParam, lParam);
    } 
}&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Hope this help!&lt;/p&gt;</description>
      <link>http://www.catuhe.com/post/Geacute3brer-sa-propre-fonction-de-messages-avec-le-Compact-Framework-20-(Pour-Smartphone).aspx</link>
      <author>Kosh</author>
      <comments>http://www.catuhe.com/post/Geacute3brer-sa-propre-fonction-de-messages-avec-le-Compact-Framework-20-(Pour-Smartphone).aspx#comment</comments>
      <guid>http://www.catuhe.com/post.aspx?id=13ecd6fe-e754-43b6-a4f4-212dbbe56bff</guid>
      <pubDate>Fri, 30 May 2008 14:28:09 +0200</pubDate>
      <category>.Net</category>
      <category>Win32</category>
      <category>Windows Mobile</category>
      <publisher xmlns="http://purl.org/dc/elements/1.1/">Kosh</publisher>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/pingback.axd</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/post.aspx?id=13ecd6fe-e754-43b6-a4f4-212dbbe56bff</target>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">1</comments>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://www.catuhe.com/trackback.axd?id=13ecd6fe-e754-43b6-a4f4-212dbbe56bff</ping>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/post/Geacute3brer-sa-propre-fonction-de-messages-avec-le-Compact-Framework-20-(Pour-Smartphone).aspx#comment</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/syndication.axd?post=13ecd6fe-e754-43b6-a4f4-212dbbe56bff</commentRss>
    </item>
    <item>
      <title>[BDC2008] -La Bewise Developer Conference 2008 c'est fini , Merci à tous les participants et retrouvez les WebCasts....</title>
      <link>http://blogs.developpeur.org/musashi/archive/2008/04/22/bdc2008-la-bewise-developer-conference-2008-c-est-fini-merci-tous-les-participants-et-retrouvez-les-webcasts.aspx</link>
      <pubDate>Tue, 22 Apr 2008 19:02:59 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:38928</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">musashi</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <comments>http://blogs.developpeur.org/musashi/comments/38928.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/musashi/commentrss.aspx?PostID=38928</commentRss>
      <description>
  La BDC 2008 terminé, vous pouvez désormais retrouver tous les WebCasts des sessions en ligne à cette adresse : Les WebCasts   La session plénière avec 1h15 de Silverlight 2, DeepZoom, WCF, ASP.NET Dynamic Data et autres LINQ, un bonheur pour le speake...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=38928" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/musashi/archive/tags/BDC/default.aspx">BDC</category>
      <category domain="http://blogs.developpeur.org/musashi/archive/tags/BDC+2008/default.aspx">BDC 2008</category>
    </item>
    <item>
      <title>Faire appara&amp;icirc;tre le curseur d'attente sur une application Windows Mobile</title>
      <description>&lt;p&gt;C'est le genre de truc idiot qu'on passe des heures &amp;#224; chercher. Et comme la documentation du Compact Framework est mix&amp;#233;e avec la documentation du framework normal, il n'est pas facile de s&amp;quot;y retrouver.&lt;/p&gt;  &lt;p&gt;Donc pour faire&amp;#160; apparaitre le curseur d'attente sur Windows Mobile, il suffit d'ex&amp;#233;cuter la ligne suivante:&lt;/p&gt;  &lt;div&gt;   &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;Cursor.Current = Cursors.WaitCursor;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Hope this help....&lt;/p&gt;</description>
      <link>http://www.catuhe.com/post/Faire-apparaicirc3btre-le-curseur-dattente-sur-une-application-Windows-Mobile.aspx</link>
      <author>Kosh</author>
      <comments>http://www.catuhe.com/post/Faire-apparaicirc3btre-le-curseur-dattente-sur-une-application-Windows-Mobile.aspx#comment</comments>
      <guid>http://www.catuhe.com/post.aspx?id=1e25c9a7-1c36-44e9-b9d1-147ff893d3db</guid>
      <pubDate>Fri, 18 Apr 2008 13:44:43 +0200</pubDate>
      <category>.Net</category>
      <category>Windows Mobile</category>
      <publisher xmlns="http://purl.org/dc/elements/1.1/">Kosh</publisher>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/pingback.axd</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/post.aspx?id=1e25c9a7-1c36-44e9-b9d1-147ff893d3db</target>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://www.catuhe.com/trackback.axd?id=1e25c9a7-1c36-44e9-b9d1-147ff893d3db</ping>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/post/Faire-apparaicirc3btre-le-curseur-dattente-sur-une-application-Windows-Mobile.aspx#comment</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/syndication.axd?post=1e25c9a7-1c36-44e9-b9d1-147ff893d3db</commentRss>
    </item>
    <item>
      <title>[Silverlight 2] - Ajouter un effet de RollOver sur un bouton</title>
      <link>http://blogs.developpeur.org/musashi/archive/2008/04/14/silverlight-2-ajouter-un-effet-de-rollover-sur-un-bouton.aspx</link>
      <pubDate>Mon, 14 Apr 2008 19:31:56 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:38702</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">musashi</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <comments>http://blogs.developpeur.org/musashi/comments/38702.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/musashi/commentrss.aspx?PostID=38702</commentRss>
      <description>
  Un des effets sympa que l'on utilise très courament c'est le rollover sur un bouton. En quoi cela consiste pour le néophyte ? C'est simplement le fait d'appliquer une modification visuelle sur un objet dés que la souris passe dessus. Alors comme ça c'...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=38702" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/musashi/archive/tags/Silverlight/default.aspx">Silverlight</category>
    </item>
    <item>
      <title>[Silverlight 2] - De la 3D en Silverlight - Découvrez un moteur 3D Soft entièrement en Silverlight 2</title>
      <link>http://blogs.developpeur.org/musashi/archive/2008/03/11/silverlight-2-de-la-3d-en-silverlight-d-couvrez-un-moteur-3d-soft-enti-rement-en-silverlight-2.aspx</link>
      <pubDate>Tue, 11 Mar 2008 13:46:39 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:37834</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">musashi</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">5</comments>
      <comments>http://blogs.developpeur.org/musashi/comments/37834.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/musashi/commentrss.aspx?PostID=37834</commentRss>
      <description>
  Je ne le ferais pas souvent mais fort est de constater que là, j'ai été très impressionné par le travail réalisé par mon Jedi Master donc je vous transmet l'info.  Un moteur 3D entièrement en Silverlight. la démonstration est impressionante !!  Son bl...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=37834" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/musashi/archive/tags/Silverlight/default.aspx">Silverlight</category>
    </item>
    <item>
      <title>[BDC 2008] - Toute la France se donne rendez-vous à la Bewise Developer Conference qui aura lieu a Toulouse le 10 Avril 2008</title>
      <link>http://blogs.developpeur.org/musashi/archive/2008/03/11/bdc-2008-toute-la-france-se-donne-rendez-vous-la-bewise-developer-conference-qui-aura-lieu-a-toulouse-le-10-avril-2008.aspx</link>
      <pubDate>Tue, 11 Mar 2008 10:14:00 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:37735</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">musashi</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">3</comments>
      <comments>http://blogs.developpeur.org/musashi/comments/37735.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/musashi/commentrss.aspx?PostID=37735</commentRss>
      <description>
  La BDC c'est des sessions, des nouveautés, un jeux concours avec une TV LCD de 94 cm à gagner  .... mais surtout plein de SQL Server 2008, SharePoint, ASP.NET, Team System et beaucoup, beaucoup de Silverlight 2

Le détail du contenu de l'évènement l...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=37735" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/musashi/archive/tags/BDC+2008/default.aspx">BDC 2008</category>
    </item>
    <item>
      <title>Windows Vista et les ListView Win32</title>
      <description>&lt;p&gt;Comme je viens de perdre une demi-journ&amp;#233;e sur le sujet, je vais en faire profiter la communaut&amp;#233;.&lt;/p&gt;  &lt;p&gt;J'avais une listview win32 somme toute classique qui depuis deux jours avait la d&amp;#233;licatesse d'&amp;#233;mettre un &amp;quot;DING!!!&amp;quot; &amp;#224; chaque fois que je changais sa s&amp;#233;lection.&lt;/p&gt;  &lt;p&gt;Comme c'est juste tr&amp;#232;s lourd et que je ne suis pas m&amp;#233;lomane, j'ai cherch&amp;#233; pourquoi. Il s'agit en fait d'un bug du control panel qui, lorsque l'on &amp;#224; l'outre-cuidance de changer les sons par d&amp;#233;faut de Vista, se permet de mettre le &amp;quot;Windows Default Sound&amp;quot; sur l'&amp;#233;v&amp;#233;nement de s&amp;#233;lection des listviews. Oui je sais ca vient de loin.&lt;/p&gt;  &lt;p&gt;Pour r&amp;#233;gler ca il &amp;quot;suffit&amp;quot; de supprimer cette cl&amp;#233; dans la base de registre : HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\CCSelect&lt;/p&gt;  &lt;p&gt;Sinon, il pleut &amp;#224; Toulouse.&lt;/p&gt;</description>
      <link>http://www.catuhe.com/post/Windows-Vista-et-les-ListView-Win32.aspx</link>
      <author>Kosh</author>
      <comments>http://www.catuhe.com/post/Windows-Vista-et-les-ListView-Win32.aspx#comment</comments>
      <guid>http://www.catuhe.com/post.aspx?id=b3fecef3-b9d4-459a-9f4d-5722cac80914</guid>
      <pubDate>Mon, 10 Mar 2008 17:31:46 +0200</pubDate>
      <category>Win32</category>
      <publisher xmlns="http://purl.org/dc/elements/1.1/">Kosh</publisher>
      <server xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/pingback.axd</server>
      <target xmlns="http://madskills.com/public/xml/rss/module/pingback/">http://www.catuhe.com/post.aspx?id=b3fecef3-b9d4-459a-9f4d-5722cac80914</target>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <ping xmlns="http://madskills.com/public/xml/rss/module/trackback/">http://www.catuhe.com/trackback.axd?id=b3fecef3-b9d4-459a-9f4d-5722cac80914</ping>
      <comment xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/post/Windows-Vista-et-les-ListView-Win32.aspx#comment</comment>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://www.catuhe.com/syndication.axd?post=b3fecef3-b9d4-459a-9f4d-5722cac80914</commentRss>
    </item>
    <item>
      <title>[Silverlight 2.0] - Premier pas et première application avec Silverlight 2.0</title>
      <link>http://blogs.developpeur.org/musashi/archive/2008/03/06/silverlight-2-0-premier-pas-et-premi-re-application-avec-silverlight-2-0.aspx</link>
      <pubDate>Thu, 06 Mar 2008 09:42:54 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:37734</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">musashi</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">0</comments>
      <comments>http://blogs.developpeur.org/musashi/comments/37734.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/musashi/commentrss.aspx?PostID=37734</commentRss>
      <description>
  Vous l'avez surement appris, Silverlight 2.0 vient de sortir suite à l'annonce du MIX 2008. Vous pouvez télécharger tout ce qui vous est nécessaire au développement d'une application Silverlight 2.0 à ces différents liens:     Silverlight 2.0 SDK     ...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=37734" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/musashi/archive/tags/Silverlight/default.aspx">Silverlight</category>
    </item>
    <item>
      <title>[WPF] – Facilitez-vous le Databinding entre WPF et LINQ </title>
      <link>http://blogs.developpeur.org/musashi/archive/2008/03/02/wpf-facilitez-vous-le-databinding-entre-wpf-et-linq.aspx</link>
      <pubDate>Sun, 02 Mar 2008 19:00:52 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:37646</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">musashi</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">3</comments>
      <comments>http://blogs.developpeur.org/musashi/comments/37646.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/musashi/commentrss.aspx?PostID=37646</commentRss>
      <description>
  Je souhaitais vous faire profiter d'une petite méthode utilitaire que j'ai réalisé cette semaine pour me faciliter la vie dans mes projets.

  Si comme moi vous utilisez LINQ régulièrement et que vous l'utilisez dans le cadre de projet WPF, vous aim...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=37646" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/musashi/archive/tags/WPF/default.aspx">WPF</category>
      <category domain="http://blogs.developpeur.org/musashi/archive/tags/LINQ/default.aspx">LINQ</category>
    </item>
    <item>
      <title>[WPF] - DATABINDING - PART 1 - Instancier et utiliser ses objets (du domaine) en vue du DataBinding</title>
      <link>http://blogs.developpeur.org/musashi/archive/2008/02/06/wpf-databinding-part-1-instancier-et-utiliser-ses-objets-du-domaine-en-vue-du-databinding.aspx</link>
      <pubDate>Wed, 06 Feb 2008 13:54:22 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:37115</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">musashi</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">3</comments>
      <comments>http://blogs.developpeur.org/musashi/comments/37115.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/musashi/commentrss.aspx?PostID=37115</commentRss>
      <description>
  Pour ce premier opus, d' une série ou nous étudierons le Databinding en WPF, j'ai choisi de présenter les différents moyens d' instancier et d' utiliser ses classes (du domaine par exemple) en XAML.  Nous verrons dans ce post les éléments suivants :  ...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=37115" width="1" height="1"&gt;</description>
      <category domain="http://blogs.developpeur.org/musashi/archive/tags/WPF/default.aspx">WPF</category>
    </item>
    <item>
      <title>Mon premier post sur mon Blog Technico-chef de projet</title>
      <link>http://blogs.developpeur.org/musashi/archive/2007/11/16/mon-premier-post-sur-mon-blog-technico-chef-de-projet.aspx</link>
      <pubDate>Fri, 16 Nov 2007 11:33:11 GMT</pubDate>
      <guid isPermaLink="false">7d6e5d3c-61cc-4264-bc3a-a336023fcec4:35656</guid>
      <creator xmlns="http://purl.org/dc/elements/1.1/">musashi</creator>
      <comments xmlns="http://purl.org/rss/1.0/modules/slash/">5</comments>
      <comments>http://blogs.developpeur.org/musashi/comments/35656.aspx</comments>
      <commentRss xmlns="http://wellformedweb.org/CommentAPI/">http://blogs.developpeur.org/musashi/commentrss.aspx?PostID=35656</commentRss>
      <description>
  Bonjour à tous  après plusieurs mois d' hésitation je n' ai pu résister à l' appel de l' ouverture d' un blog technique.  Alors technique oui mais pas que, en effet, je suis consultant sur les technos Microsoft et la majeure partie de mon travail cons...&lt;img src="http://blogs.developpeur.org/aggbug.aspx?PostID=35656" width="1" height="1"&gt;</description>
    </item>
  </channel>
</rss>