<?xml version="1.0" encoding="ISO-8859-1"?>
<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>Linux, PHP, MySQL, Windows, C#</title>
	<atom:link href="http://www.massimo-caselli.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.massimo-caselli.com</link>
	<description>Articoli, news e pillole sul mondo LAMP e l&#039;opensource. Pillole di C#</description>
	<lastBuildDate>Thu, 19 Jul 2012 19:51:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Rilasciata ASP.NET MVC 4 Developer Preview</title>
		<link>http://www.massimo-caselli.com/2012/07/19/rilasciata-asp-net-mvc-4-developer-preview/</link>
		<comments>http://www.massimo-caselli.com/2012/07/19/rilasciata-asp-net-mvc-4-developer-preview/#comments</comments>
		<pubDate>Thu, 19 Jul 2012 19:51:41 +0000</pubDate>
		<dc:creator>maxgrante</dc:creator>
				<category><![CDATA[Asp.Net]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://www.massimo-caselli.com/?p=325</guid>
		<description><![CDATA[Non è certo notizia recente, però vale comunque la pena dargli una lettura (in italiano) per capire che la strada di MVC è decisamente quella giusta, già release 3 è stata fantastica, non mi aspetto di meno dalla versione 4. http://www.aspitalia.com/focuson/1247/Rilasciata-ASP.NET-MVC-Developer-Preview.aspx P.S. alla faccia di ZF2 instabile, non documentato e in ritardo colossale&#8230;]]></description>
			<content:encoded><![CDATA[<p>Non è certo notizia recente, però vale comunque la pena dargli una lettura (in italiano) per capire che la strada di MVC è decisamente quella giusta, già release 3 è stata fantastica, non mi aspetto di meno dalla versione 4.</p>
<p><a href="http://www.aspitalia.com/focuson/1247/Rilasciata-ASP.NET-MVC-Developer-Preview.aspx" target="_blank">http://www.aspitalia.com/focuson/1247/Rilasciata-ASP.NET-MVC-Developer-Preview.aspx</a></p>
<p>P.S. alla faccia di ZF2 instabile, non documentato e in ritardo colossale&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.massimo-caselli.com/2012/07/19/rilasciata-asp-net-mvc-4-developer-preview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Benchmark NFS vs CIFS (samba)</title>
		<link>http://www.massimo-caselli.com/2012/06/22/benchmark-nfs-vs-cifs-samba/</link>
		<comments>http://www.massimo-caselli.com/2012/06/22/benchmark-nfs-vs-cifs-samba/#comments</comments>
		<pubDate>Fri, 22 Jun 2012 22:57:16 +0000</pubDate>
		<dc:creator>maxgrante</dc:creator>
				<category><![CDATA[Linux, Opensource]]></category>
		<category><![CDATA[Opensource World]]></category>
		<category><![CDATA[cifs]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[nfs]]></category>
		<category><![CDATA[samba]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.massimo-caselli.com/?p=322</guid>
		<description><![CDATA[Interessante articolo che compara NFS e CIFS in diversi contesti e con diversi sistemi operativi. http://www.hob-techtalk.com/2009/03/09/nfs-vs-cifs-aka-smb La cosa più evidente è la maggiore rapidità di NFS in lettura, mentre CIFS vince in scrittura&#8230; se il mio inglese non mi tradisce]]></description>
			<content:encoded><![CDATA[<p>Interessante articolo che compara NFS e CIFS in diversi contesti e con diversi sistemi operativi.</p>
<p><a href="http://www.hob-techtalk.com/2009/03/09/nfs-vs-cifs-aka-smb" target="_blank">http://www.hob-techtalk.com/2009/03/09/nfs-vs-cifs-aka-smb</a></p>
<p>La cosa più evidente è la <strong>maggiore rapidità di NFS in lettura</strong>, mentre <strong>CIFS vince in scrittura</strong>&#8230; se il mio inglese non mi tradisce <img src='http://www.massimo-caselli.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.massimo-caselli.com/2012/06/22/benchmark-nfs-vs-cifs-samba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asp.NET MVC 4 Tutorial</title>
		<link>http://www.massimo-caselli.com/2012/04/12/asp-net-mvc-4-tutorial/</link>
		<comments>http://www.massimo-caselli.com/2012/04/12/asp-net-mvc-4-tutorial/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 15:32:14 +0000</pubDate>
		<dc:creator>maxgrante</dc:creator>
				<category><![CDATA[Asp.Net]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://www.massimo-caselli.com/?p=319</guid>
		<description><![CDATA[Bellissimo articolo di Microsoft su MVC 4. In particolare ho apprezzato che finalmente in un tutorial loro parlano abbastanza approfonditamente della Model Validation: http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4]]></description>
			<content:encoded><![CDATA[<p>Bellissimo articolo di Microsoft su MVC 4. In particolare ho apprezzato che finalmente in un tutorial loro parlano abbastanza approfonditamente della Model Validation:</p>
<p><a href="http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4" target="_blank">http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/intro-to-aspnet-mvc-4</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.massimo-caselli.com/2012/04/12/asp-net-mvc-4-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP 5.4, Zend Framework 2, Zend Studio 9</title>
		<link>http://www.massimo-caselli.com/2012/03/08/php-5-4-zend-framework-2-zend-studio-9/</link>
		<comments>http://www.massimo-caselli.com/2012/03/08/php-5-4-zend-framework-2-zend-studio-9/#comments</comments>
		<pubDate>Thu, 08 Mar 2012 13:09:28 +0000</pubDate>
		<dc:creator>maxgrante</dc:creator>
				<category><![CDATA[PHP il turbo nel web]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[php 5.4]]></category>
		<category><![CDATA[zedn studio]]></category>
		<category><![CDATA[zend framenwork]]></category>

		<guid isPermaLink="false">http://www.massimo-caselli.com/?p=314</guid>
		<description><![CDATA[Splendido articolo di un collega che spiega i tanti annosi problemi di php da quando la Zend sta lentamente deragliando verso soluzioni sempre più complesse per avvicinare un linguaggio NATO SEMPLICE a linguaggi più complessi come Java o C#. Il paradosso tra un po&#8217; di anni potrebbe essere&#8230; php è nato semplice e morto complesso. [...]]]></description>
			<content:encoded><![CDATA[<p>Splendido articolo di un collega che spiega i tanti annosi <strong>problemi di <a target="_blank" href="http://www.php.net">php</a> da quando la Zend sta lentamente deragliando verso soluzioni sempre più complesse</strong> per avvicinare un linguaggio NATO SEMPLICE a linguaggi più complessi come Java o C#.</p>
<p>Il paradosso tra un po&#8217; di anni potrebbe essere&#8230; <strong><a target="_blank" href="http://www.php.net">php</a> è nato semplice e morto complesso.</strong></p>
<p><strong><a href="http://fabrizioballiano.net/2012/03/08/php-5-4-zend-framework-2-zend-studio-9/" target="_blank">http://fabrizioballiano.net/2012/03/08/php-5-4-zend-framework-2-zend-studio-9/</a><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.massimo-caselli.com/2012/03/08/php-5-4-zend-framework-2-zend-studio-9/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Creare un form con Zend Form, decorator pattern e display group con esempio completo form di registrazione utente</title>
		<link>http://www.massimo-caselli.com/2012/01/16/creare-un-form-con-zend-form-decorator-pattern-e-display-group-con-esempio-completo-form-di-registrazione-utente/</link>
		<comments>http://www.massimo-caselli.com/2012/01/16/creare-un-form-con-zend-form-decorator-pattern-e-display-group-con-esempio-completo-form-di-registrazione-utente/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 15:16:07 +0000</pubDate>
		<dc:creator>maxgrante</dc:creator>
				<category><![CDATA[PHP il turbo nel web]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[decorators]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[zend form]]></category>

		<guid isPermaLink="false">http://www.massimo-caselli.com/?p=311</guid>
		<description><![CDATA[Rilancio l&#8217;articolo di Sergio che nel suo blog spiega come creare un form con Zend Form, decorator pattern e display group con esempio completo form di registrazione utente. Tale tecnica consente di non dover creare una view-scripts per ogni form se a priori si sa già come deve essere generato il codice html dei form. http://razorblade.netsons.org/creare-un-form-con-zend-form-decorator-pattern-e-display-group-con-esempio-completo-form-di-registrazione-utente/]]></description>
			<content:encoded><![CDATA[<p>Rilancio l&#8217;articolo di Sergio che nel suo blog spiega come <strong>creare un form con Zend Form, decorator pattern e display group con esempio completo form di registrazione utente.</strong></p>
<p>Tale tecnica consente di non dover creare una view-scripts per ogni form se a priori si sa già come deve essere generato il codice html dei form.</p>
<p><a href="http://razorblade.netsons.org/creare-un-form-con-zend-form-decorator-pattern-e-display-group-con-esempio-completo-form-di-registrazione-utente/" target="_blank">http://razorblade.netsons.org/creare-un-form-con-zend-form-decorator-pattern-e-display-group-con-esempio-completo-form-di-registrazione-utente/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.massimo-caselli.com/2012/01/16/creare-un-form-con-zend-form-decorator-pattern-e-display-group-con-esempio-completo-form-di-registrazione-utente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSH tunnelling RDP con Putty su Windows 7</title>
		<link>http://www.massimo-caselli.com/2012/01/14/ssh-tunnelling-rdp-con-putty-su-windows-7/</link>
		<comments>http://www.massimo-caselli.com/2012/01/14/ssh-tunnelling-rdp-con-putty-su-windows-7/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 14:49:33 +0000</pubDate>
		<dc:creator>maxgrante</dc:creator>
				<category><![CDATA[Mondo informatica]]></category>
		<category><![CDATA[putty]]></category>
		<category><![CDATA[rdp]]></category>
		<category><![CDATA[ssh rdp]]></category>
		<category><![CDATA[tunnelling ssh]]></category>

		<guid isPermaLink="false">http://www.massimo-caselli.com/?p=305</guid>
		<description><![CDATA[Ecco qua l&#8217;unico articolo che ho trovato in un&#8217;ora che realmente funziona: http://blog.spencerkellis.net/2010/06/tunneling-remote-desktop-over-ssh-in-windows-7/ In particolare tutti gli articoli in giro spiegano di usare la porta locale 3390 che viene bloccata da Windows sa il signore perché, basta usare la 3391 e buonanotte!]]></description>
			<content:encoded><![CDATA[<p>Ecco qua l&#8217;unico articolo che ho trovato in un&#8217;ora che realmente funziona:</p>
<p><a href="http://blog.spencerkellis.net/2010/06/tunneling-remote-desktop-over-ssh-in-windows-7/" target="_blank">http://blog.spencerkellis.net/2010/06/tunneling-remote-desktop-over-ssh-in-windows-7/</a></p>
<p>In particolare tutti gli articoli in giro spiegano di usare la porta locale 3390 che viene bloccata da Windows sa il signore perché, <strong>basta usare la 3391</strong> e buonanotte!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.massimo-caselli.com/2012/01/14/ssh-tunnelling-rdp-con-putty-su-windows-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Benchmark MySQL Connector NET Vs DevArt DotConnect For MySQL</title>
		<link>http://www.massimo-caselli.com/2011/12/30/benchmark-mysql-connector-net-vs-devart-dotconnect-for-mysql/</link>
		<comments>http://www.massimo-caselli.com/2011/12/30/benchmark-mysql-connector-net-vs-devart-dotconnect-for-mysql/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 17:23:07 +0000</pubDate>
		<dc:creator>maxgrante</dc:creator>
				<category><![CDATA[Asp.Net]]></category>
		<category><![CDATA[Linq]]></category>
		<category><![CDATA[benchmark]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[devart]]></category>
		<category><![CDATA[dotconnect]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysql connector net]]></category>

		<guid isPermaLink="false">http://www.massimo-caselli.com/?p=301</guid>
		<description><![CDATA[Era da un po&#8217; di tempo che mi chiedevo se l&#8217;implementazione di Linq To SQL per mysql di DevArt fosse più efficiente o meno dell&#8217;alternativa di casa mysql. Ho quindi deciso di farmi in casa un benchmark che, sebbene effettuato in modo piuttosto grossolano e rapido ha dato dei risultati abbastanza netti. Il test è [...]]]></description>
			<content:encoded><![CDATA[<p>Era da un po&#8217; di tempo che mi chiedevo se l&#8217;implementazione di Linq To SQL per <a target="_blank" href="http://www.mysql.com">mysql</a> di <a title="http://www.devart.com/dotconnect/mysql/" href="http://www.devart.com/dotconnect/mysql/" target="_blank">DevArt</a> fosse più efficiente o meno dell&#8217;alternativa di casa <a title="http://www.mysql.com/downloads/connector/net/" href="http://www.mysql.com/downloads/connector/net/" target="_blank"><a target="_blank" href="http://www.mysql.com">mysql</a></a>.</p>
<p>Ho quindi deciso di farmi in casa un <strong>benchmark </strong>che, sebbene effettuato in modo piuttosto grossolano e rapido ha dato dei <strong>risultati abbastanza netti</strong>.<br />
Il test è stato eseguito con le seguenti condizioni (da qui capirete che è abbastanza spartano come benchmark):</p>
<ul>
<li>Windows 7 64 BIT</li>
<li><a target="_blank" href="http://www.mysql.com">mysql</a> 5.1.x 64 BIT per Windows</li>
<li>.NET Framework 4.0</li>
<li>Utilizzato Cassini al posto di IIS</li>
<li>DevArt versione 6.30.185.0</li>
<li><a target="_blank" href="http://www.mysql.com">mysql</a> Connector NET versione 6.4.4</li>
</ul>
<p>In pratica ho lanciato <strong>due procedure separate con la mia macchina nelle stesse condizioni di lavoro</strong> e a distanza di pochissimo tempo, quindi applicativi aperti, musica che suona e via discorrendo <img src='http://www.massimo-caselli.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Il test era suddiviso in due componenti, <strong>l&#8217;esecuzione di 1.000 query su una tabella con campo indicizzato passandogli un valore randomico</strong> e <strong>l&#8217;inserimento di 1.000 record sempre con valori randomici</strong>.<br />
In particolare <strong>l&#8217;inserimento prevedeva il COMMIT ad ogni STATEMENT</strong> perché altrimenti non si notava alcuna differenza di performance tra i due drivers.</p>
<p>Di seguito i risultati nudi e crudi:</p>
<p><strong><a target="_blank" href="http://www.mysql.com">mysql</a> (utilizzo 27%/30% CPU poi sceso in insert a 13%/15%) 6.4.4</strong></p>
<ul>
<li>Data avvio select: 30/12/2011 18:12:03</li>
<li>Data fine select: 30/12/2011 18:12:31</li>
<li>Data avvio insert: 30/12/2011 18:12:31</li>
<li>Data fine insert: 30/12/2011 18:12:43</li>
</ul>
<p><strong>DevArt (utilizzo 27%/31% CPU in insert a 13%/17%) 6.30.185.0</strong></p>
<ul>
<li>Data avvio select: 30/12/2011 18:13:21</li>
<li>Data fine select: 30/12/2011 18:13:38</li>
<li>Data avvio insert: 30/12/2011 18:13:38</li>
<li>Data fine insert: 30/12/2011 18:13:44</li>
</ul>
<p>Tempo SELECT <strong><em>MySQL: 28 secondi</em></strong><br />
Tempo SELECT <strong><em>DevArt: 17 secondi</em></strong></p>
<p>Tempo INSERT <strong><em>MySQL: 12 secondi</em></strong><br />
Tempo INSERT <strong><em>DevArt: 6 secondi</em></strong></p>
<p>Direi che è abbastanza chiaro che, a parte una <strong><em>lieve differenza nell&#8217;utilizzo della CPU (in favore del driver <a target="_blank" href="http://www.mysql.com">mysql</a> Connector NET meno esoso)</em></strong>, la velocità di esecuzione sia delle SELECT che delle INSERT è <strong>nettamente in favore di DevArt</strong>.</p>
<p>Morale, bene così, almeno non ho toppato driver per un importante progetto che sto sviluppando! <img src='http://www.massimo-caselli.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.massimo-caselli.com/2011/12/30/benchmark-mysql-connector-net-vs-devart-dotconnect-for-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Attivata seconda istanza di Dogs On Web, il canile online</title>
		<link>http://www.massimo-caselli.com/2011/12/10/attivata-seconda-istanza-di-dogs-on-web-il-canile-online/</link>
		<comments>http://www.massimo-caselli.com/2011/12/10/attivata-seconda-istanza-di-dogs-on-web-il-canile-online/#comments</comments>
		<pubDate>Sat, 10 Dec 2011 19:37:52 +0000</pubDate>
		<dc:creator>maxgrante</dc:creator>
				<category><![CDATA[Asp.Net]]></category>
		<category><![CDATA[Linq]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Opensource World]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[dogsonweb]]></category>
		<category><![CDATA[mvc2]]></category>
		<category><![CDATA[opensource]]></category>

		<guid isPermaLink="false">http://www.massimo-caselli.com/?p=294</guid>
		<description><![CDATA[Tempo fa mi è stato chiesto se potevo realizzare il sito web per un canile sardo, nello specifico la sezione di Carbonia della Lega Nazionale per la Difesa del Cane. All&#8217;epoca oltre ad aver accettato ho avuto un&#8217;idea semplice ma credo funzionale, ovvero realizzare una piccola applicazioncina web che consenta la messa online di potenzialmente [...]]]></description>
			<content:encoded><![CDATA[<p>Tempo fa mi è stato chiesto se potevo <strong>realizzare il sito web per un canile</strong> sardo, nello specifico la sezione di Carbonia della Lega Nazionale per la Difesa del Cane.<br />
All&#8217;epoca oltre ad aver accettato ho avuto un&#8217;idea semplice ma credo funzionale, ovvero <strong>realizzare una piccola applicazioncina web che consenta la messa online di potenzialmente infiniti siti web per canili</strong>.</p>
<p>Ne ho quindi realizzata una <strong>prima release che si trova su Source Forge completa di codici sorgenti e di accesso SVN</strong>.</p>
<p>E&#8217; ancora embrionale e sicuramente poco sviluppata, però al momento serve già con successo i seguenti due siti web:</p>
<ul>
<li><a title="www.legadelcane-carbonia.org" href="http://www.legadelcane-carbonia.org" target="_blank">www.legadelcane-carbonia.org</a></li>
<li><a title="www.legadelcane-porto-torres.org" href="http://www.legadelcane-porto-torres.org" target="_blank">www.legadelcane-porto-torres.org </a></li>
</ul>
<p>Il progetto <a title="http://sourceforge.net/projects/dogsonweb/" href="http://sourceforge.net/projects/dogsonweb/" target="_blank">DogsOnWeb</a> è in ASP.NET e si basa su MVC 2.</p>
<p>Chiunque volesse <strong>contribuire allo sviluppo del progetto sarà il benvenuto</strong>.<br />
Attualmente non c&#8217;è alcun sistema di installazione, pertanto nel caso fatemi sapere e contattatemi via mail a: <a title="info@massimo-caselli.com" href="mailto:info@massimo-caselli.com" target="_blank">info@massimo-caselli.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.massimo-caselli.com/2011/12/10/attivata-seconda-istanza-di-dogs-on-web-il-canile-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vmware server 2.0 su Windows 7 64 bit, rete NAT not available</title>
		<link>http://www.massimo-caselli.com/2011/06/06/vmware-server-2-0-su-windows-7-64-bit-rete-nat-not-available/</link>
		<comments>http://www.massimo-caselli.com/2011/06/06/vmware-server-2-0-su-windows-7-64-bit-rete-nat-not-available/#comments</comments>
		<pubDate>Mon, 06 Jun 2011 22:14:29 +0000</pubDate>
		<dc:creator>maxgrante</dc:creator>
				<category><![CDATA[Mondo informatica]]></category>

		<guid isPermaLink="false">http://www.massimo-caselli.com/?p=290</guid>
		<description><![CDATA[Se vi capitasse così, da un momento all&#8217;altro che le vostre macchine virtuali su rete NAT abbiano la rete NAT not available (ovviamente così, gratis e dall&#8217;oggi al domani), non scervellatevi in ipotetiche soluzioni strane. Spegnete la macchina Eliminate l&#8217;interfaccia di rete NAT Create una nuova interfaccia legata alla VMnet8 (di solito è questa che [...]]]></description>
			<content:encoded><![CDATA[<p>Se vi capitasse così, da un momento all&#8217;altro che le vostre macchine virtuali su rete <strong>NAT abbiano la rete NAT not available</strong> (ovviamente così, gratis e dall&#8217;oggi al domani), non scervellatevi in ipotetiche soluzioni strane.</p>
<ol>
<li>Spegnete la macchina</li>
<li>Eliminate l&#8217;interfaccia di rete NAT</li>
<li><strong>Create una nuova interfaccia legata alla VMnet8</strong> (di solito è questa che viene identificata per la rete NAT)</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.massimo-caselli.com/2011/06/06/vmware-server-2-0-su-windows-7-64-bit-rete-nat-not-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework e la sua (pessima) implementazione del pattern MVC</title>
		<link>http://www.massimo-caselli.com/2011/05/10/zend-framework-e-la-sua-pessima-implementazione-del-pattern-mvc/</link>
		<comments>http://www.massimo-caselli.com/2011/05/10/zend-framework-e-la-sua-pessima-implementazione-del-pattern-mvc/#comments</comments>
		<pubDate>Tue, 10 May 2011 15:37:30 +0000</pubDate>
		<dc:creator>maxgrante</dc:creator>
				<category><![CDATA[PHP il turbo nel web]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[zend framework mvc]]></category>

		<guid isPermaLink="false">http://www.massimo-caselli.com/?p=288</guid>
		<description><![CDATA[Dopo aver sperimentato l&#8217;utilizzo di Zend Framework in piccoli progettini, dapprima come framework puro (tipo pear per intenderci) e in un paio di occasioni con l&#8217;utilizzo della sua gestione del pattern MVC, mi ero fatto l&#8217;idea che: Come framework in sé non sia per niente male L&#8217;implementazione dell&#8217;MVC fosse buona, non eccezionale ma buona Bene, [...]]]></description>
			<content:encoded><![CDATA[<p>Dopo aver sperimentato l&#8217;utilizzo di Zend Framework in piccoli progettini, dapprima come framework puro (tipo pear per intenderci) e in un paio di occasioni con l&#8217;utilizzo della sua gestione del pattern MVC, mi ero fatto l&#8217;idea che:</p>
<ul>
<li>Come framework in sé non sia per niente male</li>
<li>L&#8217;implementazione dell&#8217;MVC fosse buona, non eccezionale ma buona</li>
</ul>
<p>Bene, sto lavorando da un paio di settimane su un progetto complesso e sto utilizzando <strong>Zend Framework nella sua piena implementazione dell&#8217;MVC</strong>.<br />
Per cominciare (ma questo lo avevo già deciso sulla base delle precedenti esperienze), ho preferito evitare l&#8217;utilizzo di Zend_DB e della modalità che suggerisce la Zend stessa nei suoi tutorial per la gestione del model.<br />
La motivazione era dovuta al fatto che non amavo la libreria in generale, ma soprattutto mi è sempre sembrato che la <strong>definizione del model richiedesse un overhead di sviluppo eccessivo</strong>.<br />
Morale, il model l&#8217;ho gestito con classi scritte da me direttamente e utilizzando il caro, vecchio e affidabile adodb.</p>
<p>Sono però rimasto esterrefatto dalla <strong>terribile applicazione del pattern MVC</strong> per le seguenti cose, <strong>in ordine di gravità</strong>:</p>
<ol>
<li><strong><em>Mischione logico tra View e Controller/BusinessLogic nella definizione delle form (Zend_Form)</em></strong></li>
<li><strong><em>Assenza di parametri nelle action</em></strong></li>
<li><strong><em>Action i quali nomi dei metodi devono essere tutti minuscoli, tutti attaccati e con alla fine &#8220;Action&#8221;</em></strong></li>
</ol>
<p><strong>Vado a spiegarmi meglio, per il punto 1:</strong><br />
La Zend suggerisce/propina l&#8217;utilizzo di Zend Form. Le Zend form di fatto definiscono i campi del form, le validazioni e via discorrendo. Fin qui direi tutto sommato abbastanza bene, è sufficiente definire una classe ApplicationForm che estenda Zend_Form. All&#8217;interno dell&#8217;init() si aggiungono tutti i vari elementi con le loro particolarità (ovviamente alcune cose specifiche possono essere inserite sia a livello di metodi aggiuntivi della classe che direttamente da controller).<br />
Peccato però che all&#8217;interno di questa definizione di campi, oltre a cose sensate come le validazioni, il required etc&#8230; sia necessario inserire label, id, classi css, ovvero tutti aspetti sostanzialmente relativi alla parte di view.<br />
Infatti da controller si istanzia la classe, tipo $form = new ApplicationForm(); e $form si passa alla view direttamente. La view non farà altro che renderizzare la form.<br />
Questo significa che se un grafico/htmlista deve modificare qualcosa NON lo può fare dalla view, ma deve chiedere (o fare direttamente) al programmatore di agire sulla classe ApplicationForm().</p>
<p>@Zend: ma la separazione dei livelli dove la lasciamo?</p>
<p>Al di là di aspetti puristici e filosofici, questo rappresenta UN PROBLEMA CONCRETO.</p>
<p><strong>Punto 2:</strong><br />
Il minimo che potevo aspettarmi (ovviamente lo avevo già notato anche in progetti più piccoli ma davo per scontato esistesse qualche variante per gestirlo) è che i metodi delle action potessero/dovessero essere parametrici.<br />
Invece niente, il metodo detailsAction() che vorrebbe molto probabilmente l&#8217;id da cui attingere i dati, non può essere detailsAction($id), ma $id va recuperato in get/post come si fa da 100 anni.<br />
Ho trovato qualche variante in giro di terze parti per avere i parametri nelle action ma a parte che non funzionavano benissimo, mi pare paradossale che un framework di X Mbyte non supporti i parametri nelle action della sua versione dell&#8217;MVC.</p>
<p><strong>Punto 3:</strong><br />
Se richiamo ad esempio: http://www.massimo-caselli.com/Article/GetArticleDetails sono costretto a nominare la action in: public function getarticledetailsAction().<br />
E&#8217; il minore dei mali, però insomma anche la leggebilità del codice non è che sia poi una cosa troppo secondaria.</p>
<p>Per farla comunque breve devo dire che in questo caso, <strong>Microsoft batte Zend nell&#8217;implementazione dell&#8217;MVC 10 a 0. <img src='http://www.massimo-caselli.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.massimo-caselli.com/2011/05/10/zend-framework-e-la-sua-pessima-implementazione-del-pattern-mvc/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
