<?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>Toutoune DevZone</title><link>http://www.coldwire.net/blogs/toutoune_31/default.aspx</link><description>.NET (C#)</description><dc:language>fr</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Étendre l'Intellisense d'un fichier de configuration</title><link>http://www.coldwire.net/blogs/toutoune_31/archive/2008/04/15/201-tendre-l-intellisense-d-un-fichier-de-configuration.aspx</link><pubDate>Tue, 15 Apr 2008 15:11:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:26416</guid><dc:creator>Toutoune_31</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/rsscomments.aspx?PostID=26416</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/commentapi.aspx?PostID=26416</wfw:comment><comments>http://www.coldwire.net/blogs/toutoune_31/archive/2008/04/15/201-tendre-l-intellisense-d-un-fichier-de-configuration.aspx#comments</comments><description>&lt;p&gt;Vous venez de créer votre propre section de configuration et vous aimeriez bien la rendre un peu plus sexy ? Quoi de mieux qu&amp;#39;un peu d&amp;#39;Intellisense ?&lt;/p&gt;
&lt;p&gt;Tout commence par un schéma XML (&lt;a href="http://www.w3.org/XML/Schema"&gt;XSD&lt;/a&gt;)...&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;xs:schema xmlns:xs=&amp;quot;&lt;a href="http://www.w3.org/2001/XMLSchema%22"&gt;http://www.w3.org/2001/XMLSchema&amp;quot;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:vs=&amp;quot;&lt;a href="http://schemas.microsoft.com/Visual-Studio-Intellisense%22"&gt;http://schemas.microsoft.com/Visual-Studio-Intellisense&amp;quot;&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elementFormDefault=&amp;quot;qualified&amp;quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; attributeFormDefault=&amp;quot;unqualified&amp;quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; vs:helpNamespace=&amp;quot;&lt;a href="http://schemas.microsoft.com/.NetConfiguration/v2.0"&gt;http://schemas.microsoft.com/.NetConfiguration/v2.0&amp;quot;&lt;/a&gt;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xs:element name=&amp;quot;maSection&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xs:element&amp;gt;&lt;br /&gt;&amp;lt;/xs:schema&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Mon objectif n&amp;#39;étant pas d&amp;#39;expliquer la syntaxe des fichiers XSD, je vous invite à aller jeter un oeil du côté de site comme &lt;a title="http://www.w3schools.com/schema/" href="http://www.w3schools.com/schema/"&gt;http://www.w3schools.com/schema/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ça y est vous avez créer un schéma XSD qui correspond à votre nouvelle section de config ! Copier le à l&amp;#39;adresse suivante :&lt;br /&gt;C:\Program Files\Microsoft Visual Studio[&lt;em&gt;votre version&lt;/em&gt;]\Xml\Schemas\&lt;/p&gt;
&lt;p&gt;Soit :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;quot;&lt;em&gt;C:\Program Files\Microsoft Visual Studio 9.0\Xml\Schemas&lt;/em&gt;&amp;quot; pour Visual Studio 2008.&lt;/li&gt;
&lt;li&gt;&amp;quot;&lt;em&gt;C:\Program Files\Microsoft Visual Studio 8\Xml\Schemas&lt;/em&gt;&amp;quot; pour Visual Studio 2005.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Vous remarquerez que ce dossier contient un fichier &amp;quot;catalog.XML&amp;quot; qui sert de manifest à Visual Studio. Pour que notre fichier XSD soit pris en compte, il est indispensable d&amp;#39;y faire référence ici.&lt;br /&gt;L&amp;#39;objectif est d&amp;#39;associer aux fichiers &amp;quot;*.config&amp;quot; notre schéma, on va donc rajouter un noeud &amp;lt;Association extension=&amp;quot;config&amp;quot; ... /&amp;gt; comme suit :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;lt;SchemaCatalog xmlns=&amp;quot;&lt;b&gt;http://schemas.microsoft.com/xsd/catalog&lt;/b&gt;&amp;quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; ...&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;lt;Association extension=&amp;quot;&lt;b&gt;config&lt;/b&gt;&amp;quot; schema=&amp;quot;&lt;b&gt;%InstallRoot%/xml/schemas/cdc.xsd&lt;/b&gt;&amp;quot; /&amp;gt;&lt;br /&gt;&amp;lt;/SchemaCatalog&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Une dernière chose à faire, redémarrez Visual Studio pour que tout ça soit pris en compte. Et voilà !&lt;/p&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=26416" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/toutoune_31/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Benchmark de code C#</title><link>http://www.coldwire.net/blogs/toutoune_31/archive/2008/02/13/benchmark-de-code-c.aspx</link><pubDate>Wed, 13 Feb 2008 10:42:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:26124</guid><dc:creator>Toutoune_31</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/rsscomments.aspx?PostID=26124</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/commentapi.aspx?PostID=26124</wfw:comment><comments>http://www.coldwire.net/blogs/toutoune_31/archive/2008/02/13/benchmark-de-code-c.aspx#comments</comments><description>&lt;p&gt;Voici un petit utilitaire&amp;nbsp;que j&amp;#39;ai codé y a un petit moment et qui permet facilement de tester les perfs de bouts de code C#.&lt;br /&gt;N&amp;#39;hésitez pas à y apporter des améliorations et à me faire un petit retour ;)&lt;br /&gt;&lt;strong&gt;Vous avez à votre dispo le&amp;nbsp;code complet dans le ZIP en &lt;a class="" href="http://www.coldwire.net/blogs/toutoune_31/attachment/26124.ashx" target="_blank"&gt;fichier joint&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;C&amp;#39;est cette petite appli console qui m&amp;#39;avait permis d&amp;#39;écrire le billet &lt;a class="" href="http://www.coldwire.net/blogs/toutoune_31/archive/2007/02/06/cast-versus-op-rateur-as.aspx" target="_blank"&gt;Cast versus As&lt;/a&gt;&amp;nbsp;ou que Seb utilise dans son billet &lt;a class="" title="Lien permanent vers Utiliser string.ToLower() c&amp;#39;est mal !" href="http://blogtech.fr/post/2008/02/Utiliser-stringToLower()-cest-mal-!.aspx" target="_blank" rel="bookmark"&gt;Utiliser string.ToLower() c&amp;#39;est mal !&lt;/a&gt;&amp;nbsp;pour tester les perf de ses&amp;nbsp;deux méthodes.&lt;/p&gt;
&lt;p&gt;Le principe est simple, vous lui passez en entrée&amp;nbsp;N méthodes C# à tester et en sortie vous récupérez un rapport du style :&lt;br /&gt;&lt;img height="141" alt="" src="http://www.blogtech.fr/image.axd?picture=WindowsLiveWriter/Utiliserstring.ToLowercestmal_1315F/image_thumb.png" width="300" border="0" /&gt;&amp;nbsp;(&lt;em&gt;Seb, je me permet d&amp;#39;utiliser ta&amp;nbsp;capture :)&lt;/em&gt;)&lt;br /&gt;Sur cet exemple, 2 méthodes ont été&amp;nbsp;chronométrées 5 fois. Chaque colonne représente une méthode.&lt;br /&gt;La moyenne des temps est calculée et un pourcentage exprime la diférence entre la méthode courante et la méthode la plus rapide.&lt;/p&gt;
&lt;p&gt;Au niveau code, tout est basé sur une méthode &amp;quot;Test&amp;quot; dont&amp;nbsp;voici la signature&amp;nbsp;:&lt;/p&gt;
&lt;blockquote&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#808080" size="2"&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;public&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;delegate&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;void&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;MethodToTest&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#000000"&gt;();&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#808080" size="2"&gt;
&lt;p&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; Writes on the standard output a performance report of several given methods.&lt;br /&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;remarks&amp;gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;To be relevant, each report time must be greater than 20ms.&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;/remarks&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;param name=&amp;quot;iterCount&amp;quot;&amp;gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;Iteration count, a method is executed several time while being timed. &lt;br /&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; Change this argument to increase or decrease this time.&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;param name=&amp;quot;testCount&amp;quot;&amp;gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;Report row count. &lt;br /&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; More test are done, more relevant is the final average time.&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&lt;/font&gt;&lt;font color="#808080" size="2"&gt;///&lt;/font&gt;&lt;font color="#008000" size="2"&gt; &lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;param name=&amp;quot;methods&amp;quot;&amp;gt;&lt;/font&gt;&lt;font color="#008000" size="2"&gt;Methods to test.&lt;/font&gt;&lt;font color="#808080" size="2"&gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&lt;/font&gt;public&lt;/font&gt;&lt;font color="#000000" size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;static&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;void&lt;/font&gt;&lt;font size="2"&gt; Test(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;font size="2"&gt; iterCount, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;font size="2"&gt; testCount, &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;params&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;MethodToTest&lt;/font&gt;&lt;font size="2"&gt;[] methods)&lt;br /&gt;{ ... }&lt;/font&gt;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&amp;quot;iterCount&amp;quot; représente le nombre d&amp;#39;itérations à réaliser durant le test d&amp;#39;une méthode. Dans l&amp;#39;archive ZIP jointe à ce billet, vous verrez que je teste la différence entre un &lt;font color="#0000ff" size="2"&gt;for&lt;strong&gt; &lt;/strong&gt;&lt;/font&gt;et un &lt;font color="#0000ff" size="2"&gt;foreach&lt;/font&gt;. Etant donné la rapidité de ces&amp;nbsp;instructions et&amp;nbsp;pour pouvoir mesurer un temps pertinent, chaque méthode est&amp;nbsp;exécutée&amp;nbsp;3000 fois.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&amp;quot;testCount&amp;quot; est le nombre de tests qui seront lancés, c&amp;#39;est-à-dire le nombre de lignes que comportera le rapport affiché. Dans la capture d&amp;#39;écran de Seb ci-dessus, testCount a pour valeur 5.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&amp;quot;methods&amp;quot; est un tableau de délégués à lancer.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Voici un exemple d&amp;#39;utilisation&amp;nbsp;:&lt;/p&gt;
&lt;blockquote&gt;&lt;font size="2"&gt;
&lt;p&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;class&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#2b91af" size="2"&gt;Program&lt;br /&gt;&lt;/font&gt;&lt;font size="2"&gt;{&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&amp;nbsp;&amp;nbsp; static&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;font size="2"&gt;[] coll = &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;new&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;font size="2"&gt;[100000];&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#0000ff" size="2"&gt;&amp;nbsp;&amp;nbsp; static&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;void&lt;/font&gt;&lt;font size="2"&gt; Main(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt;[] args)&lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;{&lt;br /&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Test(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3000,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10,&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delegate&lt;br /&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;font size="2"&gt; l = 0; l &amp;lt; 100000; l++);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;delegate&lt;br /&gt;&lt;/font&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach&lt;/font&gt;&lt;font size="2"&gt; (&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;int&lt;/font&gt;&lt;font size="2"&gt; l &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;in&lt;/font&gt;&lt;font size="2"&gt; coll);&lt;br /&gt;&lt;font color="#0000ff"&gt;&lt;font color="#000000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&amp;nbsp;&amp;nbsp; });&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt;&lt;font color="#0000ff"&gt;&amp;nbsp;&amp;nbsp; &lt;/font&gt;}&lt;br /&gt;}&lt;/p&gt;&lt;/font&gt;&lt;/blockquote&gt;
&lt;p&gt;Quelques remarques pour finir :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;N&amp;#39;oubliez pas que&amp;nbsp;&lt;u&gt;votre config de build influe sur les perfs &lt;/u&gt;mesurées. Il arrive qu&amp;#39;une méthode soit plus rapide qu&amp;#39;une autre en Debug et que cela ne soit plus vrai en Release après optimisation du code par le compilateur.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Vous noterez dans mon exemple que la collection &amp;quot;coll&amp;quot; utilisée par le &lt;font size="2"&gt;&lt;font color="#0000ff"&gt;foreach&lt;/font&gt; est statique. Pourquoi ? Pour que l&amp;#39;instantiation de la collection ne rentre pas en compte dans le calcul de perfs du second délégué.&lt;/font&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;font size="2"&gt;En espérant que cela vous soit utile :)&lt;/font&gt;&lt;/p&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=26124" width="1" height="1"&gt;</description><enclosure url="http://www.coldwire.net/blogs/toutoune_31/attachment/26124.ashx" length="5794" type="application/x-zip-compressed" /><category domain="http://www.coldwire.net/blogs/toutoune_31/archive/tags/c_2300_/default.aspx">c#</category></item><item><title>Obtenir le Namespace par défaut d'un projet (dans un Addin Visual Studio 2005)</title><link>http://www.coldwire.net/blogs/toutoune_31/archive/2008/01/07/obtenir-le-namespace-par-d-233-faut-d-un-projet-dans-un-addin-visual-studio-2005.aspx</link><pubDate>Mon, 07 Jan 2008 16:00:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:26020</guid><dc:creator>Toutoune_31</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/rsscomments.aspx?PostID=26020</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/commentapi.aspx?PostID=26020</wfw:comment><comments>http://www.coldwire.net/blogs/toutoune_31/archive/2008/01/07/obtenir-le-namespace-par-d-233-faut-d-un-projet-dans-un-addin-visual-studio-2005.aspx#comments</comments><description>&lt;p&gt;Bon, vu le temps que j&amp;#39;ai passé à trouver l&amp;#39;infos, je la partage avec vous !&lt;br /&gt;Dans la msdn (&lt;a href="http://msdn2.microsoft.com/fr-fr/library/1c02s1da.aspx"&gt;http://msdn2.microsoft.com/fr-fr/library/1c02s1da.aspx&lt;/a&gt;), on peut trouver l&amp;#39;exemple suivant :&lt;/p&gt;
&lt;blockquote&gt;
&lt;h3 class="procedureSubHeading"&gt;To find the default namespace for your project&lt;/h3&gt;
&lt;div class="subSection"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Test the top-level code elements of the project. Any code element that is a &lt;span class="linkTerm"&gt;&lt;a id="ctl00_rs1_mainContentContainer_ctl23" href="http://msdn2.microsoft.com/fr-fr/library/0c5t3tay.aspx"&gt;CodeType&lt;/a&gt;&lt;/span&gt; returns the &lt;span class="linkTerm"&gt;&lt;a id="ctl00_rs1_mainContentContainer_ctl24" href="http://msdn2.microsoft.com/fr-fr/library/tkkhcw45.aspx"&gt;CodeNamespace&lt;/a&gt;&lt;/span&gt; element for the project. &lt;/p&gt;
&lt;div class="code" id="ctl00_rs1_mainContentContainer_ctl25_VisualBasic"&gt;
&lt;div class="CodeSnippetTitleBar"&gt;
&lt;div class="CodeDisplayLanguage"&gt;Visual Basic&lt;/div&gt;
&lt;div class="CopyCodeButton"&gt;&lt;a class="copyCode"&gt;&lt;img height="9" src="http://msdn2.microsoft.com/Platform/Controls/CodeSnippet/resources/copy_off.gif" align="middle" border="0" alt="" /&gt; Copier le code&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;pre class="code" id="ctl00_rs1_mainContentContainer_ctl25VisualBasic"&gt;&lt;span style="COLOR:blue;"&gt;Sub&lt;/span&gt; FindDefaultNamespace()
   &lt;span style="COLOR:blue;"&gt;Dim&lt;/span&gt; cm &lt;span style="COLOR:blue;"&gt;As&lt;/span&gt; CodeModel
   cm = DTE.Solution.Projects.Item(1).CodeModel

   &lt;span style="COLOR:blue;"&gt;Dim&lt;/span&gt; ce &lt;span style="COLOR:blue;"&gt;As&lt;/span&gt; CodeElement
   &lt;span style="COLOR:blue;"&gt;Dim&lt;/span&gt; ct &lt;span style="COLOR:blue;"&gt;As&lt;/span&gt; CodeType = &lt;span style="COLOR:blue;"&gt;Nothing&lt;/span&gt;
   &lt;span style="COLOR:blue;"&gt;Dim&lt;/span&gt; defNameSpace &lt;span style="COLOR:blue;"&gt;As&lt;/span&gt; CodeNamespace
   &lt;span style="COLOR:blue;"&gt;For&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;Each&lt;/span&gt; ce &lt;span style="COLOR:blue;"&gt;In&lt;/span&gt; cm.CodeElements
      &lt;span style="COLOR:blue;"&gt;If&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;TypeOf&lt;/span&gt; ce &lt;span style="COLOR:blue;"&gt;Is&lt;/span&gt; CodeType &lt;span style="COLOR:blue;"&gt;Then&lt;/span&gt;
         ct = CType(ce, CodeType)
         defNameSpace = ct.Namespace
      &lt;span style="COLOR:blue;"&gt;End&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;If&lt;/span&gt;
   &lt;span style="COLOR:blue;"&gt;Next&lt;/span&gt;

   &lt;span style="COLOR:blue;"&gt;If&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;Not&lt;/span&gt; IsNothing(defNameSpace) &lt;span style="COLOR:blue;"&gt;Then&lt;/span&gt;
      MsgBox(defNameSpace.Name)
   &lt;span style="COLOR:blue;"&gt;End&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;If&lt;/span&gt;
&lt;span style="COLOR:blue;"&gt;End&lt;/span&gt; &lt;span style="COLOR:blue;"&gt;Sub&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;... Mais cela ne marche pas chez moi. Aucun&amp;nbsp;élément de CodeElements n&amp;#39;est du type &amp;quot;CodeType&amp;quot;. Du coup voici la bonne méthode :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;(C#)&lt;br /&gt;&lt;/strong&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;string&lt;/font&gt;&lt;font size="2"&gt;) &lt;/font&gt;&lt;font size="2"&gt;_applicationObject.SelectedItems.Item(1).Project.Properties.Item(&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&amp;quot;DefaultNamespace&amp;quot;&lt;/font&gt;&lt;font size="2"&gt;).Value&lt;/p&gt;&lt;/font&gt;&lt;/blockquote&gt;
&lt;p&gt;En espérant que cela vous soit aussi utile qu&amp;#39;à moi ;)&lt;/p&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=26020" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/toutoune_31/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://www.coldwire.net/blogs/toutoune_31/archive/tags/Addin/default.aspx">Addin</category></item><item><title>Silverlight 2.0</title><link>http://www.coldwire.net/blogs/toutoune_31/archive/2007/11/30/silverlight.aspx</link><pubDate>Fri, 30 Nov 2007 08:09:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:25905</guid><dc:creator>Toutoune_31</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/rsscomments.aspx?PostID=25905</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/commentapi.aspx?PostID=25905</wfw:comment><comments>http://www.coldwire.net/blogs/toutoune_31/archive/2007/11/30/silverlight.aspx#comments</comments><description>&lt;P&gt;Scott Guthrie, le grand chef Silverlight, &lt;A class="" href="http://weblogs.asp.net/scottgu/archive/2007/11/29/net-web-product-roadmap-asp-net-silverlight-iis7.aspx" target=_blank&gt;vient d'annoncer&lt;/A&gt; que la prochaine version sera la 2.0, qu'elle contiendra&amp;nbsp;le toolkit tant attendu&amp;nbsp;et que sa beta verra le jour au premier trimestre 2008 !!!&lt;/P&gt;
&lt;P&gt;Pour ceux qui n'auraient pas pu assister au Tour de France Silverlight, Christophe Lauer vient de publier le &lt;A class="" href="http://blogs.msdn.com/clauer/archive/2007/11/29/tour-de-france-silverlight-c-est-fini.aspx" target=_blank&gt;WebCast de la session de Paris&lt;/A&gt; sur son blog. A ne pas rater !&lt;/P&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=25905" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/toutoune_31/archive/tags/c_2300_/default.aspx">c#</category><category domain="http://www.coldwire.net/blogs/toutoune_31/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Visual Studio 2008 et Rosario</title><link>http://www.coldwire.net/blogs/toutoune_31/archive/2007/11/29/visual-studio-2008-et-rosario.aspx</link><pubDate>Thu, 29 Nov 2007 10:20:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:25900</guid><dc:creator>Toutoune_31</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/rsscomments.aspx?PostID=25900</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/commentapi.aspx?PostID=25900</wfw:comment><comments>http://www.coldwire.net/blogs/toutoune_31/archive/2007/11/29/visual-studio-2008-et-rosario.aspx#comments</comments><description>&lt;P&gt;&lt;A class="" href="http://www.blogtech.fr/post/2007/11/Liens-de-telechargement-Visual-Studio-2008.aspx" target=_blank&gt;Visual Studio 2008 est en RTM depuis 10 jours&lt;/A&gt;. Il est disponible pour les &lt;A class="" href="http://msdn2.microsoft.com/subscriptions" target=_blank&gt;abonnés MSDN&lt;/A&gt;, en &lt;A class="" href="http://www.microsoft.com/express/download/" target=_blank&gt;version Express&lt;/A&gt; ou d'évaluation pour le reste du monde (évaluation &lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=D95598D7-AA6E-4F24-82E3-81570C5384CB&amp;amp;displaylang=en" target=_blank&gt;Team Suite&lt;/A&gt;, &lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=B0155166-B0A3-436E-AC95-37D7E39A440C&amp;amp;displaylang=en" target=_blank&gt;Professional&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;Du coup les regards se tournent désormais vers Rosario, le futur Visual Studio qui ne verra pas le jour avant 2009-2010.&lt;BR&gt;Rosario proposera son lot de &lt;A class="" href="http://www.blogtech.fr/post/2007/11/Visual-Studio-Rosario-Development-Edition.aspx" target=_blank&gt;fonctionnalités alléchantes&lt;/A&gt;&amp;nbsp;comme le débug avec mémoire (vous pouviez allez à l'instruction suivante, vous pourrez allez à la précédente) ou les log de débug...&lt;BR&gt;&lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=65D0E3BD-9DF3-421A-804F-8F01BD90F0B4&amp;amp;displaylang=en" target=_blank&gt;Envie de tester la CTP de Novembre de Rosario ?&lt;/A&gt;&lt;/P&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=25900" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/toutoune_31/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://www.coldwire.net/blogs/toutoune_31/archive/tags/Rosario/default.aspx">Rosario</category></item><item><title>WebParts &amp; UpdatePanel</title><link>http://www.coldwire.net/blogs/toutoune_31/archive/2007/06/18/webparts-amp-updatepanel.aspx</link><pubDate>Mon, 18 Jun 2007 08:12:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:24667</guid><dc:creator>Toutoune_31</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/rsscomments.aspx?PostID=24667</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/commentapi.aspx?PostID=24667</wfw:comment><comments>http://www.coldwire.net/blogs/toutoune_31/archive/2007/06/18/webparts-amp-updatepanel.aspx#comments</comments><description>&lt;P&gt;Par défaut les WebParts ne fonctionnent&amp;nbsp;pas correctement contenues dans les UpdatePanels des extensions AJAX 1.0.&lt;BR&gt;Voici &lt;A class="" href="http://forums.asp.net/t/1087200.aspx?PageIndex=1" target=_blank&gt;un très bon post&lt;/A&gt; qui explique comment contourner le problème.&lt;/P&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=24667" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/toutoune_31/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://www.coldwire.net/blogs/toutoune_31/archive/tags/d_26002300_233_3B00_veloppement/default.aspx">d&amp;#233;veloppement</category><category domain="http://www.coldwire.net/blogs/toutoune_31/archive/tags/c_2300_/default.aspx">c#</category></item><item><title>Cast versus As</title><link>http://www.coldwire.net/blogs/toutoune_31/archive/2007/02/06/cast-versus-op-rateur-as.aspx</link><pubDate>Tue, 06 Feb 2007 18:39:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:23505</guid><dc:creator>Toutoune_31</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/rsscomments.aspx?PostID=23505</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/commentapi.aspx?PostID=23505</wfw:comment><comments>http://www.coldwire.net/blogs/toutoune_31/archive/2007/02/06/cast-versus-op-rateur-as.aspx#comments</comments><description>&lt;P&gt;Salut à toi codeur fou,&lt;/P&gt;
&lt;P&gt;Après un débat mouvementé sur le cast et quelques tests pour vérifier tout ça, voici de quoi épater tous tes potes !&lt;BR&gt;(Je m'excuse, mes soirées sont parfois longues en ce moment)&lt;/P&gt;
&lt;P&gt;Mes tests ont porté sur les différences entre :&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;MaClasse&amp;nbsp;a = (MaClasse) b;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;et...&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;MaClasse&amp;nbsp;a = b as MaClasse;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;U&gt;Résultat&lt;/U&gt;: &lt;STRONG&gt;le cast est plus rapide que le as&amp;nbsp;&lt;/STRONG&gt;de 8% en moyenne...&lt;/P&gt;
&lt;P&gt;En espérant que cela vous soit utile !&lt;/P&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=23505" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/toutoune_31/archive/tags/d_26002300_233_3B00_veloppement/default.aspx">d&amp;#233;veloppement</category><category domain="http://www.coldwire.net/blogs/toutoune_31/archive/tags/c_2300_/default.aspx">c#</category></item><item><title>ASP.NET AJAX (ATLAS) v1.0</title><link>http://www.coldwire.net/blogs/toutoune_31/archive/2007/01/25/asp-net-ajax-atlas-v1-0.aspx</link><pubDate>Thu, 25 Jan 2007 08:51:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:23325</guid><dc:creator>Toutoune_31</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/rsscomments.aspx?PostID=23325</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/commentapi.aspx?PostID=23325</wfw:comment><comments>http://www.coldwire.net/blogs/toutoune_31/archive/2007/01/25/asp-net-ajax-atlas-v1-0.aspx#comments</comments><description>&lt;P&gt;Voilà ça y est !&amp;nbsp;La RTM d'&lt;STRONG&gt;ASP.NET AJAX&lt;/STRONG&gt;, connue également sous le nom d'&lt;STRONG&gt;ATLAS&lt;/STRONG&gt;, est sortie hier et est disponible au &lt;A class="" href="http://ajax.asp.net/downloads/default.aspx?tabid=47" target=_blank&gt;téléchargement&lt;/A&gt;. Je vous conseille d'aller voir ce que contient le &lt;A class="" href="http://ajax.asp.net/ajaxtoolkit/" target=_blank&gt;Control Toolkit&lt;/A&gt;. Pas mal de contrôles&amp;nbsp;valent le détour.&lt;/P&gt;
&lt;P&gt;Pour plus d'info : &lt;A href="http://ajax.asp.net/"&gt;http://ajax.asp.net/&lt;/A&gt;&lt;/P&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=23325" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/toutoune_31/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://www.coldwire.net/blogs/toutoune_31/archive/tags/d_26002300_233_3B00_veloppement/default.aspx">d&amp;#233;veloppement</category></item><item><title>Généricité contraintes en C#</title><link>http://www.coldwire.net/blogs/toutoune_31/archive/2006/11/21/g-n-ricit-contraintes-en-c.aspx</link><pubDate>Tue, 21 Nov 2006 08:54:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:22542</guid><dc:creator>Toutoune_31</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/rsscomments.aspx?PostID=22542</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/commentapi.aspx?PostID=22542</wfw:comment><comments>http://www.coldwire.net/blogs/toutoune_31/archive/2006/11/21/g-n-ricit-contraintes-en-c.aspx#comments</comments><description>&lt;P&gt;Comme en Java 5, il est possible d'imposer des contraintes de généricité en C#.&lt;/P&gt;
&lt;P&gt;Le type T doit implémenter une interface donnée :&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;public class MyGenericClass&amp;lt;T&amp;gt; where T:IComparable&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; ...&lt;BR&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Le type T doit&amp;nbsp;hériter d'une classe donnée :&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;public class MyGenericClass&amp;lt;T&amp;gt; where T:MyParentClass&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp; ...&lt;BR&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Le type T doit être une classe, et le type U une structure :&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;// cs_where.cs&lt;BR&gt;// compile with: /target:library&lt;BR&gt;using System;&lt;/P&gt;
&lt;P&gt;class MyClassy&amp;lt;T, U&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; where T : class&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; where U : struct&lt;BR&gt;{&lt;BR&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;Syntaxe (MSDN) &lt;/STRONG&gt;: &lt;A href="http://msdn2.microsoft.com/en-us/library/6b0scde8.aspx"&gt;http://msdn2.microsoft.com/en-us/library/6b0scde8.aspx&lt;/A&gt;&lt;BR&gt;&lt;STRONG&gt;Contraintes sur les types (MSDN)&lt;/STRONG&gt; : &lt;A href="http://msdn2.microsoft.com/en-us/library/d5x73970.aspx"&gt;http://msdn2.microsoft.com/en-us/library/d5x73970.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=22542" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/toutoune_31/archive/tags/d_26002300_233_3B00_veloppement/default.aspx">d&amp;#233;veloppement</category></item><item><title>Windows Vista sort aujourd'hui</title><link>http://www.coldwire.net/blogs/toutoune_31/archive/2006/11/08/windows-vista-sort-aujourd-hui.aspx</link><pubDate>Wed, 08 Nov 2006 09:40:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:22299</guid><dc:creator>Toutoune_31</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/rsscomments.aspx?PostID=22299</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/commentapi.aspx?PostID=22299</wfw:comment><comments>http://www.coldwire.net/blogs/toutoune_31/archive/2006/11/08/windows-vista-sort-aujourd-hui.aspx#comments</comments><description>&lt;P&gt;Ca y est on est le 8 novembre, Microsoft devrait officialiser la RTM de Windows Vista !&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://bink.nu/Article8759.bink"&gt;L'info&lt;/A&gt; vient de blink.nu.&lt;/P&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=22299" width="1" height="1"&gt;</description></item><item><title>Sorties Microsoft du jour</title><link>http://www.coldwire.net/blogs/toutoune_31/archive/2006/11/07/sorties-microsoft-du-jour.aspx</link><pubDate>Tue, 07 Nov 2006 09:28:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:22271</guid><dc:creator>Toutoune_31</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/rsscomments.aspx?PostID=22271</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/commentapi.aspx?PostID=22271</wfw:comment><comments>http://www.coldwire.net/blogs/toutoune_31/archive/2006/11/07/sorties-microsoft-du-jour.aspx#comments</comments><description>&lt;UL&gt;
&lt;LI&gt;la realease&amp;nbsp;du &lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=10CC340B-F857-4A14-83F5-25634C3BF043&amp;amp;displaylang=en" target=_blank&gt;Framework .NET 3.0&lt;/A&gt; (&lt;A class="" href="http://www.netfx3.com/blogs/news_and_announcements/archive/2006/11/06/.NET-Framework-3.0-has-been-released_2100_.aspx" target=_blank&gt;plus de liens&lt;/A&gt;) et celle d'outils Visual Studio 2005 pour MOS 2007.&lt;/LI&gt;
&lt;LI&gt;la RC de &lt;A class="" href="http://www.microsoft.com/sql/compact" target=_blank&gt;SQL Server 2005 Compact&lt;/A&gt;.&lt;/LI&gt;
&lt;LI&gt;la Beta2 d'Atlas, qui au passage s'appellera "ASP.NET AJAX" (&lt;A class="" href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/ASPNetSpicedAjax.asp" target=_blank&gt;comment ça marche ?&lt;/A&gt;)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;News MS&lt;/STRONG&gt;&amp;nbsp;: &lt;A href="http://www.microsoft.com/presspass/press/2006/nov06/11-06MSVisualStudioPR.mspx"&gt;http://www.microsoft.com/presspass/press/2006/nov06/11-06MSVisualStudioPR.mspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Au passage, je viens de remarquer que &lt;A class="" href="http://beta.microsoft.com/" target=_blank&gt;Betaplace&lt;/A&gt;&amp;nbsp;a été fermée, laissant&amp;nbsp;&lt;A class="" href="https://connect.microsoft.com/" target=_blank&gt;Connect&lt;/A&gt;&amp;nbsp;tout seul.&lt;/P&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=22271" width="1" height="1"&gt;</description></item><item><title>Obtenir les promotions d'un produit dans Microsoft Commerce Server 2007</title><link>http://www.coldwire.net/blogs/toutoune_31/archive/2006/10/30/Obtenir-les-promotions-d_2700_un-produit-dans-Microsoft-Commerce-Server-2007.aspx</link><pubDate>Mon, 30 Oct 2006 15:51:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:22132</guid><dc:creator>Toutoune_31</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/rsscomments.aspx?PostID=22132</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/commentapi.aspx?PostID=22132</wfw:comment><comments>http://www.coldwire.net/blogs/toutoune_31/archive/2006/10/30/Obtenir-les-promotions-d_2700_un-produit-dans-Microsoft-Commerce-Server-2007.aspx#comments</comments><description>&lt;p&gt;Voici un petit article qui n&amp;#39;int&amp;eacute;ressera s&amp;ucirc;rement pas le plus grand nombre...&lt;br /&gt;Etant donn&amp;eacute; le mal que j&amp;#39;ai eu &amp;agrave; rassembler ces informations, je les partage avec vous.&lt;/p&gt;&lt;p&gt;Commerce Server 2007 (et ses pr&amp;eacute;c&amp;eacute;dents) ne pr&amp;eacute;voit pas de fournir les promotions d&amp;#39;un produit avant que celui-ci ne soit ajout&amp;eacute; &amp;agrave; un caddie. Voici comment obtenir toutes les promos d&amp;#39;un produit donn&amp;eacute; sans passer par le panier :&lt;/p&gt;&lt;p&gt;&lt;u&gt;1) Le Web.Config :&lt;/u&gt;&lt;/p&gt;&lt;p&gt;Ajoutez ou d&amp;eacute;commentez la section :&lt;/p&gt;&lt;p&gt;&amp;lt;CommerceServer&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;caches&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;cache name=&amp;quot;Discounts&amp;quot; type=&amp;quot;Discounts&amp;quot; refreshInterval=&amp;quot;0&amp;quot; retryInterval=&amp;quot;30&amp;quot; /&amp;gt; &lt;br /&gt;&amp;nbsp; &amp;lt;/caches&amp;gt; &lt;br /&gt;&amp;lt;/CommerceServer&amp;gt;&lt;/p&gt;&lt;p&gt;Le cache loader de base est le composant de pipeline &lt;em&gt;CSFLoadDiscounts.&amp;nbsp;&lt;/em&gt;Si vous avez besoin de le changer, modifier&amp;nbsp;l&amp;#39;attribut &lt;em&gt;loaderprogid &lt;/em&gt;de l&amp;#39;&amp;eacute;l&amp;eacute;ment &amp;lt;cache /&amp;gt; qui par d&amp;eacute;faut est positionn&amp;eacute; &amp;agrave; &lt;em&gt;&amp;quot;Commerce.CSFLoadDiscounts&amp;quot;.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;cache loaderprogid=&amp;quot;MonLoader&amp;quot; ... /&amp;gt;&lt;/p&gt;&lt;p&gt;&lt;u&gt;2) Parcourir les promotions d&amp;#39;un produit sp&amp;eacute;cifique (C#) :&lt;/u&gt;&lt;/p&gt;&lt;div&gt;&lt;p class="MsoNormal"&gt;&lt;font color="#006600"&gt;// Chargement des promos depuis le cache&lt;br /&gt;// &lt;/font&gt;&lt;font color="#006600"&gt;&amp;quot;Discounts&amp;quot; est le nom du cache&amp;nbsp;dans le&amp;nbsp;Web.config&lt;/font&gt;&lt;br /&gt;DiscountItemCollection allDiscounts =&lt;br /&gt;DiscountItemCollection.CreateFromCache(&amp;quot;Discounts&amp;quot;);&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font color="#006600"&gt;// Cr&amp;eacute;ation d&amp;#39;un filtre&lt;/font&gt;&lt;br /&gt;DiscountCriteriaFilter filter = new DiscountCriteriaFilter();&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p class="MsoNormal"&gt;&lt;font color="#006600"&gt;// Application du filtre sur les promotions&lt;/font&gt;&lt;br /&gt;DiscountItemCollection applicableDiscounts =&lt;br /&gt;allDiscounts.ApplyProductFilter(filter, &lt;em&gt;&lt;span style="color:blue;"&gt;CatalogName&lt;/span&gt;&lt;/em&gt;, &lt;em&gt;&lt;span style="color:blue;"&gt;ProductID&lt;/span&gt;&lt;/em&gt;);&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;p class="MsoNormal"&gt;foreach(DiscountItem item in applicableDiscounts)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp; &lt;font color="#006600"&gt;// Acc&amp;eacute;der au propri&amp;eacute;t&amp;eacute; de la promotion : comme la valeur de la promo&amp;nbsp;&lt;br /&gt;&amp;nbsp; // item[&amp;quot;offer_type&amp;quot;] == 1 si promo en&amp;nbsp;montant, 2 si promo en pourcentage&lt;br /&gt;&amp;nbsp; // item[&amp;quot;offer_value&amp;quot;]&amp;nbsp;== valeur de la promotion. Attention si remise en pourcentage, cette valeur est comprise entre 0 et 100.&lt;br /&gt;&amp;nbsp; // etc...&lt;/font&gt;&lt;br /&gt;}&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Vous trouverez un tableau&amp;nbsp;r&amp;eacute;capitulatif des propri&amp;eacute;t&amp;eacute;s de l&amp;#39;objet &lt;em&gt;DiscountItem&lt;/em&gt; dans la documentation du cache loader&amp;nbsp;:&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/CS07Default/html/0bffcd15-24f3-4730-8c67-84a92c7519c6.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/CS07Default/html/0bffcd15-24f3-4730-8c67-84a92c7519c6.asp&lt;/a&gt;&lt;/p&gt;&lt;p&gt;En esp&amp;eacute;rant que tout &amp;ccedil;a vous soit autant utile qu&amp;#39;&amp;agrave; moi.&lt;/p&gt;&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=22132" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/toutoune_31/archive/tags/Microsoft+Commerce+Server+2007/default.aspx">Microsoft Commerce Server 2007</category></item><item><title>Requêtes SQL récursives</title><link>http://www.coldwire.net/blogs/toutoune_31/archive/2006/10/16/Requ_EA00_tes-r_E900_cursives.aspx</link><pubDate>Mon, 16 Oct 2006 09:20:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:21857</guid><dc:creator>Toutoune_31</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/rsscomments.aspx?PostID=21857</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/commentapi.aspx?PostID=21857</wfw:comment><comments>http://www.coldwire.net/blogs/toutoune_31/archive/2006/10/16/Requ_EA00_tes-r_E900_cursives.aspx#comments</comments><description>Voici une nouvelle fonctionnalit&amp;eacute; qu&amp;#39;offre Microsoft SQL 2005 et que je viens de d&amp;eacute;couvrir : les requ&amp;ecirc;tes r&amp;eacute;cursives gr&amp;acirc;ce aux &amp;quot;Common Table Expressions&amp;quot; (CTE). Ces requ&amp;ecirc;tes permettent de manipuler...(&lt;a href="http://www.coldwire.net/blogs/toutoune_31/archive/2006/10/16/Requ_EA00_tes-r_E900_cursives.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=21857" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/toutoune_31/archive/tags/sql+2005/default.aspx">sql 2005</category></item><item><title>Remplacement de chaîne dans un fichier</title><link>http://www.coldwire.net/blogs/toutoune_31/archive/2006/10/09/Remplacement-de-cha_EE00_ne-dans-un-fichier.aspx</link><pubDate>Mon, 09 Oct 2006 11:55:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:21782</guid><dc:creator>Toutoune_31</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/rsscomments.aspx?PostID=21782</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/commentapi.aspx?PostID=21782</wfw:comment><comments>http://www.coldwire.net/blogs/toutoune_31/archive/2006/10/09/Remplacement-de-cha_EE00_ne-dans-un-fichier.aspx#comments</comments><description>Actuellement je travaille sur des fichiers XML de 8-10 Mo. Je remplace des cha&amp;icirc;nes de caract&amp;egrave;res par-ci par-l&amp;agrave;. Mon souci est simple, comment faire pour remplacer un bout de texte sans perdre trois jours ? Visual Studio prend des ressources...(&lt;a href="http://www.coldwire.net/blogs/toutoune_31/archive/2006/10/09/Remplacement-de-cha_EE00_ne-dans-un-fichier.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=21782" width="1" height="1"&gt;</description><enclosure url="http://www.coldwire.net/blogs/toutoune_31/attachment/21782.ashx" length="2690" type="application/x-zip-compressed" /><category domain="http://www.coldwire.net/blogs/toutoune_31/archive/tags/d_26002300_233_3B00_veloppement/default.aspx">d&amp;#233;veloppement</category></item><item><title>Google Code Search</title><link>http://www.coldwire.net/blogs/toutoune_31/archive/2006/10/05/Google-Code-Search.aspx</link><pubDate>Thu, 05 Oct 2006 09:12:00 GMT</pubDate><guid isPermaLink="false">ea4c080f-dc0e-4cac-a074-2625588d7cd0:21747</guid><dc:creator>Toutoune_31</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/rsscomments.aspx?PostID=21747</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.coldwire.net/blogs/toutoune_31/commentapi.aspx?PostID=21747</wfw:comment><comments>http://www.coldwire.net/blogs/toutoune_31/archive/2006/10/05/Google-Code-Search.aspx#comments</comments><description>Je viens de d&amp;eacute;couvrir le Google Code Search, &amp;ccedil;a a l&amp;#39;air assez puissant et bien foutu. Le moteur de recherche permet de trouver des exemples de codes dans des fichiers sources publi&amp;eacute;s sur le net. http://www.google.com/codesearch...(&lt;a href="http://www.coldwire.net/blogs/toutoune_31/archive/2006/10/05/Google-Code-Search.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://www.coldwire.net/aggbug.aspx?PostID=21747" width="1" height="1"&gt;</description><category domain="http://www.coldwire.net/blogs/toutoune_31/archive/tags/d_26002300_233_3B00_veloppement/default.aspx">d&amp;#233;veloppement</category></item></channel></rss>