<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" 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/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Patrice Lamarche - .net 4.0</title>
    <link>http://patricelamarche.net/</link>
    <description>Ce blog est moche. Je ne suis pas designer.</description>
    <language>fr-fr</language>
    <copyright>Patrice Lamarche</copyright>
    <lastBuildDate>Thu, 06 May 2010 12:31:31 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>patrice.lamarche@gmail.com</managingEditor>
    <webMaster>patrice.lamarche@gmail.com</webMaster>
    <item>
      <trackback:ping>http://patricelamarche.net/Trackback.aspx?guid=39dbd845-786f-4d22-ba1e-48849f889538</trackback:ping>
      <pingback:server>http://patricelamarche.net/pingback.aspx</pingback:server>
      <pingback:target>http://patricelamarche.net/PermaLink,guid,39dbd845-786f-4d22-ba1e-48849f889538.aspx</pingback:target>
      <dc:creator>Patrice Lamarche</dc:creator>
      <wfw:comment>http://patricelamarche.net/CommentView,guid,39dbd845-786f-4d22-ba1e-48849f889538.aspx</wfw:comment>
      <wfw:commentRss>http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=39dbd845-786f-4d22-ba1e-48849f889538</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <em>
            <strong>
            </strong>
          </em>
        </p>
        <blockquote>
          <h1>
            <h1>“Mixed mode assembly is built against version 'v2.0.50727' of the runtime and
cannot be loaded in the 4.0 runtime without additional configuration information”
</h1>
          </h1>
        </blockquote>
        <p>
Voici le petit message d’amour que peut vous renvoyez votre ami la CLR lorsque vous
essayez d’exécuter une application qui :
</p>
        <ul>
          <li>
référence une assembly mixte (mêlant code natif et code managé) qui a été compilée
pour être basée sur une version différente de la CLR utilisée par votre point d’entrée. 
</li>
        </ul>
        <p>
La solution à ce problème est assez simple, il suffit de rajouter une section dans
votre fichier de config :
</p>
        <span style="color: #0000ff">&lt;</span>
        <span style="color: #800000">configuration</span>
        <span style="color: #0000ff">&gt;</span>
        <br />
        <span style="color: #0000ff">&lt;</span>
        <span style="color: #800000">startup</span>
        <span style="color: #ff0000">useLegacyV2RuntimeActivationPolicy</span>=<span style="color: #0000ff">"true"</span><span style="color: #0000ff">&gt;</span><br /><span style="color: #0000ff">&lt;</span><span style="color: #800000">supportedRuntime</span><span style="color: #ff0000">version</span>=<span style="color: #0000ff">"v4.0"</span><span style="color: #0000ff">/&gt;</span><br /><span style="color: #0000ff">&lt;/</span><span style="color: #800000">startup</span><span style="color: #0000ff">&gt;</span><br /><span style="color: #0000ff">&lt;/</span><span style="color: #800000">configuration</span><span style="color: #0000ff">&gt;</span><br /><h2>L’attribut useLegacyV2RuntimeActivationPolicy
</h2><p align="justify">
La clé du problème se situe donc dans l’utilisation de l’attribut useLegacyV2RuntimeActivationPolicy
qui est à false par défaut. Cet attribut permet de changer la politique de chargement
de CLR au sein de votre application. Il y a eu en effet un gros changement à ce sujet
:
</p><ul><li><div align="justify">Dans l’ère pré-CLR V4, en V2 quoi, il n’était possible de charger
qu’une seule version de CLR au sein d’un process. La politique par défaut était de
charger toutes vos assemblies en utilisant la version la plus récente de la CLR que
vous aviez à disposition. Cette stratégie a comme avantage que votre ancien code bénéficie
automatiquement des améliorations apportées par des versions plus récentes de CLR.
Mais cela pouvait posait des problèmes de compatibilité dans certains rares cas.
</div></li><li><div align="justify">Avec la CLR V4, il est à présent de charger différentes versions
de CLR au sein d’un même process et afin de ne plus être confronté aux problèmes de
compatibilité la politique de chargement a changé. A présent les assemblies basées
sur la CLR 4, utilisent la CLR 4, et les autres utilisent la version la plus récente
inférieure à la V4.
</div></li></ul><p align="justify">
Le problème avec les assemblies mixtes c’est que la CLR doit être capable de savoir
quelle est la CLR a utiliser lorsque un thread natif appel du code managé. Il faut
donc désactiver le side by side afin d’avoir une seule version identifiable.
</p><h2>Mais pourquoi ça marche très bien depuis mes tests unitaires ? 
<br /></h2><p align="justify">
Confronté au problème une de mes premières questions a été de comprendre pourquoi
mon code fonctionne très bien depuis mes tests unitaires alors qu’il plante lorsque
je l’appelle depuis mon application. Le moteur d’exécution des tests unitaires MSTest
est QTAgent.exe (QTAgent32.exe en version 32 bits, et oui VS 2010 supporte enfin l’exécution
de tests unitaires en 32 <em><strong>et </strong></em>64 bits). Si l’on va farfouiller
un petit peu dans le dossier C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
à la recherche des fichiers de configs des tests runners on se rend compte que Microsoft
a configuré le chargement de runtime via le fameux attribut useLegacyV2RuntimeActivationPolicy. 
</p><p align="center"><em>Ce qui veut donc dire que par défaut tous vos tests unitaires utiliseront uniquement
la V4 de la CLR et que le hosting de CLR Side by Side est désactivé pour tous vos
tests unitaires.</em></p><p><strong><em><font color="#222222"> </font></em></strong></p><img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=39dbd845-786f-4d22-ba1e-48849f889538" /></body>
      <title>Quand la CLR V2, la CLR V4 et du code mixte se rencontrent</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,39dbd845-786f-4d22-ba1e-48849f889538.aspx</guid>
      <link>http://patricelamarche.net/2010/05/06/QuandLaCLRV2LaCLRV4EtDuCodeMixteSeRencontrent.aspx</link>
      <pubDate>Thu, 06 May 2010 12:31:31 GMT</pubDate>
      <description>&lt;p&gt;
&lt;em&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;h1&gt;
&lt;h1&gt;“Mixed mode assembly is built against version 'v2.0.50727' of the runtime and
cannot be loaded in the 4.0 runtime without additional configuration information”
&lt;/h1&gt;
&lt;/h1&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Voici le petit message d’amour que peut vous renvoyez votre ami la CLR lorsque vous
essayez d’exécuter une application qui :
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
référence une assembly mixte (mêlant code natif et code managé) qui a été compilée
pour être basée sur une version différente de la CLR utilisée par votre point d’entrée. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
La solution à ce problème est assez simple, il suffit de rajouter une section dans
votre fichier de config :
&lt;/p&gt;
&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;configuration&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; 
&lt;br /&gt;
&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;startup&lt;/span&gt; &lt;span style="color: #ff0000"&gt;useLegacyV2RuntimeActivationPolicy&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; 
&lt;br /&gt;
&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;supportedRuntime&lt;/span&gt; &lt;span style="color: #ff0000"&gt;version&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;v4.0&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt; 
&lt;br /&gt;
&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;startup&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; 
&lt;br /&gt;
&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;configuration&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; 
&lt;br /&gt;
&lt;h2&gt;L’attribut useLegacyV2RuntimeActivationPolicy
&lt;/h2&gt;
&lt;p align="justify"&gt;
La clé du problème se situe donc dans l’utilisation de l’attribut useLegacyV2RuntimeActivationPolicy
qui est à false par défaut. Cet attribut permet de changer la politique de chargement
de CLR au sein de votre application. Il y a eu en effet un gros changement à ce sujet
:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Dans l’ère pré-CLR V4, en V2 quoi, il n’était possible de charger
qu’une seule version de CLR au sein d’un process. La politique par défaut était de
charger toutes vos assemblies en utilisant la version la plus récente de la CLR que
vous aviez à disposition. Cette stratégie a comme avantage que votre ancien code bénéficie
automatiquement des améliorations apportées par des versions plus récentes de CLR.
Mais cela pouvait posait des problèmes de compatibilité dans certains rares cas.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div align="justify"&gt;Avec la CLR V4, il est à présent de charger différentes versions
de CLR au sein d’un même process et afin de ne plus être confronté aux problèmes de
compatibilité la politique de chargement a changé. A présent les assemblies basées
sur la CLR 4, utilisent la CLR 4, et les autres utilisent la version la plus récente
inférieure à la V4.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p align="justify"&gt;
Le problème avec les assemblies mixtes c’est que la CLR doit être capable de savoir
quelle est la CLR a utiliser lorsque un thread natif appel du code managé. Il faut
donc désactiver le side by side afin d’avoir une seule version identifiable.
&lt;/p&gt;
&lt;h2&gt;Mais pourquoi ça marche très bien depuis mes tests unitaires ? 
&lt;br /&gt;
&lt;/h2&gt;
&lt;p align="justify"&gt;
Confronté au problème une de mes premières questions a été de comprendre pourquoi
mon code fonctionne très bien depuis mes tests unitaires alors qu’il plante lorsque
je l’appelle depuis mon application. Le moteur d’exécution des tests unitaires MSTest
est QTAgent.exe (QTAgent32.exe en version 32 bits, et oui VS 2010 supporte enfin l’exécution
de tests unitaires en 32 &lt;em&gt;&lt;strong&gt;et &lt;/strong&gt;&lt;/em&gt;64 bits). Si l’on va farfouiller
un petit peu dans le dossier C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
à la recherche des fichiers de configs des tests runners on se rend compte que Microsoft
a configuré le chargement de runtime via le fameux attribut useLegacyV2RuntimeActivationPolicy. 
&lt;/p&gt;
&lt;p align="center"&gt;
&lt;em&gt;Ce qui veut donc dire que par défaut tous vos tests unitaires utiliseront uniquement
la V4 de la CLR et que le hosting de CLR Side by Side est désactivé pour tous vos
tests unitaires.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;em&gt;&lt;font color="#222222"&gt;&amp;#160;&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=39dbd845-786f-4d22-ba1e-48849f889538" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,39dbd845-786f-4d22-ba1e-48849f889538.aspx</comments>
      <category>.net 4.0</category>
    </item>
    <item>
      <trackback:ping>http://patricelamarche.net/Trackback.aspx?guid=4039566d-1dd3-48d7-9b72-dc5b58d8980a</trackback:ping>
      <pingback:server>http://patricelamarche.net/pingback.aspx</pingback:server>
      <pingback:target>http://patricelamarche.net/PermaLink,guid,4039566d-1dd3-48d7-9b72-dc5b58d8980a.aspx</pingback:target>
      <dc:creator>Patrice Lamarche</dc:creator>
      <wfw:comment>http://patricelamarche.net/CommentView,guid,4039566d-1dd3-48d7-9b72-dc5b58d8980a.aspx</wfw:comment>
      <wfw:commentRss>http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=4039566d-1dd3-48d7-9b72-dc5b58d8980a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Si vous souhaitez commencer à vous former sur Visual Studio 2010 et le framework .net
4.0, sachez que Microsoft vient de publier une première version d'un training kit
contenant des slides ainsi que des labs sur des sujets tels que : ParallelFX, VB10,
C# 4, F#, ASP.net Ajax 4.0, etc...
</p>
        <p>
Comme la précédente version dédiée à VS 2008, ce training kit est construit autour
d'un site web vous permettant de sélectionner les ressources qui vous intéresse.
</p>
        <p>
          <a href="http://patricelamarche.net/content/binary/WindowsLiveWriter/.net4.0TrainingKitpourVS2010.0disponible_8BB7/image_2.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="431" alt="image" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/.net4.0TrainingKitpourVS2010.0disponible_8BB7/image_thumb.png" width="656" border="0" />
          </a>
        </p>
        <p>
En savoir plus :<br /><a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=752cb725-969b-4732-a383-ed5740f02e93&amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=752cb725-969b-4732-a383-ed5740f02e93&amp;displaylang=en">http://www.microsoft.com/downloads/details.aspx?FamilyID=752cb725-969b-4732-a383-ed5740f02e93&amp;displaylang=en</a></p>
        <img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=4039566d-1dd3-48d7-9b72-dc5b58d8980a" />
      </body>
      <title>[.net 4.0] Training Kit pour VS 2010 et .net 4.0 disponible</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,4039566d-1dd3-48d7-9b72-dc5b58d8980a.aspx</guid>
      <link>http://patricelamarche.net/2008/11/14/net40TrainingKitPourVS2010EtNet40Disponible.aspx</link>
      <pubDate>Fri, 14 Nov 2008 08:56:19 GMT</pubDate>
      <description>&lt;p&gt;
Si vous souhaitez commencer à vous former sur Visual Studio 2010 et le framework .net
4.0, sachez que Microsoft vient de publier une première version d'un training kit
contenant des slides ainsi que des labs sur des sujets tels que : ParallelFX, VB10,
C# 4, F#, ASP.net Ajax 4.0, etc...
&lt;/p&gt;
&lt;p&gt;
Comme la précédente version dédiée à VS 2008, ce training kit est construit autour
d'un site web vous permettant de sélectionner les ressources qui vous intéresse.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://patricelamarche.net/content/binary/WindowsLiveWriter/.net4.0TrainingKitpourVS2010.0disponible_8BB7/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="431" alt="image" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/.net4.0TrainingKitpourVS2010.0disponible_8BB7/image_thumb.png" width="656" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
En savoir plus :&lt;br&gt;
&lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=752cb725-969b-4732-a383-ed5740f02e93&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=752cb725-969b-4732-a383-ed5740f02e93&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=752cb725-969b-4732-a383-ed5740f02e93&amp;amp;displaylang=en&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=4039566d-1dd3-48d7-9b72-dc5b58d8980a" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,4039566d-1dd3-48d7-9b72-dc5b58d8980a.aspx</comments>
      <category>.net 4.0</category>
    </item>
    <item>
      <trackback:ping>http://patricelamarche.net/Trackback.aspx?guid=b951d27c-245b-4551-9b96-b7e2113f51fc</trackback:ping>
      <pingback:server>http://patricelamarche.net/pingback.aspx</pingback:server>
      <pingback:target>http://patricelamarche.net/PermaLink,guid,b951d27c-245b-4551-9b96-b7e2113f51fc.aspx</pingback:target>
      <dc:creator>Patrice Lamarche</dc:creator>
      <wfw:comment>http://patricelamarche.net/CommentView,guid,b951d27c-245b-4551-9b96-b7e2113f51fc.aspx</wfw:comment>
      <wfw:commentRss>http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b951d27c-245b-4551-9b96-b7e2113f51fc</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Cette présentation fait partie des sessions de la PDC de cette année qu'il faut absolument
visionner. Présenté par un des pères du C# (Anders Hejlsberg), l'ensemble des nouveautés
qui seront proposés par la version 4 de C# qui sera proposé avec Visual Studio 2010
sont abordées.
</p>
        <p>
Premier constat rassurant, les changements sont moins nombreux et moins importants
que ceux introduits au passage de C# 2 à C# 3. L'essentiel de ces nouveautés concerne
:
</p>
        <ul>
          <li>
l'ajout d'un mot clé dynamic  qui permet de manipuler des types à la manière
des langages à typage dynamique c'est à dire que nous avons la possibilité d'indiquer
au compilateur de ne pas s'occuper de savoir si une méthode Foo est présente sur le
type manipulé avec le fameux mot-clé, mais d'uniquement tenter de l'appeler lors de
l'exécution. L'intérêt de cette nouveauté est de permettre une meilleure interopérabilité
avec les langages dynamiques présents dans le monde .net tels que Iron Ruby mais également
de manipuler de manière plus simple les objets COM. Bien entendu le but n'est pas
transformer le langage C# en langage dynamique mais de lui offrir la possibilité de
profiter de certains avantages de cette gestion des types. L'interface IDynamicObject
est également ajouté afin de définir directement en C# des objets à manipuler de manière
"dynamique". A noter que le Visual Basic dispose depuis la version 4 d'une partie
de cette fonctionnalité grâce à l'implémentation du latebinding qui permettait d'appeler
les méthodes que l'on souhaitait sur un simple type Object. 
</li>
          <li>
le support des paramètres optionnels et nommés également supportés par Visual Basic
depuis bien longtemps. Je rassure de suite les puristes de la POO l'objectif n'est
pas de remplacer les surcharges de méthodes mais de simplifier l'interop avec les
composants COM et les API basés sur cette technologie comme... Microsoft Office. Fini
le cauchemard des ref missing... 
</li>
          <li>
Le support de la co-variance et de la contra-variance au niveau des méthodes. La co-variance
étant déjà disponible au niveau des délégués depuis C# 2.</li>
        </ul>
        <p>
TL16 The Future of C# (Note:5/5) 
</p>
        <p>
          <a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/PPTX/TL16.pptx">Slides PPTX</a> - <a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV-HQ/TL16.wmv">Vidéos
WMV-HQ</a></p>
        <p>
          <a href="https://sessions.microsoftpdc.com/">
            <img src="https://sessions.microsoftpdc.com/THUMBNAILS/TL16.jpg" border="0" />
          </a>
        </p>
        <img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=b951d27c-245b-4551-9b96-b7e2113f51fc" />
      </body>
      <title>[PDC08][TL16]The future of C#</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,b951d27c-245b-4551-9b96-b7e2113f51fc.aspx</guid>
      <link>http://patricelamarche.net/2008/11/06/PDC08TL16TheFutureOfC.aspx</link>
      <pubDate>Thu, 06 Nov 2008 03:00:00 GMT</pubDate>
      <description>&lt;p&gt;
Cette présentation fait partie des sessions de la PDC de cette année qu'il faut absolument
visionner. Présenté par un des pères du C# (Anders Hejlsberg), l'ensemble des nouveautés
qui seront proposés par la version 4 de C# qui sera proposé avec Visual Studio 2010
sont abordées.
&lt;/p&gt;
&lt;p&gt;
Premier constat rassurant, les changements sont moins nombreux et moins importants
que ceux introduits au passage de C# 2 à C# 3. L'essentiel de ces nouveautés concerne
:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
l'ajout d'un mot clé dynamic&amp;nbsp; qui permet de manipuler des types à la manière
des langages à typage dynamique c'est à dire que nous avons la possibilité d'indiquer
au compilateur de ne pas s'occuper de savoir si une méthode Foo est présente sur le
type manipulé avec le fameux mot-clé, mais d'uniquement tenter de l'appeler lors de
l'exécution. L'intérêt de cette nouveauté est de permettre une meilleure interopérabilité
avec les langages dynamiques présents dans le monde .net tels que Iron Ruby mais également
de manipuler de manière plus simple les objets COM. Bien entendu le but n'est pas
transformer le langage C# en langage dynamique mais de lui offrir la possibilité de
profiter de certains avantages de cette gestion des types. L'interface IDynamicObject
est également ajouté afin de définir directement en C# des objets à manipuler de manière
"dynamique". A noter que le Visual Basic dispose depuis la version 4 d'une partie
de cette fonctionnalité grâce à l'implémentation du latebinding qui permettait d'appeler
les méthodes que l'on souhaitait sur un simple type Object. 
&lt;li&gt;
le support des paramètres optionnels et nommés également supportés par Visual Basic
depuis bien longtemps. Je rassure de suite les puristes de la POO l'objectif n'est
pas de remplacer les surcharges de méthodes mais de simplifier l'interop avec les
composants COM et les API basés sur cette technologie comme... Microsoft Office. Fini
le cauchemard des ref missing... 
&lt;li&gt;
Le support de la co-variance et de la contra-variance au niveau des méthodes. La co-variance
étant déjà disponible au niveau des délégués depuis C# 2.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
TL16 The Future of C# (Note:5/5) 
&lt;p&gt;
&lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/PPTX/TL16.pptx"&gt;Slides PPTX&lt;/a&gt; - &lt;a href="http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV-HQ/TL16.wmv"&gt;Vidéos
WMV-HQ&lt;/a&gt; 
&lt;p&gt;
&lt;a href="https://sessions.microsoftpdc.com/"&gt;&lt;img src="https://sessions.microsoftpdc.com/THUMBNAILS/TL16.jpg" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=b951d27c-245b-4551-9b96-b7e2113f51fc" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,b951d27c-245b-4551-9b96-b7e2113f51fc.aspx</comments>
      <category>.net 4.0</category>
      <category>PDC08</category>
    </item>
    <item>
      <trackback:ping>http://patricelamarche.net/Trackback.aspx?guid=966fa47f-637c-41dd-bb3c-7a72314c4d38</trackback:ping>
      <pingback:server>http://patricelamarche.net/pingback.aspx</pingback:server>
      <pingback:target>http://patricelamarche.net/PermaLink,guid,966fa47f-637c-41dd-bb3c-7a72314c4d38.aspx</pingback:target>
      <dc:creator>Patrice Lamarche</dc:creator>
      <wfw:comment>http://patricelamarche.net/CommentView,guid,966fa47f-637c-41dd-bb3c-7a72314c4d38.aspx</wfw:comment>
      <wfw:commentRss>http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=966fa47f-637c-41dd-bb3c-7a72314c4d38</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Quelques bloggueurs influents ont commencé à commenter <a href="http://patricelamarche.net/2008/10/31/net40LinqToSQLEstMort.aspx" target="_blank">la
nouvelle relayée il y a quelques jours</a> : 
</p>
        <ul>
          <li>
Ayende <a title="http://ayende.com/Blog/archive/2008/10/31/microsoft-kills-linq-to-sql.aspx" href="http://ayende.com/Blog/archive/2008/10/31/microsoft-kills-linq-to-sql.aspx">http://ayende.com/Blog/archive/2008/10/31/microsoft-kills-linq-to-sql.aspx</a></li>
          <li>
David Hayden <a title="http://codebetter.com/blogs/david.hayden/archive/2008/10/31/linq-to-sql-is-dead-read-between-the-lines.aspx" href="http://codebetter.com/blogs/david.hayden/archive/2008/10/31/linq-to-sql-is-dead-read-between-the-lines.aspx">http://codebetter.com/blogs/david.hayden/archive/2008/10/31/linq-to-sql-is-dead-read-between-the-lines.aspx</a></li>
        </ul>
        <p>
Un des membres de l'équipe Linq To SQL a répondu à l'ensemble des craintes liées à
la publication du <a href="http://patricelamarche.net/ct.ashx?id=a42e12e8-6930-4305-be78-e45fbf3ab955&amp;url=http%3a%2f%2fblogs.msdn.com%2fadonet%2farchive%2f2008%2f10%2f29%2fupdate-on-linq-to-sql-and-linq-to-entities-roadmap.aspx" target="_blank">post
de l'équipe ADO.net</a>. Ce dernier tente de calmer le jeu en indiquant que Linq To
SQL ne va pas disparaitre du framework et qu'il continuera d'être maintenu au travers
de corrections de bugs par exemple. (cf : <a title="http://damieng.com/blog/2008/10/31/linq-to-sql-next-steps" href="http://damieng.com/blog/2008/10/31/linq-to-sql-next-steps">http://damieng.com/blog/2008/10/31/linq-to-sql-next-steps</a>)
</p>
        <p>
Il n'en reste que Microsoft ne recommande l'utilisation que d'un seul et unique provider
LINQ pour accéder à des bases de données relationnelles : LINQ TO ENTITIES. Linq To
SQL n'a donc pas d'avenir hors de la maintenance des applications existantes basés
sur ce provider dont la simplicité d'utilisation a séduit de nombreux développeurs.
</p>
        <img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=966fa47f-637c-41dd-bb3c-7a72314c4d38" />
      </body>
      <title>[.net 4.0] Linq To SQL est mort (suite)</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,966fa47f-637c-41dd-bb3c-7a72314c4d38.aspx</guid>
      <link>http://patricelamarche.net/2008/11/03/net40LinqToSQLEstMortSuite.aspx</link>
      <pubDate>Mon, 03 Nov 2008 03:00:28 GMT</pubDate>
      <description>&lt;p&gt;
Quelques bloggueurs influents ont commencé à commenter &lt;a href="http://patricelamarche.net/2008/10/31/net40LinqToSQLEstMort.aspx" target="_blank"&gt;la
nouvelle relayée il y a quelques jours&lt;/a&gt; : 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Ayende &lt;a title="http://ayende.com/Blog/archive/2008/10/31/microsoft-kills-linq-to-sql.aspx" href="http://ayende.com/Blog/archive/2008/10/31/microsoft-kills-linq-to-sql.aspx"&gt;http://ayende.com/Blog/archive/2008/10/31/microsoft-kills-linq-to-sql.aspx&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
David Hayden &lt;a title="http://codebetter.com/blogs/david.hayden/archive/2008/10/31/linq-to-sql-is-dead-read-between-the-lines.aspx" href="http://codebetter.com/blogs/david.hayden/archive/2008/10/31/linq-to-sql-is-dead-read-between-the-lines.aspx"&gt;http://codebetter.com/blogs/david.hayden/archive/2008/10/31/linq-to-sql-is-dead-read-between-the-lines.aspx&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Un des membres de l'équipe Linq To SQL a répondu à l'ensemble des craintes liées à
la publication du &lt;a href="http://patricelamarche.net/ct.ashx?id=a42e12e8-6930-4305-be78-e45fbf3ab955&amp;amp;url=http%3a%2f%2fblogs.msdn.com%2fadonet%2farchive%2f2008%2f10%2f29%2fupdate-on-linq-to-sql-and-linq-to-entities-roadmap.aspx" target="_blank"&gt;post
de l'équipe ADO.net&lt;/a&gt;. Ce dernier tente de calmer le jeu en indiquant que Linq To
SQL ne va pas disparaitre du framework et qu'il continuera d'être maintenu au travers
de corrections de bugs par exemple. (cf : &lt;a title="http://damieng.com/blog/2008/10/31/linq-to-sql-next-steps" href="http://damieng.com/blog/2008/10/31/linq-to-sql-next-steps"&gt;http://damieng.com/blog/2008/10/31/linq-to-sql-next-steps&lt;/a&gt;)
&lt;/p&gt;
&lt;p&gt;
Il n'en reste que Microsoft ne recommande l'utilisation que d'un seul et unique provider
LINQ pour accéder à des bases de données relationnelles : LINQ TO ENTITIES. Linq To
SQL n'a donc pas d'avenir hors de la maintenance des applications existantes basés
sur ce provider dont la simplicité d'utilisation a séduit de nombreux développeurs.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=966fa47f-637c-41dd-bb3c-7a72314c4d38" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,966fa47f-637c-41dd-bb3c-7a72314c4d38.aspx</comments>
      <category>.net 4.0</category>
    </item>
    <item>
      <trackback:ping>http://patricelamarche.net/Trackback.aspx?guid=a42e12e8-6930-4305-be78-e45fbf3ab955</trackback:ping>
      <pingback:server>http://patricelamarche.net/pingback.aspx</pingback:server>
      <pingback:target>http://patricelamarche.net/PermaLink,guid,a42e12e8-6930-4305-be78-e45fbf3ab955.aspx</pingback:target>
      <dc:creator>Patrice Lamarche</dc:creator>
      <wfw:comment>http://patricelamarche.net/CommentView,guid,a42e12e8-6930-4305-be78-e45fbf3ab955.aspx</wfw:comment>
      <wfw:commentRss>http://patricelamarche.net/SyndicationService.asmx/GetEntryCommentsRss?guid=a42e12e8-6930-4305-be78-e45fbf3ab955</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
C’est la team ADO.net qui l’indique, Linq To SQL peut être considéré comme mort puisque
l’équipe annonce que ce provider sera uniquement maintenu en vie grâce aux différents
feedbacks des développeurs, Linq To Entities étant le provider à utiliser en priorité
selon Microsoft. 
</p>
        <p>
Tous les détails :<br /><a href="http://blogs.msdn.com/adonet/archive/2008/10/29/update-on-linq-to-sql-and-linq-to-entities-roadmap.aspx">http://blogs.msdn.com/adonet/archive/2008/10/29/update-on-linq-to-sql-and-linq-to-entities-roadmap.aspx</a></p>
        <img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=a42e12e8-6930-4305-be78-e45fbf3ab955" />
      </body>
      <title>[.net 4.0] Linq To SQL est mort</title>
      <guid isPermaLink="false">http://patricelamarche.net/PermaLink,guid,a42e12e8-6930-4305-be78-e45fbf3ab955.aspx</guid>
      <link>http://patricelamarche.net/2008/10/31/net40LinqToSQLEstMort.aspx</link>
      <pubDate>Fri, 31 Oct 2008 08:37:09 GMT</pubDate>
      <description>&lt;p&gt;
C’est la team ADO.net qui l’indique, Linq To SQL peut être considéré comme mort puisque
l’équipe annonce que ce provider sera uniquement maintenu en vie grâce aux différents
feedbacks des développeurs, Linq To Entities étant le provider à utiliser en priorité
selon Microsoft. 
&lt;p&gt;
Tous les détails :&lt;br&gt;
&lt;a href="http://blogs.msdn.com/adonet/archive/2008/10/29/update-on-linq-to-sql-and-linq-to-entities-roadmap.aspx"&gt;http://blogs.msdn.com/adonet/archive/2008/10/29/update-on-linq-to-sql-and-linq-to-entities-roadmap.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://patricelamarche.net/aggbug.ashx?id=a42e12e8-6930-4305-be78-e45fbf3ab955" /&gt;</description>
      <comments>http://patricelamarche.net/CommentView,guid,a42e12e8-6930-4305-be78-e45fbf3ab955.aspx</comments>
      <category>.net 3.5</category>
      <category>.net 4.0</category>
    </item>
  </channel>
</rss>