<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Blog de Patrice Lamarche</title>
	
	<link>http://patricelamarche.net</link>
	<description>Sortir du chaos</description>
	<lastBuildDate>Thu, 26 Apr 2012 05:57:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Patrice" /><feedburner:info uri="patrice" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><item>
		<title>News de la semaine #16</title>
		<link>http://feedproxy.google.com/~r/Patrice/~3/_sQomiF2oyU/</link>
		<comments>http://patricelamarche.net/2012/04/26/news-de-la-semaine-16-3/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 05:54:55 +0000</pubDate>
		<dc:creator>Patrice</dc:creator>
				<category><![CDATA[Actualités]]></category>
		<category><![CDATA[Veille]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://patricelamarche.net/?p=1080</guid>
		<description><![CDATA[Du côté de l’actualité produits, Scott Guthrie annonce la disponibilité de Windows Azure Media Services. Microsoft annonce les différentes éditions de Windows 8. La très bonne équipe de JetBrains livre la version beta de dotPeek (leur décompilateur). Autre décompilateur; ILSpy est disponible en V 2. A propos de l’actualité technique, InfoQ nous présente les changements apportés par MEF 2 (présent dans le framework .net 4.5) MEF 2 qui est également l’objet d’un article sur CodeProject. [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float: right; display: inline" alt="image" align="right" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/Newsdelasemaine18_9F77/image_thumb.png" />Du côté de l’actualité produits, <a href="http://weblogs.asp.net/scottgu/archive/2012/04/16/announcing-windows-azure-media-services.aspx">Scott Guthrie annonce la disponibilité de Windows Azure Media Services</a>. </p>
<p><a href="http://windowsteamblog.com/windows/b/bloggingwindows/archive/2012/04/16/announcing-the-windows-8-editions.aspx">Microsoft annonce les différentes éditions de Windows 8</a>.</p>
<p><a href="http://blogs.jetbrains.com/dotnet/2012/04/dotpeek-10-beta-available/">La très bonne équipe de JetBrains livre la version beta de dotPeek (leur décompilateur).</a></p>
<p><a href="http://community.sharpdevelop.net/blogs/christophwille/archive/2012/04/15/ilspy-2-0-final.aspx">Autre décompilateur; ILSpy est disponible en V 2</a>.</p>
<p>A propos de l’actualité technique, <a href="http://www.infoq.com/news/2012/04/MEF-2">InfoQ nous présente les changements apportés par MEF 2 (présent dans le framework .net 4.5)</a></p>
<p><a href="http://www.codeproject.com/Articles/366583/MEF-2-Preview-Beginners-Guide">MEF 2 qui est également l’objet d’un article sur CodeProject.</a></p>
<p><a href="http://blogs.msdn.com/b/dohollan/archive/2012/04/20/sql-server-2012-sqlclr-net-framework-version.aspx">Doug Holland nous précise la version de la CLR incorporée à SQL Server 2012</a>.</p>
<p><a href="http://blogs.msdn.com/b/sqlsecurity/archive/2012/04/19/sql-server-2012-best-practices-analyzer.aspx">Toujours à propos de SQL Server 2012, Microsoft livre un Best Practices Analyzer spécifique.</a></p>
<p><a href="http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012/Roslyn">Channel9 propose une vidéo issue de l’évènement Lang.NEXT montrant un exemple d’utilisation du projet Roslyn</a>.</p>
<p><a href="http://blogs.msdn.com/b/codefx/archive/2012/04/16/samplebrowserbigrefresh.aspx">L’équipe de All-In-One Code propose une nouvelle version de la librairie d’exemples de codes sources avec un nouveau browser particulièrement réussi</a></p>
<p><a href="http://blog.adhess.net/2012/04/nouvel-article-le-dev-windows-8-avec.html">Du côté de l’actualité française, Guillaume Lacasa débute une série d’articles sur le développement d’applications WinRT avec HTML/JS</a>.</p>
<p><a href="http://channel9.msdn.com/Blogs/C9Team/Channel-9-now-has-a-Windows-8-app">Et enfin pour terminer sur une note “plus légère” Channel9 propose son application Windows 8</a> qui est plutôt pratique et agréable à utiliser.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Patrice?a=_sQomiF2oyU:1ye8n-cPs-U:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Patrice?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=_sQomiF2oyU:1ye8n-cPs-U:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Patrice?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=_sQomiF2oyU:1ye8n-cPs-U:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/Patrice?i=_sQomiF2oyU:1ye8n-cPs-U:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=_sQomiF2oyU:1ye8n-cPs-U:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Patrice?i=_sQomiF2oyU:1ye8n-cPs-U:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Patrice/~4/_sQomiF2oyU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://patricelamarche.net/2012/04/26/news-de-la-semaine-16-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://patricelamarche.net/2012/04/26/news-de-la-semaine-16-3/</feedburner:origLink></item>
		<item>
		<title>News de la semaine #15 – 2012</title>
		<link>http://feedproxy.google.com/~r/Patrice/~3/kW_3ctDnYRo/</link>
		<comments>http://patricelamarche.net/2012/04/17/news-de-la-semaine-15-2012/#comments</comments>
		<pubDate>Tue, 17 Apr 2012 14:32:52 +0000</pubDate>
		<dc:creator>Patrice</dc:creator>
				<category><![CDATA[Actualités]]></category>

		<guid isPermaLink="false">http://patricelamarche.net/?p=1077</guid>
		<description><![CDATA[Microsoft annonce la création d’une filiale entièrement consacrée au support des standards, à l’interopérabilité et à l’Open Source. Du côté des langages, Stephen Toub a débuté une série de posts sur la gestion de l’asynchronisme proposée par le framework .net 4.5. Il propose entre autres une FAQ sur Async/Await, et un post sur la pertinence de proposer des wrappers synchrones de méthodes asynchrones. Toujours à propos d’asynchronisme, Kavya Kotacherry nous montre comment elle résolu un [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; padding-right: 0px" border="0" alt="image" align="right" src="http://patricelamarche.net/content/binary/WindowsLiveWriter/Newsdelasemaine18_9F77/image_thumb.png" /><a href="http://blogs.msdn.com/b/interoperability/archive/2012/04/12/announcing-one-more-way-microsoft-will-engage-with-the-open-source-and-standards-communities.aspx">Microsoft annonce la création d’une filiale entièrement consacrée au support des standards, à l’interopérabilité et à l’Open Source</a>. </p>
<p>Du côté des langages, Stephen Toub a débuté une série de posts sur la gestion de l’asynchronisme proposée par le framework .net 4.5. <a href="http://blogs.msdn.com/b/pfxteam/archive/2012/04/12/10293335.aspx">Il propose entre autres une FAQ sur Async/Await</a>, et <a href="http://blogs.msdn.com/b/pfxteam/archive/2012/04/13/10293638.aspx">un post sur la pertinence de proposer des wrappers synchrones de méthodes asynchrones</a>.</p>
<p>Toujours à propos d’asynchronisme, <a href="http://blogs.msdn.com/b/visualizeparallel/archive/2012/04/09/investigating-unresponsive-ui-issues-in-wpf-a-case-study.aspx">Kavya Kotacherry nous montre comment elle résolu un problème de réactivité d’une application WPF grâce à Async et Await.</a></p>
<p><a href="http://geekswithblogs.net/BlackRabbitCoder/archive/2012/03/29/c.net-little-wonders-skip-and-take.aspx?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+BlackRabbitCoder+%28James+Michael+Hare%29&amp;utm_content=Google+Reader">James Michael nous donne quelques informations sur les méthodes Take et Skip et consors.</a></p>
<p>Du côté des outils, <a href="http://blogs.msdn.com/b/bharry/archive/2012/04/11/preemptive-analytics-in-visual-studio-and-tfs-11.aspx">Brian Harry nous présente l’intégration de Preemptive Analytics dans TFS 11</a>.</p>
<p>Et enfin côté produits, <a href="http://blogs.msdn.com/b/astoriateam/archive/2012/04/09/wcf-data-services-5-0-rtm-release.aspx">l’équipe de WCF Data Services annonce la disponibilité de la version 5 en RTM</a> avec entre autres le support d’un plus grand nombre d’opérateurs, des types spaciaux, etc.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Patrice?a=kW_3ctDnYRo:pBltd8HFUUI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Patrice?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=kW_3ctDnYRo:pBltd8HFUUI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Patrice?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=kW_3ctDnYRo:pBltd8HFUUI:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/Patrice?i=kW_3ctDnYRo:pBltd8HFUUI:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=kW_3ctDnYRo:pBltd8HFUUI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Patrice?i=kW_3ctDnYRo:pBltd8HFUUI:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Patrice/~4/kW_3ctDnYRo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://patricelamarche.net/2012/04/17/news-de-la-semaine-15-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://patricelamarche.net/2012/04/17/news-de-la-semaine-15-2012/</feedburner:origLink></item>
		<item>
		<title>RIP Client Profile –Tips #4</title>
		<link>http://feedproxy.google.com/~r/Patrice/~3/zVHCbbcbTec/</link>
		<comments>http://patricelamarche.net/2012/04/12/rip-client-profile-tips-4/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 07:07:51 +0000</pubDate>
		<dc:creator>Patrice</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[ALM / Architecture]]></category>
		<category><![CDATA[VS 11]]></category>

		<guid isPermaLink="false">http://patricelamarche.net/?p=1074</guid>
		<description><![CDATA[C’est avec surprise que je viens de constater que le framework .net 4.5 ne propose plus de profil “Client Profile” : La confirmation officielle se trouve dans la MSDN avec une explication bateau qui tire plus du marketing que de la véritable explication technique : http://msdn.microsoft.com/en-us/library/cc656912(v=vs.110).aspx Ce profil permettait de disposer d’un profil de framework très légèrement plus léger destiné au développements d’applicatifs clients (exit donc ASP.net, la couche serveur WCF, etc.). Un des principaux [...]]]></description>
			<content:encoded><![CDATA[<p>C’est avec surprise que je viens de constater que le framework .net 4.5 ne propose plus de profil “Client Profile” : </p>
<p><a href="http://patricelamarche.net/wp-content/uploads/2012/04/image.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://patricelamarche.net/wp-content/uploads/2012/04/image_thumb.png" width="451" height="308" /></a></p>
<p>La confirmation officielle se trouve dans la MSDN avec une explication bateau qui tire plus du marketing que de la véritable explication technique : <a href="http://msdn.microsoft.com/en-us/library/cc656912(v=vs.110).aspx">http://msdn.microsoft.com/en-us/library/cc656912(v=vs.110).aspx</a></p>
<p><a href="http://msdn.microsoft.com/fr-fr/library/cc656912.aspx" target="_blank">Ce profil permettait de disposer d’un profil de framework très légèrement plus léger</a> destiné au développements d’applicatifs clients (exit donc ASP.net, la couche serveur WCF, etc.).</p>
<p>Un des principaux avantages étant que cette version du framework .net était préinstallé sur les OS les plus récents, ou inclus dans des mises à jour via Windows Update.</p>
<p align="justify">Il ne reste plus qu’à espérer que le framework 4.5 soit installé d’office sur les prochains OS de Microsoft à commencer par Windows 8.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Patrice?a=zVHCbbcbTec:OeGw54MyLGQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Patrice?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=zVHCbbcbTec:OeGw54MyLGQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Patrice?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=zVHCbbcbTec:OeGw54MyLGQ:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/Patrice?i=zVHCbbcbTec:OeGw54MyLGQ:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=zVHCbbcbTec:OeGw54MyLGQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Patrice?i=zVHCbbcbTec:OeGw54MyLGQ:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Patrice/~4/zVHCbbcbTec" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://patricelamarche.net/2012/04/12/rip-client-profile-tips-4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://patricelamarche.net/2012/04/12/rip-client-profile-tips-4/</feedburner:origLink></item>
		<item>
		<title>La détection de doublons de code – Tips #3 Bis</title>
		<link>http://feedproxy.google.com/~r/Patrice/~3/FlTGBIgggco/</link>
		<comments>http://patricelamarche.net/2012/03/14/la-dtection-de-doublons-de-code-tips-3-bis/#comments</comments>
		<pubDate>Wed, 14 Mar 2012 20:25:52 +0000</pubDate>
		<dc:creator>Patrice</dc:creator>
				<category><![CDATA[ALM / Architecture]]></category>
		<category><![CDATA[VS 11]]></category>

		<guid isPermaLink="false">http://patricelamarche.net/?p=1066</guid>
		<description><![CDATA[Je vous présentais hier la fonctionnalité de détection des doublons de code proposée par Visual Studio 11, je vous propose aujourd’hui un rapide retour d’expérience sur l’utilisation de cette fonctionnalité sur un vrai projet avec un bon volume de code (620 000 lignes). L’analyse du code a pris 3h30. Le temps d’analyse pour un aussi gros volume de code est certes important mais ne me choque pas plus que cela. Je suis plutôt surpris par [...]]]></description>
			<content:encoded><![CDATA[<p align="justify"><a href="http://patricelamarche.net/2012/03/13/la-dtection-de-copier-collertips-3/">Je vous présentais hier la fonctionnalité de détection des doublons de code proposée par Visual Studio 11</a>, je vous propose aujourd’hui un rapide retour d’expérience sur l’utilisation de cette fonctionnalité sur un vrai projet avec un bon volume de code (620 000 lignes).</p>
<p align="justify"><a href="http://patricelamarche.net/wp-content/uploads/2012/03/image14.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto" border="0" alt="image" src="http://patricelamarche.net/wp-content/uploads/2012/03/image_thumb15.png" width="244" height="153" /></a></p>
<p align="justify">L’analyse du code a pris 3h30. Le temps d’analyse pour un aussi gros volume de code est certes important mais ne me choque pas plus que cela. Je suis plutôt surpris par le fait que la machine ne soit pas “à genoux” durant l’analyse mais ne soit occupé qu’à&#160; 20% au niveau du CPU sachant qu’il ne semble pas y avoir d’autres goulots d’étranglements (mémoire, disque).</p>
<p align="justify">Les résultats sont classés en 4 catégories : exact match, strong match, medium match, weak match.</p>
<p align="justify">L’analyseur indique que 25% du code semble être du doublon (et peut donc être quasi-supprimé suite à du refactoring) soit dans mon cas plus de 150 000 lignes de code. Je sais que le code est très loin d’être optimisé et qu’il y a beaucoup de redondance de code mais ce résultat est pour le moins plutôt étrange…</p>
<p align="justify">J’ai vite été conforté dans mon impression en analysant la qualité des résultats. J’ai commencé l’étude par l’analyse des weak match.</p>
<p align="justify">Je n’ai pas réussi à trouver un résultat à peu près pertinent dans les weak match.</p>
<p>Un des exemples typiques concerne ce type de code :</p>
<p><a href="http://patricelamarche.net/wp-content/uploads/2012/03/image15.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://patricelamarche.net/wp-content/uploads/2012/03/image_thumb16.png" width="404" height="126" /></a></p>
<p align="justify">Le moteur d’analyse prend en compte uniquement le texte et non pas le vocabulaire en lui-même et trouve donc des clones qui ne sont pas du tout pertinents.</p>
<p align="justify">Autre exemple avec l’initialisation “en masse” d’objets, l’affichage de ce type de résultat n’est pas forcément pertinent :</p>
<p><a href="http://patricelamarche.net/wp-content/uploads/2012/03/image16.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://patricelamarche.net/wp-content/uploads/2012/03/image_thumb17.png" width="404" height="151" /></a></p>
<p><a href="http://patricelamarche.net/wp-content/uploads/2012/03/image17.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://patricelamarche.net/wp-content/uploads/2012/03/image_thumb18.png" width="404" height="167" /></a></p>
<p>&#160;</p>
<p>Les bonnes nouvelles se retrouvent plutôt au niveau des correspondances exact ou très voisines :</p>
<p><a href="http://patricelamarche.net/wp-content/uploads/2012/03/image18.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://patricelamarche.net/wp-content/uploads/2012/03/image_thumb19.png" width="404" height="216" /></a></p>
<p align="justify">J’ai été ainsi surpris de découvrir qu’un même bloc de code a été repris 58 fois ( ! ) au sein de l’applicatif.</p>
<p align="justify">Une séance de refactoring va donc pouvoir être planifié afin d’éliminer cette redondance ainsi que les suivantes.</p>
<p align="justify">En résumé, cette nouvelle fonctionnalité est plus proche de l’analyseur de texte que de l’analyseur de code car le vocabulaire n’est pas pris en compte de manière pertinente. Et il ne faut pas se fier au grand nombre de résultats potentiels affiché mais faire un filtre et une analyse de ceux-ci afin de décider des actions à mener pour améliorer la qualité du code.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Patrice?a=FlTGBIgggco:kYncluhQxaY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Patrice?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=FlTGBIgggco:kYncluhQxaY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Patrice?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=FlTGBIgggco:kYncluhQxaY:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/Patrice?i=FlTGBIgggco:kYncluhQxaY:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=FlTGBIgggco:kYncluhQxaY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Patrice?i=FlTGBIgggco:kYncluhQxaY:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Patrice/~4/FlTGBIgggco" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://patricelamarche.net/2012/03/14/la-dtection-de-doublons-de-code-tips-3-bis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://patricelamarche.net/2012/03/14/la-dtection-de-doublons-de-code-tips-3-bis/</feedburner:origLink></item>
		<item>
		<title>La détection de Copier Coller–Tips #3</title>
		<link>http://feedproxy.google.com/~r/Patrice/~3/ZFUBsvGF9dE/</link>
		<comments>http://patricelamarche.net/2012/03/13/la-dtection-de-copier-collertips-3/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 22:28:32 +0000</pubDate>
		<dc:creator>Patrice</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[ALM / Architecture]]></category>
		<category><![CDATA[VS 11]]></category>

		<guid isPermaLink="false">http://patricelamarche.net/?p=1052</guid>
		<description><![CDATA[Afin de lutter contre les copier coller intempestif et plus généralement d’aider à trouver des blocs de code identiques ou très proches, Visual Studio 11 propose une fonctionnalité de détection de clone de code. Si l&#8217;on prend un exemple simple : Un clic sur le menu Analyze, Analyze Solution for Code Clones permet de lancer une analyse sur le code source de l’intégralité de la solution et d’afficher un nouveau panneau : &#160; Il est [...]]]></description>
			<content:encoded><![CDATA[<p>Afin de lutter contre les copier coller intempestif et plus généralement d’aider à trouver des blocs de code identiques ou très proches, Visual Studio 11 propose une fonctionnalité de détection de clone de code.</p>
<p>Si l&#8217;on prend un exemple simple : </p>
<p><a href="http://patricelamarche.net/wp-content/uploads/2012/03/image10.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://patricelamarche.net/wp-content/uploads/2012/03/image_thumb11.png" width="306" height="443" /></a></p>
<p>Un clic sur le menu Analyze, Analyze Solution for Code Clones permet de lancer une analyse sur le code source de l’intégralité de la solution et d’afficher un nouveau panneau :</p>
<p>&#160;<a href="http://patricelamarche.net/wp-content/uploads/2012/03/image11.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://patricelamarche.net/wp-content/uploads/2012/03/image_thumb12.png" width="401" height="216" /></a></p>
<p>Il est ensuite possible de naviguer dans les blocs de code détectés afin de refactorer et donc d’améliorer la qualité du code.</p>
<p>A noter que l’outil ne permet pas d’uniquement trouver les blocs de code strictement identique mais permet de faire des analyses légèrement plus poussées. Le nommage des variables n’est par exemple pas pris en compte, si la structure du code est voisine avec des noms de variables différents, la fonctionnalité sera capable de trouver des résultats pertinents.</p>
<p>Point qui peut être intéressant, l’analyse se fait bien sur le code source et non sur l’IL, il n’est donc pas nécessaire que le code compile pour lancer la détection (oui, je sais; c’est tordu mais c’est toujours bon à savoir <img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Sourire" src="http://patricelamarche.net/wp-content/uploads/2012/03/wlEmoticon-smile.png" />).</p>
<p>Inconvénient, l’analyse se faisant sur la structure du code source, l’outil n’est pas capable de détecter du code identique&#160; fonctionnellement mais pas syntaxiquement. </p>
<p>Par exemple le code suivant ne renvoie aucun résultat :</p>
<p><a href="http://patricelamarche.net/wp-content/uploads/2012/03/image12.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://patricelamarche.net/wp-content/uploads/2012/03/image_thumb13.png" width="382" height="395" /></a></p>
<p>A noter que la fonctionnalité ne se concentre que sur des blocs d’une 10 de lignes de code uniquement, les blocs plus petits ne sont pas détectés.</p>
<p>De plus; il est possible de lancer une analyser afin de rechercher des clones d’un bloc de code en particulier. Il suffit pour cela de le sélectionner et de sélectionner le bon élément dans le menu contextuel pour y parvenir.</p>
<p>Et sur du vrai code ? J’ai lancé l’analyse sur l’application sur laquelle je travaille (plusieurs centaines de milliers de lignes de code) et j’attends le résultat depuis 2 heures ! </p>
<p>Grosse déception, le moteur d’analyse ne semble à priori pas multithreadé. Sur mon quad-coeur, le process de VS 11 tourne en moyenne à 20%, la consommation mémoire reste à peu près stable, et les accès disque sont faibles. Le CPU semble donc être le goulot d”étranglement…</p>
<p><a href="http://patricelamarche.net/wp-content/uploads/2012/03/image13.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="http://patricelamarche.net/wp-content/uploads/2012/03/image_thumb14.png" width="404" height="205" /></a></p>
<p>Après 2 heures d’analyse, cela progresse lentement… mais surement… Je mettrais à jour ce post si cela se termine un jour ! <img class="wlEmoticon wlEmoticon-smile" style="border-top-style: none; border-bottom-style: none; border-right-style: none; border-left-style: none" alt="Sourire" src="http://patricelamarche.net/wp-content/uploads/2012/03/wlEmoticon-smile.png" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Patrice?a=ZFUBsvGF9dE:3KwFo2bbjow:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Patrice?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=ZFUBsvGF9dE:3KwFo2bbjow:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Patrice?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=ZFUBsvGF9dE:3KwFo2bbjow:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/Patrice?i=ZFUBsvGF9dE:3KwFo2bbjow:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=ZFUBsvGF9dE:3KwFo2bbjow:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Patrice?i=ZFUBsvGF9dE:3KwFo2bbjow:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Patrice/~4/ZFUBsvGF9dE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://patricelamarche.net/2012/03/13/la-dtection-de-copier-collertips-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://patricelamarche.net/2012/03/13/la-dtection-de-copier-collertips-3/</feedburner:origLink></item>
		<item>
		<title>3 bonnes raisons d’utiliser différents frameworks de tests – Tips #1 Bis</title>
		<link>http://feedproxy.google.com/~r/Patrice/~3/EiYOAQFtsrw/</link>
		<comments>http://patricelamarche.net/2012/03/06/3-bonnes-raisons-dutiliser-diffrents-frameworks-de-tests-tips-1-bis/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 11:08:09 +0000</pubDate>
		<dc:creator>Patrice</dc:creator>
				<category><![CDATA[ALM / Architecture]]></category>
		<category><![CDATA[Tests]]></category>
		<category><![CDATA[VS 11]]></category>

		<guid isPermaLink="false">http://patricelamarche.net/?p=1040</guid>
		<description><![CDATA[Suite au relai de mon post sur le très bon test runner proposé par Visual Studio 11 et son support de différents frameworks de tests par Richard Clark, celui-ci se posait la question de l’intérêt de supporter différents frameworks de tests au sein (par exemple) d’une même solution. Je vous propose donc aujourd’hui 3 bonnes raisons d’utiliser différents frameworks de tests : La possibilité de réutiliser, sans migrer, des tests existants tout en switchant (pour [...]]]></description>
			<content:encoded><![CDATA[<p>Suite au relai de <a href="http://patricelamarche.net/2012/03/01/le-support-des-framework-de-test-dans-vs-11/" target="_blank">mon post sur le très bon test runner proposé par Visual Studio 11 et son support de différents frameworks de tests</a> par Richard Clark, <a href="http://c2idotnet.com/actualites/le-support-des-framework-de-test-dans-vs-11-par-patrice-lamarche" target="_blank">celui-ci se posait la question de l’intérêt de supporter différents frameworks de tests au sein (par exemple) d’une même solution</a>.</p>
<p><a href="http://patricelamarche.net/wp-content/uploads/2012/03/image9.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: right; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" align="right" src="http://patricelamarche.net/wp-content/uploads/2012/03/image_thumb10.png" width="204" height="204" /></a></p>
<p>Je vous propose donc aujourd’hui 3 bonnes raisons d’utiliser différents frameworks de tests :</p>
<ul>
<li>La possibilité de <em><strong>réutiliser, sans migrer, des tests existants tout en switchant (pour tout ou partie) les nouveaux tests sur un nouveau framework</strong></em>. Vous appréciez l’intégration de MS Test mais ne supportez pas le non respect du pattern AAA pour les tests liés à la gestion d’exception ? Continuez d’utiliser MS Test, et utilisez un autre framework comme xUnit qui vous permettra d’avoir des tests de meilleure qualité. </li>
<li>Le support de<em> </em><strong>frameworks de tests ciblants différents langages</strong>. Exemple : Je développe un site web ASP.net et je souhaite créer et exécuter des tests unitaires et d’intégration pour mon code VB ou C# mais également pour du code javascript. Je peux donc utiliser à présent MS Test, <a href="http://visualstudiogallery.msdn.microsoft.com/463c5987-f82b-46c8-a97e-b1cde42b9099" target="_blank">xUnit</a>, nUnit ou autres pour le code managé, mais également <a href="http://visualstudiogallery.msdn.microsoft.com/f8741f04-bae4-4900-81c7-7c9bfb9ed1fe" target="_blank">Chutzpah</a> pour les tests du code JS. </li>
<li>Le support de frameworks <em><strong>de tests proposant différents types de tests</strong></em>. On utilise en effet généralement un seul et même framework pour développer tests unitaires et tests d”intégration, mais il existe d’autres types de framework permettant d’écrire des tests se rapprochant au plus près de la définition des spécifications (comme <a href="http://teamcity.codebetter.com/project.html?projectId=project27" target="_blank">MSpec</a>), ou proposant une syntaxe naturelle pour les assertions. Il est donc possible de les utiliser de manière complémentaire avec les frameworks plus “traditionnels” <a href="https://github.com/shouldly/shouldly" target="_blank">avec Shoudly par exemple</a>. </li>
</ul>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Patrice?a=EiYOAQFtsrw:OojbniKsGVY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Patrice?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=EiYOAQFtsrw:OojbniKsGVY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Patrice?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=EiYOAQFtsrw:OojbniKsGVY:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/Patrice?i=EiYOAQFtsrw:OojbniKsGVY:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=EiYOAQFtsrw:OojbniKsGVY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Patrice?i=EiYOAQFtsrw:OojbniKsGVY:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Patrice/~4/EiYOAQFtsrw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://patricelamarche.net/2012/03/06/3-bonnes-raisons-dutiliser-diffrents-frameworks-de-tests-tips-1-bis/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://patricelamarche.net/2012/03/06/3-bonnes-raisons-dutiliser-diffrents-frameworks-de-tests-tips-1-bis/</feedburner:origLink></item>
		<item>
		<title>L’exécution automatique de tests avec VS 11 – Tips #2</title>
		<link>http://feedproxy.google.com/~r/Patrice/~3/GrXweU1IgxQ/</link>
		<comments>http://patricelamarche.net/2012/03/02/lexcution-automatique-de-tests-avec-vs-11-tips-2/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 20:01:49 +0000</pubDate>
		<dc:creator>Patrice</dc:creator>
				<category><![CDATA[ALM / Architecture]]></category>
		<category><![CDATA[Tests]]></category>
		<category><![CDATA[VS 11]]></category>

		<guid isPermaLink="false">http://patricelamarche.net/?p=1034</guid>
		<description><![CDATA[Après la présentation hier de l’ouverture de VS 11 à tous les frameworks de tests qui permet d”éviter d’avoir différents tests runner et surtout de développer des tests basés sur plusieurs frameworks de tests, je vous propose aujourd’hui une astuce toute bête mais bien pratique : l’exécution automatique de tests. Il est à présent possible d’exécuter les tests présents dans votre solution de manière automatique juste après une simple compilation. Un petit Ctrl+Shift+B et une [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">Après la présentation hier de l’ouverture de VS 11 à tous les frameworks de tests qui permet d”éviter d’avoir différents tests runner et surtout de développer des tests basés sur plusieurs frameworks de tests, je vous propose aujourd’hui une astuce toute bête mais bien pratique : l’exécution automatique de tests.</p>
<p><a href="http://patricelamarche.net/wp-content/uploads/2012/03/image7.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://patricelamarche.net/wp-content/uploads/2012/03/image_thumb8.png" width="495" height="173" /></a></p>
<p align="justify">Il est à présent possible d’exécuter les tests présents dans votre solution de manière automatique juste après une simple compilation.</p>
<p align="justify">Un petit Ctrl+Shift+B et une fois la compilation réussie l’exécution de tests se lance :</p>
<p><a href="http://patricelamarche.net/wp-content/uploads/2012/03/image8.png"><img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://patricelamarche.net/wp-content/uploads/2012/03/image_thumb9.png" width="313" height="183" /></a></p>
<p align="justify">A noter qu’une sélection des tests à exécuter est réalisée par Visual Studio. Contrairement à mon screenshot qui présente un cas simple, Visual Studio 11 décide quels tests sont à exécuter en priorité. Ceux qui ne sont pas exécutés se retrouvent avec une icône légèrement grisée afin d’indiquer qu’ils n’ont pas été ré-exécutés.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Patrice?a=GrXweU1IgxQ:BU51uKKh1as:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Patrice?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=GrXweU1IgxQ:BU51uKKh1as:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Patrice?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=GrXweU1IgxQ:BU51uKKh1as:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/Patrice?i=GrXweU1IgxQ:BU51uKKh1as:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=GrXweU1IgxQ:BU51uKKh1as:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Patrice?i=GrXweU1IgxQ:BU51uKKh1as:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Patrice/~4/GrXweU1IgxQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://patricelamarche.net/2012/03/02/lexcution-automatique-de-tests-avec-vs-11-tips-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://patricelamarche.net/2012/03/02/lexcution-automatique-de-tests-avec-vs-11-tips-2/</feedburner:origLink></item>
		<item>
		<title>Le support des framework de test dans VS 11</title>
		<link>http://feedproxy.google.com/~r/Patrice/~3/8Ij2CSIDHVI/</link>
		<comments>http://patricelamarche.net/2012/03/01/le-support-des-framework-de-test-dans-vs-11/#comments</comments>
		<pubDate>Thu, 01 Mar 2012 23:59:00 +0000</pubDate>
		<dc:creator>Patrice</dc:creator>
				<category><![CDATA[ALM / Architecture]]></category>
		<category><![CDATA[Tests]]></category>
		<category><![CDATA[VS 11]]></category>

		<guid isPermaLink="false">http://patricelamarche.net/?p=1024</guid>
		<description><![CDATA[La beta de Visual Studio 11 est disponible depuis hier, je vais donc à présent essayer de vous présenter quelques nouveautés présentes dans cette beta. Une des nouveautés les plus intéressantes concerne le support de différents frameworks de test directement dans Visual Studio 11. Il était bien évidemment possible de développer des tests unitaires et d’intégration en utilisant d’autres framework que MS Test, mais l’utilisation de ces frameworks nécessitaient jusqu’à présent l’utilisation de tests runners [...]]]></description>
			<content:encoded><![CDATA[<p align="left">La beta de Visual Studio 11 est disponible depuis hier, je vais donc à présent essayer de vous présenter quelques nouveautés présentes dans cette beta.</p>
<p align="left">Une des nouveautés les plus intéressantes concerne le support de différents frameworks de test directement dans Visual Studio 11.</p>
<p align="left">Il était bien évidemment possible de développer des tests unitaires et d’intégration en utilisant d’autres framework que MS Test, mais l’utilisation de ces frameworks nécessitaient jusqu’à présent l’utilisation de tests runners dédiés ou génériques plus ou moins bien intégrés avec Visual Studio. Une des références dans le domaine est le test runner de ReSharper qui permet d’exécuter des tests MS Test mais aussi des tests nUnit.</p>
<p align="left">Visual Studio 11 propose à présent d’intégrer simplement n’importe quel framework de tests via une API qui permet de développer des adapters.</p>
<p align="left">En autres mots, le test runner de Visual Studio 11 est à présent totalement découplé de MS Test.</p>
<p align="left">Prenons comme premier exemple, une classe bateau :</p>
<p align="left"><a href="http://patricelamarche.net/wp-content/uploads/2012/03/image.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="image" src="http://patricelamarche.net/wp-content/uploads/2012/03/image_thumb.png" width="561" height="225" /></a></p>
<p align="left">Si vous avez installé xUnit, vous pouvez à présent installer le runner de xUnit compatible avec Visual Studio 11. Ce test runner <strong><em>n’est pas</em></strong> un test runner indépendant, il s’agit en réalité d’un simple adapter qui permet de se plugger au test runner de Visual Studio 11 :</p>
<p align="center"><a href="http://patricelamarche.net/wp-content/uploads/2012/03/image1.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="image" src="http://patricelamarche.net/wp-content/uploads/2012/03/image_thumb1.png" width="536" height="176" /></a></p>
<p align="left">Il est évidemment possible de créer un test en suivant les principes de ce framework :</p>
<p align="center"><a href="http://patricelamarche.net/wp-content/uploads/2012/03/image2.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="image" src="http://patricelamarche.net/wp-content/uploads/2012/03/image_thumb2.png" width="304" height="256" /></a></p>
<p align="left">Et lorsque l’on exécute le test, on retrouve ensuite le résultat de ce test directement l’explorateur de tests de VS 11.</p>
<p align="center"><a href="http://patricelamarche.net/wp-content/uploads/2012/03/image3.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="image" src="http://patricelamarche.net/wp-content/uploads/2012/03/image_thumb3.png" width="334" height="249" /></a></p>
<p>Ce qui rend encore plus intéressant avec cette ouverture vers d’autres frameworks de tests, est qu’il est tout à fait possible de créer des tests en utilisant d’autres frameworks de test tout en restant dans le même projet !</p>
<p>Ainsi l’ajout d’un test basé sur MS Test :</p>
<p><a href="http://patricelamarche.net/wp-content/uploads/2012/03/image4.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="image" src="http://patricelamarche.net/wp-content/uploads/2012/03/image_thumb4.png" width="443" height="280" /></a></p>
<p>permet d’avoir directement le résultat de ce test intégré avec les autres tests :</p>
<p><a href="http://patricelamarche.net/wp-content/uploads/2012/03/image5.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="image" src="http://patricelamarche.net/wp-content/uploads/2012/03/image_thumb5.png" width="312" height="192" /></a></p>
<p>Fini donc les frustrations d’utiliser tel ou tel framework de test, ou les potentielles difficultés de switcher vers tel ou tel framework de test, il est possible d’utiliser simultanément ceux qui vous conviennent le mieux !</p>
<p>Et bien évidemment, l’outil de couverture de code de Visual Studio 11 prend en compte l’intégralité des tests :</p>
<p><a href="http://patricelamarche.net/wp-content/uploads/2012/03/image6.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="image" src="http://patricelamarche.net/wp-content/uploads/2012/03/image_thumb6.png" width="525" height="199" /></a></p>
<p>Vous pouvez consulter la <a href="http://www.peterprovost.org/blog/post/Visual-Studio-11-Beta-Unit-Testing-Plugins-List.aspx">liste des adapters déjà disponibles sur ce lien</a>, à savoir que d’autres adapters pour d’autres framework devraient arriver très prochainement.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Patrice?a=8Ij2CSIDHVI:WukrCTnZgHI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Patrice?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=8Ij2CSIDHVI:WukrCTnZgHI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Patrice?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=8Ij2CSIDHVI:WukrCTnZgHI:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/Patrice?i=8Ij2CSIDHVI:WukrCTnZgHI:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=8Ij2CSIDHVI:WukrCTnZgHI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Patrice?i=8Ij2CSIDHVI:WukrCTnZgHI:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Patrice/~4/8Ij2CSIDHVI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://patricelamarche.net/2012/03/01/le-support-des-framework-de-test-dans-vs-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://patricelamarche.net/2012/03/01/le-support-des-framework-de-test-dans-vs-11/</feedburner:origLink></item>
		<item>
		<title>The Siren of Shame</title>
		<link>http://feedproxy.google.com/~r/Patrice/~3/jaVu90N-k3g/</link>
		<comments>http://patricelamarche.net/2012/02/22/the-siren-of-shame/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 08:30:00 +0000</pubDate>
		<dc:creator>Patrice</dc:creator>
				<category><![CDATA[ALM / Architecture]]></category>
		<category><![CDATA[Phase Apprentissage]]></category>
		<category><![CDATA[Phase du Chaos]]></category>
		<category><![CDATA[Technical Leadership]]></category>
		<category><![CDATA[Gadgets]]></category>

		<guid isPermaLink="false">http://patricelamarche.net/?p=999</guid>
		<description><![CDATA[J’aime utiliser des gadgets en entreprise. L’objectif de ceux-ci est d’apporter un côté ludique qui permet de faciliter le travail de l’équipe tout en dédramatisant les choses. C’est donc avec grand plaisir que j’ai découvert la “Siren Of Shame”. Ce gadget est en réalité constitué de deux parties : L’élément visible qui est le gyrophare USB qui s’installe en 1 clic de souris Un outil de monitoring qui est capable de se connecter aux principaux [...]]]></description>
			<content:encoded><![CDATA[<p align="justify">J’aime utiliser des gadgets en entreprise. L’objectif de ceux-ci est d’apporter un côté ludique qui permet de faciliter le travail de l’équipe tout en dédramatisant les choses.</p>
<p align="justify">C’est donc avec grand plaisir que j’ai découvert la “<a href="http://www.sirenofshame.com/" target="_blank">Siren Of Shame</a>”.</p>
<p align="justify">Ce gadget est en réalité constitué de deux parties :</p>
<ul>
<li>
<div align="justify">L’élément visible qui est le gyrophare USB qui s’installe en 1 clic de souris</div>
</li>
<li>
<div align="justify">Un outil de monitoring qui est capable de se connecter aux principaux serveur d’intégration continue du marché (TFS, Team City, Cruise Control.net, etc.)</div>
</li>
</ul>
<p align="justify">L’objectif est simple : alerter de manière visuelle et sonore dès qu’une build est cassé pour la réparer au plus vite.</p>
<p><a href="http://patricelamarche.net/wp-content/uploads/2012/02/image.png"><img style="background-image: none; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; margin-right: auto; border-width: 0px;" title="image" src="http://patricelamarche.net/wp-content/uploads/2012/02/image_thumb.png" alt="image" width="244" height="184" border="0" /></a></p>
<p align="justify">L’installation du logiciel se fait de manière très simple et la configuration est également aisée. En 5 minutes, le système est fonctionnel et nous sommes capables de tester les différents styles de lumière (gyrophare tournant, fondu de lumière, etc.) et de définir jusqu’à quand nous souhaitons avoir les signaux sonores et lumineux (signal pendant un laps de temps défini ou jusqu’à ce que la build soit réparé, etc.).</p>
<p align="justify">L’outil propose de plus 3 fonctionnalités intéressantes :</p>
<ul>
<li>
<div align="justify">Un tableau de bord permettant de voir l’état de toutes les builds</div>
</li>
<li>
<div align="justify">Un outil de réputation qui permet d’avoir une liste triée des développeurs selon un ratio nb de buils/nb de builds échouées</div>
</li>
<li>
<div align="justify">Un graphique simple d’analyse de l’état d’une build</div>
</li>
</ul>
<p><a href="http://patricelamarche.net/wp-content/uploads/2012/02/image1.png"><img style="background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;" title="image" src="http://patricelamarche.net/wp-content/uploads/2012/02/image_thumb1.png" alt="image" width="404" height="183" border="0" /></a></p>
<p align="justify">Un outil donc fort simple, qui fait uniquement ce qu’on lui demande sans trop de fioritures.</p>
<p align="justify">Avant de vous décrire mon retour d’expérience du système (cela fait un mois que nous l’avons à présent adopté), je vais vous retracer l’historique de la mise en place du serveur de build dans le service afin de bien décrire l’intérêt d’utiliser ce type de gadget et l’effet obtenu.</p>
<h2>Pourquoi un serveur de build ?</h2>
<p align="justify">Une de mes premières actions lors de mon arrivée à Log’in Space il y a maintenant 1 an a été d’analyser l’environnement de développement pour voir comment il était possible de rendre l’équipe plus efficace.</p>
<p align="justify">Le service développement fait très fréquemment des releases des différents produits, la création d’une version prenait alors environ 1h lorsqu’il n’y avait de problèmes, et durait beaucoup plus lorsque un problème de compilation non détecté avait lieu.</p>
<p align="justify">Les développeurs avaient l’habitude d’effectuer leur checkin après avoir terminé sans forcément faire de getlatest réguliers. Le code présent sur le source control était différent de celui présent sur les postes de développement et de temps en temps il arrivait que le responsable de la release ait une surprise en essayant de compiler le résultat final…</p>
<p align="justify">Afin de résoudre ce problème et être beaucoup plus réactif en cas de problème (ie. ne plus être devant le fait accompli mais réagir dès qu’il y a un problème) un serveur de build sous Team Build a été mis en place.</p>
<p align="justify">La première étape a été de simplement automatiser la création d’une version, puis de mettre en place de l’intégration continue (plus proche actuellement de la compilation continue). Ainsi chaque développeur est abonné aux alertes proposées par TFS, et est ainsi notifié de la réussite ou de l’échec de la build déclenché par son check-in. De plus l’automatisation a permis de réduire le temps de création d’une version à 15min.</p>
<p align="justify">Il s’agit d’un progrès dans le sens où l’on est beaucoup plus réactif mais il me restait à arriver à sensibiliser l’équipe sur le fait de vraiment prêter attention à avoir un code correct et fonctionnel dans le source control, afin d’avoir le plus rarement possible un code invalide.</p>
<p align="justify">Et cet objectif a été atteint grâce à la sirène. Les membres de l’équipe souhaitant éviter que la sirène ne s’allume, ils pensent à présent bien aux risques apportés par leur check-in <em><strong>avant </strong></em>de faire leur commit ! La sirène est en effet mise en avant et bien visible de tous, il n’est donc pas nécessaire qu’elle s’allume pour que tout le monde ait conscience de sa présence.</p>
<p align="justify">Encore un (tout petit pas) de franchi vers une meilleure qualité logicielle et vers moins de stress pour l’équipe !</p>
<p align="justify">Il reste bien évidemment de gros progrès à accomplir  comme l’intégration de l’exécution de tests automatisés par exemple, mais il s’agit d’une évolution qui va dans le bon sens.</p>
<h2>Les + et les -</h2>
<p>Les +</p>
<ul>
<li>Outil simple à mettre en œuvre, qui fait uniquement ce qu’on lui demande</li>
<li>Une API est disponible pour piloter la sirène dans d’autres contextes que l’intégration continue</li>
</ul>
<p>Les -</p>
<ul>
<li>Lorsque deux builds échouent “en même temps”, les signaux s’arrêtent lorsqu’une des builds a été réparé et non lorsque l’ensemble des builds ont été réparés</li>
<li>Très légers bugs dans l’affichage des changesets liés aux builds lors de check-in très rapprochés</li>
</ul>
<h2>Les risques <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="http://patricelamarche.net/wp-content/uploads/2012/02/wlEmoticon-smile1.png" alt="Sourire" /></h2>
<p align="justify">J’ai pu identifier deux risques durant ce premier mois d’utilisation.</p>
<p align="justify">Le premier concerne les prestataires intervenants sur un de nos projets. L’un deux a eu la bonne idée de casser et de réparer la build entre midi et deux. L’équipe étant en train de déjeuner la sirène a été d’une totale inefficacité ! Il peut être intéressant de garder le système d’alertes afin d’avoir un réel suivi des builds.</p>
<p align="justify">Second risque : Si vous mettez Kool &amp; The Gang au bureau afin de mettre un petit d’ambiance, il se peut qu’un membre de votre équipe vous propose d’allumer le gyrophare en cassant une build histoire d’avoir une ambiance son et lumière <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="http://patricelamarche.net/wp-content/uploads/2012/02/wlEmoticon-smile.png" alt="Smile" /> (oui, oui c’est du vécu…)</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Patrice?a=jaVu90N-k3g:JBK-ZEzK_OY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Patrice?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=jaVu90N-k3g:JBK-ZEzK_OY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Patrice?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=jaVu90N-k3g:JBK-ZEzK_OY:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/Patrice?i=jaVu90N-k3g:JBK-ZEzK_OY:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=jaVu90N-k3g:JBK-ZEzK_OY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Patrice?i=jaVu90N-k3g:JBK-ZEzK_OY:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Patrice/~4/jaVu90N-k3g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://patricelamarche.net/2012/02/22/the-siren-of-shame/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://patricelamarche.net/2012/02/22/the-siren-of-shame/</feedburner:origLink></item>
		<item>
		<title>TEDx Place Du Capitole 2012</title>
		<link>http://feedproxy.google.com/~r/Patrice/~3/qvt4Bp5jL5A/</link>
		<comments>http://patricelamarche.net/2012/01/15/tedx-place-du-capitole-2012/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 09:40:46 +0000</pubDate>
		<dc:creator>Patrice</dc:creator>
				<category><![CDATA[Random Stuff]]></category>
		<category><![CDATA[TEDxplcap]]></category>

		<guid isPermaLink="false">http://patricelamarche.net/2012/01/15/tedx-place-du-capitole-2012/</guid>
		<description><![CDATA[C’est avec une grande curiosité et avec impatience que je me suis inscris voilà il y a quelques semaines à la première édition d’un évènement TEDx à Toulouse. Pour ceux d’entre vous qui ne connaissent pas TED (honte à vous, comme gage vous êtes obligé de passer les 3 prochains jours à regarder des TED Talks), l’objectif des conférences TED est de partager des idées intéressantes/intelligentes/pertinentes (“Ideas worth spreading”) au travers de courtes présentations très [...]]]></description>
			<content:encoded><![CDATA[<p align="justify"><img style="float: none; margin-left: auto; display: block; margin-right: auto" alt="" src="https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-ash4/405416_2231072707349_1563819784_31644541_699351264_n.jpg" width="600" height="150" /></p>
<p align="justify">C’est avec une grande curiosité et avec impatience que je me suis inscris voilà il y a quelques semaines à la première édition d’un évènement TEDx à Toulouse.</p>
<p align="justify">Pour ceux d’entre vous qui ne connaissent pas TED (honte à vous, comme gage vous êtes obligé de passer les 3 prochains jours à regarder des TED Talks), l’objectif des conférences TED est de partager des idées intéressantes/intelligentes/pertinentes (“Ideas worth spreading”) au travers de courtes présentations très souvent de très haut vol. Ces conférences sont très peu accessibles car le ticket d’entrée est assez élevé et l’organisation effectue une sélection des participants en fonction de leur implication, de leur rôle dans la société.</p>
<p align="justify">Des conférences peu accessibles en IRL mais très facilement accessible grâce au site <a href="http://www.ted.com">http://www.ted.com</a> qui propose des vidéos de certaines de ces sessions.</p>
<p align="justify">Je vous propose par exemple une de mes vidéos préférées présenté par MONSIEUR Hans Rosling :</p>
<p> <object width="398" height="374"><param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"></param><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="wmode" value="transparent"></param><param name="bgColor" value="#ffffff"></param><param name="flashvars" value="vu=http://video.ted.com/talk/stream/2006/Blank/HansRosling_2006-320k.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/HansRosling-2006.embed_thumbnail.jpg&amp;vw=384&amp;vh=288&amp;ap=0&amp;ti=92&lang;=&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=hans_rosling_shows_the_best_stats_you_ve_ever_seen;year=2006;theme=rethinking_poverty;theme=numbers_at_play;theme=unconventional_explanations;theme=presentation_innovation;theme=women_reshaping_the_world;theme=technology_history_and_destiny;event=TED2006;tag=Global+Issues;tag=Google;tag=africa;tag=asia;tag=demo;tag=development;tag=economics;tag=health;tag=statistics;tag=visualizations;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /><embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="398" height="374" allowFullScreen="true" allowScriptAccess="always" flashvars="vu=http://video.ted.com/talk/stream/2006/Blank/HansRosling_2006-320k.mp4&#038;su=http://images.ted.com/images/ted/tedindex/embed-posters/HansRosling-2006.embed_thumbnail.jpg&#038;vw=384&#038;vh=288&#038;ap=0&#038;ti=92&#038;lang=&#038;introDuration=15330&#038;adDuration=4000&#038;postAdDuration=830&#038;adKeys=talk=hans_rosling_shows_the_best_stats_you_ve_ever_seen;year=2006;theme=rethinking_poverty;theme=numbers_at_play;theme=unconventional_explanations;theme=presentation_innovation;theme=women_reshaping_the_world;theme=technology_history_and_destiny;event=TED2006;tag=Global+Issues;tag=Google;tag=africa;tag=asia;tag=demo;tag=development;tag=economics;tag=health;tag=statistics;tag=visualizations;&#038;preAdTag=tconf.ted/embed;tile=1;sz=512x288;"></embed></object>
<p align="justify">Ce site fournit un contenu d’une excellente qualité autour de sujets qui touchent aux sciences, aux technologies, et aux arts. C’est un must-have pour tous les curieux qui cherchent à comprendre le monde dans lequel on vit et qui ont l’esprit ouvert.</p>
<p align="justify">Depuis quelques années, TED propose d’organiser des conférences sous licence, des TEDx afin que tout un chacun puisse accéder à ces évènements qui ont donc tous le même objectif.</p>
<p align="justify">J’ai donc eu la chance de pouvoir participer aujourd’hui au TEDxPlaceDuCapitole qui avait lieu dans le magnifique cadre de l’hôtel dieu.</p>
<p align="justify"><a href="http://patricelamarche.net/wp-content/uploads/2012/01/WP_000975.jpg"><img title="WP_000975" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; display: block; padding-right: 0px; border-top-width: 0px; margin-right: auto" border="0" alt="WP_000975" src="http://patricelamarche.net/wp-content/uploads/2012/01/WP_000975_thumb.jpg" width="244" height="184" /></a></p>
<p align="justify">Je ne vais pas ici vous raconter l’ensemble des différentes sessions de très bon niveau auxquelles nous avons pu assisté mais plutôt citer très rapidement les sessions que j’ai préféré :</p>
<ul>
<li>
<div align="justify">Damien Jayat qui présentait son métier de médiateur scientifique. Le fond n’était pas forcément d’un remarquable intérêt mais il s’agit d’une des meilleures session d’un point de vue de la forme ce qui en a fait une présentation très plaisante à regarder, et une très bonne mise en bouche pour la suite de l’après-midi.</div>
</li>
<li>
<div align="justify">Clément Blanchet avec une présentation qui traitait de l’impact de la modernité sur l’architecture. J’ai été très surpris d’être intéressé par ce type de sujet. Le speaker était vraiment très bon, et son parti pris pour le style de la présentation était efficace.</div>
</li>
<li>
<div align="justify">Pierre Olivier Carles qui présentait une session sur la volonté d’entreprendre.</div>
</li>
<li>
<div align="justify">Nicolas Lassabe et sa présentation sur les imprimantes 3D et sur les FabLabs.</div>
</li>
<li>
<div align="justify">Daniele Di Michele et son excellente présentation sur la cuisine populaire. Rafraichissante et intéressante sur le fond, un vrai régal.</div>
</li>
</ul>
<p align="justify">Je ne vous décrit pas plus ces présentations car elles seront prochainement disponibles online. </p>
<p align="justify">Cet évènement n’a pas répondu à mes attentes, il les a surpassé. La qualité de l’organisation était exceptionnelle pour une 1ère. Il n’y avait vraiment à redire, la qualité des sessions était généralement très bonne, et même le buffet était excellent ! </p>
<p align="justify">Félicitations donc à l’équipe organisatrice, je vous souhaite bon courage pour trouver les axes d’amélioration, ce premier défi est pleinement réussi, le plus difficile vous attend à présent : arriver à confirmer via une 2de édition en proposant un nouvel évènement d’une aussi bonne qualité.</p>
<p align="justify">Pour en savoir plus sur TEDx Place Du Capitole :    <br /><a href="http://tedxplaceducapitole.com/">Le site officiel</a>     <br /><a href="https://www.facebook.com/TEDxPlaceDuCapitole">La page facebook</a>     <br /><a href="http://www.scoop.it/t/tedxplaceducapitole">Le ScoopIt de l’évènement</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Patrice?a=qvt4Bp5jL5A:L8p2daddMjU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Patrice?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=qvt4Bp5jL5A:L8p2daddMjU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Patrice?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=qvt4Bp5jL5A:L8p2daddMjU:-BTjWOF_DHI"><img src="http://feeds.feedburner.com/~ff/Patrice?i=qvt4Bp5jL5A:L8p2daddMjU:-BTjWOF_DHI" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Patrice?a=qvt4Bp5jL5A:L8p2daddMjU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Patrice?i=qvt4Bp5jL5A:L8p2daddMjU:F7zBnMyn0Lo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Patrice/~4/qvt4Bp5jL5A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://patricelamarche.net/2012/01/15/tedx-place-du-capitole-2012/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://patricelamarche.net/2012/01/15/tedx-place-du-capitole-2012/</feedburner:origLink></item>
	</channel>
</rss>

