<rss version="2.0"><channel><title>LaboDotNet</title><link>http://www.labo-dotnet.com</link><description>RSS du LaboDotNet</description><ttl>60</ttl><item><title>P-Invoke : envoyer des messages Windows à une autre application</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/P-Invoke   envoyer des messages Windows à une autre application/0/1940.aspx</link><description>Cet article a pour but de rappeler la technique de P/Invoke en code manag&amp;#233; .NET et explique comment envoyer des messages Windows &amp;#224; une autre application s'ex&amp;#233;cutant sur la machine.</description><pubDate>Wed, 30 Jul 2008 11:36:04 GMT</pubDate></item><item><title>Thumbnails et API Windows Vista</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Thumbnails et API Windows Vista/0/1935.aspx</link><description>Dans cet article, vous d&amp;#233;couvrirez comment r&amp;#233;cup&amp;#233;rer la vignette (thumbnail) associ&amp;#233;e &amp;#224; chaque item shell (fichier, dossier, disque dur...) sous Windows Vista.</description><pubDate>Fri, 18 Jul 2008 16:17:04 GMT</pubDate></item><item><title>Utilisation des types anonymes (C# 3.5)</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Utilisation des types anonymes (Csharp 3dot5)/0/1917.aspx</link><description>&lt;P&gt;&lt;A href="http://www.blog-microsoft.fr"&gt;http://www.blog-microsoft.fr&lt;/A&gt;&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;</description><pubDate>Sun, 11 May 2008 20:57:31 GMT</pubDate></item><item><title>Exemple de code : Comment créez un contrôle dynamiquement (C#)</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Exemple de code   Comment créez un contrôle dynamiquement (Csharp)/0/1914.aspx</link><description>&lt;P&gt;Cet exemple de code vous montrera par un exemple, comment cr&amp;#233;er un contr&amp;#244;le dynamiquement, l'ins&amp;#233;rer sur un formulaire et s'abonner &amp;#224; ses &amp;#233;v&amp;#233;nements.&lt;/P&gt;
&lt;P&gt;Placez le code suivant dans un corps de m&amp;#233;thode o&amp;#249; vous souhaitez que le contr&amp;#244;le soit cr&amp;#233;&amp;#233;, par exemple le Form_Load.&lt;/P&gt;
&lt;P&gt;Prenons le cas d'un bouton, la premi&amp;#232;re &amp;#233;tape consiste &amp;#224; cr&amp;#233;er l'objet et affecter des valeurs &amp;#224; ses propri&amp;#233;t&amp;#233;s :&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Courier New"&gt;// Cr&amp;#233;ation du bouton&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;System.Windows.Forms.&lt;SPAN style="COLOR: #2b91af"&gt;Button&lt;/SPAN&gt; button = &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;Button&lt;/SPAN&gt;();&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;button.Text = &lt;SPAN style="COLOR: #a31515"&gt;"Click me!"&lt;/SPAN&gt;;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;button.Location = &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;Point&lt;/SPAN&gt;(25, 25);&lt;SPAN style="COLOR: green"&gt; // D&amp;#233;finition de la position du bouton&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;La seconde &amp;#233;tape, s'abonner &amp;#224; un &amp;#233;v&amp;#233;nement. Pour cela, il faut cr&amp;#233;er la m&amp;#233;thode qui sera appel&amp;#233;e lors du d&amp;#233;clenchement de cet &amp;#233;v&amp;#233;nement :&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: blue"&gt;private &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;void&lt;/SPAN&gt; button_Click(&lt;SPAN style="COLOR: blue"&gt;object&lt;/SPAN&gt; sender, &lt;SPAN style="COLOR: #2b91af"&gt;EventArgs&lt;/SPAN&gt; e)&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;{&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: #2b91af"&gt;   MessageBox&lt;/SPAN&gt;.Show(&lt;SPAN style="COLOR: #a31515"&gt;"button_Click"&lt;/SPAN&gt;);&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;}&lt;BR&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Ensuite le code pour s'abonner &amp;#224; l'&amp;#233;v&amp;#233;nement :&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Courier New"&gt;// Abonnement &amp;#224; l'&amp;#233;v&amp;#233;nement "Click"&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;button.Click += &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;EventHandler&lt;/SPAN&gt;(button_Click);&lt;BR&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Enfin, ajouter le contr&amp;#244;le sur le formulaire, rien de plus simple :&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: green; FONT-FAMILY: Courier New"&gt;// Ajout du contr&amp;#244;le sur le formulaire&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="COLOR: blue"&gt;this&lt;/SPAN&gt;.Controls.Add(button);&lt;BR&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Petite astuce :&lt;/P&gt;
&lt;P&gt;Lorsque vous commencez &amp;#224; &amp;#233;crire : &amp;#171;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt; button.Click += &lt;/SPAN&gt;&amp;#187;, l'Intelisense vous proposera automatiquement de cr&amp;#233;er la m&amp;#233;thode (ici&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Courier New"&gt; button_Click&lt;/SPAN&gt;) et l'abonnement &amp;#224; cette m&amp;#233;thode.&lt;/P&gt;
&lt;P&gt;[Source : &lt;A href="http://www.blog-microsoft.fr"&gt;http://www.blog-microsoft.fr&lt;/A&gt;]&lt;/P&gt;</description><pubDate>Thu, 17 Apr 2008 09:58:56 GMT</pubDate></item><item><title>Identification LDAP en C#</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Identification LDAP en Csharp/0/1908.aspx</link><description>&lt;P&gt;Avant tout il vous faudra inclure le namespace n&amp;#233;cessaire &amp;#224; l'utilisation de LDAP:&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;IMG alt=LDAP src="http://dollonj.e-supinfo.net/1.png"&gt;&lt;BR&gt;&lt;BR&gt;Ensuite vous allez cr&amp;#233;er une entr&amp;#233;e LDAP gr&amp;#226;ce &amp;#224; la classe DirectoryEntry:&lt;BR&gt;&lt;BR&gt;&lt;IMG alt=LDAP src="http://dollonj.e-supinfo.net/2.png"&gt;&lt;BR&gt;&lt;BR&gt;Le domainName sera de type String sous forme LDAP://HOST_SERVEUR&lt;BR&gt;Le userName et userPasswd sera de type String et sera un login LDAP valide.&lt;BR&gt;L'authenficationType est une &amp;#233;num&amp;#233;ration de type System.DirectoryServices.AuthenticationTypes et pr&amp;#233;cisera le type d'authentification (Anonymous, Secure ...)&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Gr&amp;#226;ce &amp;#224; notre entry nous pouvons d&amp;#233;sormais instancier un searcher:&lt;BR&gt;&lt;BR&gt;&lt;IMG alt=LDAP src="http://dollonj.e-supinfo.net/3.png"&gt;&lt;BR&gt;&lt;BR&gt;Ce searcher va nous permettre de rechercher un objet LDAP (un utilisateur par exemple !).&lt;BR&gt;&lt;BR&gt;&lt;IMG alt="" src="http://dollonj.e-supinfo.net/4.png"&gt;&lt;BR&gt;&lt;BR&gt;Nous pouvons par exemple filtrer gr&amp;#226;ce &amp;#224; l'attribut Filter sur un objet de type USER.&lt;BR&gt;L'attribut SearchScope est un &amp;#233;num&amp;#233;r&amp;#233; qui permet de choisir la port&amp;#233;e de notre recherche.&lt;BR&gt;&lt;BR&gt;Maintenant nous pouvons lancer notre recherche:&lt;BR&gt;&lt;BR&gt;&lt;IMG alt=LDAP src="http://dollonj.e-supinfo.net/5.png"&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;Pour conclure voici un exemple de fonction que vous pouvez impl&amp;#233;menter pour identifier un utilisateur:&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;&lt;IMG alt=LDAP src="http://dollonj.e-supinfo.net/6.png"&gt;&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;
&lt;P&gt;Article de Bertrand Vergnault&lt;/P&gt;</description><pubDate>Mon, 07 Apr 2008 23:30:09 GMT</pubDate></item><item><title>Exemple de code : Requêtes paramètrées (C#, SQL)</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Exemple de code   Requêtes paramètrées (Csharp, SQL)/0/1903.aspx</link><description>Dans cet exemple, nous allons voir comment &amp;#233;crire des requ&amp;#234;tes param&amp;#232;tr&amp;#233;es. D&amp;#233;j&amp;#224;, pourquoi &amp;#233;crire des requ&amp;#234;tes param&amp;#232;tr&amp;#233;es ? Et bien d'une part pour ne pas se tromper dans l'&amp;#233;criture de la requ&amp;#234;te, qui n'a jamais oubli&amp;#233; des ' dans ses applications ? Ensuite il se pose un probl&amp;#232;me de s&amp;#233;curit&amp;#233;, en effet il peut se produire des failles de &lt;A title="Wikipedia : SQL Injection" href="http://fr.wikipedia.org/wiki/Injection_SQL" target=_blank mce_href="http://fr.wikipedia.org/wiki/Injection_SQL"&gt;SQL Injection&lt;/A&gt;.</description><pubDate>Mon, 31 Mar 2008 19:26:25 GMT</pubDate></item><item><title>Exemple de code : LINQ To SQL et DataLoadOptions</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Exemple de code   LINQ To SQL et DataLoadOptions/0/1902.aspx</link><description>&lt;P&gt;Cet article a pour but d'expliquer la diff&amp;#233;rence entre le Lazy Loading (chargement progressif / &amp;#224; la demande) et l'Agressive Loading (chargement complet en une fois) des donn&amp;#233;es d'une base, avec LINQ To SQL et les DataLoadOptions.&lt;/P&gt;</description><pubDate>Sat, 29 Mar 2008 00:00:21 GMT</pubDate></item><item><title>Controle de la réplication SQL Server via C# 2.0</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Controle de la réplication SQL Server via Csharp 2dot0/0/1900.aspx</link><description>&lt;P&gt;Dans une premi&amp;#232;re partie, cet article vous fera d&amp;#233;couvrir / red&amp;#233;couvrir les grands principes de la r&amp;#233;plication de base de donn&amp;#233;es sous SQL Server 2005. Dans une deuxi&amp;#232;me partie, nous verrons comment contr&amp;#244;ller cette r&amp;#233;plication, directement depuis une application d&amp;#233;velopp&amp;#233;e en C# 2.0.&lt;/P&gt;</description><pubDate>Fri, 28 Mar 2008 19:36:08 GMT</pubDate></item><item><title>Exemple de code : Constructeur de classe (C# 3.5)</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Exemple de code   Constructeur de classe (Csharp 3dot5)/0/1897.aspx</link><description>Prenons une classe quelconque avec une propri&amp;#233;t&amp;#233; : 
&lt;P&gt;&lt;CODE&gt;&lt;FONT size=4&gt;&lt;FONT style="COLOR: blue"&gt;public class&lt;/FONT&gt; &lt;FONT style="COLOR: green"&gt;MyClass&lt;/FONT&gt;&lt;BR&gt;{&lt;BR&gt;   &lt;FONT style="COLOR: blue"&gt;public&lt;/FONT&gt; &lt;FONT style="COLOR: green"&gt;String&lt;/FONT&gt; MyProperty { &lt;FONT style="COLOR: blue"&gt;get&lt;/FONT&gt;; &lt;FONT style="COLOR: blue"&gt;set&lt;/FONT&gt;; }&lt;BR&gt;}&lt;/FONT&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Nous allons maintenant voir une nouvelle fa&amp;#231;on de cr&amp;#233;er une instance de cette classe en d&amp;#233;finissant une valeur pour la propri&amp;#233;t&amp;#233; MyProperty.&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;FONT size=4&gt;&lt;FONT style="COLOR: green"&gt;MyClass&lt;/FONT&gt; variableA = &lt;FONT style="COLOR: blue"&gt;new&lt;/FONT&gt; &lt;FONT style="COLOR: green"&gt;MyClass&lt;/FONT&gt;() { MyProperty = "Bonjour" };&lt;BR&gt;&lt;FONT style="COLOR: green"&gt;MyClass&lt;/FONT&gt; variableB = &lt;FONT style="COLOR: blue"&gt;new&lt;/FONT&gt; &lt;FONT style="COLOR: green"&gt;MyClass&lt;/FONT&gt;();&lt;BR&gt;variableB.MyProperty = &lt;FONT style="COLOR: red"&gt;"Bonjour"&lt;/FONT&gt;;&lt;/FONT&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Vous remarquez le premier appel du constructeur avec l'assignation de la valeur &amp;#224; la propri&amp;#233;t&amp;#233; MyProperty est entre accolades.&lt;BR&gt;Quelle est la diff&amp;#233;rence entre ces deux m&amp;#233;thodes ? Voyons ce que nous propose Reflector :&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;FONT size=4&gt;&lt;FONT style="COLOR: green"&gt;MyClass&lt;/FONT&gt; &lt;&gt;g__initLocal0 = &lt;FONT style="COLOR: blue"&gt;new&lt;/FONT&gt; &lt;FONT style="COLOR: green"&gt;MyClass&lt;/FONT&gt;();&lt;BR&gt;&lt;FONT style="COLOR: green"&gt;&lt;&gt;g__initLocal0.MyProperty&lt;/FONT&gt; = &lt;FONT style="COLOR: red"&gt;"Bonjour"&lt;/FONT&gt;;&lt;BR&gt;&lt;FONT style="COLOR: green"&gt;MyClass&lt;/FONT&gt; variableA = &lt;FONT style="COLOR: green"&gt;&lt;&gt;g__initLocal0&lt;/FONT&gt;;&lt;BR&gt;&lt;FONT style="COLOR: green"&gt;MyClass&lt;/FONT&gt; variableB = &lt;FONT style="COLOR: blue"&gt;new&lt;/FONT&gt; &lt;FONT style="COLOR: green"&gt;MyClass&lt;/FONT&gt;();&lt;BR&gt;&lt;FONT style="COLOR: green"&gt;variableB.MyProperty&lt;/FONT&gt; = &lt;FONT style="COLOR: red"&gt;"Bonjour"&lt;/FONT&gt;&lt;/FONT&gt;;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Avec ce code, nous pouvons comprendre le m&amp;#233;canisme de cr&amp;#233;ation de la variable A. La CLR commence par cr&amp;#233;er une instance de la classe MyClass en temporaire dans la m&amp;#233;moire de l'ordinateur, ensuite elle affecte une valeur &amp;#224; la propri&amp;#233;t&amp;#233; MyProperty de la variable temporaire puis si aucune erreur n'est d&amp;#233;clench&amp;#233;e, la variable variableA re&amp;#231;oit la r&amp;#233;f&amp;#233;rence de la variable temporaire.&lt;BR&gt;Dans la seconde m&amp;#233;thode, on cr&amp;#233;&amp;#233; simplement une nouvelle instance de la classe MyClass que l'on affecte &amp;#224; notre variable variableB puis on change la valeur de sa propri&amp;#233;t&amp;#233; MyProperty.&lt;/P&gt;</description><pubDate>Mon, 24 Mar 2008 11:59:05 GMT</pubDate></item><item><title>Exemple de code : Propriétés automatiques C(#3.5)</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Exemple de code   Propriétés automatiques C(sharp3dot5)/0/1896.aspx</link><description>&lt;P&gt;En C#2.0, comment fesions-nous pour cr&amp;#233;er des attributs avec leurs propri&amp;#233;t&amp;#233;s associ&amp;#233;es ?&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;FONT size=4&gt;&lt;FONT style="COLOR: blue"&gt;private&lt;/FONT&gt; &lt;FONT style="COLOR: teal"&gt;String&lt;/FONT&gt; _myProperty;&lt;/FONT&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;CODE&gt;&lt;FONT size=4&gt;&lt;FONT style="COLOR: blue"&gt;public&lt;/FONT&gt; &lt;FONT style="COLOR: teal"&gt;String&lt;/FONT&gt; MyProperty&lt;BR&gt;{&lt;BR&gt; &lt;FONT style="COLOR: blue"&gt;get&lt;/FONT&gt; { &lt;FONT style="COLOR: blue"&gt;return this&lt;/FONT&gt;._myProperty; }&lt;BR&gt; &lt;FONT style="COLOR: blue"&gt;set&lt;/FONT&gt; { &lt;FONT style="COLOR: blue"&gt;this&lt;/FONT&gt;._myProperty = &lt;FONT style="COLOR: blue"&gt;value&lt;/FONT&gt;; }&lt;BR&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Et voil&amp;#224; ce que le logiciel Reflector traduit &amp;#224; partir du code IL g&amp;#233;n&amp;#233;r&amp;#233; &amp;#224; la compilation :&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;FONT size=4&gt;&lt;FONT style="COLOR: blue"&gt;private&lt;/FONT&gt; &lt;FONT style="COLOR: green"&gt;string&lt;/FONT&gt; _myProperty;&lt;/FONT&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;CODE&gt;&lt;FONT size=4&gt;&lt;FONT style="COLOR: blue"&gt;public&lt;/FONT&gt; &lt;FONT style="COLOR: green"&gt;string&lt;/FONT&gt; MyProperty&lt;BR&gt;{&lt;BR&gt;  &lt;FONT style="COLOR: blue"&gt;get&lt;/FONT&gt;&lt;BR&gt;  {&lt;BR&gt;  &lt;FONT style="COLOR: blue"&gt;return this&lt;/FONT&gt;.&lt;FONT style="COLOR: green"&gt;_myProperty&lt;/FONT&gt;;&lt;BR&gt;  }&lt;BR&gt;  &lt;FONT style="COLOR: blue"&gt;set&lt;/FONT&gt;&lt;BR&gt;  {&lt;BR&gt;  &lt;FONT style="COLOR: blue"&gt;this&lt;/FONT&gt;.&lt;FONT style="COLOR: green"&gt;_myProperty&lt;/FONT&gt; = &lt;FONT style="COLOR: blue"&gt;value&lt;/FONT&gt;;&lt;BR&gt;  }&lt;BR&gt;}&lt;/FONT&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Vous remarquez que ce sont exactement les m&amp;#234;me lignes.&lt;BR&gt;Nous allons maintenant utiliser la simplification d'&amp;#233;criture de C#3.5 :&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;FONT size=4&gt;&lt;FONT style="COLOR: blue"&gt;public&lt;/FONT&gt; &lt;FONT style="COLOR: green"&gt;String&lt;/FONT&gt; MyProperty&lt;BR&gt;{&lt;BR&gt; &lt;FONT style="COLOR: blue"&gt;get&lt;/FONT&gt;;&lt;BR&gt; &lt;FONT style="COLOR: blue"&gt;set&lt;/FONT&gt;;&lt;BR&gt;}&lt;/FONT&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Il n'est d&amp;#233;sormais plus n&amp;#233;cessaire de cr&amp;#233;er l'attribut priv&amp;#233; ainsi que le contenu des m&amp;#233;thodes get et set de la propri&amp;#233;t&amp;#233;.&lt;BR&gt;Voil&amp;#224; ce que Reflector nous g&amp;#233;n&amp;#233;re &amp;#224; partir du code IL :&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;FONT size=4&gt;&lt;FONT style="COLOR: blue"&gt;public string&lt;/FONT&gt; MyProperty&lt;BR&gt;{&lt;BR&gt;  [&lt;FONT style="COLOR: green"&gt;CompilerGenerated&lt;/FONT&gt;]&lt;BR&gt;  &lt;FONT style="COLOR: blue"&gt;get&lt;/FONT&gt;&lt;BR&gt;  {&lt;BR&gt;  &lt;FONT style="COLOR: blue"&gt;return this&lt;/FONT&gt;.&lt;FONT style="COLOR: green"&gt;&lt;MYPROPERTY&gt;k__backingfield&lt;/FONT&gt;;&lt;BR&gt;  }&lt;BR&gt;  [&lt;FONT style="COLOR: green"&gt;CompilerGenerated&lt;/FONT&gt;]&lt;BR&gt;  &lt;FONT style="COLOR: blue"&gt;set&lt;/FONT&gt;&lt;BR&gt;  {&lt;BR&gt;  &lt;FONT style="COLOR: blue"&gt;this&lt;/FONT&gt;.&lt;FONT style="COLOR: green"&gt;&lt;MYPROPERTY&gt;k__BackingField&lt;/FONT&gt; = &lt;FONT style="COLOR: blue"&gt;value&lt;/FONT&gt;;&lt;BR&gt;  }&lt;BR&gt;}&lt;/FONT&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;L'attribut [&lt;FONT style="COLOR: green"&gt;CompilerGenerated&lt;/FONT&gt;] qui est rajout&amp;#233; par le compilateur indique que c'est lui-m&amp;#234;me (le compilateur) qui as cr&amp;#233;&amp;#233; le contenu de la m&amp;#233;thode. &lt;FONT style="COLOR: green"&gt;&lt;MYPROPERTY&gt;k__backingfield&lt;/FONT&gt; permet &amp;#224; la CLR de r&amp;#233;cup&amp;#233;rer ou modifier la valeur auquel fait r&amp;#233;f&amp;#233;rence la propri&amp;#233;t&amp;#233; &amp;#233;tant donn&amp;#233; que tout &amp;#224; &amp;#233;t&amp;#233; g&amp;#233;n&amp;#233;r&amp;#233; par le compilateur.&lt;/P&gt;
&lt;P&gt;Si vous ne connaissez pas Reflector, je vous conseille de jeter un coup d'oeil sur ce logiciel : &lt;A href="http://www.aisto.com/roeder/dotnet/" mce_href="http://www.aisto.com/roeder/dotnet/"&gt;http://www.aisto.com/roeder/dotnet/&lt;/A&gt;&lt;BR&gt;Autre lien : &lt;A href="http://www.blog-microsoft.fr"&gt;http://www.blog-microsoft.fr&lt;/A&gt;&lt;/P&gt;</description><pubDate>Sun, 23 Mar 2008 11:12:34 GMT</pubDate></item><item><title>Exemple de code : Convertion Explicite</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Exemple de code   Convertion Explicite/0/1894.aspx</link><description>&lt;P&gt;A la diff&amp;#233;rence de la &lt;A title="Exemple de code : Convertion implicite" href="http://www.blog-microsoft.fr/2008/03/21/exemple-de-code-convertion-implicite/" mce_href="http://www.blog-microsoft.fr/2008/03/21/exemple-de-code-convertion-implicite/"&gt;convertion implicite&lt;/A&gt;, la convertion explicite est obligatoire lors qu'il y a un risque de perte de donn&amp;#233;es. On utilise alors le mot clef &lt;STRONG&gt;explicit&lt;/STRONG&gt;, ainsi que le type de l'objet cible entre parenth&amp;#232;ses. Exemple :&lt;/P&gt;
&lt;P&gt;Prennons une classe &lt;FONT style="COLOR: teal"&gt;Euro&lt;/FONT&gt; et une classe &lt;FONT style="COLOR: teal"&gt;Dollar&lt;/FONT&gt; afin de faire des conversions :&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;FONT size=4&gt;&lt;FONT style="COLOR: blue"&gt;public class&lt;/FONT&gt; &lt;FONT style="COLOR: teal"&gt;Euro&lt;/FONT&gt;&lt;BR&gt;{&lt;BR&gt;  &lt;FONT style="COLOR: blue"&gt;public&lt;/FONT&gt; &lt;FONT color=#008080&gt;Single&lt;/FONT&gt; Value { &lt;FONT style="COLOR: blue"&gt;get&lt;/FONT&gt;; &lt;FONT style="COLOR: blue"&gt;set&lt;/FONT&gt;; }&lt;/FONT&gt;&lt;/CODE&gt;&lt;CODE&gt;&lt;FONT size=4&gt;&lt;FONT style="COLOR: blue"&gt;  public static explicit operator&lt;/FONT&gt; &lt;FONT style="COLOR: teal"&gt;Euro&lt;/FONT&gt;(&lt;FONT style="COLOR: teal"&gt;Dollar&lt;/FONT&gt; value)&lt;BR&gt;  {&lt;BR&gt;    &lt;FONT style="COLOR: blue"&gt;return new&lt;/FONT&gt; &lt;FONT style="COLOR: teal"&gt;Euro&lt;/FONT&gt;() { Value = value.Value * 0.6476f };&lt;BR&gt;  }&lt;BR&gt;}&lt;/FONT&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;CODE&gt;&lt;FONT size=4&gt;&lt;FONT style="COLOR: blue"&gt;public class&lt;/FONT&gt; &lt;FONT style="COLOR: teal"&gt;Dollar&lt;/FONT&gt;&lt;BR&gt;{&lt;BR&gt;  &lt;FONT style="COLOR: blue"&gt;public&lt;/FONT&gt; &lt;FONT color=#008080&gt;Single&lt;/FONT&gt; Value { &lt;FONT style="COLOR: blue"&gt;get&lt;/FONT&gt;; &lt;FONT style="COLOR: blue"&gt;set&lt;/FONT&gt;; }&lt;/FONT&gt;&lt;/CODE&gt;&lt;CODE&gt;&lt;FONT size=4&gt;&lt;FONT style="COLOR: blue"&gt;  public static explicit operator&lt;/FONT&gt; &lt;FONT style="COLOR: teal"&gt;Dollar&lt;/FONT&gt;(&lt;FONT style="COLOR: teal"&gt;Euro&lt;/FONT&gt; value)&lt;BR&gt;  {&lt;BR&gt;    &lt;FONT style="COLOR: blue"&gt;return new&lt;/FONT&gt; &lt;FONT style="COLOR: teal"&gt;Dollar&lt;/FONT&gt;() { Value = value.Value * 1.5435f };&lt;BR&gt;  }&lt;BR&gt;}&lt;/FONT&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;/CODE&gt;La m&amp;#233;thode permettant de faire la convertion explicite doit &amp;#234;tre marqu&amp;#233;e &lt;STRONG&gt;static&lt;/STRONG&gt; et on utilise les mots clefs &lt;STRONG&gt;explicit &lt;/STRONG&gt;et &lt;STRONG&gt;operator&lt;/STRONG&gt; :&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;FONT size=4&gt;&lt;FONT style="COLOR: blue"&gt;public static explicit operator&lt;/FONT&gt; &lt;FONT style="COLOR: red"&gt;Type d'arriv&amp;#233;e&lt;/FONT&gt;(&lt;FONT style="COLOR: red"&gt;Type de d&amp;#233;part&lt;/FONT&gt; value)&lt;BR&gt;{&lt;BR&gt;  Traitement de la convertion...&lt;BR&gt;}&lt;/FONT&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Voil&amp;#224; comment faire la convertion explicite :&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;FONT size=4&gt;&lt;FONT style="COLOR: teal"&gt;Euro&lt;/FONT&gt; euro = new &lt;FONT style="COLOR: teal"&gt;Euro&lt;/FONT&gt;() { Value = 15 };&lt;BR&gt;&lt;FONT style="COLOR: teal"&gt;Dollar&lt;/FONT&gt; dollar = (&lt;FONT style="COLOR: teal"&gt;Dollar&lt;/FONT&gt;)euro; &lt;FONT style="COLOR: green"&gt;// Convertion explicite&lt;/FONT&gt;&lt;BR&gt;&lt;FONT style="COLOR: teal"&gt;Console&lt;/FONT&gt;.WriteLine(euro.Value.ToString() + &lt;FONT style="COLOR: red"&gt;"&amp;#8364; = $"&lt;/FONT&gt; + dollar.Value.ToString());&lt;BR&gt;&lt;FONT style="COLOR: green"&gt;// Affiche : 15&amp;#8364; = $23.1525&lt;/FONT&gt;&lt;/FONT&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Lien MSDN : &lt;A href="http://msdn2.microsoft.com/fr-fr/library/xhbhezf4.aspx" mce_href="http://msdn2.microsoft.com/fr-fr/library/xhbhezf4.aspx"&gt;http://msdn2.microsoft.com/fr-fr/library/xhbhezf4.aspx&lt;/A&gt;&lt;BR&gt;Autre lien : &lt;A href="http://www.blog-microsoft.fr"&gt;http://www.blog-microsoft.fr&lt;/A&gt;&lt;/P&gt;</description><pubDate>Sat, 22 Mar 2008 10:03:23 GMT</pubDate></item><item><title>Exemple de code : Convertion implicite</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Exemple de code   Convertion implicite/0/1892.aspx</link><description> Introduction</description><pubDate>Fri, 21 Mar 2008 08:50:35 GMT</pubDate></item><item><title>Exemple de code : LINQ to XML</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Exemple de code   LINQ to XML/0/1891.aspx</link><description>&lt;P&gt;&lt;A href="http://msdn2.microsoft.com/fr-fr/library/bb387098.aspx"&gt;&lt;/A&gt; &lt;/P&gt;</description><pubDate>Thu, 20 Mar 2008 10:07:58 GMT</pubDate></item><item><title>Exemple de code : Méthodes d'extension</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Exemple de code   Méthodes d extension/0/1890.aspx</link><description>Comment fallait-il faire pour cr&amp;#233;er une m&amp;#233;thode bien sp&amp;#233;cifique &amp;#224; un type de donn&amp;#233;es bien pr&amp;#233;cis ? &lt;BR&gt;
&lt;P&gt;Par exemple, nous pouvons cr&amp;#233;er une m&amp;#233;thode dans la classe souhait&amp;#233; et appliquer un traitement &amp;#224; un objet. Ok c&amp;#8217;est bien, mais lorsque nous n&amp;#8217;avons pas acc&amp;#232;s au code source de la classe en elle-m&amp;#234;me me diriez-vous, comme les classes du framework. Nous cr&amp;#233;ons simplement une m&amp;#233;thode static qui prend en param&amp;#232;tre une valeur de ce type, qui applique un traitement et retourne le r&amp;#233;sultat.&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;Mais comme vous avez d&amp;#233;j&amp;#224; vu pas mal d&amp;#8217;articles sur les nouveaut&amp;#233;s du C#3, un simple rappel sur les m&amp;#233;thodes d&amp;#8217;extention s&amp;#8217;impose. En effet, gr&amp;#226;ce &amp;#224; cette nouveaut&amp;#233;, il suffit de cr&amp;#233;er une m&amp;#233;thode static, dans une classe static, qui prendra en param&amp;#232;tre une valeur de ce type, pr&amp;#233;c&amp;#233;d&amp;#233; du mot clef this , d&amp;#8217;appliquer un traitement et d&amp;#8217;en retourner le r&amp;#233;sultat.&lt;BR&gt;Cette m&amp;#233;thode sera disponible depuis n&amp;#8217;importe quel point de votre code sur le type dont vous avez &amp;#233;crit la m&amp;#233;thode.&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;CODE&gt;&lt;FONT style="COLOR: blue"&gt;class&lt;/FONT&gt; &lt;FONT style="COLOR: teal"&gt;Program&lt;/FONT&gt;&lt;BR&gt;{&lt;BR&gt;&lt;FONT style="COLOR: blue"&gt;static void&lt;/FONT&gt; Main(&lt;FONT style="COLOR: blue"&gt;string&lt;/FONT&gt;[] args)&lt;BR&gt;{&lt;BR&gt;&lt;FONT style="COLOR: teal"&gt;Int32&lt;/FONT&gt; i = 5;&lt;BR&gt;&lt;FONT style="COLOR: teal"&gt;Console&lt;/FONT&gt;.WriteLine(i.Square());&lt;BR&gt;&lt;FONT style="COLOR: green"&gt;// ==&gt; 25&lt;/FONT&gt;&lt;BR&gt;&lt;FONT style="COLOR: teal"&gt;Console&lt;/FONT&gt;.WriteLine((5).Square());&lt;BR&gt;&lt;FONT style="COLOR: green"&gt;// ==&gt; 25&lt;/FONT&gt;&lt;/CODE&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;CODE&gt;&lt;FONT style="COLOR: teal"&gt;String&lt;/FONT&gt; s = &lt;FONT style="COLOR: red"&gt;&amp;#8220;Hello&amp;#8221;&lt;/FONT&gt;;&lt;BR&gt;&lt;FONT style="COLOR: teal"&gt;Console&lt;/FONT&gt;.WriteLine(s.InversChars());&lt;BR&gt;&lt;FONT style="COLOR: green"&gt;// ==&gt; olleH&lt;/FONT&gt;&lt;BR&gt;&lt;FONT style="COLOR: teal"&gt;Console&lt;/FONT&gt;.WriteLine(&lt;FONT style="COLOR: red"&gt;&amp;#8220;Hello&amp;#8221;&lt;/FONT&gt;.InversChars());&lt;BR&gt;&lt;FONT style="COLOR: green"&gt;// ==&gt; olleH&lt;/FONT&gt;&lt;BR&gt;}&lt;BR&gt;&lt;/CODE&gt;&lt;CODE&gt;}&lt;/CODE&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;CODE&gt;&lt;FONT style="COLOR: blue"&gt;static class&lt;/FONT&gt; &lt;FONT style="COLOR: teal"&gt;ExtendMethods&lt;/FONT&gt;&lt;BR&gt;{&lt;BR&gt;&lt;FONT style="COLOR: blue"&gt;public static&lt;/FONT&gt; &lt;FONT style="COLOR: teal"&gt;Int32&lt;/FONT&gt; Square(&lt;FONT style="COLOR: blue"&gt;this&lt;/FONT&gt; &lt;FONT style="COLOR: teal"&gt;Int32&lt;/FONT&gt; integer)&lt;BR&gt;{&lt;BR&gt;&lt;FONT style="COLOR: blue"&gt;return&lt;/FONT&gt; integer * integer;&lt;BR&gt;}&lt;/CODE&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;CODE&gt;&lt;FONT style="COLOR: blue"&gt;public static&lt;/FONT&gt; &lt;FONT style="COLOR: teal"&gt;String&lt;/FONT&gt; InversChars(&lt;FONT style="COLOR: blue"&gt;this&lt;/FONT&gt; &lt;FONT style="COLOR: teal"&gt;String&lt;/FONT&gt; s)&lt;BR&gt;{&lt;BR&gt;&lt;FONT style="COLOR: teal"&gt;String&lt;/FONT&gt; tmp = &lt;FONT style="COLOR: red"&gt;&amp;#8220;&amp;#8221;&lt;/FONT&gt;;&lt;BR&gt;&lt;FONT style="COLOR: blue"&gt;for&lt;/FONT&gt; (Int32 i = s.Length - 1; i &gt;= 0; i&amp;#8211;)&lt;BR&gt;tmp += s[i];&lt;BR&gt;&lt;FONT style="COLOR: blue"&gt;return&lt;/FONT&gt; tmp;&lt;BR&gt;}&lt;BR&gt;}&lt;/CODE&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;Lien MSDN : &lt;A title="Lien MSDN : M&amp;#233;thodes d'extention" href="http://msdn2.microsoft.com/fr-fr/library/bb383977.aspx" target=_blank&gt;&lt;FONT color=#2e8fc6&gt;http://msdn2.microsoft.com/fr-fr/library/bb383977.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;Autre lien : &lt;A href="http://www.blog-microsoft.fr"&gt;http://www.blog-microsoft.fr&lt;/A&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;/P&gt;</description><pubDate>Wed, 19 Mar 2008 08:52:43 GMT</pubDate></item><item><title>Exemple de code : LINQ to Object</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Exemple de code   LINQ to Object/0/1889.aspx</link><description>&lt;DIV class=entry&gt;
&lt;P&gt;LINQ (&lt;STRONG&gt;Language-Integrated Query&lt;/STRONG&gt;) est une technologie incluse dans le framework 3 permettant d&amp;#8217;&amp;#233;crire des requ&amp;#234;tes directement dans le language C#, VB.NET, ou tout autre langage .NET. Il existe de multiples tournures de LINQ, pour des sources de donn&amp;#233;es diff&amp;#233;rentes (LINQ to Object, LINQ to XML, LINQ to SQL&amp;#8230;)&lt;/P&gt;
&lt;P&gt;Dans cet exemple nous allons voir comment faire des requ&amp;#234;tes sur des collections d&amp;#8217;objets.&lt;BR&gt;&lt;CODE&gt;&lt;BR&gt;&lt;FONT style="COLOR: green"&gt;// Collection de d&amp;#233;part&lt;/FONT&gt;&lt;BR&gt;&lt;FONT style="COLOR: teal"&gt;List&lt;/FONT&gt;&lt;&lt;FONT style="COLOR: teal"&gt;int32&lt;/FONT&gt;&gt; lst = &lt;FONT style="COLOR: blue"&gt;new&lt;/FONT&gt; &lt;FONT style="COLOR: teal"&gt;List&lt;/FONT&gt;&lt;&lt;FONT style="COLOR: teal"&gt;int32&lt;/FONT&gt;&gt;() { 15, 14, 10, 1, 15, 5, 4, 4, 19, 100 };&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;CODE&gt;&lt;FONT style="COLOR: green"&gt;// Cr&amp;#233;ation d&amp;#8217;une nouvelle collection&lt;BR&gt;// . Nous souhaitons r&amp;#233;cup&amp;#233;rer uniquement les valeurs&lt;BR&gt;// . distinctes de la collection de d&amp;#233;part sup&amp;#233;rieures &amp;#224; 10&lt;BR&gt;// . dans l&amp;#8217;ordre d&amp;#233;croissant&lt;/FONT&gt;&lt;BR&gt;&lt;FONT style="COLOR: teal"&gt;IEnumerable&lt;/FONT&gt;&lt;&lt;FONT style="COLOR: teal"&gt;int32&lt;/FONT&gt;&gt; tmp = &lt;FONT style="COLOR: blue"&gt;from&lt;/FONT&gt; value &lt;FONT style="COLOR: blue"&gt;in&lt;/FONT&gt; lst.Distinct&lt;&lt;FONT style="COLOR: teal"&gt;int32&lt;/FONT&gt;&gt;()&lt;BR&gt;                     &lt;FONT style="COLOR: blue"&gt;where&lt;/FONT&gt; value &gt; 10&lt;BR&gt;                     &lt;FONT style="COLOR: blue"&gt;orderby&lt;/FONT&gt; value &lt;FONT style="COLOR: blue"&gt;descending&lt;/FONT&gt;&lt;BR&gt;                     &lt;FONT style="COLOR: blue"&gt;select&lt;/FONT&gt; value;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;CODE&gt;&lt;FONT style="COLOR: green"&gt;// On affiche les r&amp;#233;sultats&lt;/FONT&gt;&lt;BR&gt;&lt;FONT style="COLOR: blue"&gt;foreach&lt;/FONT&gt; (&lt;FONT style="COLOR: teal"&gt;int32&lt;/FONT&gt; i &lt;FONT style="COLOR: blue"&gt;in&lt;/FONT&gt; tmp)&lt;BR&gt;      &lt;FONT style="COLOR: teal"&gt;Console&lt;/FONT&gt;.WriteLine(i);&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE&gt;&lt;/CODE&gt;&lt;CODE&gt;&lt;FONT style="COLOR: green"&gt;// R&amp;#233;sultat :&lt;BR&gt;// . 100&lt;BR&gt;// . 19&lt;BR&gt;// . 15&lt;BR&gt;// . 14&lt;/FONT&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;Lien MSDN : &lt;A title="Lien MSDN : LINQ" href="http://msdn2.microsoft.com/fr-fr/library/bb397676.aspx" target=_blank&gt;&lt;FONT color=#2e8fc6&gt;http://msdn2.microsoft.com/fr-fr/library/bb397676.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;Autre lien : &lt;A href="http://www.blog-microsoft.fr"&gt;http://www.blog-microsoft.fr&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Bient&amp;#244;t d'autres exemples de code.&lt;/P&gt;&lt;/DIV&gt;</description><pubDate>Tue, 18 Mar 2008 22:32:17 GMT</pubDate></item><item><title>Styles et Templates en WPF</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Styles et Templates en WPF/0/1886.aspx</link><description>Article d'introduction a l'utilisation de styles et templates avec WPF.</description><pubDate>Fri, 14 Mar 2008 15:54:14 GMT</pubDate></item><item><title>Workshop Ajax.net aux TechDays 2008</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Workshop Ajaxdotnet aux TechDays 2008/0/1881.aspx</link><description>&lt;P style="MARGIN: 0cm 0cm 10pt; TEXT-INDENT: 35.4pt; TEXT-ALIGN: justify" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Je vous pr&amp;#233;sente dans cette article un Workshop qui nous a &amp;#233;t&amp;#233; propos&amp;#233; au Techdays sur la technologie Ajax.net&lt;/FONT&gt;&lt;/P&gt;</description><pubDate>Thu, 06 Mar 2008 15:05:37 GMT</pubDate></item><item><title>Visual Studio 2008 : Les nouveautés de l’accès aux données avec LINQ !</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Visual Studio 2008   Les nouveautés de l’accès aux données avec LINQ !/0/1856.aspx</link><description>&lt;P&gt;&lt;SPAN lang=FR&gt;Cet article a pour but de vous expliquer les nouvelles techniques d'acc&amp;#232;s aux donn&amp;#233;es &amp;#224; l'aide du Framework LINQ (Langage INtegrated Query). Comme vous l'apprendrez au cours de cette initiation, LINQ va vous permettre, assez simplement, d'effectuer des requ&amp;#234;tes sur des bases de donn&amp;#233;es, des DataSets, mais aussi directement sur des objets et bien d'autres source de donn&amp;#233;es. Ici sont expos&amp;#233;s les concepts de base &amp;#224; comprendre afin d'utiliser au mieux ce nouvel outil dans la conception de vos applications.&lt;BR&gt; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P align=center&gt; &lt;/P&gt;</description><pubDate>Tue, 11 Dec 2007 09:25:05 GMT</pubDate></item><item><title>Unicode et .NET</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Unicode et dotNET/0/1720.aspx</link><description>&lt;P&gt;Vous apprendrez &amp;#224; conna&amp;#238;tre les significations de charset, Unicode et UTF et saurez comment int&amp;#233;grer ces caract&amp;#232;res Unicode dans vos applications dans le but de les rendre internationales et normalis&amp;#233;es.&lt;/P&gt;</description><pubDate>Thu, 16 Nov 2006 11:03:46 GMT</pubDate></item><item><title>Developper une application Windows quand on ne connait pas la programmation.</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Developper une application Windows quand on ne connait pas la programmationdot/0/1614.aspx</link><description>&lt;P&gt;Cette article guidera les d&amp;#233;butants et les aidera a faire leurs premiers pas dans le monde de la programmation d'application Windows &amp;#224; l'aide de Visual Studio C# Express.&lt;/P&gt;</description><pubDate>Fri, 31 Mar 2006 11:52:36 GMT</pubDate></item><item><title>[Visual Studio 2005] La compression</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/[Visual Studio 2005] La compression/0/1565.aspx</link><description>D&amp;#233;monstration de la compression gr&amp;#226;ce au Framework 2.0 et de l'utilisation de BZip.</description><pubDate>Fri, 23 Dec 2005 18:37:11 GMT</pubDate></item><item><title>La compression/décompression ZIP en c# (avec SharpZipLib)</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/La compression décompression ZIP en csharp (avec SharpZipLib)/0/1553.aspx</link><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;Cet article propose d'apprendre tr&amp;#232;s simplement comment g&amp;#233;rer la compression de fichier au sein de votre projet Visual Studio DotNet.&lt;/P&gt;</description><pubDate>Fri, 21 Oct 2005 12:21:44 GMT</pubDate></item><item><title>Animation GDI+ utilisant des Threads</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Animation GDI+ utilisant des Threads/0/1495.aspx</link><description>&lt;P&gt;La plupart des applications Windows que vous rencontrez pr&amp;#233;sentent quelques animations de l&amp;#8217;interface aux r&amp;#233;actions de l&amp;#8217;utilisateur ou non. Prenez par exemple Internet Explorer et le petit drapeau Windows en haut &amp;#224; droite qui tourne montrant que l&amp;#8217;application acc&amp;#232;de &amp;#224; Internet.&lt;/P&gt;
&lt;P&gt;Les animations sont un agr&amp;#233;ment et ne proposent g&amp;#233;n&amp;#233;ralement aucune fonctionnalit&amp;#233;. Cependant ils permettent souvent de mettre en valeur des parties du programme et de rendre plus conviviale votre application.&lt;/P&gt;
&lt;P&gt;Dans cet article, je vais vous pr&amp;#233;senter comment r&amp;#233;aliser une animation en C# en utilisant les techniques GDI+ et la programmation des Threads.&lt;/P&gt;</description><pubDate>Thu, 12 May 2005 15:47:20 GMT</pubDate></item><item><title>IDE VS 2005 pour les développeurs C#</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/IDE VS 2005 pour les développeurs Csharp/0/1474.aspx</link><description>&lt;P align=justify&gt;Nous allons voir dans cet article ce que va apporte Visual Studio 2005 pour les d&amp;#233;veloppeurs CSharp en entreprise, la future version de Visual Studio qui sortira probablement en novembre 2005. &lt;/P&gt;</description><pubDate>Mon, 28 Feb 2005 00:01:40 GMT</pubDate></item><item><title>Présentation du Data Access Application Block de l'entreprise Library</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Présentation du Data Access Application Block de l entreprise Library/0/1452.aspx</link><description>&lt;P align=justify&gt;Nous allons voir dans cet article la nouvelle version du Data Access Application Block fournit avec le package Entreprise Library regroupant plusieurs applications blocks.&lt;/P&gt;</description><pubDate>Sat, 05 Feb 2005 20:53:00 GMT</pubDate></item><item><title>Interopérabilité COM / .Net</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Interopérabilité COM   dotNet/0/1396.aspx</link><description>Cet article a pour but de pr&amp;#233;senter les technologies permettant l'int&amp;#233;rop&amp;#233;rabilit&amp;#233; entre les environements COM et .Net. Il se pr&amp;#233;sente sous la forme d'un guide expliquant pas &amp;#224; pas comment faire communiquer des objets .Net et COM (dans les 2 sens). Les langages employ&amp;#233;s pour l'&amp;#233;criture des exemples sont C#, C++ et dans une moindre mesure VBScript. L'ensemble du code source sur lequel se base cet article est disponible au &lt;A href="http://www.supinfo-projects.com/fr/2005/interop%5Fcom%5Fdotnet/interop_src_fr.zip"&gt;t&amp;#233;l&amp;#233;chargement&lt;/A&gt;. Afin de ne pas surcharger l'archive, les r&amp;#233;pertoires "debug" et "release" des diff&amp;#233;rents projets ont &amp;#233;t&amp;#233; retir&amp;#233;, il y a donc des probl&amp;#232;mes de r&amp;#233;f&amp;#233;rences vers des assemblies RCW que vous aurez &amp;#224; r&amp;#233;parer ainsi que des enregistrement de composants .Net et COM &amp;#224; effectuer. Au fur et &amp;#224; mesure de cet article, vous&amp;nbsp;apprendrez (entre autre)&amp;nbsp;corriger ces probl&amp;#232;mes. A la fin de la lecture de ce document, vous serez capable de cr&amp;#233;er des applications mixtes en C# et C++.</description><pubDate>Tue, 14 Dec 2004 11:06:32 GMT</pubDate></item><item><title>Utiliser Microsoft Speech SDK</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Utiliser Microsoft Speech SDK/0/1385.aspx</link><description>&lt;P&gt;N&amp;#8217;avez-vous jamais pens&amp;#233; &amp;#224; utiliser la voix comme moyen de contr&amp;#244;le dans vos applications ? C&amp;#8217;est ce que vous propose le kit de d&amp;#233;veloppement Microsoft Speech SDK. Il est constitu&amp;#233; principalement de deux outils. Le premier est l&amp;#8217;outil de synth&amp;#232;se vocale (&amp;#171; text-to-speech &amp;#187;), qui permet de &amp;#171; lire &amp;#187; un texte &amp;#224; haute voix. Le second est l&amp;#8217;outil de reconnaissance vocale, qui identifie les mots prononc&amp;#233;s par l&amp;#8217;utilisateur.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Afin de montrer les fonctionnalit&amp;#233;s de ce SDK (Software Development Kit), nous allons prendre, le long de cet article, l&amp;#8217;exemple d&amp;#8217;une application sans aucun bouton ni aucun autre moyen d&amp;#8217;interface que la voix. Nous allons consid&amp;#233;rer une fen&amp;#234;tre avec trois images. Le but de notre application sera de pouvoir s&amp;#233;lectionner par la voix ces images et de les positionner comme nous le souhaitons.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;De plus, par la commande vocale &amp;#171; position &amp;#187;,&lt;SPAN&gt;  &lt;/SPAN&gt;l&amp;#8217;application nous donneras les coordonn&amp;#233;es de l&amp;#8217;image s&amp;#233;lectionn&amp;#233;e, et nous utiliserons ainsi l&amp;#8217;outil de synth&amp;#232;se vocale.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Le d&amp;#233;veloppement se fera dans l&amp;#8217;environnement Visual Studio .NET en C#.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;I&gt;Remarque : &lt;/I&gt;&lt;/B&gt;actuellement, le SDK ne supporte que l&amp;#8217;anglais le japonais et le chinois comme langage. C&amp;#8217;est pourquoi les mots utilis&amp;#233;s dans cet exemple seront en anglais.&lt;/P&gt;</description><pubDate>Tue, 30 Nov 2004 16:15:21 GMT</pubDate></item><item><title>Stockage des configurations utilisateurs en .NET</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Stockage des configurations utilisateurs en dotNET/0/1382.aspx</link><description>&lt;P&gt;&lt;SPAN lang=FR&gt;&lt;FONT face=Arial&gt;Nombreux sont ceux parmi vous &amp;#224; avoir cr&amp;#233;e des applications Windows en .NET. Dans la plupart des cas vos applications sont personnalisables et &amp;#224; partir de ce moment se pose le probl&amp;#232;me de la sauvegarde des pr&amp;#233;f&amp;#233;rences de l&amp;#8217;utilisateur. Vous connaissez certainement le fichier de configuration &amp;#171; &lt;I&gt;nom_application.exe.config&lt;/I&gt; &amp;#187; qui permet d&amp;#8217;enregistrer des donn&amp;#233;es de l&amp;#8217;application, mais comme vous le savez probablement ce fichier est accessible &amp;#224; tout utilisateur qui peut lancer l&amp;#8217;application.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN lang=FR&gt;&lt;FONT face=Arial&gt;Dans cet article nous allons &amp;#233;tudier les solutions offertes par le Framework .NET 1.1 pour nous permettre de stocker les pr&amp;#233;f&amp;#233;rences des diff&amp;#233;rents utilisateurs d&amp;#8217;une machine sans avoir &amp;#224; se soucier de savoir si cet utilisateur &amp;#224; la permission d&amp;#8217;&amp;#233;criture sur disque.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;</description><pubDate>Wed, 24 Nov 2004 12:56:44 GMT</pubDate></item><item><title>Programmation direct3D en C# </title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Programmation direct3D en Csharp /0/238.aspx</link><description>Cet article a pour but d'initier l'internaute &amp;#224; la programmation direct3D en C# et ainsi lui fournir les comp&amp;#233;tences de base pour programmer un logiciel avec Direct3D. Comp&amp;#233;tences qui seront concr&amp;#233;tis&amp;#233;es avec l'aide d'exemples qui seront r&amp;#233;alis&amp;#233;s tout au long de l'apprentissage.</description><pubDate>Tue, 31 Aug 2004 11:04:49 GMT</pubDate></item><item><title>C# et Microsoft Agent</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Csharp et Microsoft Agent/0/205.aspx</link><description>Cet article &amp;#224; pour but de vous expliquer comment utiliser Microsoft Agent dans vos applications .Net. </description><pubDate>Mon, 19 Apr 2004 19:54:42 GMT</pubDate></item><item><title>La cryptographie avec .NET</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/La cryptographie avec dotNET/0/194.aspx</link><description>La cryptographie avec .NET</description><pubDate>Thu, 05 Feb 2004 14:27:16 GMT</pubDate></item><item><title>Trouver les informations sur l'adresse IP</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Trouver les informations sur l adresse IP/0/190.aspx</link><description>Parfois, il est n&amp;#233;cessaire que votre application connaisse les informations de l'adresse IP de la machine sur laquelle elle est en cours d'ex&amp;#233;cution. Dans un environnement de Windows il y a plusieurs mani&amp;#232;res de trouver ces informations. Cet article montre trois mani&amp;#232;res diff&amp;#233;rentes d'accomplir cette t&amp;#226;che. </description><pubDate>Fri, 30 Jan 2004 13:49:15 GMT</pubDate></item><item><title>Créer une assemblée .NET</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Créer une assemblée dotNET/0/185.aspx</link><description>Nous allons voir comment cr&amp;#233;er simplement votre propre assembl&amp;#233;e. Le but de cet article est d&amp;#8217;&amp;#234;tre pragmatique, nous &amp;#233;tudierons un peu plus les assembl&amp;#233;es dans un prochain article.</description><pubDate>Tue, 13 Jan 2004 12:10:21 GMT</pubDate></item><item><title>Accès à la base de registre</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Accès à la base de registre/0/170.aspx</link><description>De nombreux r&amp;#233;glages de Windows et d'applications sont param&amp;#233;trables dans la base de registres, celle-ci permet donc de centraliser la configuration des applications. De plus lorsque un fichier de configuration se trouve dans le dossier racine de votre application, votre logiciel risque de ne pas avoir acc&amp;#232;s &amp;#224; celui-ci en mode utilisateur.La base de registres offre non seulement la possibilit&amp;#233; de param&amp;#233;trer la machine, mais permet &amp;#233;galement que chaque utilisateur dispose de sa propre configurati</description><pubDate>Fri, 12 Dec 2003 09:47:12 GMT</pubDate></item><item><title>Base de données XML avec .NET</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Base de données XML avec dotNET/0/166.aspx</link><description>Dans ce document, je vais vous pr&amp;#233;senter comment utilis&amp;#233; le formatage XML de donn&amp;#233;es pour cr&amp;#233;er une base de donn&amp;#233;es. Les fichiers XML sont de plus en plus utilis&amp;#233;s comme stockage pour des donn&amp;#233;es peu nombreuses telles que les configurations d&amp;#8217;application. Voyez par exemple les fichiers &amp;#171; .config &amp;#187; qu&amp;#8217;utilise abondamment Visual Studio.</description><pubDate>Thu, 20 Nov 2003 11:33:04 GMT</pubDate></item><item><title>Utilisation de RSS avec C#</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Utilisation de RSS avec Csharp/0/160.aspx</link><description>RSS peut vouloir dire "Rich Site Summary","RDF Site Summary", "Really Simple Syndication" ou quelque chose d'autre selon votre point de vue. Les deux variantes majeures incluent une repr&amp;#233;sentation bas&amp;#233;e sur la sp&amp;#233;cification RDF (RSS version 0.9 et 1.0) et une non soumise &amp;#224; la sp&amp;#233;cification RDF XML (RSS version 0.91, 0.92, 0.93, 0.94 et 2.0).RSS est une description de metadata et un format extensible, universel et l&amp;#233;ger de syndication.RSS est une application de XML. Il est actuellement employ&amp;#233; po</description><pubDate>Wed, 05 Nov 2003 16:58:41 GMT</pubDate></item><item><title>Débuter avec les Process en c#</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Débuter avec les Process en csharp/0/148.aspx</link><description>Cet article a pour but de montrer comment une application peut interagir avec les processus du syst&amp;#232;me &amp;#224; partir duquel il est ex&amp;#233;cut&amp;#233;. Nous utiliserons les objets Process issus de la classe System.Diagnostics. using System.Diagnostics;</description><pubDate>Sat, 18 Oct 2003 18:56:46 GMT</pubDate></item><item><title>WMI : Windows Management Instrumentation</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/WMI   Windows Management Instrumentation/0/143.aspx</link><description>Dans cet article nous allons voir comment utilis&amp;#233; les services WMI (Windows Management Instrumentation) en .NET.</description><pubDate>Sun, 12 Oct 2003 08:20:00 GMT</pubDate></item><item><title>Programmation réseau en C#</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Programmation réseau en Csharp/0/124.aspx</link><description>Dans ce document, nous allons aborder les techniques de base de la programmation r&amp;#233;seau, r&amp;#233;seau signifiant ici aussi bien r&amp;#233;seau local que r&amp;#233;seau Internet. Nous allons aussi apprendre &amp;#224; faire communiquer deux machines en utilisant le protocole TCP/IP, le protocole retenu par Internet.</description><pubDate>Sun, 21 Sep 2003 00:00:00 GMT</pubDate></item><item><title>La sérialisation</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/La sérialisation/0/119.aspx</link><description>La s&amp;#233;rialisation est le processus qui permet de convertir un objet sous une forme facilement transportable, comme par exemple un fichier. L&amp;#8217;op&amp;#233;ration inverse, qui consiste &amp;#224; reconstruire l&amp;#8217;objet &amp;#224; partir du fichier se nomme la d&amp;#233;s&amp;#233;rialisation.</description><pubDate>Wed, 03 Sep 2003 00:00:00 GMT</pubDate></item><item><title>Programmer OpenGL en CSharp</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Programmer OpenGL en CSharp/0/104.aspx</link><description>Cet article a pour but de vous pr&amp;#233;senter une fa&amp;#231;on de programmer en OpenGL avec .NET ; il s&amp;#8217;adresse &amp;#224; ceux connaissant d&amp;#233;j&amp;#224; l&amp;#8217;OpenGL et souhaitant programmer en C#, ou &amp;#233;ventuellement dans un autre langage .NET.</description><pubDate>Sat, 30 Aug 2003 00:00:00 GMT</pubDate></item><item><title>Impressions en C#</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Impressions en Csharp/0/62.aspx</link><description>Cet article a pour but de vous &amp;#233;clairer sur l&amp;#8217;impression de documents en C#.</description><pubDate>Sat, 23 Aug 2003 00:00:00 GMT</pubDate></item><item><title>WinTools : Exécutez vos tâches d'administration</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/WinTools   Exécutez vos tâches d administration/0/58.aspx</link><description>WinTools est une librairie qui va vous permettre d&amp;#8217;ex&amp;#233;cuter des t&amp;#226;ches plus ou moins diverses concernant l&amp;#8217;administration de votre serveur Windows 2000 ou 2003.</description><pubDate>Sat, 02 Aug 2003 00:00:00 GMT</pubDate></item><item><title>AnyTechLib</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/AnyTechLib/0/57.aspx</link><description>Une solution pour g&amp;#233;rer vos DVDs, CDs ... enfin tout ce que vous voulez.</description><pubDate>Tue, 29 Jul 2003 00:00:00 GMT</pubDate></item><item><title>Drag and drop dans une application Windows</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Drag and drop dans une application Windows/0/56.aspx</link><description>Le but de cet article est de comprendre comment utiliser le drag and drop dans une application de type windowsApp..En effet nous allons voir comment faire glisser des &amp;#233;l&amp;#233;ments contenus dans une listbox vers une autre. &lt;?XML:NAMESPACE PREFIX = O /&gt;&lt;O:P&gt; &lt;/O:P&gt;
&lt;P class=MsoNormal&gt;En premier lieu, vous devez cr&amp;#233;er un nouveau projet C# pour cr&amp;#233;er une nouvelle Windows application que vous nommerez DragDrop. &lt;O:P&gt; &lt;/P&gt;&lt;/O:P&gt;</description><pubDate>Mon, 28 Jul 2003 00:00:00 GMT</pubDate></item><item><title>Les Threads en C#</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Les Threads en Csharp/0/55.aspx</link><description>Un thread est un processus que vous pouvez lancer dans un programme, vous pouvez en avoir autant que vous voulez dans la limite des capacit&amp;#233;s de votre machine. Avec un programme simple, il n&amp;#8217;y a qu&amp;#8217;une m&amp;#233;thode qui peut s&amp;#8217;ex&amp;#233;cuter &amp;#224; la fois mais gr&amp;#226;ce aux threads il est possible d&amp;#8217;ex&amp;#233;cuter des codes diff&amp;#233;rents simultan&amp;#233;ment.</description><pubDate>Mon, 21 Jul 2003 00:00:00 GMT</pubDate></item><item><title>Lire les metadonnées EXIF</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Lire les metadonnées EXIF/0/51.aspx</link><description>Le format EXIF (Exchangeable Image File) est une sp&amp;#233;cification internationale qui permet aux entreprises d'imagerie d'encoder des m&amp;#233;ta donn&amp;#233;es dans les en-t&amp;#234;tes ou segments d'application d'un fichier&amp;nbsp;JPEG. Ces m&amp;#233;ta donn&amp;#233;es comprennent des informations sur la vitesse de l'obturateur, son ouverture, ainsi que la date et l'heure de la prise des images. </description><pubDate>Thu, 03 Jul 2003 00:00:00 GMT</pubDate></item><item><title>ListControl et données.</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/ListControl et donnéesdot/0/38.aspx</link><description>Lorsque vous travaillez avec une base de donn&amp;#233;es et que vous faites du design de site Internet ou d&amp;#8217;application Windows, vous &amp;#234;tes tr&amp;#232;s souvent amen&amp;#233; &amp;#224; utiliser des contr&amp;#244;les tel que les ListBox ou DropDownList</description><pubDate>Wed, 18 Jun 2003 00:00:00 GMT</pubDate></item><item><title>Les expressions régulières en c#</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Les expressions régulières en csharp/0/45.aspx</link><description>Nous allons tout d&amp;#8217;abord commencer par un rappel sur les expressions r&amp;#233;guli&amp;#232;res. Si vous d&amp;#233;couvrez les expressions r&amp;#233;guli&amp;#232;res, ne vous inqui&amp;#233;tez pas, vous devriez mieux comprendre au fur et &amp;#224; mesure votre progression dans cet article gr&amp;#226;ce aux exemples.</description><pubDate>Sun, 25 May 2003 00:00:00 GMT</pubDate></item><item><title>Spaceleft V2</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/Spaceleft V2/0/44.aspx</link><description>Cet article est la notice d'utilisation de l'utilitaire Spaceleft V2 t&amp;#233;l&amp;#233;chargeable sur le site du labo dotnet.</description><pubDate>Wed, 21 May 2003 00:00:00 GMT</pubDate></item><item><title>DirectX 9</title><category>C#</category><link>http://www.labo-dotnet.com/articles/Csharp/DirectX 9/0/39.aspx</link><description>Cet article a pour but de pr&amp;#233;senter au lecteur le d&amp;#233;veloppement d'un projet utilisant la technologie DirectX 9. Cette derni&amp;#232;re version de DirectX a la particularit&amp;#233; de s'int&amp;#233;grer dans l'IDE de Visual Studio .Net. En effet, dans le cadre d'un d&amp;#233;veloppement dans l'environnement .Net et ce sur Visual Studio, il sera plus facile de d&amp;#233;velopper en utilisant DirectX... On parlera alors du DirectX Manag&amp;#233;.</description><pubDate>Wed, 07 May 2003 00:00:00 GMT</pubDate></item></channel></rss>