<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C#</title><link>http://blogs.microsoft.fr/mitsufu/category/305.aspx</link><description>Centre de développement C#</description><managingEditor>Mitsu Furuta</managingEditor><dc:language>fr-FR</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>Mitsu Furuta</dc:creator><title>Interview d’Antoine Cote, responsable du développement du designer de DLinq </title><link>http://blogs.microsoft.fr/mitsufu/archive/2006/10/13/50000.aspx</link><pubDate>Fri, 13 Oct 2006 22:48:00 GMT</pubDate><guid>http://blogs.microsoft.fr/mitsufu/archive/2006/10/13/50000.aspx</guid><wfw:comment>http://blogs.microsoft.fr/mitsufu/comments/50000.aspx</wfw:comment><comments>http://blogs.microsoft.fr/mitsufu/archive/2006/10/13/50000.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blogs.microsoft.fr/mitsufu/comments/commentRss/50000.aspx</wfw:commentRss><trackback:ping>http://blogs.microsoft.fr/mitsufu/services/trackbacks/50000.aspx</trackback:ping><description>&lt;P&gt;J'ai eu la chance et l'honneur lors de mon dernier passage &amp;#224; Redmond de faire une&amp;nbsp;rencontre tr&amp;#232;s int&amp;#233;ressante.&lt;BR&gt;Antoine Cote est responsable du d&amp;#233;veloppemet du designer de DLinq. Cerise sur le gateau, l'interview est en fran&amp;#231;ais puisqu'Antoine est...Qu&amp;#233;b&amp;#233;quois !&lt;BR&gt;Le designer de DLinq offre une fonctionnalit&amp;#233; d&amp;#233;cisive dans la productivit&amp;#233;&amp;nbsp;qu'apportera DLinq.&lt;/P&gt;
&lt;P&gt;Bonne lecture &amp;#224; tous,&lt;/P&gt;
&lt;P&gt;Mitsu&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;A href="http://www.microsoft.com/france/vision/db/msdn/P00974/"&gt;http://www.microsoft.com/france/vision/db/msdn/P00974/&lt;/A&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src ="http://blogs.microsoft.fr/mitsufu/aggbug/50000.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mitsu Furuta</dc:creator><title>Liste des bloggers de l'équipe C#</title><link>http://blogs.microsoft.fr/mitsufu/archive/2006/10/12/49880.aspx</link><pubDate>Thu, 12 Oct 2006 20:34:00 GMT</pubDate><guid>http://blogs.microsoft.fr/mitsufu/archive/2006/10/12/49880.aspx</guid><wfw:comment>http://blogs.microsoft.fr/mitsufu/comments/49880.aspx</wfw:comment><comments>http://blogs.microsoft.fr/mitsufu/archive/2006/10/12/49880.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.microsoft.fr/mitsufu/comments/commentRss/49880.aspx</wfw:commentRss><trackback:ping>http://blogs.microsoft.fr/mitsufu/services/trackbacks/49880.aspx</trackback:ping><description>&lt;P&gt;Charlie Calvert a int&amp;#233;gr&amp;#233; l'&amp;#233;quipe C# &amp;#224; Redmond et g&amp;#232;re d&amp;#233;sormais les relations&amp;nbsp;avec les&amp;nbsp;communaut&amp;#233;s.&lt;BR&gt;Voici la liste des blogs des &amp;#233;quipes C# qu'il maintient sur son blog: &lt;A href="http://blogs.msdn.com/charlie/archive/2006/09/06/c-bloggers.aspx"&gt;http://blogs.msdn.com/charlie/archive/2006/09/06/c-bloggers.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;A&amp;nbsp;retenir pour tous les curieux des avanc&amp;#233;es de C# et de Linq&lt;/P&gt;
&lt;P&gt;Mitsu&lt;/P&gt;&lt;img src ="http://blogs.microsoft.fr/mitsufu/aggbug/49880.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mitsu Furuta</dc:creator><title>[Article] C# 2.0, un an après: un avant gout avant les webcasts</title><link>http://blogs.microsoft.fr/mitsufu/archive/2006/09/30/48145.aspx</link><pubDate>Sat, 30 Sep 2006 21:41:00 GMT</pubDate><guid>http://blogs.microsoft.fr/mitsufu/archive/2006/09/30/48145.aspx</guid><wfw:comment>http://blogs.microsoft.fr/mitsufu/comments/48145.aspx</wfw:comment><comments>http://blogs.microsoft.fr/mitsufu/archive/2006/09/30/48145.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.microsoft.fr/mitsufu/comments/commentRss/48145.aspx</wfw:commentRss><trackback:ping>http://blogs.microsoft.fr/mitsufu/services/trackbacks/48145.aspx</trackback:ping><description>&lt;P&gt;&lt;FONT face=Arial&gt;Bonjour &amp;#224; tous,&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;Le mercredi du d&amp;#233;veloppement sur C# 2.0 s'est bien d&amp;#233;roul&amp;#233; mercredi dernier et les webcasts sont en cours de mise en ligne (ce qui devrait prendre une dizaine de jours car nous avons quelques probl&amp;#232;mes techniques).&lt;BR&gt;Pour nous faire pardonner et vous faire patienter, je vous propose deux petits extraits dans ce post.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;Bonne lecture et donc &amp;#224; tr&amp;#232;s bient&amp;#244;t pour les webcasts dont j'annoncerai la disponibilit&amp;#233; sur ce m&amp;#234;me blog.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;Mitsu&lt;BR&gt;&lt;BR&gt;1- Factoriser des instructions de bloc.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;L'id&amp;#233;e est la suivante, imaginons que nous voulions factoriser une gestion d'erreur pour toute notre application avec un traitement d'erreur centralis&amp;#233;. Dans bon nombre de cas existants (comme les apis win32), un mod&amp;#232;le classique consiste &amp;#224; impl&amp;#233;menter des m&amp;#233;thodes qui renvoient un entier. Il devient alors assez simple de cr&amp;#233;er une m&amp;#233;thode ShowError(int errorCode) qui centralise la gestion d'erreur. Ce mod&amp;#232;le impose la convention qui consiste &amp;#224; renvoyer un entier et ne factorise pas le try...catch que nous devons impl&amp;#233;menter dans toutes les m&amp;#233;thodes.&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT color=#0000ff size=2&gt;private&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; AddCustomer(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt; param)&lt;BR&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;&amp;nbsp; try&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&amp;nbsp; {&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int&lt;/FONT&gt;&lt;FONT size=2&gt; i = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Convert&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt;.ToInt32(param);&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;&amp;nbsp; catch&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&amp;nbsp; {&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt; 1;&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; return&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt; 0;&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT color=#0000ff size=2&gt;private&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; ShowError(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt; value)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt; (value != 0)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;switch&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt; (value)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;case&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt; 1:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;case&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt; 2:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;default&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;:&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;MessageBox&lt;/FONT&gt;&lt;FONT size=2&gt;.Show(&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"Une erreur s'est produite: n&amp;#176;"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt; + value.ToString());&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;break&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;L'appel ressemble alors &amp;#224;:&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;ShowError(AddCustomer(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT color=#800000 size=2&gt;"blabla"&lt;/FONT&gt;&lt;FONT size=2&gt;));&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;L'id&amp;#233;e en C# 2.0 est d'utiliser les m&amp;#233;thodes anonymes pour retarder l'ex&amp;#233;cution du code critique afin de prendre le temps d'encadrer l'appel par un bloc try...catch. Nous aurons besoin d'un d&amp;#233;l&amp;#233;gu&amp;#233; le plus simple possible afin d'&amp;#234;tre g&amp;#233;n&amp;#233;rique. Le code des m&amp;#233;thodes anonymes ayant acc&amp;#232;s aux membres accessibles depuis la m&amp;#233;thode h&amp;#244;te, nous de d&amp;#233;clarerons aucun param&amp;#232;tre.&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;delegate&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; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;SimpleDelegate&lt;/FONT&gt;&lt;FONT size=2&gt;();&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;Nous pouvons alors impl&amp;#233;menter une unique m&amp;#233;thode de gestion des exceptions incluant le bloc try...catch.&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT color=#0000ff size=2&gt;private&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; SafeCall(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;SimpleDelegate&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt; d)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;try&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT size=2&gt; (d != &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;null&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d();&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;catch&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Exception&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt; e)&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;MessageBox&lt;/FONT&gt;&lt;FONT size=2&gt;.Show(&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"Une erreur s'est produite:"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt; + e.Message);&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;L'appel devient alors tr&amp;#232;s simple:&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;FONT size=2&gt; s = &lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"blabla"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;;&lt;BR&gt;SafeCall&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;delegate&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;{&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt; i = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Convert&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;.ToInt32(s);&lt;BR&gt;});&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;Nous pouvons &amp;#233;galement imaginer utiliser ce m&amp;#234;me pattern pour centraliser les transactions.&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;InTransaction(&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;delegate&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt;{&lt;BR&gt;&amp;nbsp; AddCustomer();&lt;BR&gt;});&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;1- Enumerer des &amp;#233;num&amp;#233;rations ..?!?!&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;Les types enum de .Net permettent de stocker un ensemble de valeurs en utilisant la vue binaire de l'entier sousjacent de l'&amp;#233;num&amp;#233;ration.&lt;BR&gt;Ce pattern est tr&amp;#232;s connu et est largement utilis&amp;#233; &amp;#224; la fois dans le framework .Net et dans l'api win32.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;Exemple:&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;[&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial color=#008080 size=2&gt;Flags&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;]&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;enum&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Day&lt;/FONT&gt;&lt;FONT size=2&gt; { None = 0, Lundi = 1, Mardi = 2, Mercredi = 4, Jeudi = 8, Vendredi = 16, Samedi = 32, Dimanche = 64 };&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;R&amp;#233;cup&amp;#233;rer la liste des valeurs stock&amp;#233;es dans l'&amp;#233;num&amp;#233;r&amp;#233; demande donc un parcours binaire de l'ensemble des bits en utilisant un 'et' binaire (&amp;amp;) pour tester les diff&amp;#233;rentes valeurs.&lt;BR&gt;L'id&amp;#233;e est alors d'acc&amp;#232;der &amp;#224; cette liste de valeurs via une &amp;#233;num&amp;#233;ration (IEnumerable). Nous utiliserons les it&amp;#233;rations de C# 2.0 pour faciliter cette impl&amp;#233;mentation (yield return).&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT color=#0000ff size=2&gt;private&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;IEnumerable&lt;/FONT&gt;&lt;FONT size=2&gt;&amp;lt;T&amp;gt; GetEnumeration&amp;lt;T&amp;gt;(T values) &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;where&lt;/FONT&gt;&lt;FONT size=2&gt; T : &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;struct&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;{&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT size=2&gt; (!&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;typeof&lt;/FONT&gt;&lt;FONT size=2&gt;(T).IsSubclassOf(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;typeof&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Enum&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;)))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;throw&lt;/FONT&gt;&lt;FONT size=2&gt; &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=#008080 size=2&gt;Exception&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"n'est pas un Enum"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;);&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt;[] allValues = (&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt;[])&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Enum&lt;/FONT&gt;&lt;FONT size=2&gt;.GetValues(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;typeof&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;(T));&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt; intValues = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Convert&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;.ToInt32(values);&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;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; i &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;in&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt; allValues)&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt; ((i &amp;amp; intValues) != 0)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;yield&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;FONT size=2&gt; (T)&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Enum&lt;/FONT&gt;&lt;FONT size=2&gt;.ToObject(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;typeof&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt;(T), i);&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT face=Arial size=2&gt;}&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;L'appel devient alors: &lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT color=#008080 size=2&gt;Day&lt;/FONT&gt;&lt;FONT size=2&gt; d = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Day&lt;/FONT&gt;&lt;FONT size=2&gt;.Samedi | &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Day&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;.Jeudi;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;foreach&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Day&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; d2 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;in&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; GetEnumeration&amp;lt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Day&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt;&amp;gt;(d))&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;...&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;Essayons d'impl&amp;#233;menter cette fonctionnalit&amp;#233; de fa&amp;#231;on plus int&amp;#233;gr&amp;#233;. Nous pouvons utiliser le pattern des nullables.&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;struct&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;MyEnum&lt;/FONT&gt;&lt;FONT size=2&gt;&amp;lt;T&amp;gt; : &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;IEnumerable&lt;/FONT&gt;&lt;FONT size=2&gt;&amp;lt;T&amp;gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;where&lt;/FONT&gt;&lt;FONT size=2&gt; T : &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial color=#0000ff size=2&gt;struct&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;{&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt; MyEnum(T value)&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _value = value;&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt; T _value;&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;FONT 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;implicit&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;operator&lt;/FONT&gt;&lt;FONT size=2&gt; T(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;MyEnum&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&amp;lt;T&amp;gt; e)&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt; e._value;&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;FONT 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;implicit&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;operator&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;MyEnum&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&amp;lt;T&amp;gt;(T e)&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;FONT size=2&gt; &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=#008080 size=2&gt;MyEnum&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&amp;lt;T&amp;gt;(e);&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;public&lt;/FONT&gt;&lt;FONT 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=#008080 size=2&gt;MyEnum&lt;/FONT&gt;&lt;FONT size=2&gt;&amp;lt;T&amp;gt; FromEnumerable(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;IEnumerable&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&amp;lt;T&amp;gt; e)&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt; value = 0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;foreach&lt;/FONT&gt;&lt;FONT size=2&gt; (T t &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;in&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt; e)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value |= &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Convert&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;.ToInt32(t);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;FONT size=2&gt; (T)&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Enum&lt;/FONT&gt;&lt;FONT size=2&gt;.ToObject(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;typeof&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;(T), value);&lt;BR&gt;&amp;nbsp; }&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&amp;nbsp; #region&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt; IEnumerable&amp;lt;T&amp;gt; Members&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;IEnumerator&lt;/FONT&gt;&lt;FONT size=2&gt;&amp;lt;T&amp;gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;IEnumerable&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&amp;lt;T&amp;gt;.GetEnumerator()&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;FONT size=2&gt; (!&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;typeof&lt;/FONT&gt;&lt;FONT size=2&gt;(T).IsSubclassOf(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;typeof&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Enum&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;)))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;throw&lt;/FONT&gt;&lt;FONT size=2&gt; &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=#008080 size=2&gt;Exception&lt;/FONT&gt;&lt;FONT size=2&gt;(&lt;/FONT&gt;&lt;FONT color=#800000 size=2&gt;"n'est pas un enum"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt;[] allValues = (&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt;[])&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Enum&lt;/FONT&gt;&lt;FONT size=2&gt;.GetValues(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;typeof&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;(T));&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt; intValues = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Convert&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;.ToInt32(_value);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;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; i &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;in&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt; allValues)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;if&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt; ((i &amp;amp; intValues) != 0)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;yield&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;FONT size=2&gt; (T)&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Enum&lt;/FONT&gt;&lt;FONT size=2&gt;.ToObject(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;typeof&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt;(T), i);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face=Arial&gt;#endregion&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial&gt;&amp;nbsp; #region&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt; IEnumerable Members&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;IEnumerator&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;IEnumerable&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;.GetEnumerator()&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;this&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;as&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;IEnumerable&lt;/FONT&gt;&lt;FONT size=2&gt;&amp;lt;T&amp;gt;).GetEnumerator() &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;as&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;IEnumerator&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;;&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;#endregion&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT color=#0000ff size=2&gt;&amp;nbsp; public&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;override&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt; ToString()&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;return&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt; _value.ToString();&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT face=Arial size=2&gt;L'utilisation est alors fortement simplifi&amp;#233;e:&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT color=#008080 size=2&gt;MyEnum&lt;/FONT&gt;&lt;FONT size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Day&lt;/FONT&gt;&lt;FONT size=2&gt;&amp;gt; d = &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Day&lt;/FONT&gt;&lt;FONT size=2&gt;.Samedi | &lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Day&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face=Arial&gt;.Jeudi;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT color=#0000ff size=2&gt;foreach&lt;/FONT&gt;&lt;FONT size=2&gt; (&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Day&lt;/FONT&gt;&lt;FONT size=2&gt; d2 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;in&lt;/FONT&gt;&lt;FONT size=2&gt; d) ...&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008080 size=2&gt;Day&lt;/FONT&gt;&lt;FONT size=2&gt; d3 = d;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;L'&amp;#233;num&amp;#233;ration ainsi cr&amp;#233;e profitera des fonctions ensemblistes de C# 3.0:&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;
&lt;P&gt;d.Intersect(d2);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;img src ="http://blogs.microsoft.fr/mitsufu/aggbug/48145.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mitsu Furuta</dc:creator><title>Mercredi du développement: C# 2.0, un an après...</title><link>http://blogs.microsoft.fr/mitsufu/archive/2006/09/13/46032.aspx</link><pubDate>Wed, 13 Sep 2006 17:05:00 GMT</pubDate><guid>http://blogs.microsoft.fr/mitsufu/archive/2006/09/13/46032.aspx</guid><wfw:comment>http://blogs.microsoft.fr/mitsufu/comments/46032.aspx</wfw:comment><comments>http://blogs.microsoft.fr/mitsufu/archive/2006/09/13/46032.aspx#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://blogs.microsoft.fr/mitsufu/comments/commentRss/46032.aspx</wfw:commentRss><trackback:ping>http://blogs.microsoft.fr/mitsufu/services/trackbacks/46032.aspx</trackback:ping><description>&lt;P&gt;Vous n'avez pas r&amp;#234;v&amp;#233; et je ne me suis pas non plus tromp&amp;#233; dans le titre.&lt;BR&gt;Bien qu'ayant h&amp;#233;sit&amp;#233; avec "C# 2.0, trucs et astuces" ou encore "Tout ce que vous avez toujours voulu savoir sur C# 2.0", nous parlerons bien de la version 2.0 de ce langage.&lt;BR&gt;Je voulais r&amp;#233;pondre &amp;#224; plusieurs demandes de contenu sur les versions actuelles de nos produits et pas toujours sur les versions futures.&lt;BR&gt;Je vous propose donc de venir partager &amp;#224; la fois un appronfondissement de C# 2.0 mais &amp;#233;galement des cas d'utilisation du quotidien que j'ai pu rencontrer apr&amp;#232;s un an de d&amp;#233;veloppement.&lt;/P&gt;
&lt;P&gt;Utilisateur de C# 2.0 de la premi&amp;#232;re heure ou non, cette pr&amp;#233;sentation est pour vous. Generics, Nullables ou autres m&amp;#233;thodes anonymes seront au programme dans des pr&amp;#233;sentations in&amp;#233;dites qui je pense vous surprendront.&lt;/P&gt;
&lt;P&gt;En guise de conclusion, je finirai par quelques d&amp;#233;monstrations C# 3.0.&lt;/P&gt;
&lt;P&gt;En esp&amp;#233;rant vous voir nombreux,&lt;/P&gt;
&lt;P&gt;Mitsu&lt;/P&gt;
&lt;P&gt;Inscription:&amp;nbsp; &lt;A href="http://www.microsoft.com/france/events/event.aspx?EventID=1032309328"&gt;http://www.microsoft.com/france/events/event.aspx?EventID=1032309328&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;&lt;img src ="http://blogs.microsoft.fr/mitsufu/aggbug/46032.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mitsu Furuta</dc:creator><title>Sondage: quels sujets pour les mercredis du développement de l'année prochaine ?</title><link>http://blogs.microsoft.fr/mitsufu/archive/2006/07/05/36734.aspx</link><pubDate>Wed, 05 Jul 2006 00:12:00 GMT</pubDate><guid>http://blogs.microsoft.fr/mitsufu/archive/2006/07/05/36734.aspx</guid><wfw:comment>http://blogs.microsoft.fr/mitsufu/comments/36734.aspx</wfw:comment><comments>http://blogs.microsoft.fr/mitsufu/archive/2006/07/05/36734.aspx#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://blogs.microsoft.fr/mitsufu/comments/commentRss/36734.aspx</wfw:commentRss><trackback:ping>http://blogs.microsoft.fr/mitsufu/services/trackbacks/36734.aspx</trackback:ping><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="mso-ansi-language: FR"&gt;Bonjour &amp;#224; tous,&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="mso-ansi-language: FR"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="mso-ansi-language: FR"&gt;Aujourd&amp;#8217;hui a lieu le dernier &lt;A href="http://mitsu.developpez.com/calendrier_rencontres/"&gt;&lt;STRONG&gt;mercredi du d&amp;#233;veloppement&lt;/STRONG&gt;&lt;/A&gt; avant l&amp;#8217;&amp;#233;t&amp;#233;. Nous avons depuis le mois de septembre, balay&amp;#233; un nombre important de domaines qui je l&amp;#8217;esp&amp;#232;re vous ont apport&amp;#233; une meilleur connaissance de la plateforme .Net.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="mso-ansi-language: FR"&gt;Encore et toujours cette plate-forme &amp;#233;volue afin de vous permettre d&amp;#8217;appr&amp;#233;hender au mieux les d&amp;#233;fis de l&amp;#8217;informatique de demain.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="mso-ansi-language: FR"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="mso-ansi-language: FR"&gt;Nous sommes actuellement en phase de planification des mercredis du d&amp;#233;veloppement de l&amp;#8217;ann&amp;#233;e prochaine et j&amp;#8217;aimerai tout simplement recueillir vos avis et vos souhaits quant aux th&amp;#232;mes que vous aimeriez voir trait&amp;#233;s.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="mso-ansi-language: FR"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="mso-ansi-language: FR"&gt;Il y aura bien &amp;#233;videmment un axe Windows Vista/Office 2007 tr&amp;#232;s important ainsi que bien s&amp;#251;r, l&amp;#8217;ensemble des composants du .NET Framework 3.0 (anciennement WinFx).&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="mso-ansi-language: FR"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="mso-ansi-language: FR"&gt;Toutes vos id&amp;#233;es, m&amp;#234;mes les plus farfelues sont les bienvenues. Je vous propose de r&amp;#233;pondre directement en commentaire de ce post.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="mso-ansi-language: FR"&gt;A vous de jouer,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="mso-ansi-language: FR"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="mso-ansi-language: FR"&gt;Cordialement,&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="mso-ansi-language: FR"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="mso-ansi-language: FR"&gt;Mitsu&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="mso-ansi-language: FR"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src ="http://blogs.microsoft.fr/mitsufu/aggbug/36734.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mitsu Furuta</dc:creator><title>DLinq, VB.NET rentre dans le rang</title><link>http://blogs.microsoft.fr/mitsufu/archive/2006/06/14/34068.aspx</link><pubDate>Wed, 14 Jun 2006 20:36:00 GMT</pubDate><guid>http://blogs.microsoft.fr/mitsufu/archive/2006/06/14/34068.aspx</guid><wfw:comment>http://blogs.microsoft.fr/mitsufu/comments/34068.aspx</wfw:comment><comments>http://blogs.microsoft.fr/mitsufu/archive/2006/06/14/34068.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.microsoft.fr/mitsufu/comments/commentRss/34068.aspx</wfw:commentRss><trackback:ping>http://blogs.microsoft.fr/mitsufu/services/trackbacks/34068.aspx</trackback:ping><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: FR"&gt;Petite modification m&amp;#8217;ayant &amp;#233;chapp&amp;#233; dans les CTP de mai de DLinq&amp;nbsp;: nous sommes revenu &amp;#224; une syntaxe avec le &amp;#171;&amp;nbsp;from&amp;nbsp;&amp;#187; avant le &amp;#171;&amp;nbsp;select&amp;nbsp;&amp;#187; tellement l&amp;#8217;ancienne n&amp;#8217;avait pas de sens par rapport &amp;#224; la philosophie de Linq.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: FR"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt;Public&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt;Sub&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt; DLinq1()&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt;Dim&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt; q = &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt;From&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt; c &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt;In&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt; db.Customers _&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt;Where&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt; c.City = &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: maroon; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt;"&lt;?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /&gt;&lt;st1:City w:st="on"&gt;&lt;st1:place w:st="on"&gt;London&lt;/st1:place&gt;&lt;/st1:City&gt;"&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt;Select&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt; c&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'; mso-ansi-language: FR"&gt;ObjectDumper.Write(q)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'; mso-ansi-language: FR"&gt;End&lt;/SPAN&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'; mso-ansi-language: FR"&gt; &lt;/SPAN&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Lucida Console'; mso-bidi-font-family: 'Lucida Console'; mso-ansi-language: FR"&gt;Sub&lt;/SPAN&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: FR"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: FR"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: FR"&gt;Encore une fois cette syntaxe est celle de l&amp;#8217;appel des m&amp;#233;thodes par le compilateur. En effet la projection se fait toujours en dernier.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: FR"&gt;Je suis en train d&amp;#8217;&amp;#233;crire un exemple appliquant Linq &amp;#224; un serveur FTP et je r&amp;#233;alise combien l&amp;#8217;&amp;#233;quipe VB.NET avait d&amp;#251; gal&amp;#233;rer pour inverser l&amp;#8217;ordre.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: FR"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: FR"&gt;Les choses sont donc rentr&amp;#233;es dans l&amp;#8217;ordre pour le bien de l&amp;#8217;unification&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: Wingdings; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-family: Arial; mso-ansi-language: FR; mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;&lt;SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;J&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: FR"&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: FR"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: FR"&gt;A plus pour de nouvelles news,&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: FR"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN lang=FR style="FONT-SIZE: 10pt; FONT-FAMILY: Arial; mso-ansi-language: FR"&gt;Mitsu&lt;/SPAN&gt;&lt;/P&gt;&lt;img src ="http://blogs.microsoft.fr/mitsufu/aggbug/34068.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mitsu Furuta</dc:creator><title>News from Redmond</title><link>http://blogs.microsoft.fr/mitsufu/archive/2006/06/09/33191.aspx</link><pubDate>Fri, 09 Jun 2006 20:03:00 GMT</pubDate><guid>http://blogs.microsoft.fr/mitsufu/archive/2006/06/09/33191.aspx</guid><wfw:comment>http://blogs.microsoft.fr/mitsufu/comments/33191.aspx</wfw:comment><comments>http://blogs.microsoft.fr/mitsufu/archive/2006/06/09/33191.aspx#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://blogs.microsoft.fr/mitsufu/comments/commentRss/33191.aspx</wfw:commentRss><trackback:ping>http://blogs.microsoft.fr/mitsufu/services/trackbacks/33191.aspx</trackback:ping><description>&lt;P&gt;...and from me.&lt;/P&gt;
&lt;P&gt;Bonjour &amp;#224; tous, juste un petit coucou pour vous tenir au courant de mon activit&amp;#233; un peu particuli&amp;#232;re durant tout ce mois de juin. Je profite en effet d'un programme d'&amp;#233;change avec Microsoft Corp. Je suis aimablement re&amp;#231;u dans l'&amp;#233;quipe &lt;A href="http://www.microsoft.com/france/msdn/vcsharp/default.mspx"&gt;C# &lt;/A&gt;dirig&amp;#233;e par Scott Wiltamuth.&amp;nbsp;Quant &amp;#224; mon travail de tous les jours,&amp;nbsp;je&amp;nbsp;suis rattach&amp;#233; &amp;#224; l'&amp;#233;quipe Linq et plus pr&amp;#233;cis&amp;#233;ment au projet DLinq. J'ai r&amp;#233;cemment organis&amp;#233; un mercredi du d&amp;#233;veloppement sur ce sujet dont le contenu est en ligne &lt;A href="http://blogs.microsoft.fr/mitsufu/archive/2006/05/22/29909.aspx"&gt;ici&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Durant ce mois, je vais d&amp;#233;velopper quelques exemples pour le projet Linq (nottamment un exemple WPF, ainsi que quelques autres surprises) et je participe aux r&amp;#233;unions de design du projet.&amp;nbsp; Les enjeux de l'acc&amp;#232;s aux donn&amp;#233;es sont multiples et complexes (g&amp;#233;n&amp;#233;ration de sql, entit&amp;#233;es int&amp;#233;grables dans des architectures multi-tiers, databinding, designers, etc).&lt;/P&gt;
&lt;P&gt;Apr&amp;#232;s quelques discussions, je me suis &amp;#233;galement lanc&amp;#233; dans deux &amp;#233;tudes qui posent probl&amp;#232;me aujourd'hui: le binding sur des collections&amp;nbsp;h&amp;#233;t&amp;#233;rog&amp;#232;nes que supporte DLinq depuis peu et la gestion des listes virtuelles (comme la ListBox de WPF ou le ListView des Windows Forms) dont la connexion aux objets DLinq est loin d'&amp;#234;tre naturelle.&lt;BR&gt;&lt;BR&gt;Cette phase est tr&amp;#232;s int&amp;#233;ressante car les choses ne sont pas encore fig&amp;#233;es. D'ici deux ou trois mois, la machine de production d'Orcas (prochain Visual Studio) va resserer les plannings et les modifications de fonds seront de plus en plus difficiles.&lt;/P&gt;
&lt;P&gt;A bient&amp;#244;t pour de nouvelles news,&lt;/P&gt;
&lt;P&gt;Mitsu&lt;/P&gt;&lt;img src ="http://blogs.microsoft.fr/mitsufu/aggbug/33191.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mitsu Furuta</dc:creator><title>Les webcasts du mercredi du développement sur Linq sont en ligne !</title><link>http://blogs.microsoft.fr/mitsufu/archive/2006/05/22/29909.aspx</link><pubDate>Mon, 22 May 2006 19:42:00 GMT</pubDate><guid>http://blogs.microsoft.fr/mitsufu/archive/2006/05/22/29909.aspx</guid><wfw:comment>http://blogs.microsoft.fr/mitsufu/comments/29909.aspx</wfw:comment><comments>http://blogs.microsoft.fr/mitsufu/archive/2006/05/22/29909.aspx#Feedback</comments><slash:comments>18</slash:comments><wfw:commentRss>http://blogs.microsoft.fr/mitsufu/comments/commentRss/29909.aspx</wfw:commentRss><trackback:ping>http://blogs.microsoft.fr/mitsufu/services/trackbacks/29909.aspx</trackback:ping><description>&lt;P&gt;Bonjour &amp;#224; tous,&lt;/P&gt;
&lt;P&gt;Des vid&amp;#233;os que je conseille &amp;#224; tout ceux qui veulent conna&amp;#238;tre et comprendre le futur de l'acc&amp;#232;s aux donn&amp;#233;es depuis la plate-forme .Net. Toutes les pr&amp;#233;sentations ont &amp;#233;t&amp;#233; faites avec la nouvelle version du projet Linq (CTP de Mai 2006), y compris le nouveau designer de classe de mapping objet-relationnel dont vous trouverez une d&amp;#233;mo dans la partie DLinq.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="http://www.microsoft.com/france/events/event.aspx?EventID=1032300126"&gt;C#3 et le projet Linq - partie 1 : Introduction&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Les langages objet ont atteint une maturit&amp;#233; reconnue dans les entreprises mais le probl&amp;#233;me de l'acc&amp;#233;s aux donn&amp;#233;es (relationnelles, xml ou autres) reste entier.&lt;BR&gt;D&amp;#233;couvrez comment le projet Linq offre une solution en se basant sur les toutes nouvelles &amp;#233;volutions du langage C#.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="http://www.microsoft.com/france/events/event.aspx?EventID=1032300127"&gt;C#3 et le projet Linq - partie 2 : Rappels sur le framework .NET 2.0&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Utiliser Linq est simple, c'est m&amp;#234;me l&amp;#224; toute l'orientation de ce produit.&lt;BR&gt;Comprendre le fonctionnement de Linq est plus complexe et vous demandera de bien comprendre les nouveaut&amp;#233;s de C#3 dont un grand nombre sont des &amp;#233;volutions des nouveaut&amp;#233;s de C#2.&lt;BR&gt;&lt;BR&gt;Je vous propose donc un petit rappel sur les &amp;#233;numerations, le mot cl&amp;#233; "return yield" ainsi que les classes g&amp;#233;n&amp;#233;riques que Linq exploite &amp;#224; outrance.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/france/events/event.aspx?EventID=1032300128"&gt;&lt;STRONG&gt;C#3 et le projet Linq - partie 3 : Linq, le langage de manipulation des donn&amp;#233;es&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;D&amp;#233;couvrez la syntaxe et les possibilit&amp;#233;s de Linq dans de premiers exemples simples.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="http://www.microsoft.com/france/events/event.aspx?EventID=1032300129"&gt;C#3 et le projet Linq - partie 4 : les nouveaut&amp;#233;s de C#3&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Comprendre comment fonctionne Linq vous demandera une premi&amp;#232;re compr&amp;#233;hension des nouveaut&amp;#233;s de C#3.&lt;BR&gt;Cette partie a pour but de d&amp;#233;mystifier ces nouveaut&amp;#233;s afin d'en apporter une explication claire.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="http://www.microsoft.com/france/events/event.aspx?EventID=1032300130"&gt;C#3 et le projet Linq - partie 5 : la librairie XLinq&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;XLinq apporte, via de nouvelles librairies, des classes d'acc&amp;#232;s aux Xml r&amp;#233;volutionnaires par rapport aux techniques actuelles.&lt;BR&gt;Ce mod&amp;#232;le a bien &amp;#233;videmment &amp;#233;t&amp;#233; con&amp;#231;u pour pleinement profiter des b&amp;#233;n&amp;#233;fices de Linq.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="http://www.microsoft.com/france/events/event.aspx?EventID=1032300131"&gt;C#3 et le projet Linq - partie 6 : la librairie DLinq&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;DLinq est une partie tr&amp;#232;s attendue du projet Linq. L'acc&amp;#232;s aux donn&amp;#233;es relationnelles est une probl&amp;#232;matique de tous les jours pour le d&amp;#233;veloppeur et DLinq apporte un nouveau moteur de requ&amp;#234;tage en langage .Net et non plus en SQL, v&amp;#233;rifiable &amp;#224; la compilation ainsi qu'un ensemble de librairies permettant le fameux mapping objet-relationnel.&lt;/P&gt;
&lt;P&gt;Bonne lecture &amp;#224; tous,&lt;/P&gt;
&lt;P&gt;Mitsu&lt;/P&gt;&lt;img src ="http://blogs.microsoft.fr/mitsufu/aggbug/29909.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mitsu Furuta</dc:creator><title>La nouvelle technical preview de Linq (CTP may 2006) est disponible !!!</title><link>http://blogs.microsoft.fr/mitsufu/archive/2006/05/10/27836.aspx</link><pubDate>Wed, 10 May 2006 09:49:00 GMT</pubDate><guid>http://blogs.microsoft.fr/mitsufu/archive/2006/05/10/27836.aspx</guid><wfw:comment>http://blogs.microsoft.fr/mitsufu/comments/27836.aspx</wfw:comment><comments>http://blogs.microsoft.fr/mitsufu/archive/2006/05/10/27836.aspx#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://blogs.microsoft.fr/mitsufu/comments/commentRss/27836.aspx</wfw:commentRss><trackback:ping>http://blogs.microsoft.fr/mitsufu/services/trackbacks/27836.aspx</trackback:ping><description>&lt;P&gt;&lt;A href="http://msdn.microsoft.com/data/ref/linq/"&gt;http://msdn.microsoft.com/data/ref/linq/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;IQueryable, nouveaux designers DLinq, visualiseurs d'expressions en d&amp;#233;bogage et plein de nouveaut&amp;#233;s tr&amp;#232;s int&amp;#233;ressantes.&lt;/P&gt;
&lt;P&gt;Pour rappel, le mercredi du d&amp;#233;veloppement sur Linq...c'est cet apr&amp;#232;s-midi !&lt;/P&gt;
&lt;P&gt;Mitsu&lt;/P&gt;&lt;img src ="http://blogs.microsoft.fr/mitsufu/aggbug/27836.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Mitsu Furuta</dc:creator><title>Mercredi du développement Linq et C#3, quand le langage rejoint les données...</title><link>http://blogs.microsoft.fr/mitsufu/archive/2006/04/27/26662.aspx</link><pubDate>Thu, 27 Apr 2006 11:06:00 GMT</pubDate><guid>http://blogs.microsoft.fr/mitsufu/archive/2006/04/27/26662.aspx</guid><wfw:comment>http://blogs.microsoft.fr/mitsufu/comments/26662.aspx</wfw:comment><comments>http://blogs.microsoft.fr/mitsufu/archive/2006/04/27/26662.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blogs.microsoft.fr/mitsufu/comments/commentRss/26662.aspx</wfw:commentRss><trackback:ping>http://blogs.microsoft.fr/mitsufu/services/trackbacks/26662.aspx</trackback:ping><description>&lt;P&gt;Bonjour &amp;#224; tous,&lt;/P&gt;
&lt;P&gt;J'ai le plaisir de vous convier mercredi 10 mai &amp;#224; une session des mercredis du d&amp;#233;veloppement sp&amp;#233;cialement d&amp;#233;di&amp;#233;e &amp;#224; &lt;A href="http://msdn.microsoft.com/netframework/future/linq/"&gt;Linq&lt;/A&gt;. En quelques mots, comment unifier les m&amp;#233;thodes de requ&amp;#234;te quelques que soient les sources de donn&amp;#233;es.&lt;BR&gt;L'enjeu est d'enrichir mais &amp;#233;galement de simplifier les domaines tels que le mapping objet-relationnel en profitant de l'&amp;#233;volutions des langages .Net plut&amp;#244;t que de frameworks complexes.&lt;/P&gt;
&lt;P&gt;Pour rappel, un article que j'ai &amp;#233;crit il y a d&amp;#233;j&amp;#224; quelques mois pour vous familiariser avec C#3: &lt;A href="http://www.techheadbrothers.com/DesktopDefault.aspx?tabindex=1&amp;tabid=7&amp;AId=119"&gt;http://www.techheadbrothers.com/DesktopDefault.aspx?tabindex=1&amp;tabid=7&amp;AId=119&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Bien &amp;#233;videmment, le lien d'inscription:&lt;BR&gt;&lt;A href="http://www.microsoft.com/france/events/event.aspx?EventID=1032296819"&gt;http://www.microsoft.com/france/events/event.aspx?EventID=1032296819&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;A bient&amp;#244;t en vous esp&amp;#233;rant nombreux,&lt;/P&gt;
&lt;P&gt;Mitsu&lt;/P&gt;&lt;img src ="http://blogs.microsoft.fr/mitsufu/aggbug/26662.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>