<?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/"
xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
xmlns:media="http://search.yahoo.com/mrss/"
> <channel><title>Commentaires sur : Grails scaffolding</title> <atom:link href="http://blog.xebia.fr/2009/12/23/grails-scaffolding/feed/" rel="self" type="application/rss+xml" /><link>http://blog.xebia.fr/2009/12/23/grails-scaffolding/</link> <description>J2EE, Agilité et SOA</description> <lastBuildDate>Thu, 09 Feb 2012 15:43:24 +0000</lastBuildDate> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=</generator> <item><title>Par : lifsa</title><link>http://blog.xebia.fr/2009/12/23/grails-scaffolding/#comment-86975</link> <dc:creator>lifsa</dc:creator> <pubDate>Mon, 24 Oct 2011 14:09:35 +0000</pubDate> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3620#comment-86975</guid> <description>Bonjour,
k&#039;aimerai savoir comment on scaffolde un template sous grails. faire de tel sorte que le meme template soit pris en compte na chaque génération de page.
merci</description> <content:encoded><![CDATA[<p>Bonjour,<br
/> k&#8217;aimerai savoir comment on scaffolde un template sous grails. faire de tel sorte que le meme template soit pris en compte na chaque génération de page.<br
/> merci</p> ]]></content:encoded> </item> <item><title>Par : Piwaï</title><link>http://blog.xebia.fr/2009/12/23/grails-scaffolding/#comment-18956</link> <dc:creator>Piwaï</dc:creator> <pubDate>Mon, 28 Dec 2009 13:29:10 +0000</pubDate> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3620#comment-18956</guid> <description>@Guillaume : merci pour cette réponse détaillée, cela éclairci nettement mon point de vue.</description> <content:encoded><![CDATA[<p>@Guillaume : merci pour cette réponse détaillée, cela éclairci nettement mon point de vue.</p> ]]></content:encoded> </item> <item><title>Par : Guillaume M (Xebia)</title><link>http://blog.xebia.fr/2009/12/23/grails-scaffolding/#comment-18952</link> <dc:creator>Guillaume M (Xebia)</dc:creator> <pubDate>Mon, 28 Dec 2009 11:55:00 +0000</pubDate> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3620#comment-18952</guid> <description>Bonjour,
@Nicolas : effectivement pour personnaliser le code généré, il faut d&#039;abord copier les templates dans le projet à l&#039;aide de la commande &quot;grails install-templates&quot;. On peut ainsi modifier les gsp et le template du controller. Voir http://www.grails.org/Artifact+and+Scaffolding+Templates mais c&#039;est assez léger. J&#039;espère en parler plus en détail prochainement dans un autre article.
@Piwai : excylis et moi sommes d&#039;accord sur un point. &quot;les commandes de génération&quot; font référence au scaffolding statique, qui génère le code des gsp et du controller. Excylis parle du cas où il modifie manuellement le code généré, solution non viable puisque qu&#039;à la prochaine exécution de la commande de génération, les modifications seront écrasées. On est donc d&#039;accord, le scaffolding statique n&#039;est (presque) jamais une bonne solution.
Le scaffolding dynamique est bien plus utile. Est-il puissant au point de mettre en place des cas d&#039;utilisation très spécifiques (au projet ? à un objet métier ?) ? Je pense que non, ce n&#039;est pas raisonnable de vouloir faire du &quot;très spécifique&quot; avec de la génération de code. Par contre le scaffolding dynamique permet d&#039;avoir un CRUD sur tous les objets métier de l&#039;application via une interface personnalisée au projet. Or là où je ne suis pas d&#039;accord avec toi, c&#039;est sur l&#039;utilité du CRUD. Le CRUD est un besoin récurrent de tous les projets. Ne serait-ce que les écrans de création, ils sont indispensables au métier pour remplir la base. Et après le métier a besoin de consulter les données créées, les corriger, les modifier, les supprimer. Bref les données ne sont jamais figées et le CRUD permet au métier de les manipuler directement.
Nous avons mis ce CRUD d&#039;admin en place sur un projet (qui tourne en production), et la maintenance se résume à la modification des objets domain, sans impact pour l&#039;interface d&#039;admin.
Cependant tu as raison, il y a toujours des besoins spécifiques. Par exemple nous voulions changer complètement l&#039;affichage de la liste pour un objet domain particulier mais nous voulions garder l&#039;édition/création/modification proposée par grails.
Nous avons donc surchargé la méthode list du controller (en gardant l&#039;attribut scaffold = true) afin de ne ramener que certains éléments (par défaut tous les éléments de la table sont affichés). Ensuite nous avons généré la list.gsp (pour ne pas partir de zéro, &quot;grails generate-views&quot; puis suppression des 3 gsp qui ne nous intéressent pas), puis nous avons personnalisé son affichage (précision pour Nicolas, cette page list.gsp modifiée ne sera pas écrasée par le scaffolding dynamique. Au démarrage de l&#039;application Grails ne génère que les méthodes de controller et vues manquantes).
La liste répond désormais au besoin spécifique tout en gardant l&#039;avantage du scaffolding dynamique pour les autres vues de cet objet. C&#039;est cette souplesse qui est très appréciable avec Grails.
Par contre la maintenance de cette liste est évidemment manuelle et donc alourdit un peu l&#039;application. Mais ce genre de besoins spécifiques ne concernent que quelques objets (sur notre projet en tous cas), la grande majorité des écrans d&#039;admin sont complètement générés dynamiquement, ce qui nous fait gagner un temps précieux !</description> <content:encoded><![CDATA[<p>Bonjour,</p><p>@Nicolas : effectivement pour personnaliser le code généré, il faut d&#8217;abord copier les templates dans le projet à l&#8217;aide de la commande &laquo;&nbsp;grails install-templates&nbsp;&raquo;. On peut ainsi modifier les gsp et le template du controller. Voir <a
href="http://www.grails.org/Artifact+and+Scaffolding+Templates" rel="nofollow">http://www.grails.org/Artifact+and+Scaffolding+Templates</a> mais c&#8217;est assez léger. J&#8217;espère en parler plus en détail prochainement dans un autre article.</p><p>@Piwai : excylis et moi sommes d&#8217;accord sur un point. &laquo;&nbsp;les commandes de génération&nbsp;&raquo; font référence au scaffolding statique, qui génère le code des gsp et du controller. Excylis parle du cas où il modifie manuellement le code généré, solution non viable puisque qu&#8217;à la prochaine exécution de la commande de génération, les modifications seront écrasées. On est donc d&#8217;accord, le scaffolding statique n&#8217;est (presque) jamais une bonne solution.<br
/> Le scaffolding dynamique est bien plus utile. Est-il puissant au point de mettre en place des cas d&#8217;utilisation très spécifiques (au projet ? à un objet métier ?) ? Je pense que non, ce n&#8217;est pas raisonnable de vouloir faire du &laquo;&nbsp;très spécifique&nbsp;&raquo; avec de la génération de code. Par contre le scaffolding dynamique permet d&#8217;avoir un CRUD sur tous les objets métier de l&#8217;application via une interface personnalisée au projet. Or là où je ne suis pas d&#8217;accord avec toi, c&#8217;est sur l&#8217;utilité du CRUD. Le CRUD est un besoin récurrent de tous les projets. Ne serait-ce que les écrans de création, ils sont indispensables au métier pour remplir la base. Et après le métier a besoin de consulter les données créées, les corriger, les modifier, les supprimer. Bref les données ne sont jamais figées et le CRUD permet au métier de les manipuler directement.<br
/> Nous avons mis ce CRUD d&#8217;admin en place sur un projet (qui tourne en production), et la maintenance se résume à la modification des objets domain, sans impact pour l&#8217;interface d&#8217;admin.</p><p>Cependant tu as raison, il y a toujours des besoins spécifiques. Par exemple nous voulions changer complètement l&#8217;affichage de la liste pour un objet domain particulier mais nous voulions garder l&#8217;édition/création/modification proposée par grails.<br
/> Nous avons donc surchargé la méthode list du controller (en gardant l&#8217;attribut scaffold = true) afin de ne ramener que certains éléments (par défaut tous les éléments de la table sont affichés). Ensuite nous avons généré la list.gsp (pour ne pas partir de zéro, &laquo;&nbsp;grails generate-views&nbsp;&raquo; puis suppression des 3 gsp qui ne nous intéressent pas), puis nous avons personnalisé son affichage (précision pour Nicolas, cette page list.gsp modifiée ne sera pas écrasée par le scaffolding dynamique. Au démarrage de l&#8217;application Grails ne génère que les méthodes de controller et vues manquantes).<br
/> La liste répond désormais au besoin spécifique tout en gardant l&#8217;avantage du scaffolding dynamique pour les autres vues de cet objet. C&#8217;est cette souplesse qui est très appréciable avec Grails.<br
/> Par contre la maintenance de cette liste est évidemment manuelle et donc alourdit un peu l&#8217;application. Mais ce genre de besoins spécifiques ne concernent que quelques objets (sur notre projet en tous cas), la grande majorité des écrans d&#8217;admin sont complètement générés dynamiquement, ce qui nous fait gagner un temps précieux !</p> ]]></content:encoded> </item> <item><title>Par : Piwaï</title><link>http://blog.xebia.fr/2009/12/23/grails-scaffolding/#comment-18877</link> <dc:creator>Piwaï</dc:creator> <pubDate>Sat, 26 Dec 2009 09:49:52 +0000</pubDate> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3620#comment-18877</guid> <description>Bonjour.
Je trouve cet article très intéressant, mais je m&#039;interroge.
Vous citez &quot;la maintenance&quot; comme un des avantages du scaffolding dynamique, puisque c&#039;est une solution qui s&#039;adapte aux modifications de l&#039;objet métier.
Le scaffolding dynamique est-il donc puissant au point de permettre la mise en place d&#039;une interface d&#039;admin avec des cas d&#039;utilisation souvent très spécifiques ? Ou bien ne peut t&#039;on réaliser que de simples CRUD, qui n&#039;ont un intérêt que pour les démos et les prototypes ?
Dans l&#039;article suivant : http://blog.excilys.com/2009/12/21/grails-episode-3-branchement-des-controleursvuesservices/ , l&#039;auteur estime que &quot;les commandes de génération ne sont à utiliser qu’une seule fois au début du projet et sont à bannir par la suite&quot;.
Ces différents points de vues m&#039;intéressent. Quelqu&#039;un a t&#039;il des retours d&#039;expérience sur le sujet ? Et qu&#039;en est-il de la maintenance ?</description> <content:encoded><![CDATA[<p>Bonjour.</p><p>Je trouve cet article très intéressant, mais je m&#8217;interroge.</p><p>Vous citez &laquo;&nbsp;la maintenance&nbsp;&raquo; comme un des avantages du scaffolding dynamique, puisque c&#8217;est une solution qui s&#8217;adapte aux modifications de l&#8217;objet métier.</p><p>Le scaffolding dynamique est-il donc puissant au point de permettre la mise en place d&#8217;une interface d&#8217;admin avec des cas d&#8217;utilisation souvent très spécifiques ? Ou bien ne peut t&#8217;on réaliser que de simples CRUD, qui n&#8217;ont un intérêt que pour les démos et les prototypes ?</p><p>Dans l&#8217;article suivant : <a
href="http://blog.excilys.com/2009/12/21/grails-episode-3-branchement-des-controleursvuesservices/" rel="nofollow">http://blog.excilys.com/2009/12/21/grails-episode-3-branchement-des-controleursvuesservices/</a> , l&#8217;auteur estime que &laquo;&nbsp;les commandes de génération ne sont à utiliser qu’une seule fois au début du projet et sont à bannir par la suite&nbsp;&raquo;.</p><p>Ces différents points de vues m&#8217;intéressent. Quelqu&#8217;un a t&#8217;il des retours d&#8217;expérience sur le sujet ? Et qu&#8217;en est-il de la maintenance ?</p> ]]></content:encoded> </item> <item><title>Par : Nabil Adouani</title><link>http://blog.xebia.fr/2009/12/23/grails-scaffolding/#comment-18778</link> <dc:creator>Nabil Adouani</dc:creator> <pubDate>Wed, 23 Dec 2009 20:08:53 +0000</pubDate> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3620#comment-18778</guid> <description>@Guillaume : Très bon article qui résume la technique de scaffolding en Grails.
@Nicolas: lors de la génération du code (contrôleurs et vues), Grails vérifie s&#039;il y a déjà des fichiers générés, et il demande une confirmation avant d&#039;écraser les modifications.
C&#039;est bien l&#039;un des inconvénients de ce type de framework de génération de code.</description> <content:encoded><![CDATA[<p>@Guillaume : Très bon article qui résume la technique de scaffolding en Grails.</p><p>@Nicolas: lors de la génération du code (contrôleurs et vues), Grails vérifie s&#8217;il y a déjà des fichiers générés, et il demande une confirmation avant d&#8217;écraser les modifications.<br
/> C&#8217;est bien l&#8217;un des inconvénients de ce type de framework de génération de code.</p> ]]></content:encoded> </item> <item><title>Par : Nicolas F</title><link>http://blog.xebia.fr/2009/12/23/grails-scaffolding/#comment-18769</link> <dc:creator>Nicolas F</dc:creator> <pubDate>Wed, 23 Dec 2009 16:58:22 +0000</pubDate> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3620#comment-18769</guid> <description>Comment se passe la personnalisation des pages ?
Si je modifie mon code, je ne risque pas d&#039;écraser mes modifications lors de la génération ?
Ou alors si je comprends bien la petite phrases de fin, le mode opératoire est différent, je passe par une template ?</description> <content:encoded><![CDATA[<p>Comment se passe la personnalisation des pages ?<br
/> Si je modifie mon code, je ne risque pas d&#8217;écraser mes modifications lors de la génération ?<br
/> Ou alors si je comprends bien la petite phrases de fin, le mode opératoire est différent, je passe par une template ?</p> ]]></content:encoded> </item> </channel> </rss>
