<?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:media="http://search.yahoo.com/mrss/" version="2.0">

<channel>
	<title>The World is mine</title>
	
	<link>http://grozeille.com</link>
	<description>Just another Wordpress.com weblog</description>
	<lastBuildDate>Thu, 09 Jul 2009 06:52:17 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
		<url>http://www.gravatar.com/blavatar/7dd2445e40c2f506ab7c2d7e4adc3900?s=96&amp;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>The World is mine</title>
		<link>http://grozeille.com</link>
	</image>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/Grozeille" type="application/rss+xml" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">Grozeille</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Intégration Continue en .Net</title>
		<link>http://grozeille.com/2009/07/09/integration-continue-en-net/</link>
		<comments>http://grozeille.com/2009/07/09/integration-continue-en-net/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 06:45:15 +0000</pubDate>
		<dc:creator>grozeille</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[.net cruise-control]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://grozeille.com/?p=205</guid>
		<description><![CDATA[Bonjour les fans de .Net et d&#8217;intégration continue!
J&#8217;affectionne Hudson en ce moment, et je l&#8217;applique de plus en plus pour .Net. Je l&#8217;utilise en ce moment pour analyser le code et &#8220;gronder&#8221; les membres du projet qui codent &#8220;mal&#8221;.
A défaut d&#8217;avoir un plugin Sonar pour .Net, Hudson et son plugin Violations fait déjà pas mal [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&blog=173450&post=205&subd=grozeille&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Bonjour les fans de .Net et d&#8217;<a href="http://en.wikipedia.org/wiki/Continuous_integration">intégration continue</a>!<br />
J&#8217;affectionne <a href="https://hudson.dev.java.net/">Hudson</a> en ce moment, et je l&#8217;applique de plus en plus pour .Net. Je l&#8217;utilise en ce moment pour analyser le code et &#8220;gronder&#8221; les membres du projet qui codent &#8220;mal&#8221;.<br />
A défaut d&#8217;avoir un plugin <a href="http://sonar.codehaus.org/">Sonar</a> pour .Net, Hudson et son <a href="http://wiki.hudson-ci.org/display/HUDSON/Violations">plugin Violations</a> fait déjà pas mal de bon rapports.<br />
Ce plugin supporte pas mal d&#8217;outils comme <a href="http://msdn.microsoft.com/en-us/library/bb429476(VS.80).aspx">FXCop</a> ou <a href="http://redsolo.blogspot.com/2008/05/hudson-adds-support-for-stylecop.html">StyleCop</a>. Concernant ce dernier, le plugin bug avec les chemins absolus et les &#8220;\&#8221;, j&#8217;aimerai bien le corriger mais je n&#8217;ai pas trop le temps <img src='http://s.wordpress.com/wp-includes/images/smilies/face-smile.png' alt=':)' class='wp-smiley' /><br />
J&#8217;ai regardé les sources de ce plugin, et ça semble assez simple.<br />
<img class="aligncenter size-medium wp-image-210" title="HudsonMonitor" src="http://grozeille.files.wordpress.com/2009/07/img_0091.jpg?w=300&#038;h=225" alt="HudsonMonitor" width="300" height="225" /></p>
<div style="text-align:center;"><em>Ma petite application Winform qui lit le flux RSS pour afficher l&#8217;état des projets.<br />
En ce moment c&#8217;est bien rouge&#8230; mais ça peut aussi être jaune ou vert <img src='http://s.wordpress.com/wp-includes/images/smilies/face-wink.png' alt=';)' class='wp-smiley' />  </em><em><span style="font-style:normal;"><br />
</span></em></p>
<div style="text-align:left;">Il supporte aussi <a href="http://pmd.sourceforge.net/cpd.html">CPD</a> qui détecte les Copier/Coller (sans doute la source de bug la plus importante dans équipe), mais il ne supporte pas le C#&#8230; Idem, j&#8217;aurai bien aimé avoir le temps de l&#8217;implémenter.<br />
J&#8217;ai vu que <a href="http://www.jetbrains.com/teamcity/">TeamCity</a> avait sa propre tâche &#8220;<a href="http://www.jetbrains.net/confluence/display/TCD3/Duplicates+Finder+(.NET)">Duplicates Finder</a>&#8220;, mais ça n&#8217;a pas l&#8217;air d&#8217;être indépendant.<br />
<a href="http://www.ndepend.com/">NDepend</a> est magique et répond à ce besoin, mais il est payant, et non supporté par Hudson.<br />
J&#8217;ai eu aussi envie de tester <a href="http://www.mono-project.com/Gendarme">Gendarme</a>. Encore une fois, si le temps me le permet, j&#8217;ajouterai bien le support des rapports Gendarme dans le plugin Hudson-Violations. En attendant, je peux toujours convertir le XML de Gendarme en XML FXCop (je n&#8217;ai pas encore étudié la faisabilité).</div>
<div style="text-align:left;">
Je sais que faire évoluer Hudson ou CPD ou encore Sonar nécessite des connaissance en Java.<br />
Mais le constat est que ces outils sont matures en Java, et les &#8220;pâles copies&#8221; en .Net ne sont pas à la hauteur (comme <a href="http://cc.net/">CC.Net</a> par exemple).<br />
L&#8217;investissement est très variable entre les différents projets (Violation, Sonar, etc), mais je suis convaincu qu&#8217;il en vaut le coup.</div>
<div style="text-align:left;">
Et vous, qu&#8217;en pensez-vous?</div>
<div style="text-align:left;">
Faut-il absolument faire du .Net pour du .Net? et s&#8217;investir sur un CC.Net vieillissant?<br />
Hudson est-il un bon choix d&#8217;investissement?<br />
Ne faut-il pas mieux privilégier l&#8217;investissement sur Sonar pour les rapports d&#8217;analyse?<br />
Et la question la plus important: y a-t-il des personnes motivées par ça?<br />
Je pense même que ça mérite un &#8220;meta-projet opensource&#8221; avec son site web, qui regroupe les outils de build et d&#8217;analyses de code en .Net, afin d&#8217;offrir une solution &#8220;packagée&#8221; pour .Net.</div>
<div style="text-align:left;">
<p style="text-align:left;">
</div>
</div>
 Tagged: .net cruise-control, build, tools <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grozeille.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grozeille.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grozeille.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grozeille.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grozeille.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grozeille.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grozeille.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grozeille.wordpress.com/205/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grozeille.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grozeille.wordpress.com/205/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&blog=173450&post=205&subd=grozeille&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://grozeille.com/2009/07/09/integration-continue-en-net/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fcf307a3a2899d162cabfd41241f17b9?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">GroZeiLLe</media:title>
		</media:content>

		<media:content url="http://grozeille.files.wordpress.com/2009/07/img_0091.jpg?w=300" medium="image">
			<media:title type="html">HudsonMonitor</media:title>
		</media:content>
	</item>
		<item>
		<title>ALT.Net sur l’AOP</title>
		<link>http://grozeille.com/2009/05/31/alt-net-sur-laop/</link>
		<comments>http://grozeille.com/2009/05/31/alt-net-sur-laop/#comments</comments>
		<pubDate>Sun, 31 May 2009 15:05:25 +0000</pubDate>
		<dc:creator>grozeille</dc:creator>
				<category><![CDATA[ALT.Net]]></category>
		<category><![CDATA[Développement]]></category>

		<guid isPermaLink="false">http://grozeille.com/?p=198</guid>
		<description><![CDATA[Je vous invite à venir à la session ALT.Net sur l&#8217;AOP présenté par Romain Verdier le Mercredi 17 juin.
Pour vous mettre dans le bain et vous permettre de vous informer sur le sujet avant la réunion, voici un exemple d&#8217;AOP super simple avec Postsharp : http://bit.ly/71pej
Dans le cadre de mon projet actuel, l’AOP aurait pu m’aider [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&blog=173450&post=198&subd=grozeille&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Je vous invite à venir à la session <a href="http://www.altnetfr.org/2009/05/28/altnet-paris-14-aspect-oriented-programming-aop/">ALT.Net sur l&#8217;AOP</a> présenté par <a href="http://codingly.com/">Romain Verdier</a> le Mercredi 17 juin.</p>
<p>Pour vous mettre dans le bain et vous permettre de vous informer sur le sujet avant la réunion, voici un exemple d&#8217;AOP super simple avec Postsharp : <a href="http://bit.ly/71pej">http://bit.ly/71pej</a></p>
<p>Dans le cadre de mon projet actuel, <a href="http://fr.wikipedia.org/wiki/Programmation_orientée_aspect">l’AOP</a> aurait pu m’aider à décorer les méthodes qui nécessitent de l&#8217;impersonation (accès à des ressources critiques qui nécessite donc un compte privilégié) ou à gérer la sécurité+log+erreurs au niveau des WebServices (CheckClientCertificate+Log+SoapException).</p>
<p>J&#8217;utilise souvent l&#8217;AOP avec <a href="http://www.springframework.net/doc/reference/html/aop-quickstart.html">Spring.net</a>, qui utilise la méthode &#8220;création de proxy dynamiquement&#8221; ou appelé aussi &#8220;dynamic weaving&#8221;.</p>
<p>Cette méthode consiste à créer des proxy dynamiquement qui encapsulent l&#8217;objet cible en ajoutant le code des aspects aux bons endroits. La limite de l&#8217;approche avec Spring.Net est que l&#8217;on perd en performance à la création de ces proxy, on ne peut exposer qu&#8217;une seule interface, et cela oblige à utiliser Spring.net pour se faire injecter l&#8217;instance.</p>
<p>Postsharp lui, fait tout à la compilation, c&#8217;est ce que l&#8217;on appelle le &#8220;static weaving&#8221;. L&#8217;avantage est que l&#8217;on gagne en performance, on ne dépend pas de la façon d&#8217;instancier la classe, et la manière d&#8217;ajouter des aspects se fait par code (par attributs) se qui peut s&#8217;avérer plus agréable que de les déclarer dans un XML (ce que fait Spring.net). L&#8217;inconvénient est que cela oblige à posséder le code source de l&#8217;objet à &#8220;aspectiser&#8221; et de le compiler avec les aspects.<br />
On peut citer <a href="http://aspectdng.tigris.org/nonav/doc/index.html">AspectDNG</a> qui utilise aussi le &#8220;static weaving&#8221;.</p>
<p><a href="http://www.castleproject.org/aspectsharp/index.html">Aspect#</a> utilise le &#8220;dynamic weaving&#8221; tout comme Spring.net. Ils utilisent tous la réflexion à l&#8217;aide de <a href="http://msdn.microsoft.com/en-us/library/system.reflection.emit.aspx">System.Reflection.Emit</a> (fourni par défaut avec .Net) pour créer les proxy dynamiquement. Aspect# le fait par l&#8217;intermédiaire de <a href="index.html">Castle.DynamicProxy</a> (utilisé aussi par <a href="http://nhforge.org/Default.aspx">NHibernate</a> ou <a href="http://ayende.com/projects/rhino-mocks.aspx">RhinoMock</a>).</p>
<p>Le débat à la session ALT.Net va certainement porter sur Réflexion vs Introspection: la réflexion est moins bonne en performance que l&#8217;introspection, car elle nécessite de charger tout le code en mémoire, alors que l&#8217;introspection analyse directement l&#8217;IL. Voici un petit post sur le débat: <a href="http://bit.ly/2xq6aB">http://bit.ly/2xq6aB</a></p>
<p>Romain a travaillé sur <a href="http://codingly.com/tag/cecildecompiler/">Mono.Cecil.Decompiler</a> avec <a href="http://evain.net/blog/">Jean-Baptiste Evain</a>, il va donc sans doute nous parler des avantages de l&#8217;introspection avec <a href="http://www.mono-project.com/Cecil">Mono.Cecil</a>. Voici un <a href="http://evain.net/blog/articles/2009/04/30/reflection-based-cil-reader">autre post</a> sur le sujet sur le blog de JB.</p>
<p>Voila, j&#8217;espère que vous serez ainsi mieux armés pour assister à la session <img src='http://s.wordpress.com/wp-includes/images/smilies/face-smile.png' alt=':)' class='wp-smiley' /> </p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grozeille.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grozeille.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grozeille.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grozeille.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grozeille.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grozeille.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grozeille.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grozeille.wordpress.com/198/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grozeille.wordpress.com/198/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grozeille.wordpress.com/198/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&blog=173450&post=198&subd=grozeille&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://grozeille.com/2009/05/31/alt-net-sur-laop/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fcf307a3a2899d162cabfd41241f17b9?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">GroZeiLLe</media:title>
		</media:content>
	</item>
		<item>
		<title>ALT.Net: Adaptive Object Modeling</title>
		<link>http://grozeille.com/2009/05/24/alt-net-adaptive-object-modeling/</link>
		<comments>http://grozeille.com/2009/05/24/alt-net-adaptive-object-modeling/#comments</comments>
		<pubDate>Sun, 24 May 2009 15:18:50 +0000</pubDate>
		<dc:creator>grozeille</dc:creator>
				<category><![CDATA[ALT.Net]]></category>
		<category><![CDATA[Développement]]></category>

		<guid isPermaLink="false">http://grozeille.com/?p=176</guid>
		<description><![CDATA[Mardi 19 Mai a eu lieu la session ALT.Net sur l’Adaptive Object Modeling présenté par Sébastien Ros.
Je voulais simplement dire que j’étais content d’assister à cette rencontre : la présentation de Sébastien était courte et intéressante (et drôle en plus !). En résumé : le type de présentation qui ne nous laisse pas le temps [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&blog=173450&post=176&subd=grozeille&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Mardi 19 Mai a eu lieu la <a href="http://www.altnetfr.org/2009/05/05/altnet-paris-13-adaptive-object-modeling/">session ALT.Ne</a>t sur l’Adaptive Object Modeling présenté par <a href="http://www.dotnetguru2.org/sebastienros/">Sébastien Ros</a>.<br />
Je voulais simplement dire que j’étais content d’assister à cette rencontre : la présentation de Sébastien était courte et intéressante (et drôle en plus !). En résumé : le type de présentation qui ne nous laisse pas le temps de s’endormir.<br />
Cela nous a aussi permis de débattre de divers sujet à la fin de la présentation : nous avons voté pour des sujets qui nous intéressent, puis nous nous somme divisé en 2 groupes pour en débattre. Cette formule nous permet de changer de groupe si le sujet finit par nous ennuyer <img src='http://s.wordpress.com/wp-includes/images/smilies/face-smile.png' alt=':)' class='wp-smiley' /><br />
Bref, j’ai bien aimé cette rencontre qui revient sur l’esprit des premières. En plus, <a href="http://www.octo.com/">Octo</a> nous a bien accueillis avec de succulents petits-fours :p</p>
<p style="text-align:center;"><img class="alignnone size-full wp-image-186" title="ALT.Net" src="http://grozeille.files.wordpress.com/2009/05/altnet.gif?w=200&#038;h=77" alt="ALT.Net" width="200" height="77" /> +   <img class="size-thumbnail wp-image-184 alignnone" title="Petits-fours" src="http://grozeille.files.wordpress.com/2009/05/2124291918_fa4c5df217.jpg?w=150&#038;h=112" alt="Petits-fours" width="150" height="112" /> =   <img class="alignnone size-thumbnail wp-image-189" title="Smiley" src="http://grozeille.files.wordpress.com/2009/05/spaceball.png?w=150&#038;h=143" alt="Smiley" width="150" height="143" /></p>
<p><span id="more-176"></span>Pour revenir à la présentation de Sébastien : il a commencé par dire que nous faisions tous de l’Adaptive Object Modeling sans le savoir. Et en effet ! Je n’arrête pas d’en faire, sans en connaitre le nom. A la suite de cette présentation, je me rends mieux compte des similitudes de mes projets, des méthodes/patterns employés, et je peux prendre plus facilement du recule sur tout ça.</p>
<p>L’Adaptive Object Modeling c’est quoi : c’est le fait de modéliser une application qui est capable de s’adapter à un modèle métier.<br />
Sébastien a cité 2 exemples : un gestionnaire de tâches (comme <a href="http://www.atlassian.com/software/jira/">Jira</a>/<a href="http://trac.edgewall.org/">Trac</a>/<a href="http://www.redmine.org/">Redmine</a>) et une <a href="http://fr.wikipedia.org/wiki/Gestion_électronique_des_documents">GED</a>.</p>
<p style="text-align:center;"><a href="http://grozeille.files.wordpress.com/2009/05/adaptiveobjectmodeling011.png"><img class="size-full wp-image-180 aligncenter" title="UML Adaptive Object Modeling" src="http://grozeille.files.wordpress.com/2009/05/adaptiveobjectmodeling011.png?w=700&#038;h=377" alt="UML Adaptive Object Modeling" width="700" height="377" /></a></p>
<p>J’ai déjà travaillé sur ces 2 types de projets, mais pour ne pas plagier sa présentation, je vais prendre pour exemple une autre de mes expériences : un logiciel de vente (ok je triche, il a aussi cité cette exemple au tout début).<br />
J’ai en effet travaillé sur une application pour vendre des cuisines, effectuer des devis, confirmer la vente par une facture, commander les meubles à l’aide de bon de commande, etc.<br />
C’était chez un éditeur de logiciel, et le but était donc de faire un logiciel générique que l’ont peut vendre à divers clients.<br />
Pour cela, il faut que l’application s’adapte au modèle métier de chaque client :</p>
<ul>
<li>Certains vendent des meubles, d’autres de l’électroménager</li>
<li>Certains ont un workflow de validation des devis/factures complexe, d’autres non</li>
<li>Certains appliquent des règles de calcules de prix complexes (taxes, remises, formule de calcule de prix), d’autres vendent les produits à des prix fixes</li>
<li>Certains appellent un document « devis », d’autres une « quote » (français/canadiens)</li>
<li>Etc.</li>
</ul>
<p>L’objectif est donc de modéliser un « méta-modèle » qui s’adapte à l’aide d’une configuration :</p>
<ul>
<li>Un produit possède un type : il peut être un meuble, un frigo, etc.</li>
<li>Un type possède un ensemble d’attributs : un meuble possède une taille, un volume, une couleur, etc.</li>
</ul>
<p>Bien sûr, un produit aura toujours un prix quel que soit son type. Ce dernier figurera toujours dans un devis, qui sera associé à un acheteur, etc. Il y a donc certaines choses « non générique » car communes à chaque client. Nous avons alors une logique « métier » commune : toutes applications de vente servent à calculer le prix d’un devis/facture.<br />
Comme l’a dit Sébastien : le plus dur est de placer la barre entre le « tout spécifique » et le « tout générique ». C’est l’expérience et le contexte qui nous fera pencher la balance d’un coté plus que de l’autre.</p>
<p><img class="aligncenter size-medium wp-image-181" title="Balance" src="http://grozeille.files.wordpress.com/2009/05/272746539_1a85490513.jpg?w=300&#038;h=199" alt="Balance" width="300" height="199" /></p>
<p>Il existe divers façons de configurer le modèle (XML, Base de données) mais le plus important est de savoir à qui s’adresse cette configuration. En effet, j’ai travaillé sur un projet qui a subit un échec car le client final était incapable de configurer un fichier XML….<br />
Bien sûr, pour nous développeurs, cela nous semble évident avec des outils qui offrent la coloration syntaxique ou la complétion… mais pour le client, nous aurions du lui offrir une interface graphique agréable pour qu’il arrête de nous appeler tous les jours pour un changement de libellé…<br />
Paramétrer des structures de données est aisé, mais paramétrer un comportement l’est moins. Il existe plusieurs solutions : ça peut se résumer à des « true/false » pour activer/désactiver des étapes d’un workflow, ou ça peut aller jusqu’à utiliser un <a href="http://fr.wikipedia.org/wiki/Domain-specific_programming_language">DSL</a>. Sébastien a parlé de modéliser un langage, et a pris comme exemple <a href="http://msdn.microsoft.com/fr-fr/netframework/aa663328.aspx">WorkflowFundation</a>.</p>
<p style="text-align:center;"><a href="http://grozeille.files.wordpress.com/2009/05/adaptiveobjectmodeling2.png"><img class="size-full wp-image-182 aligncenter" title="UML Adaptive Behavior" src="http://grozeille.files.wordpress.com/2009/05/adaptiveobjectmodeling2.png?w=700&#038;h=369" alt="UML Adaptive Behavior" width="700" height="369" /></a></p>
<p>Pour conclure, de nombreuses personnes se demandaient de l’intérêt de coder un « méta-model » générique, car la plus part, je pense, sont des consultants qui effectuent des projets spécifiques à leur client. L’intérêt de ce type de démarche est bien sûr de revendre le même logiciel à divers clients voir de vendre de la prestation pour configurer le logiciel (si la configuration devient complexe, comme c’est le cas pour les <a href="http://en.wikipedia.org/wiki/Enterprise_resource_planning">ERP</a>). L’Adaptive Object Modeling s’adresse donc à des sociétés éditrices de logiciels qui visent un type de client.<br />
Pour terminer, je voudrai revenir sur la difficulté énoncé par Sébastien concernant la balance Spécifique-Générique : j’ai vu certains projets se terminé par un échec car le chef de projet voulait faire « trop » générique en prévision des futurs clients… sauf que cela donne un logiciel qui ne répond même pas au besoin du premier client et qu’il est très difficile d’adapter aux besoins de ce dernier à cause de son aspect trop générique.<br />
Je pense alors qu’il faut une approche « <a href="http://en.wikipedia.org/wiki/Top-down_and_bottom-up_design">bottom-up</a> », c&#8217;est-à-dire de réaliser du spécifique pour le premier client, et rendre des parties génériques si le besoin des autres clients est similaire. On reste alors agile : <a href="http://en.wikipedia.org/wiki/You_Ain't_Gonna_Need_It">YAGNI</a>, on ne fait que ce qu’on a besoin. Ce n’est que lorsqu’on a un nouveau besoin (d’un autre client) qu’on procède à du refactoring pour rendre des morceaux du logiciel génériques. Par contre, cela demande de faire un effort sur la modularité (il est plus facile de refactorer un modèle de 10 classes, qu’un modèle d’1 classe constituée de 30000 lignes de codes…).</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grozeille.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grozeille.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grozeille.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grozeille.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grozeille.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grozeille.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grozeille.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grozeille.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grozeille.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grozeille.wordpress.com/176/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&blog=173450&post=176&subd=grozeille&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://grozeille.com/2009/05/24/alt-net-adaptive-object-modeling/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fcf307a3a2899d162cabfd41241f17b9?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">GroZeiLLe</media:title>
		</media:content>

		<media:content url="http://grozeille.files.wordpress.com/2009/05/altnet.gif" medium="image">
			<media:title type="html">ALT.Net</media:title>
		</media:content>

		<media:content url="http://grozeille.files.wordpress.com/2009/05/2124291918_fa4c5df217.jpg?w=150" medium="image">
			<media:title type="html">Petits-fours</media:title>
		</media:content>

		<media:content url="http://grozeille.files.wordpress.com/2009/05/spaceball.png?w=150" medium="image">
			<media:title type="html">Smiley</media:title>
		</media:content>

		<media:content url="http://grozeille.files.wordpress.com/2009/05/adaptiveobjectmodeling011.png" medium="image">
			<media:title type="html">UML Adaptive Object Modeling</media:title>
		</media:content>

		<media:content url="http://grozeille.files.wordpress.com/2009/05/272746539_1a85490513.jpg?w=300" medium="image">
			<media:title type="html">Balance</media:title>
		</media:content>

		<media:content url="http://grozeille.files.wordpress.com/2009/05/adaptiveobjectmodeling2.png" medium="image">
			<media:title type="html">UML Adaptive Behavior</media:title>
		</media:content>
	</item>
		<item>
		<title>Jaxer</title>
		<link>http://grozeille.com/2009/04/29/jaxer/</link>
		<comments>http://grozeille.com/2009/04/29/jaxer/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 22:15:10 +0000</pubDate>
		<dc:creator>grozeille</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jaxer]]></category>
		<category><![CDATA[web2.0]]></category>

		<guid isPermaLink="false">http://grozeille.com/?p=141</guid>
		<description><![CDATA[Aaaaah, je me souviens du bon vieux temps ou je découvrais le développement Web, lors de mon premier stage d&#8217;étude, sur une application PHP&#8230;
J&#8217;avais déjà découvert les joies des incompatibilités des navigateurs: à l&#8217;époque, Netscape était le navigateur officiel, et je me battais pour qu&#8217;on utilise IE5&#8230;
Je m&#8217;étais amusé à copier/coller des petits bouts de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&blog=173450&post=141&subd=grozeille&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Aaaaah, je me souviens du bon vieux temps ou je découvrais le développement Web, lors de mon premier stage d&#8217;étude, sur une application PHP&#8230;<br />
J&#8217;avais déjà découvert les joies des incompatibilités des navigateurs: à l&#8217;époque, Netscape était le navigateur officiel, et je me battais pour qu&#8217;on utilise IE5&#8230;<br />
Je m&#8217;étais amusé à copier/coller des petits bouts de javascript à droite à gauche, sans trop comprendre ce qu&#8217;ils faisaient, afin d&#8217;avoir une interface plus user-friendly&#8230;<br />
J&#8217;étais en admiration sur des applets Java beaucoup plus ergonomiques que mes bouts de Javascripts&#8230;<br />
Et je bavais sur des sites entièrement Flash, magnifiques, et performants (quand c&#8217;était bien fait&#8230;)</p>
<p>Puis j&#8217;ai entendu parler de <a href="http://fr.wikipedia.org/wiki/HTML_dynamique">DHTML</a>: &#8220;la grosse blague&#8221;, ce sont les mots que j&#8217;ai sans doute prononcés quand j&#8217;ai su que ce n&#8217;était qu&#8217;un nom marketing pour le couple Html+Javascript.</p>
<p>Aujourd&#8217;hui on parle de <a href="http://fr.wikipedia.org/wiki/Web_2.0">Web 2.0</a> ou d&#8217;<a href="http://fr.wikipedia.org/wiki/Asynchronous_JavaScript_and_XML">Ajax</a>. On parle aussi d&#8217;<a href="http://www.adobe.com/fr/products/air/">Adobe Air</a>, ou de <a href="http://silverlight.net/">Silverlight</a> (on va éviter de parler de <a href="http://javafx.com/">JavaFX</a>). Finalement, pas de grosse révolution, mais plutôt une &#8220;évolution&#8221;.<br />
<span id="more-141"></span><br />
Pour ceux qui ne sont pas au courant, je développe en .Net depuis un certain temps, et en ASP.Net depuis 1 an.<br />
Comme ça a été conclu lors <a href="http://www.altnetfr.org/2009/03/15/altnet-fr-10-debat-mvc-compte-rendu-par-vincent-b/">d&#8217;une réunion ALT.Net</a>, les développeurs ASP.Net sont souvent issues du monde Winforms et convertis par la tendance actuelle.<br />
Cela donne des développeurs complètement ignorant du protocole HTTP, de l&#8217;HTML et du Javascript: &#8220;C&#8217;est du C# ou rien!&#8221;</p>
<p><img class="aligncenter size-medium wp-image-154" title="javascript for dummies" src="http://grozeille.files.wordpress.com/2009/04/javascript.jpg?w=238&#038;h=300" alt="javascript for dummies" width="238" height="300" /></p>
<p>Moi même je ne suis pas BON en Javascript, pourtant tout est la:</p>
<ul>
<li>Frameworks graphiques puissants et nombreux: <a href="http://extjs.com/">ExtJS</a>, <a href="http://www.dojotoolkit.org/">Dojo</a>, <a href="http://jquery.com/">JQuery</a>, etc.</li>
<li>Frameworks &#8220;de base&#8221; n&#8217;ayant rien à envier à .Net ou Java: <a href="http://www.jsunit.net/">JsUnit</a>, <a href="http://log4js.berlios.de/">log4js</a>, <a href="http://activerecordjs.org/">ActiveRecordJS</a>, etc.</li>
<li>Moteurs Javascript de plus en plus rapide et performant: <a href="http://code.google.com/p/v8/">v8 de Google</a> ou celui de Mozilla avec un GC.</li>
<li>Nombreux outils et IDE de plus en plus compatibles: débugage et complétion dans VisualStudio ou <a href="http://www.spket.com/ext-intellisense-visual-studio.html">à l&#8217;aide de pluggin</a>, <a href="http://getfirebug.com/">firebug</a>, <a href="http://developer.yahoo.com/yslow/">YSlow</a>, etc.</li>
</ul>
<p>Bref, avec du Javascript, il est possible de faire de bonnes applications Web aussi ergonomiques qu&#8217;une application Desktop.<br />
Et le Javascript pour le Desktop justement? Python a la vedette en tant que langage de développement d&#8217;application Linux/GTK (même si Mono le devance maintenant). Et pourquoi pas des applications GTK-Javascript avec <a href="http://live.gnome.org/Seed">Seed</a> (<a href="http://arstechnica.com/open-source/news/2009/01/javascript-gtk-bindings.ars">bon lien à ce sujet</a>)? On peut noter aussi la tentative de Mozilla avec <a href="http://prism.mozilla.com/">Prism</a>, ou Adobe Air proposant des applications <a href="http://www.adobe.com/fr/products/air/develop/ajax/">Desktop/Ajax</a>&#8230;</p>
<p>Mais la folie Javascript ne s&#8217;arrête pas là: pourquoi ne pas faire le <strong>Backend</strong>, côté serveur, en Javascript? Et bien messieurs, c&#8217;est maintenant possible!! Et ce serveur s&#8217;appelle <a href="http://www.aptana.com/jaxer">Jaxer</a> d&#8217;Aptana (dont j&#8217;ai parlé dans mon <a href="http://grozeille.com/2009/04/29/cloud-computing/">précédent billet</a>).</p>
<p>Jaxer est un serveur web (<a href="http://httpd.apache.org/">Apache</a>) avec un moteur de Javascript &#8220;server side&#8221; sous la forme d&#8217;un module, exactement comme pour du PHP ou du Python (ou encore du Perl). Je me permets de citer <a href="http://3liz.com/blog/rldhont/index.php/2008/02/05/115-jaxer-firefox-cote-serveur">un blog qui explique ça très bien</a>.<br />
En résumé: avec l&#8217;attribut &#8220;runat=server-proxy&#8221;, le code Javascript est appelable depuis le navigateur mais est exécuté sur le serveur.<br />
Petit exemple:</p>
<pre name="code" class="html">

&lt;script runat=&quot;server&quot;&gt;
  var newResultSet = Jaxer.DB.execute(&quot;SELECT * FROM myTable&quot;);
  var newPrice = newResultSet.rows[0].price;
&lt;/script&gt;
</pre>
<p>C&#8217;est aussi simple que cela. Certains diront &#8220;beurk: du HTML+Javascript+SQL dans le même source&#8230;&#8221;, mais cet exemple illustre bien ce qui est possible de faire. C&#8217;est maintenant à vous de séparer les librairies &#8220;.js&#8221; des pages HTML, et utiliser des procédures stockées ou un ORM Javascript (comme ActiveRecordJS).<br />
Dans notre cas, le code n&#8217;est visible que du coté serveur, si maintenant on souhaite appeler une fonction sur le serveur sur un événement coté client, voici le principe:</p>
<pre name="code" class="html">

&lt;script runat=&quot;server-proxy&quot;&gt;
  function myServerSideFunction() {
    // ...
  }
&lt;/script&gt;
&lt;input onclick=&quot;myServerSideFunction();&quot; type=&quot;button&quot; /&gt;
</pre>
<p>Dans ce cas, l&#8217;Ajax est effectué de manière automatique et transparente: une méthode &#8220;proxy&#8221; sera visible du coté client pour appeler le code du coté serveur.</p>
<p>C&#8217;est bien beau, mais c&#8217;est quoi l&#8217;avantage?<br />
Après tout, pourquoi apprendre 4 langages ? En générale, on a ça:</p>
<ul>
<li>HTML: interface statique</li>
<li>Javascript: traitement dynamique coté client</li>
<li>Java/.Net/Python/PHP/Ruby: traitement dynamique coté serveur</li>
<li>SQL : traitement des données</li>
</ul>
<p>Aptana propose ceci:</p>
<ul>
<li>HTML: encore et toujours <img src='http://s.wordpress.com/wp-includes/images/smilies/face-wink.png' alt=';)' class='wp-smiley' /> </li>
<li>Javascript: traitement dynamique coté client</li>
<li>Javascript encore: traitement coté serveur</li>
<li>pas de SQL à l&#8217;aide d&#8217;un ORM Javascript : ActiveRecordJS</li>
</ul>
<p>Donc l&#8217;apprentissage de 2 langages suffit!!</p>
<p>Je sais que ça ne va pas plaire aux nombreux développeurs .Net qui adorent le C# et qui connaissent mal l&#8217;HTML+Javascript&#8230; ces derniers préféreront Silverlight, mais c&#8217;est un autre débat <img src='http://s.wordpress.com/wp-includes/images/smilies/face-smile.png' alt=':)' class='wp-smiley' /><br />
Pour les autres, Jaxer est rapidement testable à l&#8217;aide de la solution <a href="http://www.aptana.com/cloud">Cloud d&#8217;Aptana</a>, cela permet d&#8217;éviter d&#8217;installer et cofigurer un Apache.</p>
 Tagged: ajax, javascript, jaxer, web2.0 <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grozeille.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grozeille.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grozeille.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grozeille.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grozeille.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grozeille.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grozeille.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grozeille.wordpress.com/141/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grozeille.wordpress.com/141/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grozeille.wordpress.com/141/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&blog=173450&post=141&subd=grozeille&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://grozeille.com/2009/04/29/jaxer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fcf307a3a2899d162cabfd41241f17b9?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">GroZeiLLe</media:title>
		</media:content>

		<media:content url="http://grozeille.files.wordpress.com/2009/04/javascript.jpg?w=238" medium="image">
			<media:title type="html">javascript for dummies</media:title>
		</media:content>
	</item>
		<item>
		<title>Cloud computing</title>
		<link>http://grozeille.com/2009/04/29/cloud-computing/</link>
		<comments>http://grozeille.com/2009/04/29/cloud-computing/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 21:14:02 +0000</pubDate>
		<dc:creator>grozeille</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[aptana]]></category>
		<category><![CDATA[azure]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[eclipse]]></category>

		<guid isPermaLink="false">http://grozeille.com/?p=134</guid>
		<description><![CDATA[OK, je ne suis pas original, je parle d&#8217;un sujet &#8220;dans le vent&#8221; : le Cloud Computing&#8230;
Cloud Computing: introduction avec Azure et Amazon

Grâce à la présentation chez Fastconnect par Romain, j&#8217;ai pu découvrir les joies de Azure. C&#8217;est la solution Cloud de Microsoft qui est bien sûr très orientée .Net + VisualStudio.
On parle ici de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&blog=173450&post=134&subd=grozeille&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>OK, je ne suis pas original, je parle d&#8217;un sujet &#8220;dans le vent&#8221; : le <a href="http://en.wikipedia.org/wiki/Cloud_computing">Cloud Computing</a>&#8230;</p>
<p><strong>Cloud Computing: introduction avec Azure et Amazon<br />
</strong></p>
<p>Grâce à la présentation chez <a href="http://www.fastconnect.fr/">Fastconnect</a> par <a href="http://codingly.com/">Romain</a>, j&#8217;ai pu découvrir les joies de <a href="http://www.microsoft.com/azure/default.mspx">Azure</a>. C&#8217;est la solution Cloud de Microsoft qui est bien sûr très orientée .Net + VisualStudio.</p>
<p>On parle ici de &#8220;<a href="http://en.wikipedia.org/wiki/Platform_as_a_service">Plateform as a Service</a>&#8221; puisque Azure nous offre de quoi héberger nos applications (web ou service) à l&#8217;aide d&#8217;une architecture &#8220;cloud&#8221;.<br />
On développe des applications qui effectuent des calcules distribués sur X machines, ou on héberge X sites web ASP.Net dont la charge est répartie entre eux.<br />
En plus d&#8217;offrir une architecture &#8220;scalable&#8221;, on a droit à certains services &#8220;bas niveau&#8221; comme le service de stockage de données binaires (full REST), une queue ou un stockage &#8220;à la <a href="http://en.wikipedia.org/wiki/BigTable">BigTable</a>&#8220;. On peut ensuite bénéficier de services plus &#8220;haut niveau&#8221; comme &#8220;<a href="http://en.wikipedia.org/wiki/Live_Search">Live Search</a>&#8221; ou &#8220;<a href="http://en.wikipedia.org/wiki/Windows_Live_Calendar">Live Calendar</a>&#8220;.</p>
<p>Par comparaison, <a href="http://aws.amazon.com/ec2/">Amazon avec EC2</a> propose un service &#8220;Cloud&#8221; orienté &#8220;Hardware as a Service&#8221; car on loue ici à des machines virtuelles, vierges ou avec des choses pré-installé (comme Linux Apache Msql PHP). La puissance de ces machines est aussi &#8220;scalable&#8221; à la demande, et on ne paie que ce que l&#8217;on utilise.<br />
A la différence d&#8217;Azure, où la partie &#8220;Hardware&#8221; est complètement masquée (IIS7, WindowsServer2008, etc.). Azure offre une interface web d&#8217;administration pour surveiller l&#8217;utilisation du CPU ou de la mémoire, et on peut rapidement changer le nombre d&#8217;instances d&#8217;un site web à la demande.<br />
Ceci dit, Amazon offre aussi des couches techniques comme le service de <a href="http://aws.amazon.com/s3/">stockage Amazon S3</a>.</p>
<p>Bref, le Cloud ce n&#8217;est pas qu&#8217;un hébergeur de site web ou une <a href="http://www.dedibox.fr/">Dedibox</a>, c&#8217;est surtout le fait de bénéficier des serveurs des gros mastodontes tel qu&#8217;Amazon ou Microsoft pour louer la puissance dont on a besoin, et profiter d&#8217;applications et de services pré-installés utilisables tout de suite. C&#8217;est aussi la possibilité d&#8217;utiliser des services techniques (Database, etc.) ou haut niveaux (Map, Calendar, etc.).</p>
<p><strong>Nouvelle solution de Cloud avec Aptana</strong></p>
<p>Azure offre de quoi développer un site ASP.Net Scalable rapidement, mais je vais faire le chieur en voulant développer une application Rails sous Eclipse!</p>
<p>C&#8217;est la que j&#8217;ai découvert <a href="http://www.aptana.com/cloud">Aptana Cloud</a>.<br />
<span id="more-134"></span><br />
La solution d&#8217;Aptana est la suivante :</p>
<ul>
<li>Comme Azure, Aptana masque la complexité et l&#8217;installation des machines virtuelles. On a donc du &#8220;Plateform as a Service&#8221;. On a droit à une machine pré-installée avec Apache, MySQL, SFTP, SSH, SVN, etc.</li>
<li>Comme Azure, Aptana offre un IDE (Eclipse) avec un grand nombre de plugins pour développer, déployer et administrer le Cloud rapidement et facilement.</li>
<li>Comme Azure, Aptana offre une interface Web pour gérer sa machine, la puissance consommée et ce que ça nous coûte en fin de compte. Aptana fournit aussi la possibilité d&#8217;héberger un site en &#8220;staging mode&#8221;, puis quand on est sûr de soi, on a la possibilité de le basculer en &#8220;public mode&#8221;.<br />
<img class="aligncenter size-full wp-image-149" title="Staging" src="http://grozeille.files.wordpress.com/2009/04/image-172.png?w=168&#038;h=92" alt="Staging" width="168" height="92" /></li>
<li>Comme Amazon, la puissance et les prix sont scalables: on ne paye que ce dont on a besoin et on peut changer la puissance à la volé (le site indique $20 par mois, c&#8217;est parce qu&#8217;une machine de 256mo de RAM avec 5GB de disque coûte $0,027/heure)</li>
</ul>
<p><img class="aligncenter size-medium wp-image-146" title="Pricing" src="http://grozeille.files.wordpress.com/2009/04/image-131.png?w=300&#038;h=282" alt="Pricing" width="300" height="282" /></p>
<p>Les points négatifs :</p>
<ul>
<li>Pas d&#8217;architecture applicative &#8220;scalable&#8221;: contrairement à Azure qui permet de changer en 3 clicks le nombre de processus ou le nombre d&#8217;instances d&#8217;un site. On dépend ici de la scalabilité de la machine virtuelle. Aptana est en partenariat avec <a href="http://www.joyent.com/">Joyent</a> qui héberge ces machines.</li>
<li>Pas de services &#8220;haut niveau&#8221; comme ceux de Google (Google Maps, Google search, etc.) ou de Microsoft (Live Calendar, etc.). Mais rien ne nous empêche de les utiliser&#8230;</li>
<li>Services bas niveau limités: MySQL est OK, mais si l&#8217;on a besoin d&#8217;un stockage performant et distribué, on utilisera en plus les services d&#8217;Amazon (S3) ou Google (BigTable).</li>
</ul>
<p><img class="aligncenter size-medium wp-image-145" title="Services" src="http://grozeille.files.wordpress.com/2009/04/image-16.png?w=300&#038;h=276" alt="Services" width="300" height="276" /></p>
<p>Voici pour moi les PLUS d&#8217;Aptana:</p>
<ul>
<li>Plugins Eclipse de qualité avec un éditeur HTML/Javascript bien meilleur que celui par défaut (de <a href="http://www.eclipse.org/webtools/">WTP</a>)</li>
<li>Permet de faire des applications HTML classiques, PHP, Rails, Java, mais aussi Python, Adobe AIR, iPhone, Nokia WRT.</li>
<li>En quelques clicks dans le Wizard de création du projet, permet de choisir des frameworks Ajax parmi les plus connus (<a href="http://jquery.com/">jQuery</a>, <a href="http://www.dojotoolkit.org/">Dojo</a>, <a href="http://extjs.com/">ExtJS</a>, et j&#8217;en passe).</li>
<li>Fournit une documentation riche à l&#8217;aide de vidéos sur <a href="http://tv.aptana.com/">Aptana TV</a>.</li>
<li>Offre un nouveau type de développement full HTML+Javascript : <a href="http://aptana.com/jaxer">Jaxer</a>.</li>
</ul>
<p>En résumé, Aptana offre mieux que de simples machines virtuelles :</p>
<ul>
<li>un IDE puissant pour développer différents types d&#8217;applications</li>
<li>des machines virtuelles scalables pré-installées pour déployer dessus</li>
<li>une interface claire pour les administrer (statistiques, etc.)</li>
</ul>
<p>Le Cloud donne des idées, et Aptana est une solution qui m&#8217;a l&#8217;air bien sérieuse. Je me suis laissé séduire grâce à l&#8217;offre d&#8217;essai gratuite, et je pense qu&#8217;à l&#8217;avenir j&#8217;utiliserai ce type de solutions si je veux développer et héberger un site Web.</p>
<p><img class="aligncenter size-medium wp-image-150" title="Eclipse" src="http://grozeille.files.wordpress.com/2009/04/image-12.png?w=300&#038;h=228" alt="Eclipse" width="300" height="228" /></p>
<p>J&#8217;ai cité Jaxer dans les PLUS de la solution d&#8217;Aptana, mais j&#8217;en parlerai dans <a href="http://grozeille.com/2009/04/29/jaxer/">mon prochain billet</a> <img src='http://s.wordpress.com/wp-includes/images/smilies/face-wink.png' alt=';)' class='wp-smiley' /> </p>
 Tagged: aptana, azure, cloud, eclipse <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grozeille.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grozeille.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grozeille.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grozeille.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grozeille.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grozeille.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grozeille.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grozeille.wordpress.com/134/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grozeille.wordpress.com/134/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grozeille.wordpress.com/134/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&blog=173450&post=134&subd=grozeille&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://grozeille.com/2009/04/29/cloud-computing/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fcf307a3a2899d162cabfd41241f17b9?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">GroZeiLLe</media:title>
		</media:content>

		<media:content url="http://grozeille.files.wordpress.com/2009/04/image-172.png" medium="image">
			<media:title type="html">Staging</media:title>
		</media:content>

		<media:content url="http://grozeille.files.wordpress.com/2009/04/image-131.png?w=300" medium="image">
			<media:title type="html">Pricing</media:title>
		</media:content>

		<media:content url="http://grozeille.files.wordpress.com/2009/04/image-16.png?w=300" medium="image">
			<media:title type="html">Services</media:title>
		</media:content>

		<media:content url="http://grozeille.files.wordpress.com/2009/04/image-12.png?w=300" medium="image">
			<media:title type="html">Eclipse</media:title>
		</media:content>
	</item>
		<item>
		<title>GUICE : un framework de DI pour Java</title>
		<link>http://grozeille.com/2008/12/27/guice-un-framework-de-di-pour-java/</link>
		<comments>http://grozeille.com/2008/12/27/guice-un-framework-de-di-pour-java/#comments</comments>
		<pubDate>Sat, 27 Dec 2008 23:39:16 +0000</pubDate>
		<dc:creator>grozeille</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[IOC]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">http://grozeille.com/?p=130</guid>
		<description><![CDATA[Je pense que la Dependency Injection est une valeur fondamentale à l&#8217;écriture d&#8217;un programme, et je l&#8217;utilise tous les jours.
Je suis un adorateur (voir expert) de Spring/Spring.Net, et j&#8217;affectionne l&#8217;écriture de la  structure du programme en XML.
Mais cette technique est très largement contestée :

nécessite un éditeur XML &#8220;intelligent&#8221; (ce qui est le cas grâce [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&blog=173450&post=130&subd=grozeille&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Je pense que la <a href="http://en.wikipedia.org/wiki/Dependency_injection">Dependency Injection</a> est une valeur fondamentale à l&#8217;écriture d&#8217;un programme, et je l&#8217;utilise tous les jours.<br />
Je suis un adorateur (voir expert) de <a href="http://www.springsource.org/about">Spring</a>/<a href="http://www.springframework.net/">Spring.Net</a>, et j&#8217;affectionne l&#8217;écriture de la  structure du programme en XML.</p>
<p>Mais cette technique est très largement contestée :</p>
<ul>
<li>nécessite un éditeur XML &#8220;intelligent&#8221; (ce qui est le cas grâce à  <a href="http://springide.org/blog/">SpringIDE</a>) pour la complétion de la structure mais aussi des types.</li>
<li>interprétation au Runtime, et donc erreurs potentielles découvertes  qu&#8217;au dernier moment.</li>
<li>verbeux</li>
<li>mauvaises performance (lecture du XML&#8230;)</li>
</ul>
<p>Ça a aussi ses avantages, c&#8217;est pour ça que je reste adorateur de  Spring, mais ce n&#8217;est pas le sujet&#8230;</p>
<p>J&#8217;ai déjà souvent eu ce débat avec <a href="http://codingly.com/">Romain</a> dans le monde .Net (voir  <a class="moz-txt-link-freetext" href="http://ninject.org/">http://ninject.org</a>).<br />
Je connais très mal les alternatives à Spring dans le monde Java, mais  je connais celle de Google : <a href="http://code.google.com/p/google-guice/">Guice</a>.</p>
<p>Voici un <a href="http://www.ibm.com/developerworks/library/j-guice.html?ca=dgr-jw22Guice&amp;S_tact=105AGX59&amp;S_CMP=GRsitejw22">tuto/introduction très convaincante</a>. <a class="moz-txt-link-freetext" href="http://www.ibm.com/developerworks/library/j-guice.html?ca=dgr-jw22Guice&amp;S_tact=105AGX59&amp;S_CMP=GRsitejw22"></a></p>
<p>Pour ceux qui ne connaissent pas Ninject ou Guice, voici un peu le principe :<br />
Au lieu de rédiger un XML, on utilise massivement les annotations  (attributs en .Net) pour spécifier les injections. Ceci est aussi  possible en Spring (technique dite <code>Autowire</code>) mais l&#8217;utilisation du XML reste nécessaire  pour personnaliser plus finement les dépendances entre instances.<br />
Dans le cas de Guice, au lieu de rédiger un XML, on créer une classe <code>Module</code> qui réalise le mapping entre une interface et la classe  concrète à instancier/injecter.<br />
On peut spécifier bien plus de chose que cela, mais je vous laisse  lire l&#8217;article pour découvrir par vous même.</p>
<p>Pour ceux qui veulent suivre le débat &#8220;Spring vs Guice&#8221; ou &#8220;XML vs Code&#8221;, voici le point de vue de <a href="http://code.google.com/p/google-guice/wiki/SpringComparison">la documentation officielle de Guice</a>.</p>
 Tagged: .Net, IOC, java, spring <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grozeille.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grozeille.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grozeille.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grozeille.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grozeille.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grozeille.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grozeille.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grozeille.wordpress.com/130/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grozeille.wordpress.com/130/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grozeille.wordpress.com/130/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&blog=173450&post=130&subd=grozeille&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://grozeille.com/2008/12/27/guice-un-framework-de-di-pour-java/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fcf307a3a2899d162cabfd41241f17b9?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">GroZeiLLe</media:title>
		</media:content>
	</item>
		<item>
		<title>Encore un nouveau langage : FAN</title>
		<link>http://grozeille.com/2008/12/27/encore-un-nouveau-langage-fan/</link>
		<comments>http://grozeille.com/2008/12/27/encore-un-nouveau-langage-fan/#comments</comments>
		<pubDate>Sat, 27 Dec 2008 22:58:24 +0000</pubDate>
		<dc:creator>grozeille</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://grozeille.com/?p=120</guid>
		<description><![CDATA[En lisant un article d&#8217;introduction du langage FAN je trouve intéressant que ce dernier soit compatible .NET et Java.
En ce moment, .Net se voit enrichir de nombreux langages, aussi bien statiques (F# par exemple) que dynamiques (Iron Python). Les langages &#8220;standards&#8221; étant C#, VB.Net et C++/CLI.
Quand on développe sur la JVM, le langage &#8220;standard&#8221; reste [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&blog=173450&post=120&subd=grozeille&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>En lisant un article d&#8217;introduction du <a href="http://www.fandev.org/">langage FAN</a> je trouve intéressant que ce dernier soit compatible .NET et Java.<br />
En ce moment, .Net se voit enrichir de nombreux langages, aussi bien statiques (<a href="http://www.programmez.com/actualites.php?id_actu=3985">F#</a> par exemple) que dynamiques (<a href="http://www.codeplex.com/IronPythonStudio">Iron Python</a>). Les langages &#8220;standards&#8221; étant C#, VB.Net et C++/CLI.<br />
Quand on développe sur la JVM, le langage &#8220;standard&#8221; reste Java. Mais cela ne veut pas dire qu&#8217;on a pas le choix : <a href="http://www.scala-lang.org/">Scala</a>, <a href="http://www.jython.org/Project/">Jython</a>, <a href="http://groovy.codehaus.org/">Groovy</a>&#8230;</p>
<p><img class="alignnone size-full wp-image-121" title="aa496123net_logoen-usmsdn10" src="http://grozeille.files.wordpress.com/2008/12/aa496123net_logoen-usmsdn10.gif?w=117&#038;h=111" alt="aa496123net_logoen-usmsdn10" width="117" height="111" /> + <img class="alignnone size-medium wp-image-122" title="java_logo" src="http://grozeille.files.wordpress.com/2008/12/java_logo.gif?w=68&#038;h=109" alt="java_logo" width="68" height="109" /> = FAN ?</p>
<p><span id="more-120"></span>Mais le petit nouveau, FAN, cible aussi bien la JVM que la CLR.Net. Certes, les 2 mondes possèdent des concepts similaires, mais aussi très différents et qui risque de ne pas être possible d&#8217;exposé dans ce langage.<br />
Ceci dit, la plupart des concepts sont haut-niveaux, et peuvent donc générer un bytecode en utilisant des concepts plus simples et bas niveau, comme un <code>foreach</code> peut être écrit sous la forme d&#8217;un <code>for</code>&#8230;</p>
<p>En l&#8217;occurrence, FAN introduit un concept déjà existant en C# mais absent en Java : les Nullables.<br />
C&#8217;est l&#8217;objet de <a href="http://www.jroller.com/scolebourne/date/20081023">cet article</a>.</p>
<p>De nombreuses autres sucreries du langages C# sont introduites dans le JVM à l&#8217;aide de FAN comme les Closures. Je vous laisse découvrir tout ça sur <a href="http://www.fandev.org/doc/docLang/index.html">la documentation officielle</a>.<br />
Je vous invites aussi à lire <a href="http://www.jroller.com/scolebourne/date/20080612">cet autre article d&#8217;introduction</a> qui expose beaucoup d&#8217;avantages.</p>
<p>Pour ma part, j&#8217;adore :</p>
<ul>
<li> gestion des <code>nullable</code></li>
<li>valeur par défaut des arguments des méthodes (ce qui évite plein de surcharge inutile)</li>
<li><code>property</code> implicite à la C#, pour toujours moins de code à écrire</li>
<li><code>closure</code> en Java</li>
<li>pas de <code>;</code> superflux en fin de ligne</li>
<li>l&#8217;équivalent du mot clé <code>dynamic</code> du C#4 avec <code>object-&gt;variable</code> !</li>
<li>mot clé <code>once</code> qui évite de gérer manuellement le caching du résultat (genre : <code>if(truc == null) truc = new Truc(); return truc;")</code></li>
<li>l&#8217;écriture des listes/maps et l&#8217;écriture des instanciations &#8220;à la JSON&#8221;</li>
</ul>
<p>A noter aussi une gestion de &#8220;package&#8221; propre au langage, et qui n&#8217;expose pas toute l&#8217;API Java (JDK). Je n&#8217;ai pas trouvé d&#8217;infos concernant .Net à ce sujet, mais ce langage se veut vraiment comme une union des 2 mondes.</p>
<p>En attendant un pluggin Eclipse ou un addin VisualStudio Shell, ils livrent un mini IDE fort sympathique.</p>
<p><img class="alignnone size-medium wp-image-128" title="flux" src="http://grozeille.files.wordpress.com/2008/12/flux.png?w=300&#038;h=215" alt="flux" width="300" height="215" /><img src="/DOCUME~1/mathias/LOCALS~1/Temp/moz-screenshot-1.jpg" alt="" /></p>
<p>Et vous? Qu&#8217;en pensez-vous?</p>
 Tagged: .Net, java <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grozeille.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grozeille.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grozeille.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grozeille.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grozeille.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grozeille.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grozeille.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grozeille.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grozeille.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grozeille.wordpress.com/120/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&blog=173450&post=120&subd=grozeille&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://grozeille.com/2008/12/27/encore-un-nouveau-langage-fan/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fcf307a3a2899d162cabfd41241f17b9?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">GroZeiLLe</media:title>
		</media:content>

		<media:content url="http://grozeille.files.wordpress.com/2008/12/aa496123net_logoen-usmsdn10.gif" medium="image">
			<media:title type="html">aa496123net_logoen-usmsdn10</media:title>
		</media:content>

		<media:content url="http://grozeille.files.wordpress.com/2008/12/java_logo.gif?w=188" medium="image">
			<media:title type="html">java_logo</media:title>
		</media:content>

		<media:content url="http://grozeille.files.wordpress.com/2008/12/flux.png?w=300" medium="image">
			<media:title type="html">flux</media:title>
		</media:content>

		<media:content url="/DOCUME~1/mathias/LOCALS~1/Temp/moz-screenshot-1.jpg" medium="image" />
	</item>
		<item>
		<title>Quel langage pour l’avenir : C#4 ou Oxygene (Delphi)</title>
		<link>http://grozeille.com/2008/11/29/quel-langage-pour-lavenir-c4-ou-oxygene-delphi/</link>
		<comments>http://grozeille.com/2008/11/29/quel-langage-pour-lavenir-c4-ou-oxygene-delphi/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 13:24:50 +0000</pubDate>
		<dc:creator>grozeille</dc:creator>
				<category><![CDATA[Blabla]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[delphi]]></category>
		<category><![CDATA[oxygene]]></category>

		<guid isPermaLink="false">http://grozeille.wordpress.com/?p=106</guid>
		<description><![CDATA[Suite au post de Romain sur l&#8217;avenir du langage C#, je voulais non seulement répondre, mais en profiter pour parler brièvement d&#8217;un autre langage .Net : Oxygene.
C#4 ?
Romain a trouvé une citation un peu abusive mais qui m&#8217;est pourtant tout de suite venu à l&#8217;esprit concernant C#4 :
The dynamic keyword is going be abused so [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&blog=173450&post=106&subd=grozeille&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Suite au post de Romain sur <a href="http://codingly.com/2008/11/15/le-futur-de-c/">l&#8217;avenir du langage C#</a>, je voulais non seulement répondre, mais en profiter pour parler brièvement d&#8217;un autre langage .Net : Oxygene.</p>
<h3>C#4 ?</h3>
<p>Romain a trouvé une citation un peu abusive mais qui m&#8217;est pourtant tout de suite venu à l&#8217;esprit concernant C#4 :</p>
<blockquote><p>The dynamic keyword is going be abused so much… C# is on its way to becoming PHP.</p></blockquote>
<p>Pour la petite histoire, je viens de passer 2 jours à coder du Javascript&#8230; coder?? Débuguer surtout!<br />
Je ne sais pas si suis allergique aux langages dynamiques, mais ça me frustre au plus au point de ne pas savoir quel sont les membres que possède un objet, et de devoir le vérifier au <em>Runtime</em>&#8230;<br />
J&#8217;ai passé 2h car j&#8217;ai fait une faute de frappe sur le nom d&#8217;un membre, ce qui ne plante pas, mais comme cela créer dynamiquement un nouveau membre avec ce nouveau nom, j&#8217;ai passé beaucoup de temps à comprendre pourquoi sa valeur était &#8220;null&#8221;.</p>
<p>C&#8217;est pour ça que les aspects &#8220;dynamiques&#8221; me font peur pour la maintenance des futures programmes C#4.<br />
Ceci dit, le mot clé &#8220;var&#8221; existe déjà en C#3, et je n&#8217;ai pas vu quelqu&#8217;un en abuser (<em>d&#8217;ailleurs, est-ce que la nouvelle version de Resharper suggère toujours de remplacer les types par des var ??!!</em>).<br />
Toujours pour diluer mes propos, il est vrai que dans la réalité on a besoin d&#8217;utiliser différents langages pour différents besoin, alors pourquoi ne pas tout réunir en un seul&#8230;<br />
Mais j&#8217;aimerai éviter ça :</p>
<p><a href="http://grozeille.files.wordpress.com/2008/11/photo-4.jpg"><img class="size-medium wp-image-108 alignnone" title="Pétage de cable" src="http://grozeille.files.wordpress.com/2008/11/photo-4.jpg?w=171&#038;h=198" alt="Pétage de cable" width="171" height="198" /></a></p>
<p>Parfois je me dit aussi que &#8220;<em>C# is on its way to becoming C++</em>&#8220;. Je n&#8217;ai pas beaucoup d&#8217;expérience en C++, et de ce fait j&#8217;ai parfois du mal à comprendre certains codes.<br />
Mais j&#8217;ai surtout l&#8217;impression que les possibilités du langage sont tellement nombreuses, qu&#8217;on a pas 2 codes source C++ &#8220;dans la même prose&#8221;, ce qui devient vite difficile à lire. Pouvoir faire 1 chose de 10 manières différentes, n&#8217;est en mon sens pas un bon truc.</p>
<p>Mais en pratique, les nouvelles fonctionnalités de C# ne sont utilisées que par une &#8220;élite&#8221; qui a un besoin très précis. Dans mon travail actuel, les gens ne savent pas encore faire du Linq, et j&#8217;ai l&#8217;impression que je suis le seul a avoir VRAIMENT migrer sur C#3. Donc, avant que quelqu&#8217;un découvre les nouveautés de C#4 et en abuse&#8230;.</p>
<p>Ah, si, il y en a 1&#8230; et c&#8217;est le genre de personne à faire une chose d&#8217;une certaine façon &#8220;juste parce que c&#8217;est possible&#8221;, si vous voyez ce que  je veux dire&#8230; et là, ça devient vraiment dangereux, et on fini par avoir du code incompréhensible car il a détourné une fonctionnalité de son but initial.</p>
<p>Je dois être vieux jeux, mais je préfère parfois la méthode &#8220;classique et lisible&#8221; même si elle est plus verbeuse. Pourtant, je me laisse séduire, et je deviens vite fan des méthodes d&#8217;extension et des expressions lambda. C&#8217;est comme si mes 2 personnalités entraient en conflit quand je me dit :</p>
<pre>
<pre name="code" class="csharp">

return toto??tata;
// ou
return toto!=null?toto:tata;
// ou
if(toto != null)
return toto;
else
return tata;
</pre>
</pre>
<p>Il est clair que je préfère la première solution, mais on m&#8217;a défait fait la remarque :</p>
<blockquote><p>euh, tu peux l&#8217;écrire avec le &#8220;if&#8221;, je trouve ça plus lisible.</p></blockquote>
<p>Et oui, il faut aussi s&#8217;adapter au niveau de lecture de l&#8217;équipe.</p>
<p>Mais là, je ne parle que du langage C#, pas des possibilité de la VM ou du Framework. S&#8217;il est possible d&#8217;interagir entre .Net et Javascript, alors je suis aux anges, mais il existe sans doute d&#8217;autres moyens &#8220;peut être plus contraignant&#8221; que d&#8217;ajouter de la dynamicité dans le langage C#. (On génère bien des &#8220;stub&#8221; pour communiquer en COM !)</p>
<p>Mais au finale, je me laisse prendre au jeux, et finalement je suis fan des expressions lamdba, Linq, les méthodes d&#8217;extensions, juste parce que ça s&#8217;écrit plus rapidement et que je suis fainéant.</p>
<h3>Oxygene ?</h3>
<p>Parce que je suis bavard, je voulais en profiter pour parler non pas de C#, mais de <a href="http://en.wikipedia.org/wiki/Chrome_programming_language">Oxygene</a>.</p>
<p><a href="http://grozeille.files.wordpress.com/2008/11/delphiprismscreenshot.png"><img class="alignnone size-medium wp-image-115" title="delphiprismscreenshot" src="http://grozeille.files.wordpress.com/2008/11/delphiprismscreenshot.png?w=300&#038;h=217" alt="delphiprismscreenshot" width="300" height="217" /></a></p>
<p>Un peu d&#8217;histoire : le créateur de <a href="http://fr.wikipedia.org/wiki/Delphi_(langage)">Delphi</a> a aussi été le créateur de C# : <a href="http://en.wikipedia.org/wiki/Anders_Hejlsberg">Anders Hejlsberg<br />
</a>Petit lien car ça ne fait pas de mal : Anders qui parle du <a href="http://channel9.msdn.com/pdc2008/TL16/">future de C#</a> (je sais, tout le monde l&#8217;a déjà vu).<a href="http://en.wikipedia.org/wiki/Anders_Hejlsberg"><br />
</a></p>
<p>J&#8217;ai commencer à coder en Delphi au Lycée <em>(je ne compte pas les années Basic sous AsmstradCPC6128 <img src='http://s.wordpress.com/wp-includes/images/smilies/face-wink.png' alt=';)' class='wp-smiley' /> )</em>.<br />
Delphi était magique à l&#8217;époque : langage <a href="http://en.wikipedia.org/wiki/Object_Pascal">Pascal Objet</a>, IDE avec un puissant Designer pour application Windows, framework riche&#8230;</p>
<p>Puis le monde a évolué : Anders Hejlsberg a quitté Borland pour aller chez Microsoft.<br />
A l&#8217;époque, Microsoft a voulu faire leur propre &#8220;Java&#8221; :<a href="http://en.wikipedia.org/wiki/Visual_J%2B%2B"> J++</a>.<br />
Anders a commencer par travailler la dessus, mais Microsoft est entré en conflit avec Sun concernant ce J++, et c&#8217;est comme ça que .Net naquis.<br />
Anders inventa alors C# pour l&#8217;occasion, et J++ fut porté sous .Net sous le nom de J#.</p>
<p>Les années noirs pour Borland ont commencé, les entreprises se tournant vers Microsoft et .Net.<br />
Mais je suis resté à coder en Delphi 7 dans mon ancienne société, alors que .Net en était déjà à sa V2. Période de ma vie (en tant que codeur) très frustrante: pas de &#8220;foreach&#8221;, pas de &#8220;generics&#8221;, programmation par interface difficile, etc.</p>
<p>Pour Borland, ce fut de pire en pire : ils ont fini par migrer Delphi en .Net, et ont alors inclue le SDK de Microsoft .Net dans leur IDE&#8230; comme si Delphi en tant que langage était mort, et que &#8220;Delphi 2008&#8243; ne servait surtout qu&#8217;à développer en C#. Sans compter les frameworks tel que VCL.Net en conflit avec ceux de .Net comme Winforms.</p>
<p>Je n&#8217;ai pas travaillé avec Delphi 2008, mais je l&#8217;ai un peu testé. Malgré de gros problème de performance, cet IDE était déjà 1000 fois mieux que VisualStudio : refactoring poussé, historique &#8220;à la svn&#8221; à chaque sauvegarde/innactivité d&#8217;un source, Designer plus sympa, etc.</p>
<p>Mais finalement, Borland a laissé son IDE à Codegear et la mort de Delphi semblait proche. C&#8217;est pour cela que mon ancienne société a choisi de passer de Delphi7 à VisualStudio/C#.</p>
<p>Puis, récemment en surfant, j&#8217;ai découvert Oxygene.</p>
<p>Et je me suis dit : &#8220;haha, la résurrection de Delphi?&#8221;<br />
Ce langage est dérivé de Delphi (comme une nouvelle version en quelque sorte), possède toutes (?) les fonctionnalités du langage C#3 comme Linq, etc.<br />
Mais il ajoute aussi son lot de nouveauté que j&#8217;adore :</p>
<ul>
<li>éviter les tests de nullité inutile :</li>
</ul>
<pre>
<pre name="code" class="csharp">

if(truc.parent != null &amp;&amp; truc.parent.parent != null)
toto = truc.parent.parent;
// devient
toto = truc:parent:parent;
</pre>
</pre>
<ul>
<li>ne pas choisir entre un &#8220;for&#8221; et un &#8220;foreach&#8221; car on a besoin d&#8217;un compteur</li>
</ul>
<p>Combien de fois ais-je du ajouter un compteur dans un foreach (et risqué d&#8217;oublier le ++) et au final me résigner à utiliser le bon vieux &#8220;for&#8221;. En Oxygene, le foreach peut gérer l&#8217;index :</p>
<pre>
<pre name="code" class="csharp">

for each u in Users index i do begin
// et on se sert de i
</pre>
</pre>
<p>Maintenant, Oxygene fait du buzz sur le net&#8230; enfin surtout &#8220;<a href="http://www.remobjects.com/oxygene.aspx">Delphi Prism</a>&#8220;.</p>
<p>Finalement, l&#8217;IDE de Codegear est abandonné, et Delphi Prism s&#8217;intègre à VisualStudio (utilisé comme une application Eclipse RCP).<br />
On retrouve le langage Oxygene, mais aussi un certains nombre de framework pour pouvoir faire des applications multi-plateform à l&#8217;aide de Mono.<br />
Et pour faire plaisir aux ex-Delphi-istes, le package inclue une <a href="http://www.remobjects.com/hydra.aspx">API d&#8217;interoperabilité</a> entre .Net et les applications pure Delphi Win32.<br />
Pour plus d&#8217;infos : <a href="http://www.delphi.org/2008/10/delphi-prism/">http://www.delphi.org/2008/10/delphi-prism/</a></p>
<p>Il ne me reste plus qu&#8217;à tester tout ça <img src='http://s.wordpress.com/wp-includes/images/smilies/face-smile.png' alt=':)' class='wp-smiley' />  Est-ce que ça veut dire que je vais abandonné C# pour revenir flirter avec Delphi?</p>
 Tagged: .Net, c++, delphi, oxygene <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grozeille.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grozeille.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grozeille.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grozeille.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grozeille.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grozeille.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grozeille.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grozeille.wordpress.com/106/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grozeille.wordpress.com/106/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grozeille.wordpress.com/106/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&blog=173450&post=106&subd=grozeille&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://grozeille.com/2008/11/29/quel-langage-pour-lavenir-c4-ou-oxygene-delphi/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fcf307a3a2899d162cabfd41241f17b9?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">GroZeiLLe</media:title>
		</media:content>

		<media:content url="http://grozeille.files.wordpress.com/2008/11/photo-4.jpg?w=260" medium="image">
			<media:title type="html">Pétage de cable</media:title>
		</media:content>

		<media:content url="http://grozeille.files.wordpress.com/2008/11/delphiprismscreenshot.png?w=300" medium="image">
			<media:title type="html">delphiprismscreenshot</media:title>
		</media:content>
	</item>
		<item>
		<title>Mono : nouveau standard ?</title>
		<link>http://grozeille.com/2008/11/08/mono-nouveau-standard/</link>
		<comments>http://grozeille.com/2008/11/08/mono-nouveau-standard/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 08:08:52 +0000</pubDate>
		<dc:creator>grozeille</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[mono]]></category>

		<guid isPermaLink="false">http://grozeille.wordpress.com/?p=101</guid>
		<description><![CDATA[Pour ce qui ne sont pas au courant ou qui n&#8217;aurai pas vu la vidéo de la PDC, voici l&#8217;article d&#8217;InfoQ sur Mono.Simd.
J&#8217;aime bien le titre &#8220;Mono: Going Beyond the Standard&#8221;, et c&#8217;est de ça que je vais parler&#8230;
J&#8217;ai posé la question lors de la soirée ALT.Net en présence de Jean-Baptiste Evain, à savoir si [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&blog=173450&post=101&subd=grozeille&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Pour ce qui ne sont pas au courant ou qui n&#8217;aurai pas vu la vidéo de la PDC, <a href="http://www.infoq.com/news/2008/11/Mono-SMID">voici l&#8217;article d&#8217;InfoQ sur Mono.Simd</a>.<br />
J&#8217;aime bien le titre &#8220;Mono: Going Beyond the Standard&#8221;, et c&#8217;est de ça que je vais parler&#8230;</p>
<p>J&#8217;ai posé la question lors de <a href="http://codingly.com/2008/11/05/altnet-en-france-mono-a-paris-pour-la-7eme-rencontre/">la soirée ALT.Net</a> en présence de <a href="http://evain.net/blog/">Jean-Baptiste Evain</a>, à savoir si on ne va pas se retrouver avec 2 standards : .Net et Mono.<br />
<strong>ATTENTION</strong>, je ne parle pas des spécifications de la VM ou du langage C#, mais des assembly fournies en standard avec le SDK.</p>
<p><span id="more-101"></span>Pour comparer avec le monde Java, Sun établi des spécifications (JSR), et certifie une JDK car elle contient les &#8220;fonctionnalités&#8221; demandées. C&#8217;est indispensable pour le &#8220;<a href="http://en.wikipedia.org/wiki/Write_once,_run_anywhere">Write once, Run anyware</a>&#8220;.</p>
<p>Mais pour l&#8217;instant, Mono reste sur les traces de Microsoft, et il n&#8217;y a pas de volonté de standardisation commune, Microsoft faisant le standard <em>de facto</em>.</p>
<p>On dit même Mono être à la traine, car une application .Net ne marchera pas forcement sur Mono (à vérifier avec <a href="http://www.mono-project.com/MoMA">MoMA</a>).<br />
Mais on se rend déjà compte que seulement la <a href="http://www.mono-project.com/news/archive/2008/Oct-23.html">2ème mouture de Mono</a> fournit son lot de nouveautés, et que l&#8217;inverse peut se produire (application Mono ne marchant pas « out of the box » sur la SDK de Microsoft).</p>
<ul>
<li>Que nous réserve la version 3 ?</li>
<li>Mono va-t-il suivre un autre chemin (orienté jeux) ?</li>
<li>Va-t-on assister à une compétition (positive) .NetDK vs MonoDK ?</li>
<li>Pourra-t-on dire &#8220;je préfère l’implémentation de System.Collection.Generic.List de Mono, plutôt que celle de Microsoft&#8221; ?</li>
<li>Les développeurs choisiront-ils la version Libre pour que leurs applications soit le plus compatible possible, et pour être multi-plateforme (comme développer des WebServices sans utiliser WCF n’existant pas encore sous Mono) ?</li>
<li>Microsoft vont-ils intégrer le travail de Mono dans le .NetDK officiel ?</li>
</ul>
<p>Un autre point : l&#8217;API de Linux est riche (oui oui!) et je trouve incroyable le nombre de binding Mono pour cette dernière :</p>
<ul>
<li><a href="http://www.freedesktop.org/wiki/Software/dbus">DBus</a> : framework de communication inter-application orienté message</li>
<li><a href="http://gstreamer.freedesktop.org/">GStreamer</a> : framework multimedia</li>
<li><a href="http://www.cairographics.org/">Cairo</a> : framework vectoriel 2D</li>
<li><a href="http://telepathy.freedesktop.org/wiki/">Telepathy</a> : framework de chat (xmpp, sip, etc.)</li>
<li> <a href="http://www.gtk.org/">GTK</a> : remplaçant des winforms ? <img src='http://s.wordpress.com/wp-includes/images/smilies/face-wink.png' alt=';)' class='wp-smiley' /> </li>
<li>etc.</li>
</ul>
<p>Ils existent plusieurs applications Mono-Linux qui ne sont pas « portables » sous une autre plateforme, car trop liées aux API natives. Mais la communauté a la volonté de les faire porter sous Mac/Windows (<a href="http://live.gnome.org/Tomboy/Win32">Tomboy</a>,  <a href="http://abock.org/2008/10/20/cross-platform-thoughts-through-the-lense-of-banshee/">Banshee</a>), et ça passe forcement par une migration de ces API natives.</p>
<p>Assiste-t-on à un Linux qui envahi notre Windows/Mac grâce à Mono ??</p>
 Tagged: .Net, linux, mono <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grozeille.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grozeille.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grozeille.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grozeille.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grozeille.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grozeille.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grozeille.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grozeille.wordpress.com/101/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grozeille.wordpress.com/101/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grozeille.wordpress.com/101/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&blog=173450&post=101&subd=grozeille&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://grozeille.com/2008/11/08/mono-nouveau-standard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fcf307a3a2899d162cabfd41241f17b9?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">GroZeiLLe</media:title>
		</media:content>
	</item>
		<item>
		<title>Google-chrome rocks!!!</title>
		<link>http://grozeille.com/2008/09/02/google-chrome-rocks/</link>
		<comments>http://grozeille.com/2008/09/02/google-chrome-rocks/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 19:45:46 +0000</pubDate>
		<dc:creator>grozeille</dc:creator>
				<category><![CDATA[Blabla]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://grozeille.wordpress.com/?p=91</guid>
		<description><![CDATA[
Cela fait du buzz en ce moment, Google sort son navigateur Google-Chrome, et pour l&#8217;illustrer l&#8217;annonce est faire sous forme de BD!!
Premièrement, j&#8217;adore la style &#8220;BD&#8221;, car comme on le dit : &#8220;un schéma vaut parfois mieux qu&#8217;un long discours&#8221;. Et on comprend tout de suite ce qu&#8217;ils veulent dire quand on voit la représentation [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&blog=173450&post=91&subd=grozeille&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://grozeille.files.wordpress.com/2008/09/google-chrome_d_253845ejpeg1.jpg"><img class="alignleft size-full wp-image-93" src="http://grozeille.files.wordpress.com/2008/09/google-chrome_d_253845ejpeg1.jpg?w=199&#038;h=185" alt="" width="199" height="185" /></a></p>
<p>Cela fait du buzz en ce moment, Google sort son navigateur <a href="http://www.google.com/chrome">Google-Chrome</a>, et pour l&#8217;illustrer l&#8217;annonce est faire <a href="http://www.google.com/googlebooks/chrome/">sous forme de BD</a>!!</p>
<p>Premièrement, j&#8217;adore la style &#8220;BD&#8221;, car comme on le dit : &#8220;un schéma vaut parfois mieux qu&#8217;un long discours&#8221;. Et on comprend tout de suite ce qu&#8217;ils veulent dire quand on voit la représentation &#8220;imagé&#8221;.</p>
<p>J&#8217;aime bien donner mon point de vue, et je vais surtout m&#8217;attarder sur l&#8217;aspect &#8220;interface utilisateur&#8221; et &#8220;Web vs Desktop&#8221;.<br />
<span id="more-91"></span>J&#8217;avais déjà lu de nombreux trucs sur <a href="http://people.mozilla.com/~faaborg/files/prism/announcement/transition550.png">la gestion des onglets dans les navigateurs</a>, et en résumé on remarque que l&#8217;OS gère tellement mal les fenêtres, que l&#8217;on a inventé une nouvelle &#8220;barre de tâches&#8221; intégrée au navigateur (les onglets).<br />
Certes, avec des gestionnaires de fenêtres tel que sous MacOS, avec Exposé, ou sous Linux, avec <a href="http://fr.youtube.com/watch?v=-LsrocISlyQ">Compiz</a>, il est facile de naviguer entre les fenêtres d&#8217;une même application sans avoir besoin d&#8217;onglet.<br />
Quand on dit que le Web converge vers le Desktop, on s&#8217;aperçoit qu&#8217;un site n&#8217;est ni plus ni moins qu&#8217;une application. Cela est d&#8217;autant plus flagrant avec des sites comme GMail, ou Facebook. Personnellement, je les laisse toujours ouverts, et pour éviter de les fermer accidentellement, je les laisse dans une fenêtre séparée de ma navigation &#8220;temporaire&#8221;.<br />
De mon point de vue, ça ne devrait pas être le rôle du navigateur de gérer des fenêtres (onglets), mais plutôt celui de l&#8217;OS.</p>
<p style="text-align:left;"><a href="http://grozeille.files.wordpress.com/2008/09/image-23.png"><img class="size-medium wp-image-94 aligncenter" src="http://grozeille.files.wordpress.com/2008/09/image-23.png?w=300&#038;h=187" alt="" width="300" height="187" /></a><br />
&#8220;Mais il subsiste des onglets dans Google-Chrome!!??&#8221; me diriez-vous. En effet, je crois que c&#8217;est quelque chose qui fait partie des habitudes difficiles à perdre&#8230;<br />
Mais un onglet est maintenant une entité bien distincte, et chaque onglet tourne maintenant dans un processus différent comme des applications différentes.<br />
De plus, Google-Chrome propose aussi un mode &#8220;standalone&#8221; comme dans <a href="http://labs.mozilla.com/2007/10/prism/">Google Prism</a>, c&#8217;est à dire que l&#8217;application web (tel que Gmail) s&#8217;ouvre dans une fenêtre dédiée, sans barre de navigation etc&#8230; &#8220;<em>nul besoin, je suis dans Gmail, et je reste dans Gmail. Les boutons de navigations du site me suffisent.</em>&#8220;<br />
J&#8217;en profite pour dire que j&#8217;adore leur façon de gérer les popups (la BD <a href="http://www.google.com/googlebooks/chrome/images/23.jpg">l&#8217;explique mieux</a> que mes mots <img src='http://s.wordpress.com/wp-includes/images/smilies/face-wink.png' alt=';)' class='wp-smiley' /> )</p>
<p>Dans la troisième partie, ils parlent des onglets qui incluent leurs propres boutons de navigation ainsi que leur propre barre d&#8217;adresse. Comme je l&#8217;ai dit, chaque onglet est une application à part entière avec sa propre interface, et les boutons de navigations/barre d&#8217;adresse en font partie.<br />
Il est vrai que j&#8217;utilise rarement la boite de recherche, car finalement je tape un mot dans la barre d&#8217;adresse, ce qui lance &#8220;google j&#8217;ai de la chance&#8221;&#8230; Que les deux soient &#8220;fusionnés&#8221;, me semble naturel aussi. Google appelle ça &#8220;<a href="http://www.google.com/googlebooks/chrome/images/19.jpg">l&#8217;omnibox</a>&#8220;.<br />
Enfin, Google corrigent <a href="http://www.google.com/googlebooks/chrome/images/20.jpg">des bugs de &#8220;fonctionnalité&#8221;</a> de Firefox, comme le fait d&#8217;aller sur le site &#8220;<em>http://cnn.com</em>&#8221; quand je tape &#8220;<em>cnn</em>&#8220;, et non la dernière page mémorisée dans l&#8217;historique, à savoir &#8220;<em>h</em><em>ttp://cnn.com/2008/politics/07/27/campaign.wrap/index&#8230;..</em>&#8220;</p>
<p>Je suis aussi fan de l&#8217;idée de la recherche/complétion à l&#8217;aide de la touche &#8220;tab&#8221; dans l&#8217;omnibox. C&#8217;est peut-être un peu geek, mais ça me rappelle la complétion en ligne de commande sous Linux/MacOS ou MsDos.</p>
<p>Google expliquent aussi les sources des problèmes concernant les ressources et le caractère &#8220;<a href="http://www.google.com/googlebooks/chrome/images/4.jpg">mono-threadé</a>&#8221; d&#8217;un navigateur.<br />
Qui n&#8217;a pas déjà pesté sur la lenteur d&#8217;affichage des pages, d&#8217;exécution du Javascript, du freeze du navigateur à cause d&#8217;une pub flash, ou des 380mo en mémoire pris par Firefox ???<br />
Gérer les ressources, c&#8217;est normalement le rôle de l&#8217;OS. Et je le répète : un site web n&#8217;est ni plus ni moins qu&#8217;une application, elle devrait alors avoir son propre processus, avec sa propre gestion de ressource, sans empêcher la navigation dans les autres onglets.</p>
<p><a href="http://grozeille.files.wordpress.com/2008/09/image-24.png"><img class="aligncenter size-medium wp-image-98" src="http://grozeille.files.wordpress.com/2008/09/image-24.png?w=300&#038;h=278" alt="" width="300" height="278" /></a><br />
Coté performance, on blame souvent Javascript&#8230;.<br />
Les applications web se rapprochant des applications Desktop, elles deviennent de plus en plus &#8220;dynamiques&#8221; et &#8220;user friendly&#8221;. Pour se faire, on utilise Javascript depuis bien longtemps. Mais ce n&#8217;est que depuis peu (Web 2.0) que le Javascript est <a href="http://script.aculo.us/">exploité massivement</a>. Et c&#8217;est la qu&#8217;on se rend compte de ses limites en terme de fonctionnalité et de performance.<br />
Certains contournent le problème, en intégrant un &#8220;plugin&#8221; tel que Flash/Java/Silverlight, et réalisent leurs sites en partie/entièrement avec. Parfois, le navigateur ne sert plus qu&#8217;à lancer le player flash, qui lui gère entièrement l&#8217;interface graphique.<br />
Je suis fan de Javascript car ça reste léger, non propriétaire, et cela s&#8217;intègre bien avec le HTML. Vous allez me dire que je suis vieux jeux, et qu&#8217;il faudrait tout migrer immédiatement vers du Silverlight <img src='http://s.wordpress.com/wp-includes/images/smilies/face-smile.png' alt=':)' class='wp-smiley' />  mais ça c&#8217;est un autre débat.</p>
<p>Google est repartie de ZERO pour réaliser son moteur Javascript, chose qui m&#8217;étonne peu. Mais ce qui m&#8217;a en tout cas fait rire, c&#8217;est de lire qu&#8217;ils font carrément une <a href="http://www.google.com/googlebooks/chrome/images/13.jpg">machine virtuelle</a> ! L&#8217;avenir est aux machines virtuelles, tel que Java et .Net, que ce soit par leur gestion de la mémoire, ou les <a href="http://www.google.com/googlebooks/chrome/images/15.jpg">optimisations de compilations</a>. D&#8217;autres arguments sont cités dans la BD, et ils paraissent souvent évidents. Mais il n&#8217;y a qu&#8217;un géant comme Google qui peut dire &#8220;bon, les autres trucs c&#8217;est de la merde, on va tout refaire à zero en apprenant des erreurs du passé&#8221;. Mine de rien, c&#8217;est un challenge énorme, et on a tendance à préférer ré-utiliser un existant même s&#8217;il faut le faire évoluer.</p>
<p>A la fin, ils parlent aussi un peu de <a href="http://gears.google.com/">Google Gears</a>. Pour moi, c&#8217;est comme si le navigateur était devenu une machine virtuelle pour héberger nos applications web, et Google Gears c&#8217;est le &#8220;framework&#8221;, qui offre la possibilité d&#8217;étendre leurs fonctionnalités à l&#8217;aide de &#8220;librairies&#8221; réutilisables. L&#8217;écart Web-Desktop se resserre encore&#8230;</p>
<p><a href="http://grozeille.files.wordpress.com/2008/09/dlpage_lg.jpg"><img class="aligncenter size-medium wp-image-95" src="http://grozeille.files.wordpress.com/2008/09/dlpage_lg.jpg?w=300&#038;h=244" alt="" width="300" height="244" /></a><br />
Un petit mot sur la sécurité : le fait d&#8217;isoler les onglets dans des processus différents permet d&#8217;isoler les programmes &#8220;malveillant&#8221; des autres. Quand le processus est lui aussi découpé en plusieurs niveaux d&#8217;isolation, c&#8217;est encore mieux. Quelque chose m&#8217;a amusé concernant l&#8217;interaction entre l&#8217;utilisateur et la Sandbox : on dirait qu&#8217;il y a un pare-feu interne entre eux, et que seul l&#8217;utilisateur peux initier une &#8220;connexion&#8221; avec la sandbox, qui ne peux que lui répondre. <a href="http://www.google.com/googlebooks/chrome/images/29.jpg">L&#8217;explication en image</a> est bien plus parlante -_-&#8217;</p>
<p>Je ne couvre pas tout, je vous laisse découvrir la BD par vous même.<br />
Je suis sûr que ce navigateur va changer beaucoup de chose dans nos façons de développer des applications Web, et dans notre façon de surfer.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/grozeille.wordpress.com/91/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/grozeille.wordpress.com/91/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/grozeille.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/grozeille.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/grozeille.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/grozeille.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/grozeille.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/grozeille.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/grozeille.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/grozeille.wordpress.com/91/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/grozeille.wordpress.com/91/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/grozeille.wordpress.com/91/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=grozeille.com&blog=173450&post=91&subd=grozeille&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://grozeille.com/2008/09/02/google-chrome-rocks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fcf307a3a2899d162cabfd41241f17b9?s=96&amp;d=identicon&amp;r=G" medium="image">
			<media:title type="html">GroZeiLLe</media:title>
		</media:content>

		<media:content url="http://grozeille.files.wordpress.com/2008/09/google-chrome_d_253845ejpeg1.jpg" medium="image" />

		<media:content url="http://grozeille.files.wordpress.com/2008/09/image-23.png?w=300" medium="image" />

		<media:content url="http://grozeille.files.wordpress.com/2008/09/image-24.png?w=300" medium="image" />

		<media:content url="http://grozeille.files.wordpress.com/2008/09/dlpage_lg.jpg?w=300" medium="image" />
	</item>
	</channel>
</rss>
