<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Commentaires sur : Grails &#8211; épisode 3 &#8211; Branchement des contrôleurs/vues/services</title>
	<atom:link href="http://blog.excilys.com/2009/12/21/grails-episode-3-branchement-des-controleursvuesservices/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.excilys.com/2009/12/21/grails-episode-3-branchement-des-controleursvuesservices/</link>
	<description>Langages, Architectures &#38; Méthodologies</description>
	<lastBuildDate>Wed, 11 Jan 2012 14:47:25 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Par : Cyril BROUILLARD</title>
		<link>http://blog.excilys.com/2009/12/21/grails-episode-3-branchement-des-controleursvuesservices/comment-page-1/#comment-78</link>
		<dc:creator>Cyril BROUILLARD</dc:creator>
		<pubDate>Fri, 15 Jan 2010 12:46:36 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excilys.com/?p=542#comment-78</guid>
		<description>&lt;a href=&quot;#comment-77&quot; rel=&quot;nofollow&quot;&gt;@ala1986 &lt;/a&gt; 
L&#039;astuce consiste simplement à dire à Grail (ou plutôt GORM, la couche Grails au dessus d&#039;Hibernate) : &quot;gère moi automatiquement les dates d&#039;insertion et de suppression lors de l&#039;écriture d&#039;objets en base&quot;.

Conformément au paradigme COC (Convention Over Configuration), Grails nous dit : &quot;ajoutez le champ dateCreated et le champs lastUpdated et je vous gère ces dates de façon transparente et sans aucun ajout de code&quot;.

Pour faire cette modification (qui n&#039;est en soit pas obligatoire, mais qui facilite quand même pas mal la vie), l&#039;objectif est de remplacer totalement tout ce qui a trait à datePublication. (dans la vue et dans le domain). Donc au pire si tu as des souci le mieux est encore d&#039;enlever completement l&#039;objet domain, le re-écrire puis régénérer.

Bon courage et bonne continuation avec Grails ;)</description>
		<content:encoded><![CDATA[<p><a href="#comment-77" rel="nofollow">@ala1986 </a><br />
L&#8217;astuce consiste simplement à dire à Grail (ou plutôt GORM, la couche Grails au dessus d&#8217;Hibernate) : &#8220;gère moi automatiquement les dates d&#8217;insertion et de suppression lors de l&#8217;écriture d&#8217;objets en base&#8221;.</p>
<p>Conformément au paradigme COC (Convention Over Configuration), Grails nous dit : &#8220;ajoutez le champ dateCreated et le champs lastUpdated et je vous gère ces dates de façon transparente et sans aucun ajout de code&#8221;.</p>
<p>Pour faire cette modification (qui n&#8217;est en soit pas obligatoire, mais qui facilite quand même pas mal la vie), l&#8217;objectif est de remplacer totalement tout ce qui a trait à datePublication. (dans la vue et dans le domain). Donc au pire si tu as des souci le mieux est encore d&#8217;enlever completement l&#8217;objet domain, le re-écrire puis régénérer.</p>
<p>Bon courage et bonne continuation avec Grails <img src='http://blog.excilys.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : ala1986</title>
		<link>http://blog.excilys.com/2009/12/21/grails-episode-3-branchement-des-controleursvuesservices/comment-page-1/#comment-77</link>
		<dc:creator>ala1986</dc:creator>
		<pubDate>Fri, 15 Jan 2010 10:56:30 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excilys.com/?p=542#comment-77</guid>
		<description>Bonjour a tous,
J&#039;ai un petit problème concernant la modification de la date de publication. Je ne comprend pas bien l&#039;astuce.
Est-ce-que en remplace le champ &quot;Date publication&quot; par &quot;Date dateCreated&quot; seulement et la date devient caché pour l&#039;utilsateur dans la creation.
Il marche pas parceque on a changé le label de la date seulement, donc il sera affiché dans la fenetre date created et non pas publication, et la date il reste la meme il s&#039;affiche pour l&#039;utilisateur.

Concernant la modification de vue en ajoutant le combobox a travers le controller, j&#039;ai ajouté ca &quot;def availableSongs = Song.findAllByAlbumIsNull()&quot; et &quot;&#039;availableSongs&#039;:availableSongs&quot; dans return.
J&#039;ai ajouté ca &quot;Chansons:
&quot;
&quot;&quot;
dans views.
ou on ajoute ca? J&#039;ai ajouter apres ca &quot;





&quot;

Lorsque on génère l&#039;application de nouveau il efface tout que j&#039;ai ajouté.
Il revient comme elle est.
Merci beaucoup d&#039;avance.</description>
		<content:encoded><![CDATA[<p>Bonjour a tous,<br />
J&#8217;ai un petit problème concernant la modification de la date de publication. Je ne comprend pas bien l&#8217;astuce.<br />
Est-ce-que en remplace le champ &#8220;Date publication&#8221; par &#8220;Date dateCreated&#8221; seulement et la date devient caché pour l&#8217;utilsateur dans la creation.<br />
Il marche pas parceque on a changé le label de la date seulement, donc il sera affiché dans la fenetre date created et non pas publication, et la date il reste la meme il s&#8217;affiche pour l&#8217;utilisateur.</p>
<p>Concernant la modification de vue en ajoutant le combobox a travers le controller, j&#8217;ai ajouté ca &#8220;def availableSongs = Song.findAllByAlbumIsNull()&#8221; et &#8220;&#8216;availableSongs&#8217;:availableSongs&#8221; dans return.<br />
J&#8217;ai ajouté ca &#8220;Chansons:<br />
&#8221;<br />
&#8220;&#8221;<br />
dans views.<br />
ou on ajoute ca? J&#8217;ai ajouter apres ca &#8221;</p>
<p>&#8221;</p>
<p>Lorsque on génère l&#8217;application de nouveau il efface tout que j&#8217;ai ajouté.<br />
Il revient comme elle est.<br />
Merci beaucoup d&#8217;avance.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Guillaume M (Xebia)</title>
		<link>http://blog.excilys.com/2009/12/21/grails-episode-3-branchement-des-controleursvuesservices/comment-page-1/#comment-49</link>
		<dc:creator>Guillaume M (Xebia)</dc:creator>
		<pubDate>Sun, 10 Jan 2010 15:26:56 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excilys.com/?p=542#comment-49</guid>
		<description>&lt;a href=&quot;#comment-39&quot; rel=&quot;nofollow&quot;&gt;@Pierre-Yves RICAU &lt;/a&gt; Un point de vue pas si différent en fait, Cyril a raison le &quot;generate-all&quot; ça craint ;) Mais le &quot;scaffold = true&quot; (à mettre dans un Controller) permet de dépasser les limitations décrites ici.

L&#039;argument du développeur débutant, tu peux le transposer sur n&#039;importe quelle techno. Un développeur débutant (ou mauvais développeur) pourra toujours mal utiliser un outil, même un simple marteau ;) Et plus un outil est complexe plus il a de chances d&#039;être mal utilisé. Or entre Grails et JEE, je te laisse juger lequel est le plus complexe :p

Bravo Cyril pour les articles !</description>
		<content:encoded><![CDATA[<p><a href="#comment-39" rel="nofollow">@Pierre-Yves RICAU </a> Un point de vue pas si différent en fait, Cyril a raison le &#8220;generate-all&#8221; ça craint <img src='http://blog.excilys.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Mais le &#8220;scaffold = true&#8221; (à mettre dans un Controller) permet de dépasser les limitations décrites ici.</p>
<p>L&#8217;argument du développeur débutant, tu peux le transposer sur n&#8217;importe quelle techno. Un développeur débutant (ou mauvais développeur) pourra toujours mal utiliser un outil, même un simple marteau <img src='http://blog.excilys.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Et plus un outil est complexe plus il a de chances d&#8217;être mal utilisé. Or entre Grails et JEE, je te laisse juger lequel est le plus complexe :p</p>
<p>Bravo Cyril pour les articles !</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Blog Excilys &#187; Grails &#8211; épisode 4 &#8211; Utilisation des plugins</title>
		<link>http://blog.excilys.com/2009/12/21/grails-episode-3-branchement-des-controleursvuesservices/comment-page-1/#comment-41</link>
		<dc:creator>Blog Excilys &#187; Grails &#8211; épisode 4 &#8211; Utilisation des plugins</dc:creator>
		<pubDate>Mon, 04 Jan 2010 14:36:58 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excilys.com/?p=542#comment-41</guid>
		<description>[...] Relire l&#8217;article précédent. [...]</description>
		<content:encoded><![CDATA[<p>[...] Relire l&#8217;article précédent. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Nicolas Martignole</title>
		<link>http://blog.excilys.com/2009/12/21/grails-episode-3-branchement-des-controleursvuesservices/comment-page-1/#comment-40</link>
		<dc:creator>Nicolas Martignole</dc:creator>
		<pubDate>Wed, 30 Dec 2009 23:17:31 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excilys.com/?p=542#comment-40</guid>
		<description>Très bonne série d&#039;article, pour répondre à Pierre-Yves c&#039;est difficile à faire avec Grails, peut-être même plus qu&#039;avec une bonne vielle page JSP. Je suis même moins inquiet qu&#039;il y a quelques années avec justement ensuite le bourrage de crâne : faites des DAO, séparez vos couches, etc. C&#039;était important, cela reste important, mais maintenant c&#039;est fait par Grails.

Nicolas

Blog le Touilleur Express</description>
		<content:encoded><![CDATA[<p>Très bonne série d&#8217;article, pour répondre à Pierre-Yves c&#8217;est difficile à faire avec Grails, peut-être même plus qu&#8217;avec une bonne vielle page JSP. Je suis même moins inquiet qu&#8217;il y a quelques années avec justement ensuite le bourrage de crâne : faites des DAO, séparez vos couches, etc. C&#8217;était important, cela reste important, mais maintenant c&#8217;est fait par Grails.</p>
<p>Nicolas</p>
<p>Blog le Touilleur Express</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Pierre-Yves RICAU</title>
		<link>http://blog.excilys.com/2009/12/21/grails-episode-3-branchement-des-controleursvuesservices/comment-page-1/#comment-39</link>
		<dc:creator>Pierre-Yves RICAU</dc:creator>
		<pubDate>Sat, 26 Dec 2009 09:53:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excilys.com/?p=542#comment-39</guid>
		<description>A noter l&#039;article de Xebia ( http://blog.xebia.fr/2009/12/23/grails-scaffolding/ ) qui met en avant le scaffolding dynamique pour faciliter la maintenance des applications. Ce point de vue différent est aussi intéressant.</description>
		<content:encoded><![CDATA[<p>A noter l&#8217;article de Xebia ( <a href="http://blog.xebia.fr/2009/12/23/grails-scaffolding/" rel="nofollow">http://blog.xebia.fr/2009/12/23/grails-scaffolding/</a> ) qui met en avant le scaffolding dynamique pour faciliter la maintenance des applications. Ce point de vue différent est aussi intéressant.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Pierre-Yves RICAU</title>
		<link>http://blog.excilys.com/2009/12/21/grails-episode-3-branchement-des-controleursvuesservices/comment-page-1/#comment-38</link>
		<dc:creator>Pierre-Yves RICAU</dc:creator>
		<pubDate>Sat, 26 Dec 2009 09:39:18 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excilys.com/?p=542#comment-38</guid>
		<description>Cet article amène des questions sur ce qui est habituellement considéré comme de &quot;bonnes pratiques&quot; :

Le modèle en couche (Vues/Contrôleurs =&gt; Services =&gt; DAO) est ici court-circuité, avec un appel des DAO directement depuis les contrôleurs. Voir même, Ô ultime transgression, depuis les vues :-) .

Cela apporte clairement des avantages en terme de productivité. Cependant, ne court t&#039;on pas le risque qu&#039;un développeur débutant sur ces techno utilise ces raccourcis à mauvais escient ?

Typiquement, je verrai bien une boucle for dans une vue, avec à chaque itération un appel vers la base de donnée pour charger une entité, plutôt que de tout charger en une seule fois. 

Scénario hyper classique, qu&#039;on retrouve dans de nombreuses applications JEE (hibernate + lazy loading + OpenSessionInViewfilter, ça vous dit quelque chose ;-) ?)</description>
		<content:encoded><![CDATA[<p>Cet article amène des questions sur ce qui est habituellement considéré comme de &#8220;bonnes pratiques&#8221; :</p>
<p>Le modèle en couche (Vues/Contrôleurs =&gt; Services =&gt; DAO) est ici court-circuité, avec un appel des DAO directement depuis les contrôleurs. Voir même, Ô ultime transgression, depuis les vues <img src='http://blog.excilys.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  .</p>
<p>Cela apporte clairement des avantages en terme de productivité. Cependant, ne court t&#8217;on pas le risque qu&#8217;un développeur débutant sur ces techno utilise ces raccourcis à mauvais escient ?</p>
<p>Typiquement, je verrai bien une boucle for dans une vue, avec à chaque itération un appel vers la base de donnée pour charger une entité, plutôt que de tout charger en une seule fois. </p>
<p>Scénario hyper classique, qu&#8217;on retrouve dans de nombreuses applications JEE (hibernate + lazy loading + OpenSessionInViewfilter, ça vous dit quelque chose <img src='http://blog.excilys.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ?)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Par : Tweets that mention Blog Excilys » Grails – épisode 3 – Branchement des contrôleurs/vues/services -- Topsy.com</title>
		<link>http://blog.excilys.com/2009/12/21/grails-episode-3-branchement-des-controleursvuesservices/comment-page-1/#comment-37</link>
		<dc:creator>Tweets that mention Blog Excilys » Grails – épisode 3 – Branchement des contrôleurs/vues/services -- Topsy.com</dc:creator>
		<pubDate>Thu, 24 Dec 2009 09:42:37 +0000</pubDate>
		<guid isPermaLink="false">http://blog.excilys.com/?p=542#comment-37</guid>
		<description>[...] This post was mentioned on Twitter by Raphaël Lemaire, Raphaël Lemaire. Raphaël Lemaire said: Folie grails sur les blogs francohones : http://tinyurl.com/y8ana6o http://tinyurl.com/y868sad http://tinyurl.com/ya4n75o #grails [...]</description>
		<content:encoded><![CDATA[<p>[...] This post was mentioned on Twitter by Raphaël Lemaire, Raphaël Lemaire. Raphaël Lemaire said: Folie grails sur les blogs francohones : <a href="http://tinyurl.com/y8ana6o" rel="nofollow">http://tinyurl.com/y8ana6o</a> <a href="http://tinyurl.com/y868sad" rel="nofollow">http://tinyurl.com/y868sad</a> <a href="http://tinyurl.com/ya4n75o" rel="nofollow">http://tinyurl.com/ya4n75o</a> #grails [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>

