<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Nexdotnet’s Blog &#187; Futures</title>
	<atom:link href="http://nexeo.fr/nexdotnet/tag/futures/feed/" rel="self" type="application/rss+xml" />
	<link>http://nexeo.fr/nexdotnet</link>
	<description>Blog du pole .NET de NEXEO</description>
	<lastBuildDate>Wed, 11 Jan 2012 22:57:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>6 nouveautés du Framework .NET 4.0</title>
		<link>http://nexeo.fr/nexdotnet/2009/09/23/6-nouveautes-du-framework-net-4-0/</link>
		<comments>http://nexeo.fr/nexdotnet/2009/09/23/6-nouveautes-du-framework-net-4-0/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 08:18:34 +0000</pubDate>
		<dc:creator>La Team Nexdotnet</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Généralités]]></category>
		<category><![CDATA[Futures]]></category>

		<guid isPermaLink="false">http://nexdotnet.wordpress.com/?p=98</guid>
		<description><![CDATA[Le framework .NET (qui arrive gentiment sur ses 10 ans) évolue de version en version. La deuxième version a apporté les Génériques, la 3.0 a propulsé LINQ et tout ce qui était nécessaire à son intégration. Quelle surprise nous réserve le Framwork 4.0 ? Pour répondre à cette question, il faut comprendre les grandes tendances actuelles en matière de développement : Les [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-99" title="Logo Microsoft .Net" src="http://nexeo.fr/nexdotnet/wp-content/uploads/HLIC/9a2a9b7a1b07ebfb5ecc8a6d21b50d23.png" alt="Logo Microsoft .Net" />Le framework .NET (qui arrive gentiment sur ses 10 ans) évolue de version en version. La deuxième version a apporté les <a href="http://msdn.microsoft.com/fr-fr/library/512aeb7t(VS.80).aspx">Génériques</a>, la 3.0 a propulsé <a href="http://msdn.microsoft.com/fr-fr/library/bb397933.aspx">LINQ</a> et tout ce qui était nécessaire à son intégration. <strong>Quelle surprise nous réserve le Framwork 4.0 ?</strong></p>
<p>Pour répondre à cette question, il faut comprendre les grandes tendances actuelles en matière de développement :</p>
<ul>
<li>Les développeurs  se tournent de plus en plus vers <a href="http://fr.wikipedia.org/wiki/Programmation_d%C3%A9clarative">des langages déclaratifs</a>, qui leurs permettent de se concentrer d’avantage sur ce qu&#8217;ils doivent faire et pas sur la façon dont ils pourront rendre leur <a href="http://fr.wikipedia.org/wiki/Programmation_imp%C3%A9rative">code impératif</a> fonctionnel.</li>
<li>Les langages dynamiques tels que Php, Javascript, Ruby… connaissent un succès qui ne se dément pas. La simplicité du développement, le typage implicite et l’absence de compilation y sont pour beaucoup.</li>
<li>Paradoxalement, on observe un intérêt sans cesse renouvelé pour les langages statiques. Ils apportent leur lot de robustesse, de performance et d’outils intelligents comme IntelliSense dans Visual Studio, ainsi que, généralement, une meilleure sécurité lors de la montée en charge (le code étant compilé, il est moins évident de passer à côté d&#8217;une erreur, même si le projet fait plusieurs millions de lignes).</li>
<li>Enfin, un besoin important d’économiser de l’énergie en privilégiant les technologie multicoeurs, et donc de maitriser les problématiques d’accès concurrent et de gestion de ressources démultipliées.</li>
</ul>
<p>Voici la réponse de Microsoft à ces problématiques.</p>
<h4>1. Le Dynamic Language Runtime</h4>
<p>C# 4.0 poursuivra le travail de C# 3.0 et continuera à promouvoir l&#8217;utilisation de <a href="http://msdn.microsoft.com/fr-fr/library/bb397933.aspx">LINQ</a>, afin de rendre le code plus fonctionnel et d&#8217;en faciliter la relecture., mais il fournira également de nouvelles fonctionnalités, orientées &laquo;&nbsp;programmation dynamique&nbsp;&raquo; grâce à la DLR, un socle de création de langages dynamiques implanté en surcouche de la CLR qui donnera accès aussi bien à un Object Binder .NET qu’à des Binder Silverlight, Python ou Ruby&#8230;</p>
<h4>2. Le typage dynamique des objets</h4>
<p>La grosse révolution de C# 4.0 est le typage dynamique d&#8217;objets. C# 4.0 introduira un type statique <code>dynamic</code> dont la résolution se fera non pas à la compilation, mais à l’exécution (la compilation générant en fait du script). Une vraie révolution dans le monde du .NET et une annonce très attendue par ceux qui utilisent la <a href="http://emerica.developpez.com/dotnet/reflection/introduction/csharp/">réflexion</a> à outrance. L’exemple donnée est assez parlant.</p>
<p>Imaginez que vous ayez une méthode <code>GetCalculator()</code> en provenance d’une <a href="http://fr.wikipedia.org/wiki/Software_factory">usine logicielle</a>, qui renvoie un objet de type <strong>Object</strong> (mais dont vous savez qu’il s’agit d’un calculateur). Voici ce qu’il fallait écrire avant pour calculer 10+20 :</p>
<p><code><span style="color:#3066ac;">object</span> calc = GetCalculator();</code><br />
<code><span style="color:#3066ac;">Type</span> calctype = calc.gettype();</code><br />
<code><span style="color:#3066ac;">object</span> res = calctype.InvokeMember(<span style="color:#993300;">"Add"</span>, BindingFlags.InvokeMethod, <span style="color:#3066ac;">null</span>, <span style="color:#3066ac;">new object</span>[] {10, 20});</code><br />
<code><span style="color:#3066ac;">int</span> sum = convert.ToInt32(res).</code></p>
<p>Le code n&#8217;est pas très intuitif, et cela est principalement dû à la phase d’appel à la procédure par invocation… Voilà ce que cela pourra donner en C# 4.0 :</p>
<p><code><span style="color:#3066ac;">dynamic</span> calc = GetCalculator();</code><br />
<code><span style="color:#3066ac;">int</span> sum = calc.add(10,20);</code></p>
<h4>3. Paramètres optionnels et nommés</h4>
<p>C# 4.0 introduira la possibilité de définir des paramètres optionnels et nommés (oui, il aura fallu un certain temps diront les détracteurs…). Il ne sera donc plus la peine de développer 8 signatures d’une même méthode pour définir des valeurs par défaut ; autant de temps gagné par les développeurs pour s&#8217;interroger sur de vrais problèmes.</p>
<h4>4. Améliorations relatives à l&#8217;usage de COM</h4>
<p>Outre les paramètres optionnels et nommés déjà décrits, qui permettront d&#8217;écrire :</p>
<p><code><span style="color:#3066ac;">var</span> maVariable = comObject.method();</code></p>
<p>au lieu de :</p>
<p><code><span style="color:#3066ac;">var</span> maVariable = comObject.method(System.Type.Missing, System.Type.Missing, System.Type.Missing, System.Type.Missing);</code></p>
<p>C# 4.0 utilisera également ses nouvelles fonctionnalités &laquo;&nbsp;dynamiques&nbsp;&raquo; pour permettre le mapping automatique des objets (en réalité, il résoudra ce problème à l&#8217;exécution).</p>
<p> </p>
<h4>5. Covariance et contra-variance</h4>
<p>Lorsque vous instanciez une classe générique avec un type référence B dérivant de A, le transtypage de B vers A des éléments de la liste était impossible. Via une astuce de déclaration de l&#8217;interface de la classe générique, cette covariance sera désormais autorisée :</p>
<p><code>IBoite&lt;<span style="color:#3066ac;">cookie</span>&gt; maBoiteACookies = new Boite&lt;<span style="color:#3066ac;">cookie</span>&gt;();</code><br />
<code>IBoite&lt;<span style="color:#3066ac;">biscuit</span>&gt; maBoiteABiscuits = maBoiteACookies;</code></p>
<p>Réciproquement, un second mot clé permettra des opérations de contra-variance (de la classe vers ses dérivées) et on peut dès lors imaginer des scénarios mixtes mélangeant co et contra-variance, comme l&#8217;écriture de délégués ayant des paramètres d&#8217;entrée et sortie (d&#8217;où les mots clés choisis&#8230; <span style="color:#3066ac;">in</span> et <span style="color:#3066ac;">out</span>).</p>
<h4>6. Co-évolution des langages</h4>
<p>Microsoft s&#8217;est engagé à faire évoluer conjointement C# et VB.NET à partir de cette version du Framework. Voilà une grande nouvelle qui devrait réjouir les développeurs VB.NET, jusque-là un peu moins bien traités que leurs camarades C#-istes.</p>
<h5>Pour aller plus loin</h5>
<p>Si vous désirez aller plus loin dans la compréhension des nouveautés du Framework .NET 4.0, Nexdotnet vous invite à imprimer le <a href="http://nexdotnet.wordpress.com/2009/04/30/quelques-posters-pour-redecorer-votre-bureau/">poster prévisionnel du Framework .NET 4.0</a> et à lire les articles suivants :</p>
<ul>
<li><a href="http://jlambert.developpez.com/tutoriels/dotnet/nouveautescsharp4/">[Dossier] Tour d&#8217;horizon des nouveautés de C# 4.0</a>, par Jérôme Lambert</li>
<li><a href="http://channel9.msdn.com/pdc2008/TL16/">[Video] The Future of C# (EN)</a>, présenté par Anders Hejlsberg</li>
<li><a href="http://channel9.msdn.com/pdc2008/TL12/">[Video] Future Directions for Visual Basic (EN)</a>, présenté par Paul Vick et Lucian Wischik</li>
<li><a href="http://code.msdn.microsoft.com/csharpfuture/Release/ProjectReleases.aspx?ReleaseId=1686">[Word] C# Futures</a>, par Mads Torgersen</li>
</ul>
<hr /><p><small>Article original publi&eacute; sur <a href="http://nexeo.fr/nexdotnet">Nexdotnet’s Blog</a> &copy; 2012<br />Sauf utilisation du <a href="http://fr.wikipedia.org/wiki/Droit_de_courte_citation">droit de courte citation</a>, cet article est soumis &agrave; la licence <a rel="license" href="http://creativecommons.org/licenses/by-nd/2.0/fr/">Creative Commons by-nd 2.0 France</a><br /></small></p>.
<div class="sociable">
<div class="sociable_tagline">
<strong>Partagez cet article :</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fnexeo.fr%2Fnexdotnet%2F2009%2F09%2F23%2F6-nouveautes-du-framework-net-4-0%2F&amp;title=6%20nouveaut%C3%A9s%20du%20Framework%20.NET%204.0&amp;notes=Le%C2%A0framework%20.NET%C2%A0%28qui%20arrive%20gentiment%20sur%20ses%2010%20ans%29%20%C3%A9volue%20de%20version%20en%20version.%C2%A0La%C2%A0deuxi%C3%A8me%20version%C2%A0a%20apport%C3%A9%20les%20G%C3%A9n%C3%A9riques%2C%C2%A0la%203.0%20a%20propuls%C3%A9%20LINQ%20et%20tout%20ce%20qui%20%C3%A9tait%20n%C3%A9cessaire%20%C3%A0%20son%20int%C3%A9gration.%20Quelle%20surprise%20nous%20r%C3%A9serv" title="del.icio.us"><img src="http://nexeo.fr/nexdotnet/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fnexeo.fr%2Fnexdotnet%2F2009%2F09%2F23%2F6-nouveautes-du-framework-net-4-0%2F&amp;t=6%20nouveaut%C3%A9s%20du%20Framework%20.NET%204.0" title="Facebook"><img src="http://nexeo.fr/nexdotnet/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.netvibes.com/share?title=6%20nouveaut%C3%A9s%20du%20Framework%20.NET%204.0&amp;url=http%3A%2F%2Fnexeo.fr%2Fnexdotnet%2F2009%2F09%2F23%2F6-nouveautes-du-framework-net-4-0%2F" title="Netvibes"><img src="http://nexeo.fr/nexdotnet/wp-content/plugins/sociable/images/netvibes.png" title="Netvibes" alt="Netvibes" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.scoopeo.com/scoop/new?newurl=http%3A%2F%2Fnexeo.fr%2Fnexdotnet%2F2009%2F09%2F23%2F6-nouveautes-du-framework-net-4-0%2F&amp;title=6%20nouveaut%C3%A9s%20du%20Framework%20.NET%204.0" title="Scoopeo"><img src="http://nexeo.fr/nexdotnet/wp-content/plugins/sociable/images/scoopeo.png" title="Scoopeo" alt="Scoopeo" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=6%20nouveaut%C3%A9s%20du%20Framework%20.NET%204.0%20-%20http%3A%2F%2Fnexeo.fr%2Fnexdotnet%2F2009%2F09%2F23%2F6-nouveautes-du-framework-net-4-0%2F" title="Twitter"><img src="http://nexeo.fr/nexdotnet/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.wikio.fr/vote?url=http%3A%2F%2Fnexeo.fr%2Fnexdotnet%2F2009%2F09%2F23%2F6-nouveautes-du-framework-net-4-0%2F" title="Wikio FR"><img src="http://nexeo.fr/nexdotnet/wp-content/plugins/sociable/images/wikio.png" title="Wikio FR" alt="Wikio FR" class="sociable-hovers" /></a></li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://nexeo.fr/nexdotnet/2009/09/23/6-nouveautes-du-framework-net-4-0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

