<?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>#Rui</title>
	<atom:link href="http://www.rui.fr/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rui.fr</link>
	<description>on { .Net, Sql Server, Asp.Net MVC, jQuery} &#38; More...</description>
	<lastBuildDate>Fri, 18 May 2012 09:46:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Soirée ALT.NET Mai &#8211; 3 présentations</title>
		<link>http://www.rui.fr/event/soiree-alt-net-mai-3-presentations/2012/05/18/</link>
		<comments>http://www.rui.fr/event/soiree-alt-net-mai-3-presentations/2012/05/18/#comments</comments>
		<pubDate>Fri, 18 May 2012 09:46:57 +0000</pubDate>
		<dc:creator>Rui</dc:creator>
				<category><![CDATA[Event]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Alt.Net]]></category>
		<category><![CDATA[altnetfr]]></category>
		<category><![CDATA[nosql]]></category>
		<category><![CDATA[tdd]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">http://www.rui.fr/?p=450</guid>
		<description><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.rui.fr/event/soiree-alt-net-mai-3-presentations/2012/05/18/"></g:plusone></div>
Juste pour rappel, la prochaine soirée ALT.NET Paris aura lieu le 24 Mai. Nous initions un nouveau format, à savoir plus de sessions dans un format plus court. Le but est de voir plus de choses dans un format plus concis et créer ainsi une dynamique plus forme. Nous aurons donc 3 intervenants de choix: [...]]]></description>
			<content:encoded><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.rui.fr/event/soiree-alt-net-mai-3-presentations/2012/05/18/"></g:plusone></div>
<p>Juste pour rappel, la prochaine soirée ALT.NET Paris aura lieu le 24 Mai.<br />
Nous initions un nouveau format, à savoir plus de sessions dans un format plus court. Le but est de voir plus de choses dans un format plus concis et créer ainsi une dynamique plus forme.</p>
<p>Nous aurons donc 3 intervenants de choix:</p>
<div>
<ul>
<li>Matthieu Mezil : WCF Async Queryable Services, la solution « ultime » pour le Data Driven Development !</li>
<li>Guillaume Leborgne : Le NoSQL au service de l’incrémental en mode agile</li>
<li>Jérôme Avoustin : TDD as I mean it</li>
</ul>
</div>
<div>Cela se passera chez MCNEXT et les inscriptions se font via MEETUP:</div>
<div><a href="http://www.meetup.com/altnetfr/events/64294992/" target="_blank">http://www.meetup.com/altnetfr/events/64294992/</a></div>
<div>D&#8217;ailleurs je vous invite très fortement  à vous inscrire au groupe sur meetup, même si vous ne pouvez pas venir cette fois-ci, pour être informé des prochains évènements:</div>
<div><a href="http://www.meetup.com/altnetfr/" target="_blank">http://www.meetup.com/altnetfr/</a></div>
<div>Bonnes présentations!</div>
]]></content:encoded>
			<wfw:commentRss>http://www.rui.fr/event/soiree-alt-net-mai-3-presentations/2012/05/18/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Devoxx FR 2012</title>
		<link>http://www.rui.fr/event/devoxx-fr-2012/2012/05/09/</link>
		<comments>http://www.rui.fr/event/devoxx-fr-2012/2012/05/09/#comments</comments>
		<pubDate>Tue, 08 May 2012 23:16:51 +0000</pubDate>
		<dc:creator>Rui</dc:creator>
				<category><![CDATA[Event]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[présentation]]></category>

		<guid isPermaLink="false">http://www.rui.fr/?p=447</guid>
		<description><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.rui.fr/event/devoxx-fr-2012/2012/05/09/"></g:plusone></div>
About Pour tous ceux qui auraient été faire un trek de plusieurs mois en Himalaya et qui auraient raté l&#8217;info, le mois dernier s&#8217;est tenu une superbe conférence développeur sur Paris, j&#8217;ai nommé le Devoxx France 2012. Alors certes, il s&#8217;agit d&#8217;une conférence Java et peut être que vous ne voyez pas ce qu&#8217;un bon [...]]]></description>
			<content:encoded><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.rui.fr/event/devoxx-fr-2012/2012/05/09/"></g:plusone></div>
<h2>About</h2>
<p>Pour tous ceux qui auraient été faire un trek de plusieurs mois en Himalaya et qui auraient raté l&#8217;info, le mois dernier s&#8217;est tenu une superbe conférence développeur sur Paris, j&#8217;ai nommé le Devoxx France 2012. Alors certes, il s&#8217;agit d&#8217;une conférence Java et peut être que vous ne voyez pas ce qu&#8217;un bon dev .Net aurait à y faire, mais j&#8217;ai déjà eut l&#8217;occasion d&#8217;en parler, et c&#8217;est un faux débat. Même si bien évidement il s&#8217;agissait d&#8217;une conférence avant tout java, le petit monde de l&#8217;écosystème du développeur va beaucoup plus loin que les lignes de code d&#8217;un langage ou d&#8217;un autre, les choses que l&#8217;on partage sont bien plus grandes que nos différences et c&#8217;est bien tout l&#8217;intérêt de ce type de conférence.</p>
<p><img class="aligncenter size-medium wp-image-448" title="JavaDotNetDevs-ShareTheRest" src="http://www.rui.fr/wp-content/uploads/2012/05/JavaDotNetDevs-ShareTheRest-300x225.jpg" alt="" width="300" height="225" /></p>
<p>Avant d&#8217;aller plus loin, je tiens à très fortement saluer la prestation de messieurs Antonio Goncalves, Nicolas Martignole, Zouheir Cadi et José Paumard ainsi que tout le reste de l&#8217;équipe Devoxx FR pour le superbe travail réalisé pour l&#8217;organisation de cette conférence. Plus de 1200 personnes sur 3 jours, c&#8217;est juste énorme  et il sauf erreur de ma part, il s&#8217;agit de la plus grosse conférence développeur indépendante jamais tenue en france. Bravo!</p>
<h2>Talks</h2>
<p>Pour ma part j&#8217;ai eu la chance de vivre ça de l&#8217;intérieur avec un certain nombre d&#8217;autres et y apporter ma petite pierre à l&#8217;édifice. Tout d&#8217;abord, une interview avec Oracle. C&#8217;était très marrant à faire, mais c&#8217;est un exercice de style assez touchy, surtout quand vous êtes le mec qui parle Microsoft à Oracle, le tout sans dire trop de mal ni trop de bien de l&#8217;un ou de l&#8217;autre <img src='http://www.rui.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p><object width="395" height="395" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="wmode" value="direct" /><param name="flashVars" value="sv=true&amp;pageId=3177" /><param name="src" value="http://www.parleys.com/dist/share/parleysshare.swf" /><param name="flashvars" value="sv=true&amp;pageId=3177" /><param name="allowfullscreen" value="true" /><embed width="395" height="395" type="application/x-shockwave-flash" src="http://www.parleys.com/dist/share/parleysshare.swf" allowFullScreen="true" wmode="direct" flashVars="sv=true&amp;pageId=3177" flashvars="sv=true&amp;pageId=3177" allowfullscreen="true" /></object></p>
<p>Ca c&#8217;était pour la partie rigolote , mais il y avait surtout notre présentation avec Cyrille (@cyriux) sur &#8220;Java &#8211; .Net, une source d&#8217;inspiration&#8221;.</p>
<p>C&#8217;était très sympa, je me suis pas fait manger en tout cas. La vidéo n&#8217;est pas encore en ligne mais je vous propose déjà les slides:</p>
<p>&nbsp;</p>
<div id="__ss_12691792" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a title=".Net pour le développeur Java - une source d'inspiration?" href="http://www.slideshare.net/rhwy/devoxx-fr-dotnetvsjava1280720finalpublic" target="_blank">.Net pour le développeur Java &#8211; une source d&#8217;inspiration?</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/12691792" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="425" height="355"></iframe></div>
<p>En complément de ça nous avons fait aussi une réunion alt.net fr pour discuter et présenter .Net à la communauté Java. Le format était assez court mais cela à permit de discuter avec un certain nombre de personnes.</p>
<p><img class="alignnone" title="Altnet fr" src="http://www.altnetfr.org/wp-content/themes/EntrepreneurPress/images/altnet.gif" alt="" width="200" height="77" /></p>
<p>&nbsp;</p>
<p>Bref, tout ceci fut une très bonne expérience et je ne voudrais pas oublier de saluer tous les gens dont j&#8217;ai eu le plaisir de faire la connaissance. En espérant que l&#8217;on soit encore plus nombreux pour un Devoxx 2013. Ce que j&#8217;espère surtout ce serait une big conférence développeur tous langages en 2013 !</p>
<p>&nbsp;</p>
<p>Happy coding</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rui.fr/event/devoxx-fr-2012/2012/05/09/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conf- Agile Open Sud&#8211;done</title>
		<link>http://www.rui.fr/event/conf-agile-open-suddone/2012/03/19/</link>
		<comments>http://www.rui.fr/event/conf-agile-open-suddone/2012/03/19/#comments</comments>
		<pubDate>Mon, 19 Mar 2012 07:00:00 +0000</pubDate>
		<dc:creator>Rui</dc:creator>
				<category><![CDATA[Event]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[practices]]></category>
		<category><![CDATA[présentation]]></category>
		<category><![CDATA[tdd]]></category>

		<guid isPermaLink="false">http://www.rui.fr/?p=439</guid>
		<description><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.rui.fr/event/conf-agile-open-suddone/2012/03/19/"></g:plusone></div>
Cette fin de semaine se tenait la conférence Agile Open Sud, qui comme son nom l’indique s’est déroulée dans le sud de la france, près de Perpignan, à Banyuls plus exactement. Cela a été une formidable occasion de rencontrer des gens à la fois sympathiques et à la pointe de l’état de l’art de leur [...]]]></description>
			<content:encoded><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.rui.fr/event/conf-agile-open-suddone/2012/03/19/"></g:plusone></div>
<p>Cette fin de semaine se tenait la conférence Agile Open Sud, qui comme son nom l’indique s’est déroulée dans le sud de la france, près de Perpignan, à Banyuls plus exactement. </p>
<p>Cela a été une formidable occasion de rencontrer des gens à la fois sympathiques et à la pointe de l’état de l’art de leur métier, parmi les meilleurs agilistes français.</p>
<p>&#160;</p>
<h2>Le Déroulement</h2>
<p>Pour commencer, le format déjà est un peut particulier, tout au moins changeant pour moi qui suis beaucoup plus habitué aux conférences classiques avec plein de monde, des speakers qui présentent leur sujet devant un public attentif, une grosse keynote et des horaires de bureau, sandwich le midi compris. </p>
<p>Pour le coup, là, nous étions une vingtaine, dans un hôtel au bord de la mer prévu pour accueillir des réunions d’entreprises (séminaires ou autres) et cela s’est déroulé de vendredi 16h à samedi 16h, très bon manger et boire compris <img src='http://www.rui.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p><a href="http://www.rui.fr/wp-content/uploads/2012/03/IMG_0962.jpg"><img style="background-image: none; border-right-width: 0px; margin: 4px 10px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="IMG_0962" border="0" alt="IMG_0962" src="http://www.rui.fr/wp-content/uploads/2012/03/IMG_0962_thumb.jpg" width="640" height="480" /></a></p>
<p>Ceci implique une immersion complète, ce qui est plutôt une bonne chose.</p>
<p>Le deuxième point est le format de type <a href="http://fr.wikipedia.org/wiki/M%C3%A9thodologie_open_space" target="_blank">Open Space</a>. J’avais déjà beaucoup lu sur le sujet mais jamais encore participé à un évènement comme ça. Même si je ne doute jamais de l’intérêt d’un bon débat argumenté, j’avais des doutes sur le mode opératoire et ce que l’on pouvait en retirer. </p>
<p>Bref, je suis convaincu, le format Open Space est vraiment top et je pense que j’essaierai très rapidement de mettre ça en place dans le cadre d’<a href="http://www.altnetfr.org" target="_blank">Alt.Net fr</a>. Le point crucial dans tout ça se trouve dans la rétrospective post session. Après chacune il y a en effet un résumé des idées émergentes ou conclusion des points importants des différentes discussions en parallèle.</p>
<p>J’ai été un peu pris au dépourvu en arrivant -oui on était pas à l’heure- car c’était le moment de présenter et choisir les sujets. Hop dans le bain en arrivant. Oui, tu participes et tu t’y mets, tu n’est pas là pour venir juste écouter passivement. Et ça c’est plutôt une bonne chose. </p>
<p>On a enchainer avec deux sessions avant le diner. Ce dernier est lui aussi l’occasion de faire plus ample connaissance ou encore de débattre d’autres sujets. Un point important pour le repas en lui-même qui était juste excellent. Le vin aussi d’ailleurs…</p>
<p>On a terminé avec un coding dojo, puis dodo.</p>
<p>&#160;</p>
<p>Cela redémarre le matin à la cool (mais assez tôt quand même <img src='http://www.rui.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ), petit dej, promenade puis petite séance musicale avec <a href="http://www.areyouagile.com/" target="_blank">Pablo</a> et Olivier avant de s’y remettre. </p>
<p>D’ailleurs pour revenir là dessus avec Pablo : </p>
<blockquote><p>Commencer un accompagnement au banjo, c’est comme faire du pair programming</p>
</blockquote>
<p><a href="http://www.rui.fr/wp-content/uploads/2012/03/IMG_0965.jpg"><img style="background-image: none; border-right-width: 0px; margin: 4px 10px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="IMG_0965" border="0" alt="IMG_0965" src="http://www.rui.fr/wp-content/uploads/2012/03/IMG_0965_thumb.jpg" width="644" height="482" /></a></p>
<p>S’en sont suivi plusieurs séances, déjeuner, puis une dernière session avant la rétrospective finale de l’évènement.</p>
<p>Bref, cela n’en a pas l’air, mais les contenus sont au final beaucoup plus denses que dans des conférences traditionnelles et surtout ce que l’on en retient est beaucoup plus conséquent. </p>
<p>Cela sans parler de la production émergeante en elle-même, car le contenu n’est ni fixé, ni définie à l’avance.</p>
<p>&#160;</p>
<h2>Les sujets</h2>
<p>Je vous invite à parcourir les posts des autres personnes présentes (voir en bas du post), qui présentent chacun une vision des choses et surtout plus en détail les sessions auxquelles chacun a participé. </p>
<p>De mon coté, et même si c’est en train de changer un peu, je suis quand même aujourd’hui beaucoup plus technique que méthodologies. C’est donc assez naturellement que je me suis senti plus à l’aise sur les sujets à connotation plus technique ou pratique d’un point de vue développeur que sur des sujets de fond (comme Scrum vs Xp, Agilité effet de mode ou pas?, etc…)</p>
<p>&#160;</p>
<p>Voici donc les quelques sujets des sessions auxquelles j’ai participé:</p>
<p>&#160;</p>
<h3>Les estimations sont-elles nécessaires?</h3>
<p>Oui elles sont nécessaires, mais c’est surtout le processus des estimations qui est important. La quantification juste n’est pas aussi importante que le chemin ou l’arbitrage pour y arriver: cette tâche est plutôt courte ou longue, plutôt complexe ou plutôt facile. </p>
<p>L’estimation se fait d’ailleurs plus facilement dans le temps dès lors que l’on a les repaires de l’équipe: cette tâche estimée à X est-elle plus ou moins difficile/longue que cette tâche estimée à X que l’on a fait sur le sprint précédent?</p>
<p>La discussion des estimations permet en général de lever les ambigüités, de détecter les failles (si j’ai une estimation à 1 et lui à 3, peut-être qu’il y a un point que j’ai oublié). Cela permet aussi de s’obliger à découper les tâches (ok, cette tâche est noté 13 juste parce qu’elle est fastidieuse, tout comme cette autre tâche de 13 qui est complexe, essayons donc de la découper. </p>
<p>Bref, l’estimation valide la convergence. Le dernier point important est qu’elle doit servir de base de travail et d’organisation à l’équipe mais en aucun cas servir d’engagement et sortie du contexte. </p>
<p>&#160;</p>
<h3>Polyglot Data</h3>
<p>Il s’agissait d’un sujet qui me tenait à coeur. Le sujet s’est croisé avec un autre qui était “faut-il enterrer Merise?”. Nous avons donc débattu des deux. L’idée principale est qu’il faut arrêter de penser modèle de data mais qu’il faut s’intéresser en priorité au modèle métier définissant l’application. Il faut voir le modèle de données uniquement comme un modèle de persistance.</p>
<p>Cette persistance est au final plus liée au type de données et à l’usage que l’on en fait (contraintes techniques, performances, sécurité,etc…). L’émergence de pratiques autour de DDD s’est bien faite sentir de même pour certains de même que le besoin de de se débarrasser des dbas (mais c’est un vieux débat <img src='http://www.rui.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ).</p>
<p>&#160;</p>
<h3>Coding dojo</h3>
<p>Après manger, nous sommes parti sur un coding dojo un peu improvisé entre gens qui aiment encore pratiquer cette basse besogne de produire du code, mais nous ne sommes pas allé très loin au final, le serveur de l’hôtel sonnant le gong final, nous demandant de plier les gaules. </p>
<p>Note pour plus tard: improviser un coding dojo à 23h après un bon repas, sur un langage maitrisé suffisamment ou presque par un seul des participants, c’est un peu tendu <img src='http://www.rui.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p>&#160;</p>
<h3>Agilité et Code Legacy</h3>
<p>C’est une question que je me pose toujours, que peut-on faire dans ces cas-là? Il en est ressorti déjà qu’il y a plusieurs niveau de légacy, qu’il y a le problème du code mais aussi celui des équipes, qu’il est difficile dans un cas comme dans l’autre de faire évoluer les choses si il n’y a pas les deux qui convergent. </p>
<p>La mission critique passe en général par du refactoring en douceur (bravo à Jérôme pour son abnégation dans sa mission actuelle où il est en plein dedans) mais en gardant bien en tête que la base de tout est la mise en place au fur et à mesure de tests. Puis il y a le passage de témoin, le souci étant plus souvent dans la manière de travailler des équipes en places que dans le code lui-même. On trouve toujours des solutions techniques à un problème mais il est plus difficile de faire évoluer les mentalités ou les manières de travailler. Pour cela nous avons pu voir qu’une des meilleures solutions était de mettre en place du pair programming. </p>
<p>De la même manière au niveau de l’entreprise en elle-même, on se rend compte que la rupture avec du code legacy se fait souvent quand celle-ci se trouve au pied du mur, qu’elle n’a plus le choix. C’est dommage, mais c’est une certaine réalité, tant que l’entreprise a les moyens d’entretenir son code legacy elle du mal à se remettre en question. </p>
<p>Jean-Baptiste nous a d’ailleurs présenté un modèle de migration legacy qu’il a pratiqué avec succès:</p>
<ol>
<li>Société au pied du mur avec code legacy </li>
<li>mise en place d’une nouvelle équipe externe agile </li>
<li>Prise en main de l’existant par cette équipe </li>
<li>Stabilisation avec le métier </li>
<li>tests, refactoring </li>
<li>intégration des membres de l’ancienne équipe au fur et a mesure </li>
<li>Fin du projet avec un code à jour, testable, des process en place et une équipe à jour. </li>
</ol>
<p>Jérôme nous a fait aussi une belle démonstration à partir d’un plan d’attaque de rugby.</p>
<p>&#160;</p>
<p><a href="http://www.rui.fr/wp-content/uploads/2012/03/AvancerEnsemble.png"><img style="background-image: none; border-right-width: 0px; margin: 4px 10px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="AvancerEnsemble" border="0" alt="AvancerEnsemble" src="http://www.rui.fr/wp-content/uploads/2012/03/AvancerEnsemble_thumb.png" width="500" height="336" /></a></p>
<p>Si dans une équipe Legacy (ou autre, c’est vrai aussi), il y a quelqu’un qui avance très vite, plus que les autres (il a bien intégré les principes de l’agilité et du TDD par exemple), si il avance tout seul, il va se faire manger, et il va perdre le ballon (le fil du projet, le courage, la motivation dans notre cas <img src='http://www.rui.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ). </p>
<p>Ce qui compte c’est de consolider ses positions. Si quelqu’un avance plus vite, alors doit tirer les autres vers le haut, par une séance de pair programing par exemple.</p>
<h3>Création coding dojo Solid</h3>
<p>L’idée était de commencer à mettre en place les éléments de réflexion pour la création d’un coding dojo sur les bases du principe SOLID. </p>
<p>Guillaume avait déjà commencé à mettre en place un début d’implémentation en C# et nous avons discuté autour de ça, principalement autour de ISP et SRP pour commencer.</p>
<p>Nous avons donc un début de process sur lequel nous allons essayer de revenir dans les semaines à venir. J’espère pouvoir partager ça avec vous, peut-être dans le cadre d’une session alt.net si il y en a que cela peut intéresser.</p>
<p>&#160;</p>
<p>L’agilité par le jeu du développeur.</p>
<p>Nous avons pu jouer avec <a href="http://fuse.microsoft.com/page/kodu" target="_blank">Kodu</a>, une plateforme pour apprendre aux enfants à développer des jeux. Le but était de voir comment on pouvait se servir de cette plateforme –lors d’un dojo par exemple- pour montrer aux participants les principes du développement agile. </p>
<p>Le principe serait de se servir de cette plateforme, qui nous permet donc de faire une abstraction totale du langage de développement tout en produisant quelque chose de concret, pour comparer le travail réalisé par deux équipes, l’une en mode cycle en V, l’autre en mode agile. </p>
<p>Sur le principe c’est un bon concept, il faudra que l’on creuse sa mise en place. </p>
<p>En tout cas, je note bien ce formidable projet de Microsoft FUSE labs pour jouer plus tard avec mes enfants <img src='http://www.rui.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p>&#160;</p>
<p>&#160;</p>
<h2>Aller plus loin</h2>
<p>Il y a eut aussi plein de découvertes (Sociocratie, Jugement majoritaire, etc…) et de discutions animées pendant les repas qui encore une fois étaient tout simplement excellents.</p>
<p>Bref, c’était une formidable expérience, très dense quand on y pense et que je renouvèlerai dès que possible. Merci encore aux gentils organisateurs pour tout et à tous les participants, dont je pense que la plupart vont être visibles au <a href="http://www.scrumday.fr/" target="_blank">Scrum Day</a> le 27 mars.</p>
<p>Vous pouvez retrouver sur twitter la plupart des participants à partir de la liste faite par Romain ici:</p>
<p><a title="https://twitter.com/#!/rvignes/agile-open-sud-2012/members" href="https://twitter.com/#!/rvignes/agile-open-sud-2012/members">https://twitter.com/#!/rvignes/agile-open-sud-2012/members</a></p>
<p>&#160;</p>
<p>Et pour continuer les autres posts sur l’évènement des autres participants:</p>
<ul>
<li>Thierry Cros : <a href="http://thierrycros.net/?post/2012/03/18/Agile-Open-Sud-2012-%3A-c-est-fait" target="_blank">Agile Open Sud 2012 : c&#8217;est fait</a> </li>
<li>Pablo Pernot : <a href="http://www.areyouagile.com/2012/03/agile-open-sud-2012-cest-fait-aussi/" target="_blank">Agile Open Sud 2012, c’est fait (aussi)</a> </li>
<li>Claude Aubry : <a href="http://www.aubryconseil.com/post/Agile-Open-Sud-c-etait-bien" target="_blank">Agile Open Sud, c&#8217;était bien</a> </li>
<li>Fabrice Aimetti : <a href="http://agilarium.blogspot.fr/2012/03/agile-open-sud-2012.html" target="_blank">Agile Open Sud 2012 en photos</a> </li>
<li>Jean-Baptiste Dusseau: <a title="http://www.arpinum.fr/2012/03/18/agile-open-sud/" href="http://www.arpinum.fr/2012/03/18/agile-open-sud/" target="_blank">Agile Open sud</a> </li>
<li>Alexis Monville: <a href="http://ayeba.fr/2012/03/agile-open-sud-2012/" target="_blank">Agile Open Sud 2012</a></li>
<li>Antoine Vernois: <a href="http://blog.crafting-labs.fr/?post/2012/03/19/Agile-Open-Sud" target="_blank">Agile Open Sud</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.rui.fr/event/conf-agile-open-suddone/2012/03/19/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Conference &#8211; Alt.Net Paris ?</title>
		<link>http://www.rui.fr/event/conference-alt-net-paris/2011/12/09/</link>
		<comments>http://www.rui.fr/event/conference-alt-net-paris/2011/12/09/#comments</comments>
		<pubDate>Fri, 09 Dec 2011 08:00:07 +0000</pubDate>
		<dc:creator>Rui</dc:creator>
				<category><![CDATA[Event]]></category>
		<category><![CDATA[Alt.Net]]></category>
		<category><![CDATA[Discussions]]></category>

		<guid isPermaLink="false">http://www.rui.fr/?p=426</guid>
		<description><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.rui.fr/event/conference-alt-net-paris/2011/12/09/"></g:plusone></div>
Une conférence. Alt.Net. Paris. La conférence, c&#8217;est le cadre, la forme. Alt.net, c&#8217;est le contexte, le fond, l&#8217;esprit. Paris, c&#8217;est le lieu. C&#8217;est trois choses là n&#8217;ont aujourd&#8217;hui rien à faire ensembles. Néanmoins, je dois vous avouer que cela fait bien longtemps que l&#8217;utilité d&#8217;un tel évènement me parait une évidence. J&#8217;aime communiquer, écrire, partager, [...]]]></description>
			<content:encoded><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.rui.fr/event/conference-alt-net-paris/2011/12/09/"></g:plusone></div>
<p>Une conférence. Alt.Net. Paris.</p>
<blockquote><p>La conférence, c&#8217;est le cadre, la forme.<br />
Alt.net, c&#8217;est le contexte, le fond, l&#8217;esprit.<br />
Paris, c&#8217;est le lieu.</p></blockquote>
<p>C&#8217;est trois choses là n&#8217;ont aujourd&#8217;hui rien à faire ensembles. Néanmoins, je dois vous avouer que cela fait bien longtemps que l&#8217;utilité d&#8217;un tel évènement me parait une évidence.</p>
<p>J&#8217;aime communiquer, écrire, partager, voire des gens, discuter et une conférence est certainement l&#8217;un des moments les plus propices à tout ça. J&#8217;aimerai qu&#8217;on puisse organiser une conférence à laquelle ont aimerai tous aller et se faire plaisir. Avec du web, du .NET dedans, des bonnes pratiques et plein d&#8217;autres choses! C&#8217;est d&#8217;ailleurs, exactement ce que sont en train d&#8217;organiser les copains développeurs Java avec le <a title="Devoxx" href="http://www.devoxx.fr/display/FR12/Accueil" target="_blank">Devoxx france</a>pour 2012. Et vous savez quoi? Ce n&#8217;est pas parce que je suis un dev .NET que je n&#8217;irais pas! Ca a l&#8217;air très sympa, j&#8217;irais très certainement et je vous invite franchement à y jeter un oeil.</p>
<p>Mais avant tout ça, pour voir comment mettre tout ça en place, nous avons préparé un petit formulaire avec quelques questions. Je vous invite donc à prendre 5 minutes &#8211; pas plus promis &#8211; pour remplir ce questionnaire et 30 secondes de plus pour le partager avec vos amis afin que l&#8217;on aie un maximum d&#8217;avis!</p>
<p>Vous pouvez retrouver aussi avec des notes un peu moins personnes sur le <a href="http://www.altnetfr.org/2011/12/09/et-si-on-faisait-une-conference/" target="_blank">blog d&#8217;Alt.Net paris ici</a> et n&#8217;oubliez pas aussi notre prochaine <a title="Alt.Net – Présentation Git" href="http://www.rui.fr/event/alt-net-presentation-git/2011/12/02/" target="_blank">présentation Alt.Net paris sur GIT le 14 décembre</a>, il reste encore quelques places.</p>
<p>Si le formulaire ci-dessous ne s&#8217;affichait pas correctement vous pouvez accéder directement à <a title="Alt.net paris conférence form" href="https://docs.google.com/spreadsheet/viewform?formkey=dFZpbmpwYnJRMEVZd0s2ekhEeDIzelE6MA" target="_blank">la page du questionnaire</a>.</p>
<p>Merci et bon questionnaire!</p>

<!-- powered by Iframe plugin ver. 1.7 (wordpress.org/extend/plugins/iframe/) -->
<iframe class="iframe-class" width="760" height="4433" src="https://docs.google.com/spreadsheet/embeddedform?formkey=dFZpbmpwYnJRMEVZd0s2ekhEeDIzelE6MA" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" allowtransparency="true"></iframe>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rui.fr/event/conference-alt-net-paris/2011/12/09/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Alt.Net &#8211; Présentation Git</title>
		<link>http://www.rui.fr/event/alt-net-presentation-git/2011/12/02/</link>
		<comments>http://www.rui.fr/event/alt-net-presentation-git/2011/12/02/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 10:00:08 +0000</pubDate>
		<dc:creator>Rui</dc:creator>
				<category><![CDATA[Event]]></category>
		<category><![CDATA[Alt.Net]]></category>
		<category><![CDATA[altnetfr]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[Sources]]></category>

		<guid isPermaLink="false">http://www.rui.fr/?p=422</guid>
		<description><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.rui.fr/event/alt-net-presentation-git/2011/12/02/"></g:plusone></div>
Les sessions se suivent et ne se ressemblent pas et c&#8217;est ça qui est bon! La dernière session sur Roselyn de Jean Baptiste Evain s&#8217;est super bien passée et je tiens encore à remercier tous les participants, Jean-baptiste et surtout a Mick de chez Octo pour tout ce dont il s&#8217;est occupé! En essayant de [...]]]></description>
			<content:encoded><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.rui.fr/event/alt-net-presentation-git/2011/12/02/"></g:plusone></div>
<p>Les sessions se suivent et ne se ressemblent pas et c&#8217;est ça qui est bon!</p>
<p>La <a title="Alt.Net – Roslyn presentation par JB" href="http://www.rui.fr/event/alt-net-roslyn-presentation-par-jb/2011/11/08/" target="_blank">dernière session sur Roselyn de Jean Baptiste Evain</a> s&#8217;est super bien passée et je tiens encore à remercier tous les participants, Jean-baptiste et surtout a Mick de chez <a title="OCTO" href="http://www.octo.com/" target="_blank">Octo</a> pour tout ce dont il s&#8217;est occupé!</p>
<p>En essayant de rester dans cette bonne dynamique de fin d&#8217;année, voici venir une nouvelle présentation Alt.Net d&#8217;ici 15 jours.</p>
<p>Le sujet sera GIT et la session sera présentée par Sébastien Douche (twitter <a title="Twitter sdouche" href="http://twitter.com/#!/sdouche" target="_blank">@sdouche</a>). Sébastien est le fondateur du site GitFR, spécialiste du sujet et bien sur speaker. C&#8217;est un vrai plaisir de l&#8217;accueillir sur ce sujet car les vrais spécialistes sont rares et nous sommes beaucoup trop à utiliser mal l&#8217;outil ou tout du moins de manière très parcellaire&#8230;Et puis il y en a beaucoup qui ne l&#8217;utilisent pas aussi, surtout dans un environnement Microsoft où les solutions maison sont en général préférées.</p>
<p>Bref, cette session est l&#8217;occasion d&#8217;approfondir un sujet très intéressant puisque le sujet fait partie des choses les plus importantes pour nous développeurs au quotidien!</p>
<p>Pour le détail, je vous laisse ci-dessous l&#8217;intro de la session:</p>
<blockquote><p>Utilisateur de SVN pendant de nombreuses années, j&#8217;avais la sensation croissante de me battre avec mon outil de travail. Pire, il s&#8217;adaptait très mal à mes exigences collaboratives. De guerre las, nous en avons choisi un outil de gestion de source décentralisé (Hg puis Git) début 2008. La différence était flagrante, je me sentais comme libéré d&#8217;un poids qui me ralentissait, et la production de l&#8217;équipe s&#8217;est fortement améliorée (quantitativement et qualitativement).</p>
<p>Cette soirée vous donnera la compréhension nécessaire pour aborder sereinement l&#8217;utilisation de Git (et aux DVCS en général) : La première partie sera consacrée à la théorie, en passant en revue tous les concepts nécessaires avec l&#8217;aide de nombreux schémas didactiques. Nous mettrons en pratique nos nouvelles connaissances dans la seconde partie, en abordant les commandes qui font la «différence», les workflows, l&#8217;utilisation de GitHub, le tout saupoudré de conseils pour bien démarrer. Nous aborderons également mais succinctement la philosophie Devops avec un retour d&#8217;expérience dans mon entreprise.</p></blockquote>
<p>La session se passera chez <a href="http://www.valtech.fr/fr/index.html" target="_blank">Valtech</a> qui nous a très gentiment fourni une très grande salle, donc malgré la diffusion de l&#8217;annonce sur notre liste alt.net depuis 2 jours, il reste encore pas mal de places, profitez-en! De plus cette session sera suivie d&#8217;une autre début janvier pour la mise en pratique sous forme d&#8217;atelier (avec priorité à ceux qui sont venus à cette première session).</p>
<p>Pour les inscriptions c&#8217;est par ici:</p>
<p><a href="http://www.eventbrite.com/event/2421871884" target="_blank">http://www.eventbrite.com/event/2421871884</a></p>
<p>&nbsp;</p>
<p>Nous sommes en train d&#8217;essayer de re-dynamiser le groupe en ce moment, et il y a pas mal de choses en préparation, donc n&#8217;hésitez pas à nous contacter pour proposer des choses! Il y a beaucoup de manières différentes d&#8217;échanger, vous n&#8217;avez pas besoin d&#8217;être un expert mondialement reconnu pour venir présenter quelque chose! Cela peut être plusieurs courtes présentations, des discussions, des retours d&#8217;expériences, bref, c&#8217;est ouvert et on est là pour le partager ensembles! Contactez moi directement si vous avez un doute ou que vous ne voulez pas poser une question à toute la liste, n&#8217;hésitez pas</p>
<p>Learn it, share it!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rui.fr/event/alt-net-presentation-git/2011/12/02/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Transmedias &#8211; Computing the human experience</title>
		<link>http://www.rui.fr/life/transmedias-computing-the-human-experience/2011/12/02/</link>
		<comments>http://www.rui.fr/life/transmedias-computing-the-human-experience/2011/12/02/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 09:00:08 +0000</pubDate>
		<dc:creator>Rui</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[capital]]></category>
		<category><![CDATA[Projets]]></category>
		<category><![CDATA[transmedia]]></category>

		<guid isPermaLink="false">http://www.rui.fr/?p=421</guid>
		<description><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.rui.fr/life/transmedias-computing-the-human-experience/2011/12/02/"></g:plusone></div>
&#160; Kickstarter Kickstarter porte de nombreux projets très intéressants et c&#8217;est d&#8217;ailleurs une superbe manière de se faire aider sur un projet sans passer par des traditionnels investisseurs qui ne s&#8217;intéressent pas toujours au bien fondé du contenu. Parmis les derniers en date un projet du bien nommé Grady Booch qui fait partie des légendes de notre [...]]]></description>
			<content:encoded><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.rui.fr/life/transmedias-computing-the-human-experience/2011/12/02/"></g:plusone></div>
<p>&nbsp;</p>
<h2>Kickstarter</h2>
<p><a href="http://www.kickstarter.com/">Kickstarter</a> porte de nombreux projets très intéressants et c&#8217;est d&#8217;ailleurs une superbe manière de se faire aider sur un projet sans passer par des traditionnels investisseurs qui ne s&#8217;intéressent pas toujours au bien fondé du contenu.</p>
<p>Parmis les derniers en date un projet du bien nommé Grady Booch qui fait partie des légendes de notre petit univers informatique. Ce projet se nomme &#8220;Computing the human experience&#8221;.</p>
<h2>Pourquoi ce projet est sympatique?</h2>
<p>Tout d&#8217;abord parce qu&#8217;il est porté par une personnalité importante et reconnue pour la qualité de son travail. Cela n&#8217;engage pas toujours à la réussite absolue mais c&#8217;est déja en soit un bon gage pour s&#8217;attendre à quelque chose de bon.</p>
<p>Parce qu&#8217;il s&#8217;agit d&#8217;une histoire que l&#8217;on va nous raconter en profitant des différents supports qui s&#8217;offrent à nous (transmedia powered), cette histoire c&#8217;est aussi celle de l&#8217;humanité qui a cherché depuis longtemps l&#8217;appui des machines. Et puis moi j&#8217;aime bien les histoires&#8230;</p>
<p>Parce que c&#8217;est aussi un travail d&#8217;archive et qu&#8217;il faut participer à cette construction.</p>
<p>Parce que beaucoup avec peu fait beaucoup au final et que ce n&#8217;est pas le genre de projet qui sera financé par des capitaux traditionnels de toute façon.</p>
<h2>So, What&#8217;s up?</h2>
<p>La page du projet est ici:</p>
<p><a title="Computing the human experience" href="http://www.kickstarter.com/projects/1747241049/computing-a-documentary-of-the-human-experience" target="_blank">http://www.kickstarter.com/projects/1747241049/computing-a-documentary-of-the-human-experience</a></p>
<p style="text-align: center;"><img class="aligncenter" title="transmedia intro" src="http://computingthehumanexperience.com/public/wp-content/gallery/introduction/introduction-5.jpg" alt="" width="702" height="417" /></p>
<p>Et bien sur je vous encourage a jeter un oeil à ce type de sites car beaucoup de jeunes projets sympa y voient le jour!</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rui.fr/life/transmedias-computing-the-human-experience/2011/12/02/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Participez à la conférence Sql Server de l&#8217;année en france!</title>
		<link>http://www.rui.fr/event/participez-a-la-conference-sql-server-de-lannee-en-france/2011/11/25/</link>
		<comments>http://www.rui.fr/event/participez-a-la-conference-sql-server-de-lannee-en-france/2011/11/25/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 18:27:52 +0000</pubDate>
		<dc:creator>Rui</dc:creator>
				<category><![CDATA[Event]]></category>
		<category><![CDATA[Pass]]></category>
		<category><![CDATA[Sql Server]]></category>
		<category><![CDATA[sqlrally]]></category>

		<guid isPermaLink="false">http://www.rui.fr/?p=420</guid>
		<description><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.rui.fr/event/participez-a-la-conference-sql-server-de-lannee-en-france/2011/11/25/"></g:plusone></div>
Les conférences sont de formidables occasions d&#8217;apprendre de nouvelles choses et les occasions ne sont pas si nombreuses que ça! On en a déjà parlé ici mais les conférences sont l&#8217;occasion de rencontrer des gens, de discuter et poser des questions à des experts, de s&#8217;informer sur des technos en vrai et avec du temps [...]]]></description>
			<content:encoded><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.rui.fr/event/participez-a-la-conference-sql-server-de-lannee-en-france/2011/11/25/"></g:plusone></div>
<p>Les conférences sont de formidables occasions d&#8217;apprendre de nouvelles choses et les occasions ne sont pas si nombreuses que ça! On en a déjà parlé ici mais les conférences sont l&#8217;occasion de rencontrer des gens, de discuter et poser des questions à des experts, de s&#8217;informer sur des technos en vrai et avec du temps dédié à ça (le concept de je verrais le screencast j&#8217;en ai plein les tiroirs de non visionnées&#8230;).</p>
<p>&nbsp;</p>
<p><img class="aligncenter" title="SQL RALLY FR" src="http://blogs.codes-sources.com/blogs/christian/112211_2326_LesjournesS1.jpg" alt="" width="756" height="149" /></p>
<p>Je reviens donc sur les journées Sql Serveur organisée par le GUSS qui auront lieu chez Microsoft les 12 et 13 décembre. C&#8217;est le premier PASS Sql Rally francophone et ça c&#8217;est une super news! Malgré son nom, Les journées Sql Serveur, qui est peut être marketingment plus parlant au plus grand nombre, n&#8217;en est pas moins porté par l&#8217;organe officiel en france de l&#8217;association de pro du Sql Server.</p>
<p>Pour avoir déjà assisté à ce type d&#8217;évènements à l&#8217;étranger, c&#8217;est vraiment quelque chose de très sympa que d&#8217;avoir des journées entières consacrées à la techno. Les conférences comme les techdays sont trop généralistes et sont plus l&#8217;occasion de présenter des produits ou de découvrir rapidement une techno. Là, vous avez 2 jours sur Sql Serveur avec toutes les briques prises en compte.</p>
<p>Il y a de plus des speakers parmis les meilleurs en france sur le sujet de la data et vous aurez rarement l&#8217;occasion de voir tout ce petit réuni: <a title="SPEAKERS" href="http://www.guss.fr/accueil/les-journ%C3%A9es-sql-server/speakers.aspx" target="_blank">http://www.guss.fr/accueil/les-journées-sql-server/speakers.aspx</a></p>
<p>Pour le détail du programme, c&#8217;est ici: <a title="programme des sessions" href="http://www.guss.fr/accueil/les-journées-sql-server/agenda.aspx" target="_blank">http://www.guss.fr/accueil/les-journées-sql-server/agenda.aspx</a></p>
<p>et pour l&#8217;inscription c&#8217;est ici: <a title="inscriptions" href="https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032496260&amp;Culture=fr-FR" target="_blank">https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032496260&amp;Culture=fr-FR</a></p>
<p>C&#8217;est en tout cas une super initiative et j&#8217;espère qu&#8217;elle sera reconduite les années prochaines!</p>
<p>Je serai là bas les deux jours, donc n&#8217;hésitez pas à me faire signe, j&#8217;essaierai de vous faire un débrief des sessions auxquelles je vais assister.</p>
<p>Bonne conférence!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rui.fr/event/participez-a-la-conference-sql-server-de-lannee-en-france/2011/11/25/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web 2.5  &#8211; Ajax push with Asp.Net &#8211; part 1</title>
		<link>http://www.rui.fr/developpement/web-2-5-ajax-push-with-asp-net-part-1/2011/11/21/</link>
		<comments>http://www.rui.fr/developpement/web-2-5-ajax-push-with-asp-net-part-1/2011/11/21/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 15:00:41 +0000</pubDate>
		<dc:creator>Rui</dc:creator>
				<category><![CDATA[Developpement]]></category>
		<category><![CDATA[Asp.Net]]></category>
		<category><![CDATA[Asp.Net Mvc]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[push]]></category>
		<category><![CDATA[Web 2.5]]></category>

		<guid isPermaLink="false">http://www.rui.fr/?p=403</guid>
		<description><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.rui.fr/developpement/web-2-5-ajax-push-with-asp-net-part-1/2011/11/21/"></g:plusone></div>
Pourquoi tu push? Comme je l&#8217;ai dit dans mon précédent post, je suis très attaché à cette notion de plateforme de développement web intégrée et au fait de pouvoir concevoir aujourd&#8217;hui des applications complètes sur une base de html. Parmis les points essentiels de cette manière de concevoir les choses, il y a la notion [...]]]></description>
			<content:encoded><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.rui.fr/developpement/web-2-5-ajax-push-with-asp-net-part-1/2011/11/21/"></g:plusone></div>
<p><span class="Apple-style-span" style="font-size: 20px; font-weight: bold;">Pourquoi tu push?</span></p>
<p><img class="alignleft size-full wp-image-412" title="comet" src="http://www.rui.fr/wp-content/uploads/2011/11/comet.png" alt="" width="159" height="159" /></p>
<p>Comme je l&#8217;ai dit dans <a title="Web 2.5 – Real Time Web Platform" href="http://www.rui.fr/article/web-2-5-real-time-web-platform/2011/11/18/" target="_blank">mon précédent post</a>, je suis très attaché à cette notion de plateforme de développement web intégrée et au fait de pouvoir concevoir aujourd&#8217;hui des applications complètes sur une base de html. Parmis les points essentiels de cette manière de concevoir les choses, il y a la notion de temps réel. Cette notion est toute relative et subjective du point de vue utilisateur.</p>
<p>Par exemple, on considère habituellement que toute action de moins de 100ms peut être considérée comme instantanée d&#8217;un point de vue de l&#8217;interface utilisateur, ou encore que la seconde est la limite acceptable dans une application pour que l&#8217;utilisateur ait cette sensation de fluidité qui fait qu&#8217;une application est agréable à utiliser.</p>
<p>Dans les applications web, la communication a été globalement depuis le début à sens unique.</p>
<pre>Le client effectue une requête &gt; le serveur y répond &gt; la communication est coupée.</pre>
<p>Depuis quelques années maintenant, l&#8217;évolution de la technologie aidant ainsi que l&#8217;expérience que l&#8217;on a des applications web, nous avons eut l&#8217;envie et le besoin de pousser de l&#8217;information depuis le serveur vers le client. Des technologies et spécialistes sont arrivés sur ce segment, avec notamment Comet qui désigne globalement aujourd&#8217;hui la notion de push ajax. Néanmoins, les implémentations aussi diverses que variées ne sont pas toujours pratiques, les solutions custom pas forcément évidentes et surtout, elles fonctionnent en général très bien sur unix et pas sous Windows.</p>
<h2>Et sur Asp.Net?</h2>
<p>Comme je l&#8217;ai déjà mentionné, c&#8217;est certainement cette fonctionnalité qui a attiré en premier les développeurs sur la plateforme Node.js. Après avoir joué pas mal de temps avec, je me suis rendu que l&#8217;on avait au final souvent sous-estimé ce paradigme fonctionnel et appliqué une mauvaise implémentation. J&#8217;ai trouvé le fonctionnement et l&#8217;apport au sein d&#8217;une application vraiment top, mais qu&#8217;en est-il en Asp.Net?</p>
<p><img class="alignleft size-full wp-image-414" title="asp-net" src="http://www.rui.fr/wp-content/uploads/2011/11/asp-net.gif" alt="" width="311" height="208" />J&#8217;ai par le passé, déjà implémenté cette pseudo notion de push temps réel dans des applications web mais toujours au travers d&#8217;un classique polling ajax (qui s&#8217;avère suffisamment efficace la plupart du temps). Néanmoins qu&#8217;est-ce qui nous empêche d&#8217;avoir de longues connexions persistantes et de faire du long polling ou du streaming en Asp.net?</p>
<p>Pas grand chose en fait, à par peut être une mauvaise interprétation des problématiques.</p>
<p>Faire du long polling et avoir donc quelque chose sur le serveur qui attend pour rien fait peur en général et ont se dit que l&#8217;on va rapidement atteindre les limites du raisonnable. D&#8217;où le simple polling ajax.</p>
<p>Il répond au même paradigme que les connexions aux bases données:</p>
<p>&nbsp;</p>
<blockquote><p>use it late, release it fast</p></blockquote>
<p>Donc, en théorie je m&#8217;en sors mieux si je fais plein de petite requêtes que une seule longue&#8230;Oui, mais ce n&#8217;est pas fondamentalement comme cela que cela se passe.</p>
<p>Déjà, il faut voir l&#8217;ajout de traffic réseau, un echange de messages toutes les secondes (en partant sur un polling raisonnable à la seconde) n&#8217;a pas le même coût qu&#8217;un ping de présence toutes les 30 secondes.</p>
<p>Ensuite, il y a les problématiques liées en elles-même à ce choix d&#8217;infrastructure applicative. Même si votre polling effectue de requêtes approchées dans le temps, à la seconde, les évents sur le serveur sont eux instantanés! Ce qui implique donc de gérer des buffers, des timestamp qui vont vous permettre de stocker temporairement  les derniers événements et savoir quoi renvoyer à chaque requête utilisateur, ce qui n&#8217;est pas forcément trivial à intégrer.</p>
<p>Enfin il faut aussi comprendre le cycle de vie des requêtes http sur IIS et Asp.net. Nous avons à notre disposition depuis .net 2, des handler http asynchrones qui permettent justement un découplage entre les requêtes et les traitements. Je ne vais pas rentrer dans les détails, ce n&#8217;est pas le sujet ici et je ne suis pas non plus le mieux qualifié pour en parler, mais lors qu&#8217;une requête sur le serveur, celle-ci est prise en compte par un thread de communication. Il y a un pool commun de thread de communication et leur nombre est assez limité. Le traitement peut être réalisé directement de manière synchrone par celui-ci mais peut aussi, dans le cas d&#8217;un handler asynchrone, être délégué à un thread de traitement, rendant par la même occasion le thread de communication à nouveau disponible pour servir de nouvelles requêtes.</p>
<p><a href="http://www.rui.fr/wp-content/uploads/2011/11/figure002.gif"><img class="aligncenter size-full wp-image-413" title="polling versus long polling" src="http://www.rui.fr/wp-content/uploads/2011/11/figure002.gif" alt="" width="580" height="229" /></a>Cette manière de faire colle donc parfaitement de manière performante avec la notion de long polling!</p>
<ol>
<li>J&#8217;envoie une requête ajax sur le serveur</li>
<li>un thread de communication prend en charge cette requete</li>
<li>il la transfère à un thread de traitement</li>
<li>le thread de communication est à nouveau immédiatement disponible pour servir d&#8217;autres clients</li>
<li>le thread de traitement se met en attente d&#8217;un signal (une action ou un timer)</li>
<li>quand il a fini il reprend un thread de communication dans le pool et lui donne la main</li>
<li>le thread de communication répond au client</li>
<li>celui-ci reçoit la réponse, la traite et renvoie à nouveau immédiatement une nouvelle requête au serveur.</li>
</ol>
<p>Au final, toutes les techniques nécessaires à faire cela sont belles et bien disponibles depuis longtemps, c&#8217;est vraiment plus une question de pratiques et d&#8217;expériences qui fait que l&#8217;on s&#8217;y penche un peu plus aujourd&#8217;hui.</p>
<p>&nbsp;</p>
<h2>Ok, let&#8217;s do it!</h2>
<p>Le principe de base est d&#8217;avoir un bus d&#8217;événements qui va recevoir les notifications et les repousser vers ses abonnés. Lorsque le handler asynchrone reçoit une requête il donne la main à un traitement annexe et repasse dans le thread pool de connexion. Ce traitement commence par s&#8217;abonner au bus d&#8217;événements puis s&#8217;abonne à un autre événement de type timer. Le premier des deux qui envoie un signal, provoque la poursuite de la séquence et génère la réponse, la main est ensuite rendue au thread de réponse.</p>
<p>J&#8217;ai regardé plusieurs types d&#8217;implémentations, principalement en passant par les nouvelles classes Task&lt;&gt; ou encore en passant par le framework Reactive Extensions. En parallèle, mon ami Zied a lui voulu faire un test simple sans aucun autre framework avec le bon vieux pattern utilisant le IAsyncResult. Sachant que l&#8217;intérêt principal était de faire un test basique et simple, je suis revenu moi aussi vers cette méthode en partant de sa solution. Comme, je voulais un exemple utilisable de bout en bout, j&#8217;ai démarré la construction d&#8217;un petit framework permettant de faire simplement du long polling.</p>
<p>Vous trouverez donc dans ce framework une manière de faire du long polling. Je n&#8217;ai pas la prétention de dire que c&#8217;est la meilleure, mais elle fonctionne. J&#8217;ai ajouté aussi tout une couche d&#8217;infrastructure de manière à rendre cela simple d&#8217;utilisation. Vous avez a votre disposition des bus d&#8217;événements (que vous mettez en place déclarativement par type et nom), puis des helpers pour accéder à aux send/push simplement. Je vais continuer à travailler sur ce petit framework car je pense qu&#8217;il y a un besoin d&#8217;avoir quelque chose de simple à comprendre et à mettre en place. Ceci étant, si vous voulez quelque chose d&#8217;un peu plus mature aujourd&#8217;hui, je vous invite vraiment à utiliser SignalR qui est vraiment très bien (et à regarder le source aussi).</p>
<p>&nbsp;</p>
<h2>Welcome to Mediator framwork</h2>
<p><a href="https://github.com/rhwy/Mediator"><img class="alignleft size-full wp-image-416" title="mediator framework" src="http://www.rui.fr/wp-content/uploads/2011/11/mediator-logo-1x120.png" alt="" width="120" height="119" /></a></p>
<p>Ceci est un framwork permettant donc d&#8217;envoyer des messages par push dans une page web en asp.net. Les messages sont transportés par une enveloppe contenant un timestamp et l&#8217;objet du message en lui-même. Les bus de messages sont identifiées par un type (d&#8217;objet) et un nom. La création de ces bus se fait par configuration au démarrage de l&#8217;application. Un buffer est aussi intégré pour garder en mémoire les X derniers messages pour chaque bus (afin par exemple de les afficher au moment du chargement d&#8217;une page). Coté client, il n&#8217;y a rien de particulier, définissez vos requêtes ajax comme d&#8217;habitude, partez de l&#8217;exemple si vous avez des doutes.</p>
<h3></h3>
<p><strong>NOTE</strong> :</p>
<p>Pour ceux qui n&#8217;ont pas la patience d&#8217;aller plus loin, vous pouvez aller directement à la page github du projet:</p>
<p><a href="https://github.com/rhwy/Mediator" target="_blank">https://github.com/rhwy/Mediator</a></p>
<p>&nbsp;</p>
<h3></h3>
<h3>1. Configuration</h3>
<p>1) Importez la librairie Mediator.dll dans votre projet/site</p>
<p>2) Adaptez votre web.config si besoin. Par défaut tous les modules managés sont chargés (ce qui sera donc le cas du notre):</p>
<div>
<pre><code>&lt;modules runAllManagedModulesForAllRequests="true"/&gt; </code></pre>
<p>si ce n&#8217;est pas le cas, ajoutez notre module à l&#8217;intérieur de cette balise modules</p>
</div>
<p>3) Définissez la route pour l&#8217;envoi des messages:</p>
<pre><code>
routes.Add(
   "mediator",
   new Route(
      "mediator/{type}/{name}",
      new RouteValueDictionary(new { type = "string", name = "default" }),
      new EventBusRouteHandler()));
</code></pre>
<p>Pour l&#8217;intant, ce handler ne prend en charge que la propagation des messages aux abonnés, l&#8217;envoi des messages se faisant à votre convenance (pour moi préférablement dans un contrôler dédié, voir ci-dessous)</p>
<h3>2. Server code</h3>
<p>Dans notre exemple nous partirons donc sur un controller dédié dont on pourra par exemple déclarer la route comme ceci:</p>
<pre><code>
//Message send
routes.MapRoute(
   "Send",
   "MediatorNotifier/{action}",
   new { controller = "MediatorNotifier", action = "Index" } );
</code></pre>
<p>C&#8217;est la manière la plus simple de centraliser les éléments liés à la notification temps réel dans votre application si il n&#8217;y a pas beaucoup de types de messages différents (ce qui est vrai dans la plupart des cas). Si jamais vous aviez une architecture plus conséquente, il vaut mieux ajouter ces actions spécifiques à chaque controller avec un regroupement plutôt fonctionnel.</p>
<p>Pour ce qui est de l&#8217;action en charge de la notification, cela peut facilement être réalisé comme dans l&#8217;exemple ci-dessous:</p>
<pre><code>
[HttpPost]
public ActionResult NotifyChatMessage(string name, ChatMessage message)
{
   MediatorBus.Send&lt;ChatMessage&gt;(this, message);
   return Json(new { saved = "ok" });
}
</code></pre>
<p>L&#8217;intéret initial de passer par une action de controller standard au lieu d&#8217;intégrer la notification dans le framework avec la distribution des messages  est juste de pouvoir simplement profiter du DefaultModelBinder des actions d&#8217;Asp.Net Mvc&#8230;On peut donc passer en ajax des objets complexes et fortement typés, et les passer simplement au bus grâce à notre helper MediatorBus.</p>
<p>Le framework embarque aussi une petite mécanique pour avoir une sorte de tampon des derniers messages (pour chaque bus) afin de pouvoir imprimer simplement ce qui est en cours. Ceci est particulièrement utile lors du chargement d&#8217;une page pour afficher ce qu&#8217;il y a en cours. Il est évident que dans une application ayant un minimum de fonctionnalités, vous auriez tout intérêt à gérer vous même cette fonctionnalité avec une gestion propre et personnelle des évènements et de la persistance. Néanmoins, la mécanique en place vous permet d&#8217;avoir une solution simple de suite.</p>
<p>Pour utiliser cette mécanique, j&#8217;aurais tendance à passer par une action partielle (souvent les besoins de remontée d&#8217;infos de push dans une page, sont plutôt liées à l&#8217;application en elle-même et pas à une page en particulier, utiliser cette méthode en simplifie le découplage):</p>
<pre><code>
[ChildActionOnly]
public ActionResult BufferOfChatMessage()
{
   ViewBag.Message = "Welcome to long polling demo!";
   var messageBuffer = MediatorBus.BufferOf&lt;ChatMessage&gt;();
   return PartialView(messageBuffer);
}
</code></pre>
<p>Puis pour l&#8217;appeler dans la vue parente:</p>
<pre><code>
   &lt;h2&gt;Simple message exchange&lt;/h2&gt;
   &lt;p&gt;
      @Html.Action("BufferOfChatMessage","MediatorNotifier")
   &lt;/p&gt;
</code></pre>
<p>Voici un exemple de vue allant de pair avec ce modèle:</p>
<pre><code>
@model IEnumerable
@{
   Layout = null;
   var messages = Model.Cast&lt;MessageOf&lt;ChatMessage&gt;&gt;();
}
&lt;ul id="messages"&gt;
@foreach (var item in messages) {
   &lt;li&gt;@item.MessageItem.User : @item.MessageItem.Message&lt;/li&gt;
}
&lt;/ul&gt;
</code></pre>
<h3>3. Code client</h3>
<p>Pour envoyer les notifications, il n&#8217;y a rien de particulier, c&#8217;est au choix de chacun. Pour la partie abonnement, voici un exemple de fonction javascript simple, utilisant jQuery:</p>
<pre><code>
function getMessages() {
   $.post("/mediator/string", null, function (data, s) {
      if (data.MessageItem != "" &amp;&amp; data.MessageItem != undefined) {
         var $msg = $('&lt;li/&gt;');
         $msg.html(data.MessageItem);
         $msg.prependTo('#messages');
      } else {
         console.log(data.TimeStamp);
      } 

      setTimeout(function () { getMessages(); }, 10000);
   });
}
</code></pre>
<p>C&#8217;est une fonction récursive qui se rappelle elle-même au moment ou elle a fini.</p>
<h3>4. Aller plus loin</h3>
<p>Ce petit framework a principalement été initié pour montrer la mise en place du long polling en asp.net sans librairie externe autre. Il n&#8217;a pas la prétention de garantir un niveau de qualité de code pour des applications d&#8217;entreprise mais peu néanmoins assez sereinement être utilisé en production.</p>
<p>Je vous invite donc à aller voir la page github du projet pour récupérer les soures:</p>
<p><a href="https://github.com/rhwy/Mediator" target="_blank">https://github.com/rhwy/Mediator</a></p>
<p>Je mettrai ça sur auget dès que possible!</p>
<p>Faites moi part de vos retours, forkez le code, remontez vos patches et suggestions! Faites des commentaires, tout cela est plus que bienvenu!</p>
<pre><code>Learn, share, enjoy!</code></pre>
<p>Bon push!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rui.fr/developpement/web-2-5-ajax-push-with-asp-net-part-1/2011/11/21/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Web 2.5 &#8211; Real Time Web Platform</title>
		<link>http://www.rui.fr/article/web-2-5-real-time-web-platform/2011/11/18/</link>
		<comments>http://www.rui.fr/article/web-2-5-real-time-web-platform/2011/11/18/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 07:30:38 +0000</pubDate>
		<dc:creator>Rui</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Developpement]]></category>
		<category><![CDATA[buzz]]></category>
		<category><![CDATA[Html5]]></category>
		<category><![CDATA[Node.js]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Web 2.5]]></category>
		<category><![CDATA[Web 3.0]]></category>

		<guid isPermaLink="false">http://www.rui.fr/?p=402</guid>
		<description><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.rui.fr/article/web-2-5-real-time-web-platform/2011/11/18/"></g:plusone></div>
Posons nous quelques instants pour regarder un peu ce qui se passe dans les grandes lignes du web en ce moment,  en dehors des phénomènes de communication sur des mots dont on a perdu le sens ou et en sortant d&#8217;un cadre purement technique. Une chose est très claire pour moi aujourd&#8217;hui. Nous avons eut [...]]]></description>
			<content:encoded><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.rui.fr/article/web-2-5-real-time-web-platform/2011/11/18/"></g:plusone></div>
<p><img class="size-full wp-image-404 alignright" title="Web 2.0 (wikipedia)" src="http://www.rui.fr/wp-content/uploads/2011/11/320px-Web_2.0_Map.svg_.png" alt="" width="320" height="240" /></p>
<p>Posons nous quelques instants pour regarder un peu ce qui se passe dans les grandes lignes du web en ce moment,  en dehors des phénomènes de communication sur des mots dont on a perdu le sens ou et en sortant d&#8217;un cadre purement technique.</p>
<p>Une chose est très claire pour moi aujourd&#8217;hui. Nous avons eut la vague web 2.0, qui même si elle à été plus un buzzword qu&#8217;autre chose, nous a apporté des sites à l&#8217;ergonomie plus sympathique, au design plus agréable et surtout un niveau de socialisation qu&#8217;il n&#8217;y avait pas avant. Bien. On parle souvent du prochain Web 3.0 comme étant l&#8217;âge de l&#8217;internet sémantique et de l&#8217;internet des choses. Bien aussi. C&#8217;est très important et c&#8217;est certainement la tendance pour un futur plus ou moins proche, mais on est loin d&#8217;en être là aussi bien techniquement, que dans l&#8217;approche projet ou business.</p>
<p>Cela fait aussi pas loin de 2 ans que je me bats contre les petits copains qui font du Flash et du Silverlight sur le bien fondé du Html5 (c&#8217;est pour être gentil, car en général les discussions étaient plus houleuses que ça <img src='http://www.rui.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . Je pense qu&#8217;avec le temps (et une poussée massive de Microsoft vers le Html5 qui prend bien train en marche finalement), ils seront de plus en plus à venir se ranger de mon coté, et, je vais en profiter pour revenir un peu dessus aussi.</p>
<p>&nbsp;</p>
<p>Entre les deux n&#8217;y a-t-il donc rien? Est-ce que le web d&#8217;aujourd&#8217;hui (toujours 2.0 donc) est-il le même que celui de 2004 quand ces évolutions ont commencé à prendre forme dans les médias? En fait il y a pas mal de choses qui se trament en ce moment si on y regarde de plus près. La démocratisation plus que l&#8217;arrivée d&#8217;Html5 commence à porter ses fruits. Pour la première fois, réellement, avec Html5, nous avons à notre disposition une plateforme (html) qui est réellement prévue pour concevoir des applications multimédias et connectées! On a l&#8217;impression que cela ne change pas grand chose, que html4+javascript+css2 ne font pas moins, mais si, la différence est primordiale!</p>
<p>&nbsp;</p>
<p><img class="alignright size-full wp-image-405" title="Norton Commander (wikipedia)" src="http://www.rui.fr/wp-content/uploads/2011/11/Norton_Commander_5.51.png" alt="" width="512" height="280" /></p>
<p>Remontons de 20 ou 30 ans. A cette époque les interfaces graphiques étaient en mode texte (pour faire simple). Une console qui affiche du texte, n&#8217;est pas du tout la même chose qu&#8217;une interface graphique qui affiche du texte (ou même une console à l&#8217;intérieur d&#8217;une interface graphique qui affiche du texte).</p>
<p>Dans ces interfaces texte, la gestion de l&#8217;affichage et de la console étaient très basiques et très simplement gérées en mémoire. En gros 1 caractère = 1 octet en mémoire pour l&#8217;affichage et on le place dans la cellule où se trouve le curseur. Les interfaces graphiques en mode texte, telles que ce bon vieux Norton Commander, ne sont qu&#8217;une extrapolation de cette affichage texte avec beaucoup d&#8217;artifices pour avoir un semblant d&#8217;ergonomie et d&#8217;amélioration de l&#8217;expérience utilisateur (ou pas suivant les avis&#8230;). Avec cette interface graphique quasi séquentielle (prompt), l&#8217;interaction utilisateur aussi s&#8217;en ressent, on a de quoi interagir pour une action à la fois.</p>
<p>Ca c&#8217;est le html 1 à 4.  Le html est initialement un standard servant échanger simplement des documents textes au travers de liens hypertexte. On a une plateforme pour présenter des documents, point. Ce que l&#8217;on en fait aujourd&#8217;hui c&#8217;est du bricolage, cela peut être du beau bricolage certes, mais si vous faites autre chose que présenter de l&#8217;information avec cette plateforme c&#8217;est du bricolage (arg, moi même je me choque en écrivant cela &#8230;)</p>
<p>&nbsp;</p>
<p><img class="alignleft size-medium wp-image-407" title="Apple_Macintosh_Desktop (wikipedia)" src="http://www.rui.fr/wp-content/uploads/2011/11/Apple_Macintosh_Desktop-300x200.png" alt="" width="300" height="200" />Puis sont apparues les interfaces de MacOs, Windows 3 et autres (Zappons qui a l&#8217;antériorité de quoi et l&#8217;échelle de temps, hein?). Là on décide point par point comment va s&#8217;afficher une lettre. Ceci va nous permettre d&#8217;utiliser des polices aussi différentes que l&#8217;on veut mais aussi les tailles que l&#8217;on veut. Mais on va pouvoir aussi dessiner des choses à l&#8217;écran.</p>
<p>Quand je parle de dessiner je ne parle pas de programmes de type Paint mais bien du fait que l&#8217;on peut par exemple avoir cette notion de fenêtres graphiques qui nous est chère! On va aussi pouvoir simplement gérer 2 taches et affichages en même temps (une fenêtre en avant plan que j&#8217;utilise et une autre en background qui fait autre chose). On va pouvoir aussi avoir des notifications sur le bureau (l&#8217;heure qui s&#8217;affiche dans une barre des taches c&#8217;est déjà une notification sur le bureau&#8230;).</p>
<p>Puis avec le temps, on s&#8217;est dits qu&#8217;il fallait ajouter un peu d&#8217;interactivité et est apparu le javascript (non, non, va t&#8217;en vilain applet java). Puis on s&#8217;est dits qu&#8217;avoir des feuilles de style ce serait pas mal aussi pour définir un peu plus finement comment les choses devaient s&#8217;afficher à l&#8217;écran.</p>
<p>C&#8217;est un peu tout ça que nous ont apportés dans un premier temps les interfaces riches des applets java/activeX (même combat), puis de Flash puis enfin Silverlight. Néanmoins ces ajouts ne sont pas natifs au sein du document original. Pour repartir sur mon analogie avec la console, c&#8217;est un peu comme à l&#8217;époque du Dos, vous lanciez un beau jeu tout graphique mais qui reposait sur ses propres librairies d&#8217;affichage, sans profiter des accélérations ou facilités du système, et à la fin duquel vous retourniez quoi qu&#8217;il arrive à votre bonne vieille ligne de commande.</p>
<p>C&#8217;est là l&#8217;intéret de l&#8217;Html5, il s&#8217;agit d&#8217;une plateforme prévue pour!</p>
<p>Nous avons du dessin bitmap (canvas), du svg (dessin vectoriel), les websockets (communication full duplex bas niveau possible donc), du LocalDB et autres (données structurées en local), des webworkers (va y, fait péter ton thread en tâche de fond), etc&#8230;bref, de quoi penser des vrais applications.</p>
<p>Mais Html5, ce n&#8217;est pas que ça, c&#8217;est aussi, et surtout pour moi, l&#8217;apport de la sémantique dans le balisage de l&#8217;information.</p>
<p>Elle se situe à deux niveaux:</p>
<ul>
<li>Les balises de présentation structurantes (section, navigation, article,&#8230;)</li>
<li>Les micro-data</li>
</ul>
<p>Mais l&#8217;utilisation massive de tout ça va prendre un peu temps et on rangera ça plutôt dans la catégorie Web 3.0</p>
<p>&nbsp;</p>
<p>Aujourd&#8217;hui nous sommes donc dans une phase d&#8217;appropriation d&#8217;une plateforme pour le web. Je parle d&#8217;appropriation car les changements prennent du temps, la nouvelle manière des applications prend du temps aussi, l&#8217;utilisation en masse des nouveaux navigateurs prend du temps aussi. Mais c&#8217;est en marche! Ne croyez pas que tout ceux qui font du Html5 le font pour suivre une mode (pas que)! Mais ne faites pas non plus l&#8217;erreur de faire du Html5 pour suivre la mode alors que la seule modification de votre application à été de changer la balise html de votre document&#8230;</p>
<p>On voit d&#8217;ailleurs que beaucoup de librairies javascript commencent à prendre en compte ces nouveautés avec une rétro-compatibilité des anciens navigateurs au détriment éventuellement de certaines fonctionnalités. De même, on voit bien aujourd&#8217;hui que les notions de push dans les applications web ne sont pas uniquement accessibles au html5 et websockets, cela s&#8217;implémente très bien avec du long polling ou du streaming par exemple. Des librairies comme <a href="http://socket.io" target="_blank">Socket.io</a> illustrent très bien cet exemple avec des compatibilités ascendantes et des implémentations différentes suivant les clients.</p>
<p>Je mettrais aussi en avant l&#8217;apparition et l&#8217;utilisation de plus en plus courante de frameworks MVC coté client (knockout.js, backbone.js, javascriptMvc&#8230;). Cela est significatif de la prise en compte d&#8217;un réel modèle de développement orienté application au sein de pages web. Ces dernières servant principalement de support d&#8217;échange.</p>
<p>&nbsp;</p>
<p><a href="http://www.rui.fr/wp-content/uploads/2011/11/nodejs-S.png"><img class="alignleft size-medium wp-image-410" title="nodejs-S" src="http://www.rui.fr/wp-content/uploads/2011/11/nodejs-S-300x102.png" alt="" width="300" height="102" /></a>C&#8217;est pour toutes ces raisons aussi qu&#8217;il faut regarder et comprendre une plateforme comme Node.js.</p>
<p>En dehors de tout le buzz qu&#8217;il a pu y avoir autour de cette plateforme, c&#8217;est certainement celle qui incarne aujourd&#8217;hui le mieux les changements en cours.</p>
<p>Pourquoi les gens sont arrivés tout d&#8217;abord sur Node.js? Parce qu&#8217;il y avait enfin la promesse de faire du push web de manière simple et performante!</p>
<p>Pourquoi les gens continuent de l&#8217;utiliser et pourquoi il y a de plus en plus d&#8217;adeptes? Parce que la solution est simple, elle est globalement performante, elle permet de coder simplement avec le même langage coté serveur et coté client.</p>
<p>Enfin, elle utilise parfaitement un paradigme dont les gens commencent seulement à prendre réellement conscience aujourd&#8217;hui qui est le <a href="http://en.wikipedia.org/wiki/Single_responsibility_principle" target="_blank">SRP</a> appliqué aux applications : mieux vaut utiliser plein de petites librairies qui font bien une chose, que plusieurs grosses dont on ne se sert pas complètement ou qui se recoupent&#8230;C&#8217;est aussi une plateforme très dynamique et les applications comme les frameworks vivent de l&#8217;usage que les gens en font, c&#8217;est donc important&#8230;</p>
<p>&nbsp;</p>
<p>Nous ne sommes donc pas encore au web 3, mais on ne pas non plus dire qu&#8217;il n&#8217;y a pas d&#8217;évolutions depuis les débuts du web 2&#8230;Nous sommes donc pour moi, dans une phase de Web 2.5 correspondant à la mise en place d&#8217;applications web structurées et temps réel. Une fois ça en place et avec l&#8217;adoption massive des sémantiques issues de Html5 nous serons en bonne voie pour la prochaine génération du web.</p>
<p>Bon Web 2.5 et n&#8217;hésitez pas à laisser vos commentaires et votre vision des choses!</p>
<p>&nbsp;</p>
<p><span class="Apple-style-span" style="font-size: 26px;"><strong><br />
</strong></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rui.fr/article/web-2-5-real-time-web-platform/2011/11/18/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Alt.Net &#8211; Roslyn presentation par JB</title>
		<link>http://www.rui.fr/event/alt-net-roslyn-presentation-par-jb/2011/11/08/</link>
		<comments>http://www.rui.fr/event/alt-net-roslyn-presentation-par-jb/2011/11/08/#comments</comments>
		<pubDate>Tue, 08 Nov 2011 08:09:15 +0000</pubDate>
		<dc:creator>Rui</dc:creator>
				<category><![CDATA[Event]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[CLR]]></category>
		<category><![CDATA[Generation]]></category>
		<category><![CDATA[Services]]></category>

		<guid isPermaLink="false">http://www.rui.fr/?p=398</guid>
		<description><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.rui.fr/event/alt-net-roslyn-presentation-par-jb/2011/11/08/"></g:plusone></div>
Toute l&#8217;équipe Alt.Net Paris essaie de se re-dynamiser en ce moment pour organiser plus de présentation ou même simplement des réunions pour discuter. N&#8217;hésitez pas à nous contacter si vous voulez parler ou présenter quelque chose, si il y a des sujets que vous voudriez que l&#8217;on aborde, etc&#8230; C&#8217;est dans ce cadre là que [...]]]></description>
			<content:encoded><![CDATA[<div style="display:inline;float:right;margin-left:1em"><g:plusone href="http://www.rui.fr/event/alt-net-roslyn-presentation-par-jb/2011/11/08/"></g:plusone></div>
<p>Toute l&#8217;équipe Alt.Net Paris essaie de se re-dynamiser en ce moment pour organiser plus de présentation ou même simplement des réunions pour discuter. N&#8217;hésitez pas à nous contacter si vous voulez parler ou présenter quelque chose, si il y a des sujets que vous voudriez que l&#8217;on aborde, etc&#8230;</p>
<p>C&#8217;est dans ce cadre là que <span style="color: #888888;"><a href="http://evain.net/blog/" target="_blank">Jean-Baptiste Evain</a></span> est venu nous proposer une présentation de Roslyn, le futur compilateur as a service de Microsoft. Fraichement sorti de l&#8217;équipe mono chez Novell et créateur de SyntaxTree, JB est surtout connu par la création de Mono.Cecil, le décompilateur utilisé par tout le monde. Il est certainement l&#8217;un des plus indiqués pour nous présenter cette nouvelle plateforme.</p>
<p>vous trouverez tous les détails de la présentation sur le site d&#8217;Alt.Net:</p>
<p><a href="http://www.altnetfr.org/2011/11/07/alt-net-presentation-de-roslyn-par-jean-baptiste-evain/" target="_blank">http://www.altnetfr.org/2011/11/07/alt-net-presentation-de-roslyn-par-jean-baptiste-evain/</a></p>
<p>La présentation aura lieu mardi 29 Novembre 2011 chez Cellenza/Xebia. Attention la salle n&#8217;est pas très grande et les places sont très limitées! il ne doit pas rester plus de 15 places à l&#8217;heure qu&#8217;il est donc dépéchez vous!</p>
<p><span style="color: #ff0000;"><strong>Update 10/11/2011: </strong></span></p>
<p>Au vu de l&#8217;affluence, nous avons décidé de migrer pour une salle plus grande chez Octo. Merci à eux et merci encore à Cellenza pour leur accueil initial!</p>
<p>Voici la nouvelle adresse:</p>
<address>Octo</address>
<address>50 Avenue des Champs-Elysées </address>
<address>75008 Paris</address>
<p>&nbsp;</p>
<p>bonne pres!</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rui.fr/event/alt-net-roslyn-presentation-par-jb/2011/11/08/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

