<?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>Democratic ambitions... and software dev juices &#187; design pattern</title>
	<atom:link href="http://www.alessandro.vincelli.name/tag/design-pattern/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.alessandro.vincelli.name</link>
	<description>by alessandro vincelli</description>
	<lastBuildDate>Mon, 09 Jan 2012 10:02:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>Apache Cocoon e il Design Pattern MVC (2)</title>
		<link>http://www.alessandro.vincelli.name/2007/12/20/apache-cocoon-e-il-design-pattern-mvc-2/</link>
		<comments>http://www.alessandro.vincelli.name/2007/12/20/apache-cocoon-e-il-design-pattern-mvc-2/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 15:27:11 +0000</pubDate>
		<dc:creator>Alessandro</dc:creator>
				<category><![CDATA[Italiano]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Cocoon]]></category>
		<category><![CDATA[continuation]]></category>
		<category><![CDATA[design pattern]]></category>
		<category><![CDATA[mvc]]></category>

		<guid isPermaLink="false">http://www.alessandro.vincelli.name/2007/12/20/apache-cocoon-e-il-design-pattern-mvc-2/</guid>
		<description><![CDATA[Voglio approfondire il Controller. Negli anni il pattern MVC si è evoluto o mutato, infatti oggi si parla di Model1 e Model2. In soldoni l&#8217;MVC1 prevede che il Controller si limiti a girare le richieste dalla View al Model. Ma la pratica, o meglio la crescente complessità del Model e dei processi che lo regolano, [...]]]></description>
			<content:encoded><![CDATA[<p> Voglio approfondire il <em>Controller.</em> Negli anni il pattern MVC si è evoluto o mutato, infatti oggi si parla di Model1 e Model2. In soldoni l&#8217;MVC1 prevede che il <em>Controller </em>si limiti a girare le richieste dalla <em>View</em> al <em>Model. </em>Ma la pratica, o meglio la crescente complessità del Model e dei processi che lo regolano,  hanno portato il <em>Controller</em> ad assumere più responsabilità, in particolare ad occuparsi anche del controllo della <em>business logic</em> legata al <em>Model</em>.<br />
In Cocoon è possibile applicare il Model1 utilizzando la <em>sitemap</em>. Come nella figura seguente:</p>
<p><a href="http://www.alessandro.vincelli.name/wp-content/uploads/2007/12/mvc1.png" title="MVC, Model 1"><img src="http://www.alessandro.vincelli.name/wp-content/uploads/2007/12/mvc1.thumbnail.png" alt="MVC, Model 1" align="texttop" /></a></p>
<p>l&#8217;unico ruolo del <em>Controller</em>, impersonata dalla <em>sitemap</em>, è quello di gestire le richieste<br />
del client e selezionare le pagine da mostrare<em>.</em></p>
<p>Il Model2 è invece applicabile con l&#8217;utilizzo congiunto di <em>sitemap</em> e  <em>continuation: </em></p>
<p><a href="http://www.alessandro.vincelli.name/wp-content/uploads/2007/12/mvc2.png" title="MVC, Model 2"><img src="http://www.alessandro.vincelli.name/wp-content/uploads/2007/12/mvc2.thumbnail.png" alt="MVC, Model 2" /></a></p>
<p>In questo caso il <em>Controller </em>prima<em> </em> si occupa di intercettare la richiesta tramite la <em>sitemap</em>, poi il controllo passa all<em>a Continuation</em> che dirige la <em>business logic</em> e l&#8217;invio del <em>Model</em> alla <em>View.</em></p>
<p>L&#8217;argomento andrebbe approfondito meglio. Ma un concetto deve essere ben fermo: la <em>continaution</em> deve occuparsi solo di dirigire, ovvero deve fare solo da <em>Controller</em>, forte infatti è la tentazione utilizzarla per operazioni che intervengono sul Model. Rispettare il pattern MVC rende l&#8217;applicazione più razionale e mantenibile.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alessandro.vincelli.name/2007/12/20/apache-cocoon-e-il-design-pattern-mvc-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apache Cocoon e il Design Pattern MVC (1)</title>
		<link>http://www.alessandro.vincelli.name/2007/12/07/9/</link>
		<comments>http://www.alessandro.vincelli.name/2007/12/07/9/#comments</comments>
		<pubDate>Fri, 07 Dec 2007 14:08:44 +0000</pubDate>
		<dc:creator>Alessandro</dc:creator>
				<category><![CDATA[Italiano]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Cocoon]]></category>
		<category><![CDATA[design pattern]]></category>
		<category><![CDATA[mvc]]></category>

		<guid isPermaLink="false">http://www.alessandro.vincelli.name/?p=9</guid>
		<description><![CDATA[L&#8217;architettura MVC è un design pattern che aiuta a risolvere i problemi che nascono nel definire le relazioni e le comunicazioni tra i dati, l&#8217;applicazione e la presentazione. Nell&#8217; MVC il Model rappresenta i dati dell&#8217;applicazioni e contiene le regole fondamentali di accesso e mantenimento degli stessi. Tipicamente il Model, come suggerisce il nome, riflette [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;architettura MVC è un design pattern che aiuta a risolvere i problemi<br />
che nascono nel definire le relazioni e le comunicazioni tra i dati, l&#8217;applicazione<br />
e la presentazione. Nell&#8217; MVC il Model rappresenta i dati dell&#8217;applicazioni<br />
e contiene le regole fondamentali di accesso e mantenimento degli stessi. Tipicamente<br />
il Model, come suggerisce il nome, riflette o modella un processo<br />
del mondo reale, per esempio l&#8217;organizzazione di un magazzino, la gestione dei documenti di un sito  Web.</p>
<p>La View si occupa di organizzare la presentazione del modello, accede<br />
ai dati e li presenta in modo opportuno. La view ha bisogno di mantenere<br />
una rappresentazione consistente del modello, quindi, se c&#8217;è un cambiamento<br />
in quest&#8217;ultimo, deve ricevere una notifica del cambio e provvedere ad una<br />
vista aggiornata del modello. Nell&#8217;architettura MVC ci possono essere più viste dello stesso modello.</p>
<p>Infine c&#8217;è il Controller che cattura le richieste dell&#8217;utente, trasformandole<br />
in opportune interazioni tra il modello e le viste.<br />
La Figura seguente</p>
<p><a href="http://www.alessandro.vincelli.name/wp-content/uploads/2007/12/mvc-2.png" title="Modello MVC"><img src="http://www.alessandro.vincelli.name/wp-content/uploads/2007/12/mvc-2.thumbnail.png" alt="Modello MVC" /></a></p>
<p>mostra i componenti dell&#8217;architettura MVC e come questi<br />
interagiscono tra di loro. <u>Il beneficio principale che l&#8217;architettura MVC offre<br />
allo sviluppo di un&#8217;applicazione è quello di aiutare a separare l&#8217;organizzazione,<br />
l&#8217;elaborazione, la presentazione delle informazioni.</u> Questa separazione è fondamentale per costruire applicazioni complesse in modo veloce e razionale.<br />
<u>Implementare un pattern MVC in Cocoon è molto semplice, anzi quasi<br />
naturale</u>.<u><br />
</u></p>
]]></content:encoded>
			<wfw:commentRss>http://www.alessandro.vincelli.name/2007/12/07/9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

