<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.coldwire.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Blog-a-Styx</title><link>http://www.coldwire.net/blogs/styx31/default.aspx</link><description>Un blog machin-chose</description><dc:language>fr</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Self-Signed Certificate, IIS7 et WCF</title><link>http://www.coldwire.net/blogs/styx31/archive/2009/09/01/self-signed-certificate-iis7-et-wcf.aspx</link><pubDate>Tue, 01 Sep 2009 16:12:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:27047</guid><dc:creator>Styx31</dc:creator><slash:comments>0</slash:comments><comments>http://www.coldwire.net/blogs/styx31/archive/2009/09/01/self-signed-certificate-iis7-et-wcf.aspx#comments</comments><description>&lt;p&gt;Il se peut que vous ayez un jour besoin, comme ce fut le cas pour moi aujourd’hui, de :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Créer un service WCF (facile) &lt;/li&gt;    &lt;li&gt;Le publier sur un IIS 7 (facile aussi) &lt;/li&gt;    &lt;li&gt;Rendre les services accessibles par https (mhhh...) &lt;/li&gt;    &lt;li&gt;Qu’ils soient accessibles par un site avec un binding précis (sur un sous-domaine particulier) &lt;/li&gt;    &lt;li&gt;Utiliser un certificat émis par le serveur lui-même (no comment) &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Host name Binding et HTTPS&lt;/h3&gt;  &lt;p&gt;Il faut déjà savoir que host name binding et HTTPS ne font pas bon ménage, pour une raison assez logique : étant donné que l’entête http est chiffrée lors d’un échange HTTPS, du coup l’information sur l’host interrogé par le client l’est aussi. Il est donc impossible de savoir vers quel site la requête doit être renvoyée sans déchiffrer l’entête. Sauf que chacun des sites peut avoir un certificat différent pour déchiffrer l’entête. Mais on ne sait pas quel certificat utiliser sans avoir lu l’entête HTTP, etc.&lt;/p&gt;  &lt;p&gt;Donc l’interface de IIS 7 ne permet tout simplement pas d’indiquer un host name lorsque l’on ajoute un binding HTTPS :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.coldwire.net/blogs/styx31/AddHttpsBinding_768327B3.png"&gt;&lt;img src="http://www.coldwire.net/blogs/styx31/AddHttpsBinding_thumb_24044777.png" style="border-width:0px;display:block;float:none;margin-left:auto;margin-right:auto;" title="Add Https Binding" alt="Add Https Binding" border="0" height="229" width="418" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Cependant, il peut y avoir des cas où c’est le même certificat qui va servir pour toutes les requêtes. Dans un tel cas IIS n’aurait qu’un certificat à utiliser, donc il pourrait utiliser le seul certificat déclaré pour déchiffrer les entêtes et faire son “aiguillage”. Sauf que non.&lt;/p&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;h3&gt;Host name Binding et WCF&lt;/h3&gt;  &lt;p&gt;Là où cela devient drôle, c’est lorsque WCF se joint à la partie. En effet, celui-ci se base sur l’host name pour renvoyer l’adresse à interroger dans le contrat WSDL. Si votre service nécessite l&amp;#39;utilisation de HTTPS, le contrat renverra donc une url de la forme suivante :&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;lt;soap:address location=&amp;quot;https://mymachine/Service.svc/Soap&amp;quot;/&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Etant donné que IIS ne fournir aucune information sur le host name, WCF renvoie le nom de la machine comme adresse à interroger. Un client se basant sur le contrat WSDL pour déterminer l&amp;#39;url du service n&amp;#39;arrivera pas à accéder à votre serveur si celui-ci se trouve sur Internet.&lt;/p&gt;  &lt;h3&gt;La solution&lt;/h3&gt;  &lt;p&gt;Trois outils sont nécessaires pour réussir à configurer correctement IIS : appcmd, netsh et SelfSSL&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Le premier permet d’administrer la metabase IIS et de passer outre certaines restrictions de l’interface. Il est disponible dans le répertoire %systemroot%\System32\inetsrv &lt;/li&gt;    &lt;li&gt;Le second permet d’affecter des certificats SLL sur un ensemble application/port/binding (l’outil de configuration IIS manipule aussi netsh en fait). &lt;/li&gt;    &lt;li&gt;SelfSLL est disponible dans &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=56FC92EE-A71A-4C73-B628-ADE629C89499&amp;amp;displaylang=en"&gt;IIS 6.0 Resource Kit Tools&lt;/a&gt; (mais aussi directement via &lt;a href="http://www.robbagby.com/iis/self-signed-certificates-on-iis-7-the-easy-way-and-the-most-effective-way/"&gt;un lien du post de Rob Bagby&lt;/a&gt; dont il est question plus loin). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Dans mon exemple, j&amp;#39;utiliserai les postulats suivants :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Le nom de la machine est &amp;quot;mymachine&amp;quot;&lt;/li&gt;    &lt;li&gt;L&amp;#39;adresse du site sur laquelle on souhaite exposer le service est &lt;a href="http://www.example.com"&gt;www.example.com&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;L&amp;#39;identifiant numérique du site sous IIS est 2 (colonne ID sous IIS Manager)&lt;/li&gt;    &lt;li&gt;Le nom du site sous IIS est My Site (colonne Name sous IIS Manager)&lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;1ère étape : génération du certificat auto-signé&lt;/h4&gt;  &lt;p&gt;Premier problème : &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/04/06/tip-trick-enabling-ssl-on-iis7-using-self-signed-certificates.aspx"&gt;la génération d’un certificat à l’aide de IIS Manager&lt;/a&gt; utilise le nom de la machine comme &amp;quot;Issued To&amp;quot; et ne permet pas de le changer.&lt;/p&gt;  &lt;p&gt;La seule astuce trouvée consiste à utiliser l’application SelfSSL (à lancer en mode administrateur), qui permet de générer un certificat auto-signé en permettant de spécifier la valeur du champ CN.&lt;/p&gt;  &lt;p&gt;Vous trouverez les étapes nécessaires décrites &lt;a href="http://www.robbagby.com/iis/self-signed-certificates-on-iis-7-the-easy-way-and-the-most-effective-way/"&gt;sur le blog de Rob Bagby&lt;/a&gt;, mais en gros la commande ressemblera à ça :&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;SelfSSL.exe /N:CN=www.example.com /V:1000 /S:SiteId (où SiteId vaut 2 dans notre exemple)&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Vous obtenez donc un certificat qui sera installé dans les certificats du serveur (visibles à la racine de IIS Manager, cf. blog de Rob Bagby).&lt;/p&gt;  &lt;p&gt;Si vous pensez que cela suffira, ce n’est pas le cas. Certes, cela vous permet d’accéder à votre site en https sans recevoir une erreur indiquant que le site interrogé ne correspond pas au site désigné par le certficat, mais WCF continue de renvoyer l’adresse de la machine comme adresse SOAP à interroger.&lt;/p&gt;  &lt;p&gt;Note : MakeCert, fourni avec Visual Studio, semble aussi permettre la génération de certficats auto-signés avec un CN personnalisé.&lt;/p&gt;  &lt;h4&gt;2ème étape : Récupération des informations de binding sur le certificat&lt;/h4&gt;  &lt;p&gt;Pour une étape ultérieure, il va nous falloir connaître l’idenfiant de l’application IIS ainsi que la signature SHA du certificat.&lt;/p&gt;  &lt;p&gt;Pour cela, il vous faut tout d’abord assigner votre certificat SSL auto-signé sur l’un de vos sites (temporairement), ensuite, exécutez en ligne de commande &amp;quot;netsh http show sslcert&amp;quot;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.coldwire.net/blogs/styx31/NetshHttpShowSSLCert_0EA6920F.png"&gt;&lt;img src="http://www.coldwire.net/blogs/styx31/NetshHttpShowSSLCert_thumb_6CDAB97D.png" style="border-width:0px;display:block;float:none;margin-left:auto;margin-right:auto;" title="Netsh Http Show SSLCert" alt="Netsh Http Show SSLCert" border="0" height="341" width="676" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Le programme vous renverra 2 informations intéressantes :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Certificate Hash, ici &amp;quot;079…&amp;quot; &lt;/li&gt;    &lt;li&gt;Application Id, ici &amp;quot;{4dc...}&amp;quot; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Notez ces informations puis supprimez votre binding IIS.&lt;/p&gt;  &lt;h4&gt;3ème étape : Création du binding IIS HTTPS avec host name&lt;/h4&gt;  &lt;p&gt;Pour pouvoir forcer la création d’un binding HTTPS avec le certificat créé précédement ET le host name de notre adresse publique, il nous faut utiliser appcmd, &lt;a href="http://blogs.iis.net/thomad/archive/2008/01/25/ssl-certificates-on-sites-with-host-headers.aspx"&gt;comme expliqué sur cet autre blog&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;La commande ressemblera à :&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;appcmd set site /site.name:&amp;quot;MySite&amp;quot; /+bindings.[protocol=&amp;#39;https&amp;#39;,bindingInformation=&amp;#39;*:443:www.example.com&amp;#39;]&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;La partie que vous devez remplacer sera &amp;quot;MySite&amp;quot;, à remplacer par le nom de votre site sous IIS, et &lt;a href="http://www.example.com"&gt;www.example.com&lt;/a&gt; à remplacer par l’url de votre site web https.&lt;/p&gt;    &lt;p&gt;Pour vérifier si tout s’est bien déroulé, rendez-vous sur votre site IIS et vérifiez qu&amp;#39;un binding HTTPS a été ajouté. Normalement, la partie host name devrait être remplie avec l&amp;#39;adresse que vous avez saisi. Surtout ne modifiez pas le binding par IIS Manager, celui-ci supprimera les informations sur le host name.&lt;/p&gt;  &lt;p&gt;Il ne reste qu&amp;#39;un détail à régler. En l&amp;#39;état, le site n&amp;#39;est pas encore accessible en HTTPS. En effet, le fait d&amp;#39;ajouter le binding à la main via appcmd ne rattache pas le certificat au binding (on peut le voir en faisant &amp;quot;Edit&amp;quot; sur le binding : aucun certificat n&amp;#39;est sélectionné, ou par &amp;quot;netsh http show sslcert&amp;quot; qui ne renvoie aucun certificat).&lt;/p&gt;  &lt;p&gt;Il va falloir le faire à la main à l&amp;#39;aide d&amp;#39;une dernière commande.&lt;/p&gt;  &lt;h4&gt;4ème étape : Ajout du certificat sur le binding&lt;/h4&gt;  &lt;p&gt;Pour cette dernière étape, il va falloir utiliser la commande netsh avec les options suivantes :&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;netsh http add sslcert ipport=0.0.0.0:443 certhash=&amp;lt;Certificate Hash&amp;gt; appid=&amp;lt;Application Id&amp;gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Remplacez les deux valeurs par celles que vous aviez relevé lors de l&amp;#39;étape 2.&lt;/p&gt;  &lt;p&gt;Une fois toutes les opérations effectuées, accédez à votre contrat WSDL, l&amp;#39;attribut &amp;quot;location&amp;quot; devrait désormais valoir &lt;a href="https://www.example.com/Service.svc/Soap"&gt;https://www.example.com/Service.svc/Soap&lt;/a&gt;.&lt;/p&gt;  &lt;h3&gt;Références&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://stackoverflow.com/questions/591597/can-you-use-appcmd-to-assign-a-ssl-certificate-to-iis7-site"&gt;Stackoverflow.com : Affecter un certificat SSL a un site IIS&lt;/a&gt; : pour les informations sur netsh http&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.awesomeideas.net/post/How-to-configure-SSL-on-IIS7-under-Windows-2008-Server-Core.aspx"&gt;Comment configurer SSL avec IIS7 sur Windows Server Core&lt;/a&gt; : pour des information sur netsh http et appcmd&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.iis.net/thomad/archive/2008/01/25/ssl-certificates-on-sites-with-host-headers.aspx"&gt;Ajouter un certificat SSL avec un host header sur IIS 7&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/bags/archive/2009/01/23/self-signed-certificates-on-iis-7-the-easy-way-and-the-most-effective-way.aspx"&gt;Certificat auto-signé avec IIS 7&lt;/a&gt;, blog de Rob Bagby&lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/04/06/tip-trick-enabling-ssl-on-iis7-using-self-signed-certificates.aspx"&gt;Certificat auto-signé avec IIS 7&lt;/a&gt;, blog de Scott Guthrie&lt;/li&gt;    &lt;li&gt;&lt;a href="http://hansolav.net/blog/SelfsignedSSLCertificatesOnIIS7AndCommonNames.aspx"&gt;Certificat auto-signé avec IIS 7 et champ CN&lt;/a&gt;, blog de Hans Olav (ne répond pas à l&amp;#39;heure de ce message).&lt;/li&gt; &lt;/ul&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=27047" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/styx31/archive/tags/D_26002300_233_3B00_veloppement/default.aspx">D&amp;#233;veloppement</category><category domain="http://www.coldwire.net/blogs/styx31/archive/tags/WCF/default.aspx">WCF</category><category domain="http://www.coldwire.net/blogs/styx31/archive/tags/IIS/default.aspx">IIS</category></item><item><title>Y’a baleine sous gravier…</title><link>http://www.coldwire.net/blogs/styx31/archive/2009/07/29/y-a-baleine-sous-gravier.aspx</link><pubDate>Wed, 29 Jul 2009 17:43:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:27031</guid><dc:creator>Styx31</dc:creator><slash:comments>1</slash:comments><comments>http://www.coldwire.net/blogs/styx31/archive/2009/07/29/y-a-baleine-sous-gravier.aspx#comments</comments><description>&lt;p&gt;C’est ce que je me suis finalement dis après avoir passé mes deux journées sur cette pauvre fonctionnalité.&lt;/p&gt;  &lt;p&gt;Tout partait d’une volonté louable : implémentation d’une “petite” fonctionnalité en apparence assez simple. Comme souvent en fait.&lt;/p&gt;   &lt;!--more--&gt;  &lt;p&gt;Dans mon cas, il s’agissait de rendre virtuel le chargement d’une grosse liste dans une gridview. La technique est assez bien rodée : passage par une classe qui se charge de découper la liste en pages, et lorsque la gridview demande une ligne, on cherche si la page correspondante a été chargée. Si ce n’est pas le cas, on interroge le service, on stocke le résultat, et ça roule… J’avais d’ailleurs déjà développé une telle fonctionnalité pour un autre endroit de l’application.&lt;/p&gt;  &lt;p&gt;Dans ma volonté de faire du réutilisable, je me suis dit que c’était donc le bon moment pour créer une classe générique implémentant capable de faire un tel traitement. Je commence donc à prototyper une classe DeferredList&amp;lt;T&amp;gt;, en gardant en tête que je souhaitais quelque chose de simple, avec peu de calculs et peu de variables pour conserver une empreinte mémoire faible (étant donné que l’on allait déjà avoir une liste assez conséquente en taille).&lt;/p&gt;  &lt;p&gt;Mais j’avais plus ou moins involontairement oublié un aspect de cette gridview (et qui n’existait pas dans mon cas précédent) : elle permet d’ajouter ou de supprimer des éléments. Soit. Sauf que non, mon prototype omettait un détail : les modifications apportées à la liste ne sont envoyées au serveur qu’à un moment précis, lorsque l’utilisateur souhaite enregistrer les modifications apportées. Entre temps, le chargement des pages continue de me renvoyer la liste non modifiée.&lt;/p&gt;  &lt;p&gt;Du coup, lorsque l’on supprime un élément (par exemple au début de la grille, dans la première page), cela décale automatiquement toutes les pages qu’il faudra charger. Exemple si dessous avec la suppression de l’élément situé à la ligne de la gridview d’index 2.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.coldwire.net/blogs/styx31/DeferredList1_283F68C2.png" style="border-width:0px;width:228px;display:block;float:none;margin-left:auto;margin-right:auto;" title="DeferredList-1" alt="DeferredList-1" border="0" height="375" width="228" /&gt; &lt;/p&gt;  &lt;p&gt;Imaginons que les pages 2 et 3 n’aient pas été chargées : avant l’opération, la demande de l’élément affiché à la ligne d’index 9 provoque le chargement de la page 2, et après l’opération celui de la page 3.&lt;/p&gt;  &lt;p&gt;L’ajout provoque forcément l’effet inverse.&lt;/p&gt;  &lt;p&gt;J’ai donc modifié mon code pour gérer ce cas. Ça commençait déjà à sentir le sapin : répercuter le décalage sur toutes les pages suivantes dans le cas de listes avec plusieurs milliers de pages ne me plaisait pas.&lt;/p&gt;  &lt;p&gt;Et la baleine commença à apparaître : la gestion de la page renvoyée par l’évènement ne correspondait donc pas forcément à l’emplacement réel des éléments. Exemple avec le cas précédent, en cas de chargement de la page :&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.coldwire.net/blogs/styx31/DeferredList2_07B82910.png" style="border-width:0px;width:148px;display:block;float:none;margin-left:auto;margin-right:auto;" title="DeferredList-2" alt="DeferredList-2" border="0" height="126" width="148" /&gt; &lt;/p&gt;  &lt;p&gt;Comment savoir que l’élément d’index 2 devait être ignoré et que les suivants devaient être décalés ? A part stocker dans chaque page les éléments supprimés (et leur index)...&lt;/p&gt;  &lt;p&gt;Voilà donc comment, à force de réécrire du code, on se retrouve à perdre sa journée. La solution existe bien, mais elle ressemble désormais à une énorme baleine au lieu d’un simple petit gravier blanc.&lt;/p&gt;  &lt;p&gt;Conclusion : Shelve, Undo changes, et s’efforcer d’oublier le code écrit pour repartir de zéro sur quelque chose intégrant dès le départ ce type de contrainte, et voir si quelque chose de simple reste possible. Si c’est le cas je partagerai ma solution.&lt;/p&gt;  &lt;p&gt;Note : Et pour la forme, on risque finalement d’abandonner la possibilité d’interagir avec la liste directement lorsqu’elle dépasse un certain nombre d’éléments, tant le rapport intérêt utilisateur/développement semble faible. A priori les modifications seront immédiatement envoyées au serveur (la suppression d’un seul élément sera impossible) et la liste des éléments ne sera plus affichée.&lt;/p&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=27031" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/styx31/archive/tags/D_26002300_233_3B00_veloppement/default.aspx">D&amp;#233;veloppement</category><category domain="http://www.coldwire.net/blogs/styx31/archive/tags/My+Life/default.aspx">My Life</category></item><item><title>Copyright Issues</title><link>http://www.coldwire.net/blogs/styx31/archive/2009/04/09/copyright-issues.aspx</link><pubDate>Thu, 09 Apr 2009 13:50:48 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:27007</guid><dc:creator>Styx31</dc:creator><slash:comments>2</slash:comments><comments>http://www.coldwire.net/blogs/styx31/archive/2009/04/09/copyright-issues.aspx#comments</comments><description>&lt;p&gt;Pour la postérité, et parce qu’on s’est bien marrés en crééant ce demotivational (oui, moi non plus je ne connaissais pas ce mot)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.coldwire.net/blogs/styx31/Hapudopi3_72BD0637.jpg"&gt;&lt;img style="border-bottom:0px;border-left:0px;width:300px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="Hapudopi-3" border="0" alt="Hapudopi-3" src="http://www.coldwire.net/blogs/styx31/Hapudopi3_thumb_11937A16.jpg" width="300" height="204" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Et encore gratz à &lt;a href="http://pipomantis.blogspot.com/2009/04/copyright-issues.html"&gt;Pipomantis&lt;/a&gt; pour le slogan.&lt;/p&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=27007" width="1" height="1"&gt;</description></item><item><title>Changement de flux RSS</title><link>http://www.coldwire.net/blogs/styx31/archive/2009/02/14/changement-de-flux-rss.aspx</link><pubDate>Sat, 14 Feb 2009 08:10:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:26987</guid><dc:creator>Styx31</dc:creator><slash:comments>1</slash:comments><comments>http://www.coldwire.net/blogs/styx31/archive/2009/02/14/changement-de-flux-rss.aspx#comments</comments><description>&lt;p&gt;Je viens de découvrir (un peu tard) que &lt;a href="http://www.feedburner.com/google"&gt;FeedBurner avait été racheté par Google !&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Du coup j&amp;#39;ai migré mon compte, ce qui a entraîné, il semblerait, un changement de l&amp;#39;url de mes RSS.&lt;/p&gt;
&lt;p&gt;L&amp;#39;ancienne adresse fonctionne encore, mais je vous invite à la mettre à jour pour la remplacer par la nouvelle :&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="http://feeds2.feedburner.com/Blog-a-styx"&gt;http://feeds2.feedburner.com/Blog-a-styx&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;(Et oui, je suis encore vivant !)&lt;/p&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=26987" width="1" height="1"&gt;</description></item><item><title>Comment désactiver l'héritage des web.config ?</title><link>http://www.coldwire.net/blogs/styx31/archive/2008/04/15/comment-d-233-sactiver-l-h-233-ritage-des-web-config.aspx</link><pubDate>Tue, 15 Apr 2008 21:30:19 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:26420</guid><dc:creator>Styx31</dc:creator><slash:comments>0</slash:comments><comments>http://www.coldwire.net/blogs/styx31/archive/2008/04/15/comment-d-233-sactiver-l-h-233-ritage-des-web-config.aspx#comments</comments><description>&lt;p&gt;Inspiré de &lt;a href="http://www.aspdotnetfaq.com/Faq/how-to-disable-web-config-inheritance-for-child-applications-in-subfolders-in-asp-net.aspx"&gt;ce message&lt;/a&gt;, qui m&amp;#39;a rappellé que je n&amp;#39;avais pas parlé de ce problème qui m&amp;#39;était pourtant arrivé.&lt;/p&gt; &lt;p&gt;Il arrive que vous ayez besoin d&amp;#39;avoir une application web située sous un autre (répertoire virtuel).&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Problème :&lt;/strong&gt; votre application située virtuellement en dessous héritera automatiquement du web.config de l&amp;#39;application parente. Avec tous les problèmes qui en découlent : déclaration de paramètres en doublons (chaînes de connexions, appSettings, etc.), déclaration de types dont l&amp;#39;assembly n&amp;#39;est pas présente, etc.&lt;/p&gt; &lt;p&gt;Exemple (pompé sur l&amp;#39;autre message) :&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&amp;lt;httpModules&amp;gt; &lt;p&gt;&amp;nbsp; &amp;lt;add name=&amp;quot;UrlRewriteModule&amp;quot; type=&amp;quot;UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter&amp;quot;/&amp;gt; &lt;p&gt;&amp;nbsp; &amp;lt;add name=&amp;quot;ScriptModule&amp;quot; type=&amp;quot;System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;/&amp;gt; &lt;p&gt;&amp;lt;/httpModules&amp;gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Avec une telle déclaration dans votre site racine, toutes les applications descendantes se retrouveront avec les extensions ajax déclarées. (Peu importe la version du framework d&amp;#39;ailleurs)&lt;/p&gt; &lt;p&gt;Première solution trouvée : celle consistant à supprimer les anciennes déclarations à l&amp;#39;aide d&amp;#39;un &amp;lt;clear /&amp;gt; (là où c&amp;#39;est supporté).&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&amp;lt;httpModules&amp;gt; &lt;p&gt;&amp;nbsp; &amp;lt;clear/&amp;gt; &lt;p&gt;&amp;lt;/httpModules&amp;gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Sauf qu&amp;#39;il y a une autre solution, liée à cette fameuse balise &lt;strong&gt;&amp;lt;location /&amp;gt;&lt;/strong&gt; que l&amp;#39;on utilise souvent pour spécifier des droits sur une page spécifique.&lt;/p&gt; &lt;p&gt;Il suffit en fait d&amp;#39;utiliser l&amp;#39;attribut &lt;a href="http://msdn2.microsoft.com/en-us/library/system.configuration.sectioninformation.inheritinchildapplications.aspx"&gt;inheritInChildApplications&lt;/a&gt;=&amp;quot;false&amp;quot; sur une balise location avec path=&amp;quot;.&amp;quot; dans votre web.config racine pour pouvoir ainsi y insérer des éléments de configuration qui &lt;strong&gt;ne seront pas hérités par les applications descendantes&lt;/strong&gt;.&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&amp;lt;location path=&amp;quot;.&amp;quot; inheritInChildApplications=&amp;quot;false&amp;quot;&amp;gt; &lt;p&gt;&amp;nbsp; &amp;lt;system.web&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;httpModules&amp;gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ... &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/httpModules&amp;gt; &lt;p&gt;&amp;nbsp; &amp;lt;/system.web&amp;gt;&lt;br /&gt;&amp;lt;/location&amp;gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Ainsi, si vous avez des sections dont vous ne souhaitez surtout pas que les applications descendantes héritent (par prévention), il vous suffit de les déclarer dans cette section.&lt;/p&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=26420" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/styx31/archive/tags/D_26002300_233_3B00_veloppement/default.aspx">D&amp;#233;veloppement</category></item><item><title>Un compagnon pour Reflector et NDepend</title><link>http://www.coldwire.net/blogs/styx31/archive/2008/04/05/un-compagnon-pour-reflector-et-ndepend.aspx</link><pubDate>Fri, 04 Apr 2008 22:18:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:26253</guid><dc:creator>Styx31</dc:creator><slash:comments>0</slash:comments><comments>http://www.coldwire.net/blogs/styx31/archive/2008/04/05/un-compagnon-pour-reflector-et-ndepend.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/brada/archive/2008/04/04/framework-design-studio-published.aspx"&gt;Vu&lt;/a&gt; sur le &lt;a href="http://blogs.msdn.com/brada/default.aspx"&gt;blog de Brad Adams&lt;/a&gt;, un nouvel outil dans une première version beta nommé &amp;quot;&lt;a href="http://code.msdn.microsoft.com/fds"&gt;Framework Design Studio&lt;/a&gt;&amp;quot; (publié sur le tout frais MSDN Code Gallery) qui permet de faire un peu d&amp;#39;introspection sur les librairies afin les analyser et les comparer.&lt;/p&gt; &lt;p&gt;Il permet de les analyser avec la possibilité de lister les API exposées, de les commenter (et même, via plugin, sauver ces commentaires en tant que dans une base de bugs) et d&amp;#39;exporter ces commentaires sur word.&lt;/p&gt; &lt;p&gt;Autre fonctionalité intéressante, celle de pouvoir comparer 2 versions d&amp;#39;une assembly et voir quelles ont été les méthodes ajoutées/supprimées/modifiées.&lt;/p&gt; &lt;p&gt;Un bon complément pour détecter les &amp;quot;breaking changes&amp;quot; dans des librairies critiques et faire de la revue d&amp;#39;architecture.&lt;/p&gt; &lt;p&gt;Je vous renvoie vers les messages originaux pour des petites captures d&amp;#39;écrans.&lt;/p&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=26253" width="1" height="1"&gt;</description></item><item><title>Changement de look</title><link>http://www.coldwire.net/blogs/styx31/archive/2008/01/02/changement-de-look.aspx</link><pubDate>Wed, 02 Jan 2008 22:08:15 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:26012</guid><dc:creator>Styx31</dc:creator><slash:comments>3</slash:comments><comments>http://www.coldwire.net/blogs/styx31/archive/2008/01/02/changement-de-look.aspx#comments</comments><description>&lt;p&gt;Un petite mise à jour à l&amp;#39;occasion du passage à la nouvelle année. J&amp;#39;ai converti un thème présenté par &lt;a title="L&amp;#39;article sur le th&amp;egrave;me Dilectio sur Smashing Magazine" href="http://www.smashingmagazine.com/2007/12/21/dilectio-a-smashing-wordpress-theme/"&gt;Smashing Magazine&lt;/a&gt; et créé par &lt;a href="http://wp-themes.designdisease.com/2007/12/21/dilectio-wordpress-theme/"&gt;Design Disease&lt;/a&gt;, pour Wordpress.&lt;/p&gt; &lt;p&gt;J&amp;#39;ai donc pu me frotter à la création de thèmes avec Community Server 2007, et j&amp;#39;ai été, au final, assez agréablement supris par la souplesse de l&amp;#39;engin.&lt;/p&gt; &lt;p&gt;Forcément, la doc quasi inexistante sur les objets manipulables et leurs propriétés (dommage quand on veut faire du binding) ne facilite pas les choses. Mais un passage par l&amp;#39;éternel Reflector m&amp;#39;a permis de trouver toutes les informations nécessaires assez facilement ensuite.&lt;/p&gt; &lt;p&gt;Je tâcherai de rendre le thème téléchargeable une fois que je serais sur qu&amp;#39;il ne contient pas de problème.&lt;/p&gt; &lt;p&gt;Ah, et j&amp;#39;allais oublier : bonne année à tous.&lt;/p&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=26012" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/styx31/archive/tags/Community+Server/default.aspx">Community Server</category><category domain="http://www.coldwire.net/blogs/styx31/archive/tags/Graphisme/default.aspx">Graphisme</category></item><item><title>Emacs.net ?</title><link>http://www.coldwire.net/blogs/styx31/archive/2007/12/27/emacs-net.aspx</link><pubDate>Thu, 27 Dec 2007 09:07:56 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:25999</guid><dc:creator>Styx31</dc:creator><slash:comments>0</slash:comments><comments>http://www.coldwire.net/blogs/styx31/archive/2007/12/27/emacs-net.aspx#comments</comments><description>&lt;p&gt;Tiens tiens... &lt;a href="http://www.douglasp.com/blog/2007/12/27/EmacsNet.aspx"&gt;Il semblerait&lt;/a&gt; que MS s&amp;#39;intéresse au développement d&amp;#39;un IDE light, vu qu&amp;#39;il est question d&amp;#39;embaucher quelqu&amp;#39;un pour un projet pouvant être décrit comme un &amp;quot;Emacs.net&amp;quot;.&lt;/p&gt; &lt;p&gt;Affaire à suivre.&lt;/p&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=25999" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/styx31/archive/tags/D_26002300_233_3B00_veloppement/default.aspx">D&amp;#233;veloppement</category><category domain="http://www.coldwire.net/blogs/styx31/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Colonne IDENTITY et transactions</title><link>http://www.coldwire.net/blogs/styx31/archive/2007/11/09/colonne-identity-et-transactions.aspx</link><pubDate>Fri, 09 Nov 2007 13:49:12 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:25779</guid><dc:creator>Styx31</dc:creator><slash:comments>3</slash:comments><comments>http://www.coldwire.net/blogs/styx31/archive/2007/11/09/colonne-identity-et-transactions.aspx#comments</comments><description>&lt;p&gt;Dans la famille "on en apprend tous les jours", aujourd'hui, l'utilisation des colonnes de type IDENTITY comme compteur dans une table.&lt;/p&gt; &lt;p&gt;Je ne le savais donc pas (la faute, je trouve, à la documentation totalement inexistante à ce propos), mais &lt;strong&gt;l'incrémentation des valeurs des colonnes IDENTITY sous Sql Server est totalement déconnectée de toute notion de transaction&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;Conséquence directe : si vous effectuez un rollback après une insertion dans une table avec une colonne identité, la valeur du compteur sera consommée et perdue pour la ligne suivante (vous aurez donc un trou dans votre séquence).&lt;/p&gt; &lt;p&gt;Autant la documentation semble parler de trous pouvant survenir lorsque l'on efface des lignes (ce que je conçois tout à fait), autant il m'a fallu me retrouver devant le fait accompli pour constater cette limitation.&lt;/p&gt; &lt;p&gt;Conclusion (on avait déjà quelques tables se servant d'un compteur interne pour générer la séquence, donc on va juste accélérer la migration vers ce mécanisme), &lt;strong&gt;n'utilisez pas les colonnes IDENTITY si vous souhaitez avoir une vrai séquence&lt;/strong&gt; sans trous (même si vous n'effacez pas vos lignes !).&lt;/p&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=25779" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/styx31/archive/tags/D_26002300_233_3B00_veloppement/default.aspx">D&amp;#233;veloppement</category><category domain="http://www.coldwire.net/blogs/styx31/archive/tags/Sql+Server/default.aspx">Sql Server</category></item><item><title>Ca y est j'ai mon lecteur de flux RSS ultime</title><link>http://www.coldwire.net/blogs/styx31/archive/2007/09/06/ca-y-est-j-ai-mon-lecteur-de-flux-rss-ultime.aspx</link><pubDate>Thu, 06 Sep 2007 07:47:14 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:25071</guid><dc:creator>Styx31</dc:creator><slash:comments>0</slash:comments><comments>http://www.coldwire.net/blogs/styx31/archive/2007/09/06/ca-y-est-j-ai-mon-lecteur-de-flux-rss-ultime.aspx#comments</comments><description>&lt;p&gt;Et oui, depuis ce matin, &lt;a href="http://www.google.com/reader/"&gt;Google Reader&lt;/a&gt; &lt;a href="http://googlereader.blogspot.com/2007/09/we-found-it.html"&gt;supporte la recherche&lt;/a&gt; dans les flux RSS auxquels on est abonné !&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.coldwire.net/blogs/styx31/WindowsLiveWriter/CayestjaimonlecteurdefluxRSSultime_89A3/Capture.jpg"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="86" alt="Capture" src="http://www.coldwire.net/blogs/styx31/WindowsLiveWriter/CayestjaimonlecteurdefluxRSSultime_89A3/Capture_thumb.jpg" width="400" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Je n'utilisais plus &lt;a href="http://www.rssbandit.org/"&gt;RSS Bandit&lt;/a&gt; car j'ai besoin de pouvoir lire mes flux chez moi et au boulot, j'avais abandonné &lt;a href="http://www.newsgator.com/Individuals/FeedDemon/Default.aspx"&gt;FeedDemon&lt;/a&gt; car son système de classement est relativement naze (une seule profondeur de dossier, pas de possibilité de mettre un flux dans plusieurs dossiers), NewsGator Online ne m'avait pas convaincu non plus.&lt;/p&gt; &lt;p&gt;Bref, il ne manquait à Google Reader que cela (et la fonctionnalité était demandée depuis la sortie du produit), et le seul moyen de retrouver un article était d'espérer que l'on avait eu la présence d'esprit de le passer en "Starred" ou "Shared".&lt;/p&gt; &lt;p&gt;La journée commence bien :)&lt;/p&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=25071" width="1" height="1"&gt;</description></item><item><title>Un Addin pour ajouter des liens dans vos commentaires</title><link>http://www.coldwire.net/blogs/styx31/archive/2007/09/05/un-addin-pour-ajouter-des-liens-dans-vos-commentaires.aspx</link><pubDate>Wed, 05 Sep 2007 07:40:53 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:25064</guid><dc:creator>Styx31</dc:creator><slash:comments>2</slash:comments><comments>http://www.coldwire.net/blogs/styx31/archive/2007/09/05/un-addin-pour-ajouter-des-liens-dans-vos-commentaires.aspx#comments</comments><description>&lt;p&gt;Le titre pourrait laisser penser que je ne connais pas la &lt;a href="http://msdn2.microsoft.com/fr-fr/library/b2s063f7(VS.80).aspx"&gt;doc xml déjà proposée par C#&lt;/a&gt;, qui permet, par l'intermédiaire des balises &amp;lt;see /&amp;gt; de faire des liens vers des membres.&lt;/p&gt; &lt;p&gt;Non, là je souhaiterai parler &lt;a href="http://www.codeplex.com/hyperAddin/"&gt;d'un nouvel AddIn&lt;/a&gt;, HyperAddin, qui permet, dans des commentaire classiques, d'insérer des liens vers d'autres membres directement utilisables depuis Visual Studio.&lt;/p&gt; &lt;p&gt;La syntaxe est relativement simple, &lt;a href="http://blogs.msdn.com/brada/archive/2007/09/04/hyperlink-your-source-code.aspx"&gt;comme expliqué dans ce billet&lt;/a&gt;&amp;nbsp;: il suffit de précéder le nom du membre recherché par le mot clé "code:".&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;// Comportement similaire à celui codé dans la méthode code:AutreClasse::Unlock.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Il est aussi possible de créer un lien en commentaire à l'aide d'un #, comme en html&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;// #exemple&lt;/p&gt; &lt;p&gt;//&lt;/p&gt; &lt;p&gt;// Pour faire un lien, il suffit d'utiliser code:#exemple&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Si vous souhaitez référencer un lien nommé d'un autre fichier source, il vous faudra préfixer le nom du lien par le nom d'une classe se trouvant dans le même fichier source.&lt;/p&gt; &lt;p&gt;Je teste ça de suite.&lt;/p&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=25064" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/styx31/archive/tags/D_26002300_233_3B00_veloppement/default.aspx">D&amp;#233;veloppement</category><category domain="http://www.coldwire.net/blogs/styx31/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Silverlight 1.0 est sorti, Moonlight est enfin reconnu</title><link>http://www.coldwire.net/blogs/styx31/archive/2007/09/05/silverlight-1-0-est-sorti-moonlight-est-enfin-reconnu.aspx</link><pubDate>Wed, 05 Sep 2007 07:23:37 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:25063</guid><dc:creator>Styx31</dc:creator><slash:comments>0</slash:comments><comments>http://www.coldwire.net/blogs/styx31/archive/2007/09/05/silverlight-1-0-est-sorti-moonlight-est-enfin-reconnu.aspx#comments</comments><description>&lt;p&gt;Je viens tout juste de lire &lt;a href="http://www.hanselman.com/blog/Silverlight10IsOutAndItSupportsLinux.aspx"&gt;ce billet de Scott Hanselman&lt;/a&gt;&amp;nbsp;(et suivi par &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/09/04/silverlight-1-0-released-and-silverlight-for-linux-announced.aspx"&gt;celui de Scott Guthrie&lt;/a&gt;)&amp;nbsp;à propos de &lt;a href="http://www.microsoft.com/presspass/press/2007/sep07/09-04SilverlightPR.mspx"&gt;la sortie de Silverlight 1.0&lt;/a&gt; officiellement aujourd'hui. Il vous suffira de visiter une page hébergeant un contrôle Silverlight pour que la mise à jour vous soit proposée.&lt;/p&gt; &lt;p&gt;Le point le plus intéressant, à mon avis, dans cette annonce est le partenariat officiel de Microsoft et Novell à propos de &lt;a href="http://www.mono-project.com/Moonlight"&gt;Moonlight&lt;/a&gt;, l'équivalent Mono de Silverlight.&amp;nbsp;Moonlight&amp;nbsp;permettra donc aux utilisateurs de Linux de pouvoir afficher les pages hébergeant des objets Silverlight. Certaines personnes de Microsoft devraient donc participer au développement du projet.&lt;/p&gt; &lt;p&gt;C'est une très bonne chose que Microsoft reconnaisse le boulot fait par les contributeurs de Mono, et ça présage une belle perçée possible pour Silverlight. Personnellement, j'attends surtout la 1.1 pour le support des langages autres que javascript, mais il reste semble-t-il encore pas mal de boulot.&lt;/p&gt; &lt;p&gt;Dommage, à quelques mois près, j'aurais pu proposer à Lasombras de coder le nouveau projet secret sous cette plate-forme :D Peut-être pour la v2...&lt;/p&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=25063" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/styx31/archive/tags/D_26002300_233_3B00_veloppement/default.aspx">D&amp;#233;veloppement</category></item><item><title>Indisponibilité la nuit dernière</title><link>http://www.coldwire.net/blogs/styx31/archive/2007/08/31/indisponibilit-233-la-nuit-derni-232-re.aspx</link><pubDate>Fri, 31 Aug 2007 07:52:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:25035</guid><dc:creator>Styx31</dc:creator><slash:comments>0</slash:comments><comments>http://www.coldwire.net/blogs/styx31/archive/2007/08/31/indisponibilit-233-la-nuit-derni-232-re.aspx#comments</comments><description>&lt;p&gt;Le serveur est de retour après une nuit calme.&lt;/p&gt;&lt;p&gt;Le site était verrouillé en raison d'une protection des mots de passe laissée avec le paramétrage par défaut sur notre serveur : le mot de passe du compte sql était simplement marqué comme expiré.&lt;/p&gt;&lt;p&gt;Tout est maintenant rentré dans l'ordre, le problème ne devrait plus se reproduire.&lt;br&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=25035" width="1" height="1"&gt;</description></item><item><title>Visual Studio 2008 Beta 2 cette semaine !</title><link>http://www.coldwire.net/blogs/styx31/archive/2007/07/26/visual-studio-2008-beta-2-cette-semaine.aspx</link><pubDate>Thu, 26 Jul 2007 16:46:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:24954</guid><dc:creator>Styx31</dc:creator><slash:comments>3</slash:comments><comments>http://www.coldwire.net/blogs/styx31/archive/2007/07/26/visual-studio-2008-beta-2-cette-semaine.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blogs.zdnet.com/microsoft/?p=594"&gt;Ca tease sec&lt;/a&gt; depuis que &lt;a href="http://weblogs.asp.net/scottgu/"&gt;Scott Guthrie&lt;/a&gt; a répondu à un commentaire de son blog &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/07/23/first-look-at-ironruby.aspx#3257445"&gt;en indiquant&lt;/a&gt; (9ème commentaire) que la beta 2 était prévue pour cette semaine, et qu'elle serait "feature complete".&lt;/p&gt; &lt;p&gt;Si, et je l'espère, cette beta permet de se connecter sur TFS, il s'agira certainement de la première version que je tenterai d'utiliser sur nos projets.&lt;/p&gt; &lt;p&gt;miam.&lt;/p&gt;&lt;p&gt;Edit : &lt;a href="http://msdn2.microsoft.com/en-us/vstudio/default.aspx"&gt;ça n'aura finalement pas trop tardé&lt;/a&gt;. ScottGu a d'ailleurs &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/07/26/vs-2008-and-net-3-5-beta-2-released.aspx"&gt;posté à ce propos&lt;/a&gt; en ajoutant des notes importantes sur l'installation.&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=24954" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/styx31/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://www.coldwire.net/blogs/styx31/archive/tags/Team+Foundation/default.aspx">Team Foundation</category></item><item><title>Mieux gérer les ressources (.resx) des projets</title><link>http://www.coldwire.net/blogs/styx31/archive/2007/07/25/mieux-g-233-rer-les-ressources-resx-des-projets.aspx</link><pubDate>Wed, 25 Jul 2007 14:17:03 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:24949</guid><dc:creator>Styx31</dc:creator><slash:comments>3</slash:comments><comments>http://www.coldwire.net/blogs/styx31/archive/2007/07/25/mieux-g-233-rer-les-ressources-resx-des-projets.aspx#comments</comments><description>&lt;p&gt;Le problème des applications et de leurs fichiers ressources est que bien souvent, on souhaiterait que d'autres personnes puissent les modifier. Que ce soit pour corriger des fautes ou modifier la tournure de certaines phrases, voir tout simplement pour traduire l'application.&lt;/p&gt; &lt;p&gt;Comment, donc, permettre à une autre personne de travailler sur cet aspect, sans qu'il ne soit nécessaire de le former à visual studio et toutes&amp;nbsp;les&amp;nbsp;subtilités des fichiers de ressources ?&lt;/p&gt; &lt;p&gt;Je vais faire un petit topo ici des outils que j'ai découverts, étant donné que j'en ai trouvé un de plus aujourd'hui encore, et qu'il me semble être temps de les noter quelque part.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Les éditeurs ResX autonomes&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Il s'agit là de simplement permettre d'éditer les fichiers de ressources sans devoir passer par Visual Studio. L'outil "de base" donc pour simplifier le travail d'édition.&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.aisto.com/roeder/dotnet/"&gt;Resourcer&lt;/a&gt;, créé par Ludz Roeder, le créateur de Reflector. Il permet d'éditer les fichiers .resx et .resources (texte et images). Plutôt orienté développeur.&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.peoplewords.com/download/ResxEditor.aspx"&gt;Resx Editor&lt;/a&gt;, un autre outil dans la même veine, disponible en français mais ne gèrant pas les resources autres que les chaînes.&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.papadi.gr/projects/resex.aspx"&gt;ResEx&lt;/a&gt;, un outil qui semble être le plus abouti, plus particulièrement ciblé sur la traduction de resources. Il permet notamment de travailler en mode "side-by-side" entre le fichier en langue originale et la version traduite. Il ajoute des contrôles sur les chaînes formattées (contrôle la présence des {0} dans la version traduite). Celui que je conseillerai le plus à une personne n'était pas développeur.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Les outils pour Visual Studio&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://altinoren.com/PermaLink,guid,5b69e6d6-86b0-4717-889a-94db78ff04b2.aspx"&gt;ResX File Public Code Generator&lt;/a&gt;. Il s'agit d'un custom tool qui permet de générer des classes de ressources publiques, au contraire du custom tool de base qui ne génère que des classes internes. Il est ainsi possible d'avoir un .resx dont les ressources seront ensuite accessible depuis d'autres librairies.&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.codeplex.com/ResourceRefactoring"&gt;Resources Refactoring Tool&lt;/a&gt;. Un petit AddIn pour visual studio pour permettre d'extraire une chaîne de caractère de votre code directement dans une resource, en remplaçant les autres occurances dans votre projet par cette ressource. Pratique pour repasser derrière du code mal écrit.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;Les autres outils (conversion, import/export)&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.peoplewords.com/download/Resx2Word.aspx"&gt;Resx To Word&lt;/a&gt; est un autre outil de la même société que Resx Editor (PeopleWords) qui permet de transformer un .resx en fichier word, et inversement. Je ne l'ai pas testé personnellement.&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.codeproject.com/csharp/Resx2Xls.asp"&gt;ResX To Xls&lt;/a&gt; (la découverte du jour) permet, lui, d'exporter tous les fichiers ressources d'un projet dans un fichier excel. Le gros avantage est qu'il rassemble tous les fichiers .resx d'un projet dans un seul fichier excel. Il permet ensuite de mettre à jour les fichiers .resx à partir du fichier excel. A tester absolument.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Si vous connaissez d'autres outils, n'hésitez-pas à m'en faire part.&lt;/p&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=24949" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/styx31/archive/tags/D_26002300_233_3B00_veloppement/default.aspx">D&amp;#233;veloppement</category><category domain="http://www.coldwire.net/blogs/styx31/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item></channel></rss>