<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Christian Nguyen Van Than - In Fine - Le Blog</title>
	<atom:link href="https://blog.infine.com/author/christian-nguyen/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.infine.com</link>
	<description>Le blog des technos de demain !</description>
	<lastBuildDate>Tue, 03 Apr 2012 09:42:50 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.5.7</generator>

<image>
	<url>https://blog.infine.com/wp-content/uploads/2021/03/cropped-vignette-32x32.png</url>
	<title>Christian Nguyen Van Than - In Fine - Le Blog</title>
	<link>https://blog.infine.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>L&#8217;application Devoxx France d&#8217;In Fine est disponible sur le Google Play Store</title>
		<link>https://blog.infine.com/lapplication-devoxx-france-din-fine-est-disponible-sur-le-google-play-store-1954?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=lapplication-devoxx-france-din-fine-est-disponible-sur-le-google-play-store</link>
					<comments>https://blog.infine.com/lapplication-devoxx-france-din-fine-est-disponible-sur-le-google-play-store-1954#comments</comments>
		
		<dc:creator><![CDATA[Christian Nguyen Van Than]]></dc:creator>
		<pubDate>Fri, 30 Mar 2012 11:21:45 +0000</pubDate>
				<category><![CDATA[Conférence]]></category>
		<category><![CDATA[Mobile (Android/iOS)]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[devoxx]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[play framework]]></category>
		<guid isPermaLink="false">https://blog.infine.com/?p=1954</guid>

					<description><![CDATA[<p><span class="rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Temps de lecture : </span> <span class="rt-time">2</span> <span class="rt-label rt-postfix">min.</span></span> In Fine, en tant que partenaire de l&#8217;évènement majeur qu&#8217;est Devoxx France, a le plaisir de mettre à disposition une application pour Devoxx France sur Android. Cette première version permet : De mettre en favoris vos sessions préférées De consulter le planning des sessions, et le détail des speakers De voir ce qui se passe &#8230;</p>
<p>The post <a href="https://blog.infine.com/lapplication-devoxx-france-din-fine-est-disponible-sur-le-google-play-store-1954">L’application Devoxx France d’In Fine est disponible sur le Google Play Store</a> first appeared on <a href="https://blog.infine.com">In Fine - Le Blog</a>.</p>]]></description>
										<content:encoded><![CDATA[<span class="rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Temps de lecture : </span> <span class="rt-time">2</span> <span class="rt-label rt-postfix">min.</span></span><p><a href="https://blog.infine.com/wp-content/uploads/2012/03/logo_devoxx_fr_negate.jpg" class="fancyboxgroup" rel="gallery-1954" title="Logo Devoxx France"><img decoding="async" src="https://blog.infine.com/wp-content/uploads/2012/03/logo_devoxx_fr_negate-300x154.jpg" alt="Logo Devoxx France" title="Logo Devoxx France" width="300" height="154" class="alignright size-medium wp-image-1984" srcset="https://blog.infine.com/wp-content/uploads/2012/03/logo_devoxx_fr_negate-300x154.jpg 300w, https://blog.infine.com/wp-content/uploads/2012/03/logo_devoxx_fr_negate.jpg 400w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>In Fine, en tant que partenaire de l&#8217;évènement majeur qu&#8217;est Devoxx France, a le plaisir de mettre à disposition une application pour Devoxx France sur Android. Cette première version permet :</p>
<ul>
<li>De mettre en favoris vos sessions préférées</li>
<li>De consulter le planning des sessions, et le détail des speakers</li>
<li>De voir ce qui se passe sur Twitter avec le tag <em>devoxxfr</em></li>
<li>D&#8217;avoir accès au plan des 2 étages de l&#8217;hôtel où se déroulera la conférence</li>
<li>Et d&#8217;autres fonctionnalités&#8230;</li>
</ul>
<p><span id="more-1954"></span></p>
<p>Cette application fonctionne parfaitement sur téléphone , mais n&#8217;est pas encore totalement adaptée pour les tablettes. Dans les semaines qui viennent, nous allons continuer à mettre à jour l&#8217;application pour qu&#8217;elle soit la plus simple à utiliser possible. Voici une prévision des futures évolutions  :</p>
<ul>
<li>Complète adaptation de l&#8217;ergonomie de l&#8217;application aux tablettes</li>
<li>Ajout de la recherche sur les speakers. Actuellement elle ne fonctionne que sur les sessions</li>
<li>Quand on clique sur une salle, afficher la carte de l&#8217;étage correspondant</li>
<li>Pouvoir mettre en favori des speakers</li>
<li>Et bien d&#8217;autres choses qui dépendront des retours que nous aurons</li>
</ul>
<p>Nous sommes très fiers de mettre à disposition cette application. Elle sera mise en open source au moment de la conférence Devoxx France, certainement en licence Apache 2.<br />
Si vous rencontrez des problèmes ou avez des suggestions, écrivez un commentaire ici, ou envoyer un mail au compte indiqué sur la fiche du Google Play Store.</p>
<p>Dans la suite de l&#8217;article, nous allons approfondir l&#8217;aspect technique de l&#8217;application. Si au contraire vous souhaitez directement aller télécharger l&#8217;application, alors il faut aller ici : <a href="https://play.google.com/store/apps/details?id=com.infine.android.devoxx">Play Store</a></p>
<h2>Architecture technique</h2>
<figure id="attachment_1964" aria-describedby="caption-attachment-1964" style="width: 300px" class="wp-caption aligncenter"><a href="https://blog.infine.com/wp-content/uploads/2012/03/archi_appli_android_devoxx1.png" class="fancyboxgroup" rel="gallery-1954"><img decoding="async" class="size-medium wp-image-1964" src="https://blog.infine.com/wp-content/uploads/2012/03/archi_appli_android_devoxx1-300x164.png" alt="Architecture applicative de l'application Devoxx France In Fine" width="300" height="164" srcset="https://blog.infine.com/wp-content/uploads/2012/03/archi_appli_android_devoxx1-300x164.png 300w, https://blog.infine.com/wp-content/uploads/2012/03/archi_appli_android_devoxx1.png 660w" sizes="(max-width: 300px) 100vw, 300px" /></a><figcaption id="caption-attachment-1964" class="wp-caption-text"><em>Architecture applicative de l&#039;application Devoxx France In Fine</em></figcaption></figure>
<p>Comme le montre le schéma ci-dessus, nous n&#8217;avons pas directement connecté l&#8217;application Android avec les API RESTful fournies par le site Devoxx. En effet les temps de réponse sont très variables, certains service ont déjà mis plus de 5 minutes à répondre. D&#8217;autre part, certains service renvoient des données en double ou incomplètes.<br />
Le serveur intérmédiaire permet donc de mieux maîtriser les données. Grâce à Play et à Mongo DB, les temps de réponse sont excellents et la charge que peut encaisser le serveur est bien au dessus de ce que nous atteindrons. Un test JMeter a mesuré que le serveur pouvait encaisser 300 requêtes par secondes. La plupart des requêtes répondent en moins de 0.1 seconde. Nous estimons que le serveur aurait à supporter, au maximum de son activité, 25 requêtes par minute</p><p>The post <a href="https://blog.infine.com/lapplication-devoxx-france-din-fine-est-disponible-sur-le-google-play-store-1954">L’application Devoxx France d’In Fine est disponible sur le Google Play Store</a> first appeared on <a href="https://blog.infine.com">In Fine - Le Blog</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.infine.com/lapplication-devoxx-france-din-fine-est-disponible-sur-le-google-play-store-1954/feed</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Tomcat 6 &#8211; JNDI &#8211; password crypté et pool de connexion V7</title>
		<link>https://blog.infine.com/tomcat-6-jndi-password-crypte-et-pool-de-connexion-v7-1275?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tomcat-6-jndi-password-crypte-et-pool-de-connexion-v7</link>
					<comments>https://blog.infine.com/tomcat-6-jndi-password-crypte-et-pool-de-connexion-v7-1275#respond</comments>
		
		<dc:creator><![CDATA[Christian Nguyen Van Than]]></dc:creator>
		<pubDate>Thu, 02 Feb 2012 09:00:11 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[jndi]]></category>
		<category><![CDATA[pool]]></category>
		<category><![CDATA[tomcat]]></category>
		<guid isPermaLink="false">https://blog.infine.com/?p=1275</guid>

					<description><![CDATA[<p><span class="rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Temps de lecture : </span> <span class="rt-time">3</span> <span class="rt-label rt-postfix">min.</span></span> Cet article est destiné à ceux qui ont la &#8216;chance&#8217; d&#8217;avoir Tomcat 6 comme serveur pour leurs applications et qui doivent paramétrer le pool de connexions par JNDI. Voici un petit article issu d&#8217;une demande d&#8217;un client. Le client : C&#8217;est bien la configuration par JNDI, ça serait mieux si on ne voyait pas le &#8230;</p>
<p>The post <a href="https://blog.infine.com/tomcat-6-jndi-password-crypte-et-pool-de-connexion-v7-1275">Tomcat 6 – JNDI – password crypté et pool de connexion V7</a> first appeared on <a href="https://blog.infine.com">In Fine - Le Blog</a>.</p>]]></description>
										<content:encoded><![CDATA[<span class="rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Temps de lecture : </span> <span class="rt-time">3</span> <span class="rt-label rt-postfix">min.</span></span><p>Cet article est destiné à ceux qui ont la &#8216;chance&#8217; d&#8217;avoir Tomcat 6 comme serveur pour leurs applications et qui doivent paramétrer le pool de connexions par JNDI.</p>
<p>Voici un petit article issu d&#8217;une demande d&#8217;un client.</p>
<p><strong><em>Le client</em></strong> : <em>C&#8217;est bien la configuration par JNDI, ça serait mieux si on ne voyait pas le mot de passe en clair <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /> &#8230;</em></p>
<p><em><strong>Moi</strong>: No problem, everything is possible (enfin je crois) &#8230;</em></p>
<p>Effectivement c&#8217;est possible. D&#8217;après la documentation, il suffit d&#8217;implémenter une classe de type &#8216;factory&#8217; pour instancier les connexions avec la base de données.</p>
<p>Dans cet article, vous verrez comment crypter facilement un mot de passe ou autre mais aussi comment remplacer le pool de connexion DBCP  par le pool de connexion de Tomcat 7 (plus performant à  mon goût).</p>
<p>Tout ceci se fait en 3 étapes :</p>
<ul>
<li>Codage d&#8217;une classe &#8216;Factory&#8217;</li>
<li>Configuration de la ressource JNDI</li>
<li>Copier les jar dans le répertoire lib de Tomcat</li>
</ul>
<p><span id="more-1275"></span></p>
<p>Le processus de cryptage ne sera pas détaillé ici.<br />
Pour plus d&#8217;information, vous avez une classe &#8220;EncryptHelper&#8221; dans les sources (voir à la fin).</p>
<ul></ul>
<h2>1° La classe Factory</h2>
<p>Ici j&#8217;utilise le pool de connexion de Tomcat 7 :</p>
<pre class="brush: java; title: ; notranslate">
public class Tomcat7EncryptedFactory extends org.apache.tomcat.jdbc.pool.DataSourceFactory implements SecuredFactory{

	@SuppressWarnings(&quot;rawtypes&quot;)
	@Override
	public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable environment) throws Exception {
		Object o = super.getObjectInstance(obj, name, nameCtx, environment);
		if (o != null &amp;&amp; o instanceof org.apache.tomcat.jdbc.pool.DataSource) {
			org.apache.tomcat.jdbc.pool.DataSource ds = (org.apache.tomcat.jdbc.pool.DataSource) o;
			// recuperation du login et mot de passe cryptes
			String cryptedUsername = ds.getUsername();
			String cryptedPassword = ds.getDbProperties().getProperty(&quot;password&quot;);
			// on decrypte le password
			if (cryptedPassword != null &amp;&amp; cryptedPassword.length() &gt; 0) {
				String pwd = EncryptHelper.decryptData(secretKeyPassword, cryptedPassword);
				ds.setPassword(pwd);
			}
			// on decrypte le login
			if (cryptedUsername != null &amp;&amp; cryptedUsername.length() &gt; 0) {
				String username = EncryptHelper.decryptData(secretKeyUser, cryptedUsername);
				ds.setUsername(username);
			}
			// on set la taille initiale avec le minimum idle
			// on doit laisser le initialSize a 0 car il ne faut pas cree de connexion tout de suite car on a les identifiants cryptes.
			int minIdleSize = ds.getMinIdle();
			ds.setInitialSize(minIdleSize);
			ds.setConnectionProperties(ds.getConnectionProperties());

			// on ferme le pool deja parametre
			ds.close();
			// on recree le pool avec les nouveaux parametres
			ds.createPool();
			System.out.println(&quot;Initialisation de la datasource JNDI : OK&quot;);
			return ds;
		} else {
			System.out.println(&quot;Initialisation de la datasource JNDI : KO&quot;);
			return null;
		}
	}
}
</pre>
<p>Juste que la rien de difficile ^_^</p>
<h2 style="font-size: 1.5em">2° Configuration JNDI</h2>
<p>Extrait du fichier de configuration des ressources de Tomcat 6 (conf/context.xml)</p>
<div><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace;line-height: 18px">&lt;Resource name=&#8221;jdbc/mydatabase&#8221;</span></div>
<pre>    auth="Container" type="javax.sql.DataSource"
    factory="fr.cnvt.tomcat.Tomcat7EncryptedFactory"
    username="sD20tsCeFQPP3HuQV17yXw=="
    password="LoPCUiDWD47S6wIOTZWvBX7X9XTLt2vS9Sv52csoEGo="
    driverClassName="my.driver.class"
    url="my.jdbc.url"
    initialSize="0" maxActive="20" minIdle="5" maxIdle="10"
    validationQuery="SELECT 1 FROM Dual" validationQueryTimeout="300"
    maxWait="30000"
    removeAbandoned="true" removeAbandonedTimeout="600" logAbandoned="true"
    timeBetweenEvictionRunsMillis="20000"
    testWhileIdle="true"
    connectionProperties="CHARSET=utf8;" /&gt;</pre>
<p>Comme vous pouvez le voir, le login (username) et le mot de passe (password) sont cryptés.</p>
<p>Vous pouvez avoir le même login et mot de passe (c&#8217;est bizarre comme c&#8217;est fréquent&#8230;) , les 2 chaines cryptés seront différentes (normal j&#8217;utilise 2 clés de cryptage différentes ^_^)</p>
<h2>3° Librairies dans Tomcat</h2>
<p>Dernières étapes, il suffit de copier les fichiers tomcat-datasource-factory-1.0.0.jar et tomcat-jdbc-7.0.22.jar(dans le répertoire lib du zip) dans le répertoire &#8220;lib&#8221; de Tomcat 6.</p>
<p>Voila en 3 copié-collé, vous avez un pool de connexion sans mot de passe en clair ^_^</p>
<p>Pour générer vos propres login et password cryptés, il suffit d&#8217;utiliser la classe EncryptHelper comme ceci:</p>
<pre class="brush: java; title: ; notranslate">
	@Test
	public void generateEncryptedValues(){
		String login = &quot;monsupertest&quot;;
		String password = &quot;monsupertestaussi&quot;;
		String cryptedLogin = EncryptHelper.encryptData(SecuredFactory.secretKeyUser, login);
		String cryptedPassword = EncryptHelper.encryptData(SecuredFactory.secretKeyPassword, password);
		String decryptedLogin = EncryptHelper.decryptData(SecuredFactory.secretKeyUser, cryptedLogin);
		String decryptedPassword = EncryptHelper.decryptData(SecuredFactory.secretKeyPassword, cryptedPassword);
		assertEquals(login, decryptedLogin);
		assertEquals(password, decryptedPassword);
		System.out.println(&quot;Login crypte : &quot; + cryptedLogin);
		System.out.println(&quot;Mot de passe crypte : &quot; + cryptedPassword);
	}
</pre>
<p>Pour les curieux, le fichier zip contient également un pool DBCP et C3P0 qui gèrent aussi le login et mot de passe cryptés. Les clés de cryptages sont dans l&#8217;interface SecuredFactory.</p>
<p>Enjoy <img src="https://s.w.org/images/core/emoji/15.0.3/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Les sources sont disponibles <a href="https://github.com/nguyenvanthan/Tomcat-Datasource-Factory" target="_blank">ici</a></p><p>The post <a href="https://blog.infine.com/tomcat-6-jndi-password-crypte-et-pool-de-connexion-v7-1275">Tomcat 6 – JNDI – password crypté et pool de connexion V7</a> first appeared on <a href="https://blog.infine.com">In Fine - Le Blog</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.infine.com/tomcat-6-jndi-password-crypte-et-pool-de-connexion-v7-1275/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Devoxx 2011 &#8211; Comparatif de performances des frameworks web Java et plus encore &#8230;</title>
		<link>https://blog.infine.com/devoxx-2011-comparatif-de-performances-des-frameworks-web-java-et-plus-encore-1411?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=devoxx-2011-comparatif-de-performances-des-frameworks-web-java-et-plus-encore</link>
					<comments>https://blog.infine.com/devoxx-2011-comparatif-de-performances-des-frameworks-web-java-et-plus-encore-1411#respond</comments>
		
		<dc:creator><![CDATA[Christian Nguyen Van Than]]></dc:creator>
		<pubDate>Thu, 26 Jan 2012 11:00:56 +0000</pubDate>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[devoxx]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[GWT]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[Spring MVC]]></category>
		<category><![CDATA[web]]></category>
		<guid isPermaLink="false">https://blog.infine.com/?p=1411</guid>

					<description><![CDATA[<p><span class="rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Temps de lecture : </span> <span class="rt-time">3</span> <span class="rt-label rt-postfix">min.</span></span> Comparatifs de frameworks web à Devoxx 2011 Cet article a pour but de présenter brièvement la présentation de Stijn Van den Enden, lors du Devoxx 2011, sur les performances brutes de plusieurs frameworks connus et de partager quelques impressions sur ce sujet. Dans la première partie, il présente la méthodologie de tests ainsi que les &#8230;</p>
<p>The post <a href="https://blog.infine.com/devoxx-2011-comparatif-de-performances-des-frameworks-web-java-et-plus-encore-1411">Devoxx 2011 – Comparatif de performances des frameworks web Java et plus encore …</a> first appeared on <a href="https://blog.infine.com">In Fine - Le Blog</a>.</p>]]></description>
										<content:encoded><![CDATA[<span class="rt-reading-time" style="display: block;"><span class="rt-label rt-prefix">Temps de lecture : </span> <span class="rt-time">3</span> <span class="rt-label rt-postfix">min.</span></span><h1>Comparatifs de frameworks web à Devoxx 2011</h1>
<p>Cet article a pour but de présenter brièvement la présentation de  Stijn Van den Enden, lors du Devoxx 2011, sur les performances brutes de  plusieurs frameworks connus et de partager quelques impressions sur ce  sujet.</p>
<p>Dans la première partie, il présente la méthodologie de tests ainsi que les outils : le coté test.<br />
Dans la seconde partie, il nous montre les résultats qu&#8217;il a obtenu : le coté performance.<br />
Les slides de la présentation sont disponibles <a href="http://prezi.com/dr3on1qcajzw/www-world-wide-wait-devoxx-edition/">ici<br />
</a><br />
En résumé, on y voit la mise en place de la plateforme de tests ainsi que les outils utilisés.</p>
<p><span id="more-1411"></span></p>
<p><span style="text-decoration: underline">Plateforme de tests :</span></p>
<p><a href="https://blog.infine.com/wp-content/uploads/2011/11/plateforme-de-test1.png" class="fancyboxgroup" rel="gallery-1411"><img fetchpriority="high" decoding="async" class="alignnone size-large wp-image-1450" src="https://blog.infine.com/wp-content/uploads/2011/11/plateforme-de-test1-1024x646.png" alt="plateforme de test" width="807" height="509" srcset="https://blog.infine.com/wp-content/uploads/2011/11/plateforme-de-test1-1024x646.png 1024w, https://blog.infine.com/wp-content/uploads/2011/11/plateforme-de-test1-300x189.png 300w, https://blog.infine.com/wp-content/uploads/2011/11/plateforme-de-test1.png 1439w" sizes="(max-width: 807px) 100vw, 807px" /></a></p>
<p><span style="text-decoration: underline">Conclusion :</span></p>
<p><a href="https://blog.infine.com/wp-content/uploads/2011/11/conclusion.png" class="fancyboxgroup" rel="gallery-1411"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-1449" src="https://blog.infine.com/wp-content/uploads/2011/11/conclusion-1024x283.png" alt="conclusion des tests" width="778" height="215" srcset="https://blog.infine.com/wp-content/uploads/2011/11/conclusion-1024x283.png 1024w, https://blog.infine.com/wp-content/uploads/2011/11/conclusion-300x82.png 300w, https://blog.infine.com/wp-content/uploads/2011/11/conclusion.png 1172w" sizes="(max-width: 778px) 100vw, 778px" /></a></p>
<p>Sa conclusion étant qu&#8217;en terme de performance brute, on a :</p>
<ol>
<li>GWT</li>
<li>Spring MVC</li>
<li>JSF 2.1.2 (Implementation Mojarra) ou Wicket</li>
<li>MyFaces (n&#8217;apparait pas dans le slide)</li>
</ol>
<p>Dans sa conclusion, qui n&#8217;apparait pas dans les slides, il dit aussi que  souvent, ce n&#8217;est pas le framework web qui est la principale cause de  la mauvaise performance d&#8217;une application.<br />
Pendant sa présentation,  il a souligné que le seul framework qui a posé problème est JSF 2  (problème de mémoire, ce qui ne m&#8217;étonne pas).<br />
Enfin, il nous rappelle qu&#8217;il faut aussi penser à la facilité de développement pour garder une bonne productivité.</p>
<h1>Avis personnel</h1>
<p>Pour ma part, la conclusion de Stijn Van den Enden ne doit pas tenir  compte du temps de rendu de la page, sinon Spring MVC serait 1er avec  GWT voire même devant.</p>
<p>Sur le point où il faut privilégier la  facilité de développement, on regrettera l&#8217;absence du comparatif des  frameworks Grails et Play qui sont tous deux excellents sur ce point.</p>
<p>Si  vous avez envie de changer de framework, d&#8217;après plusieurs  présentations vu sur le même sujet (par exemple l&#8217;article de Peter  Thomas), il faut se fixer un prototype de page à faire et si cela vous  parait trop difficile, c&#8217;est que celui-ci n&#8217;est surement pas adapté à  vos besoins.</p>
<p>Personnellement, je me demande pourquoi il y a tant  de personnes qui démarrent un projet encore avec JSF pour le web alors  qu&#8217;il a autant de problèmes de performance et qu&#8217;il est parfois si  compliqué de faire des choses simples avec (exemple pagination coté  serveur&#8230;).</p>
<p>Pour finir, son approche de Spring MVC est  intéressante car elle tend vers une pratique que j&#8217;ai adopté. Pour ma  part, j&#8217;ai abandonné l&#8217;idée que le Java était fait pour le web, car  c&#8217;est loin d&#8217;être le cas. Je préfère juste garder Java pour la partie  serveur et utiliser essentiellement des langages du web pour la vue :  très peu de JSP et EL(Expression Language) avec beaucoup de HTML, CSS et  JQuery (avec des données fournies au format JSON, d&#8217;ailleurs Spring MVC  fait très bien cela).</p>
<p>S&#8217;il fallait choisir un framework pour le  web en ce moment, je prendrai Grails pour un projet &#8216;from scratch&#8217; ou  Spring MVC pour un projet existant. Je n&#8217;ai pas assez d&#8217;expérience sur  GWT mais sa génération du javascript me fait hésiter&#8230; Je garderai dans  les deux cas, JQuery pour les composants riches car il existe  énormément de plugins pour ce framework javascript ou ExtJS ou voir même  du flash (flex).</p>
<p>En ce qui concerne Wicket, sa programmation  ressemble un peu à du Swing (client lourd) qui pourrait dérouter un  développeur web. Tapestry est intéressant mais le temps d&#8217;apprentissage  est assez important.</p>
<h1>Comparatif plus étendu</h1>
<p>Pour ceux qui comme moi ont regretté l&#8217;absence de Grails et Play, voici  un article intéressant avec un comparatif des deux et surtout une légère  &#8216;customisation&#8217; pour gagner en performance.<br />
Notez que l&#8217;utilisation de Japid pour Play booste grandement ses performances et que Netty semble plus rapide que Tomcat.</p>
<p><em>Extrait du site JT Dev (vous pouvez cliquer sur les images pour les agrandir)</em></p>
<p><em><br />
</em></p>
<p><a href="https://blog.infine.com/wp-content/uploads/2011/12/results_numbers.jpg" class="fancyboxgroup" rel="gallery-1411"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1838" src="https://blog.infine.com/wp-content/uploads/2011/12/results_numbers.jpg" alt="" width="511" height="445" srcset="https://blog.infine.com/wp-content/uploads/2011/12/results_numbers.jpg 511w, https://blog.infine.com/wp-content/uploads/2011/12/results_numbers-300x261.jpg 300w" sizes="(max-width: 511px) 100vw, 511px" /></a></p>
<p><a href="https://blog.infine.com/wp-content/uploads/2011/12/conc_users_graph.jpg" class="fancyboxgroup" rel="gallery-1411"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-1839" src="https://blog.infine.com/wp-content/uploads/2011/12/conc_users_graph-1024x615.jpg" alt="" width="1024" height="615" srcset="https://blog.infine.com/wp-content/uploads/2011/12/conc_users_graph-1024x615.jpg 1024w, https://blog.infine.com/wp-content/uploads/2011/12/conc_users_graph-300x180.jpg 300w, https://blog.infine.com/wp-content/uploads/2011/12/conc_users_graph.jpg 1596w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></p>
<p><a href="http://www.jtict.com/blog/rails-wicket-grails-play-lift-jsp/">Plus de détails ici</a></p><p>The post <a href="https://blog.infine.com/devoxx-2011-comparatif-de-performances-des-frameworks-web-java-et-plus-encore-1411">Devoxx 2011 – Comparatif de performances des frameworks web Java et plus encore …</a> first appeared on <a href="https://blog.infine.com">In Fine - Le Blog</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.infine.com/devoxx-2011-comparatif-de-performances-des-frameworks-web-java-et-plus-encore-1411/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
