<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>BlogServiceHost.Create()</title><link>http://dotnetside.org/blogs/fabio/default.aspx</link><description>WCF &amp;amp; Friends
-
Il blog di Fabio Cozzolino</description><dc:language>en</dc:language><generator>CommunityServer 2008 SP1 (Build: 30619.63)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/FabioCozzolino" type="application/rss+xml" /><feedburner:browserFriendly></feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Il rilascio di Windows Azure si avvicina …</title><link>http://dotnetside.org/blogs/fabio/archive/2009/10/31/il-rilascio-di-windows-azure-si-avvicina.aspx</link><pubDate>Sat, 31 Oct 2009 12:19:51 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22300</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetside.org/blogs/fabio/rsscomments.aspx?PostID=22300</wfw:commentRss><comments>http://dotnetside.org/blogs/fabio/archive/2009/10/31/il-rilascio-di-windows-azure-si-avvicina.aspx#comments</comments><description>&lt;p&gt;A quanto pare il 17 Novembre, primo giorno di &lt;a href="http://microsoftpdc.com/" target="_blank"&gt;PDC 2009&lt;/a&gt;, verranno rilasciate una serie di nuove feature che si andranno ad aggiungere a quelle già esistenti. Il periodo di CTP si concluderà il 31 Dicembre. Da Gennaio 2010 quindi sarà possibile incominciare ad usufruire dei servizi di &lt;a href="http://www.microsoft.com/windowsazure" target="_blank"&gt;Windows Azure&lt;/a&gt; che diventeranno a pagamento (&lt;a href="http://www.microsoft.com/windowsazure/pricing/" target="_blank"&gt;qui i prezzi&lt;/a&gt;) a partire dal primo Febbraio 2010. Quindi c’è il tempo di prepararsi e testare anche le nuove feature.&lt;/p&gt;  &lt;p&gt;Chissà, forse facciamo in tempo a vederle per il &lt;a href="http://dotnetside.org/content/CommunityTour2009.aspx" target="_blank"&gt;Community Tour&lt;/a&gt; &lt;img src="http://dotnetside.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;…&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22300" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Azure/default.aspx">Azure</category></item><item><title>Automating Azure</title><link>http://dotnetside.org/blogs/fabio/archive/2009/10/26/automating-azure.aspx</link><pubDate>Mon, 26 Oct 2009 21:58:14 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22293</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetside.org/blogs/fabio/rsscomments.aspx?PostID=22293</wfw:commentRss><comments>http://dotnetside.org/blogs/fabio/archive/2009/10/26/automating-azure.aspx#comments</comments><description>&lt;p&gt;Interessante set di &lt;a href="http://technet.microsoft.com/en-us/scriptcenter/dd742419.aspx" target="_blank"&gt;Powershell cmdlets&lt;/a&gt; che “wrappano” le &lt;a href="http://msdn.microsoft.com/en-us/library/ee460799.aspx" target="_blank"&gt;Windows Azure Service Management API&lt;/a&gt;, consentendo di gestire il deploy, l’upgrade oppure la modifica dei files di configurazione, rendendole operazioni automatizzate.&lt;/p&gt;  &lt;p&gt;Disponibile su &lt;a href="http://code.msdn.microsoft.com/azurecmdlets" target="_blank"&gt;Code Gallery&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;fonte: &lt;a title="http://blogs.msdn.com/innov8showcase/archive/2009/10/26/automating-azure.aspx" href="http://blogs.msdn.com/innov8showcase/archive/2009/10/26/automating-azure.aspx"&gt;http://blogs.msdn.com/innov8showcase/archive/2009/10/26/automating-azure.aspx&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22293" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Azure/default.aspx">Azure</category></item><item><title>Bello…</title><link>http://dotnetside.org/blogs/fabio/archive/2009/10/20/bello.aspx</link><pubDate>Tue, 20 Oct 2009 21:44:28 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22280</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetside.org/blogs/fabio/rsscomments.aspx?PostID=22280</wfw:commentRss><comments>http://dotnetside.org/blogs/fabio/archive/2009/10/20/bello.aspx#comments</comments><description>&lt;p&gt;…il nuovo look di &lt;a href="http://msdn.microsoft.com/en-us/default.aspx" target="_blank"&gt;MSDN&lt;/a&gt; !!! Ma soprattutto mi piace molto sia la versione &lt;a href="http://msdn.microsoft.com/en-us/library/dd163896(lightweight).aspx" target="_blank"&gt;lightweight&lt;/a&gt; sia quella &lt;a href="http://msdn.microsoft.com/en-us/library/dd163896(loband).aspx" target="_blank"&gt;scriptfree&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22280" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>SQL Azure is now feature complete!!</title><link>http://dotnetside.org/blogs/fabio/archive/2009/10/18/sql-azure-is-now-feature-complete.aspx</link><pubDate>Sun, 18 Oct 2009 21:09:56 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22275</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetside.org/blogs/fabio/rsscomments.aspx?PostID=22275</wfw:commentRss><comments>http://dotnetside.org/blogs/fabio/archive/2009/10/18/sql-azure-is-now-feature-complete.aspx#comments</comments><description>&lt;p&gt;Windows Azure Platform e SQL Azure saranno rilasciati il prossimo mese. SQL Azure, però, già nella CTP di Ottobre è &lt;a href="http://blogs.msdn.com/innov8showcase/archive/2009/10/18/sql-azure-is-now-feature-complete.aspx"&gt;Feature Complete&lt;/a&gt;. Questo significa che le attuali feature disponibili sono le stesse della release finale.&lt;/p&gt;  &lt;p&gt;maggiori info: &lt;a href="http://www.azurejournal.com/2009/10/new-ctp-for-sql-azure/"&gt;http://www.azurejournal.com/2009/10/new-ctp-for-sql-azure/&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22275" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Azure/default.aspx">Azure</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/SQL+Azure/default.aspx">SQL Azure</category></item><item><title>WCF Extensibility Guide</title><link>http://dotnetside.org/blogs/fabio/archive/2009/10/18/wcf-extensibility-guide.aspx</link><pubDate>Sun, 18 Oct 2009 15:21:46 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22273</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetside.org/blogs/fabio/rsscomments.aspx?PostID=22273</wfw:commentRss><comments>http://dotnetside.org/blogs/fabio/archive/2009/10/18/wcf-extensibility-guide.aspx#comments</comments><description>&lt;p&gt;Riporto il post di &lt;a href="http://weblogs.asp.net/cibrax/archive/2009/10/18/wcf-extensibility-guide.aspx" target="_blank"&gt;Pablo Cibraro&lt;/a&gt; che annuncia la pubblicazione del primo capitolo della guida &lt;a href="http://msdn.microsoft.com/en-us/library/ee672186.aspx" target="_blank"&gt;WCF Extensibility Guide&lt;/a&gt; da lui scritta a quattro mani con &lt;a href="http://weblogs.asp.net/gsusx/" target="_blank"&gt;Jesus Rodriguez&lt;/a&gt;. Si tratta di una serie di capitoli, con pubblicazione scadenzata, che affrontano WCF dal punto di vista della sua estensibilità. Ho già detto più volte come l’architettura di WCF sia stata sviluppata nel modo migliore proprio perchè fornisce allo sviluppatore gli strumenti giusti per produrre un servizio funzionante in pochi semplici passaggi, o di personalizzare completamente l’infrastruttura per farla aderire alle esigenze della propria soluzione (altrimenti non lo si potrebbe definire &lt;em&gt;framework per lo sviluppo di servizi&lt;/em&gt;).&lt;/p&gt;  &lt;p&gt;I vari capitoli saranno:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee667276.aspx"&gt;Introduction&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a&gt;&lt;/a&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee672186.aspx"&gt;Extending the WCF Channel Model&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Extending the WCF Client-Dispatcher Runtimes &lt;/li&gt;    &lt;li&gt;Extending the WCF Security Model &lt;/li&gt;    &lt;li&gt;Extending the WCF Hosting Model &lt;/li&gt;    &lt;li&gt;Extending the WCF Metadata Model &lt;/li&gt;    &lt;li&gt;Extending the WCF Web Programming Model &lt;/li&gt;    &lt;li&gt;Extending Dublin Application Server &lt;/li&gt;    &lt;li&gt;Building Custom Binding Elements and Behaviors &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Buona lettura &lt;img src="http://dotnetside.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22273" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/WCF/default.aspx">WCF</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>Supporto tecnico per gli sviluppatori italiani</title><link>http://dotnetside.org/blogs/fabio/archive/2009/10/16/supporto-tecnico-per-gli-sviluppatori-italiani.aspx</link><pubDate>Fri, 16 Oct 2009 21:37:05 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22272</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetside.org/blogs/fabio/rsscomments.aspx?PostID=22272</wfw:commentRss><comments>http://dotnetside.org/blogs/fabio/archive/2009/10/16/supporto-tecnico-per-gli-sviluppatori-italiani.aspx#comments</comments><description>&lt;p&gt;Da qualche tempo è attivo il blog &lt;a href="http://blogs.msdn.com/itasupport" target="_blank"&gt;Supporto Tecnico agli sviluppatori&lt;/a&gt; gestito interamente da Microsoft Italia e dal relativo team. Post davvero interessanti. Vi consiglio di seguirlo, sia per quello che riguarda &lt;a href="http://blogs.msdn.com/itasupport/archive/tags/WCF/default.aspx" target="_blank"&gt;WCF&lt;/a&gt;, che per il resto … da non perdere &lt;img src="http://dotnetside.org/emoticons/emotion-1.gif" alt="Smile" /&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22272" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/MSDN/default.aspx">MSDN</category></item><item><title>Data Transfer Object, questo sconosciuto…</title><link>http://dotnetside.org/blogs/fabio/archive/2009/10/10/data-transfer-object-questo-sconosciuto.aspx</link><pubDate>Sat, 10 Oct 2009 12:46:32 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22258</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://dotnetside.org/blogs/fabio/rsscomments.aspx?PostID=22258</wfw:commentRss><comments>http://dotnetside.org/blogs/fabio/archive/2009/10/10/data-transfer-object-questo-sconosciuto.aspx#comments</comments><description>&lt;p&gt;Molto spesso capitano domande, sui forum, via email o di persona, su come è possibile far viaggiare le proprie entity con WCF. Molti non sono disposti a marcare con gli attributi &lt;em&gt;DataContract&lt;/em&gt; e &lt;em&gt;DataMember&lt;/em&gt;, e direi anche giustamente. Il .NET Framework 3.5 consente anche di utilizzare oggetti senza la necessità di marcarli con gli appositi attributi.&lt;/p&gt;  &lt;p&gt;Il punto però è un altro. Spesso la necessità non è quella di trasferire le entità, bensi un insieme probabilmente differente contenente informazioni specifiche e ben definite. Una ipotetica entità &lt;em&gt;Book&lt;/em&gt;, nel nostro dominio, ha sicuramente un riferimento ad una entità &lt;em&gt;Author&lt;/em&gt;. Probabilmente avremo qualcosa del tipo:&lt;/p&gt;  &lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 500px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Book
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;{
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; ISBN { &lt;span style="color: #0000ff"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff"&gt;set&lt;/span&gt;; }
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; Title { &lt;span style="color: #0000ff"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff"&gt;set&lt;/span&gt;; }
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; Description { &lt;span style="color: #0000ff"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff"&gt;set&lt;/span&gt;; }
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; Pages { &lt;span style="color: #0000ff"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff"&gt;set&lt;/span&gt;; }
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;double&lt;/span&gt; Price { &lt;span style="color: #0000ff"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff"&gt;set&lt;/span&gt;; }
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Author Author { &lt;span style="color: #0000ff"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff"&gt;set&lt;/span&gt;; }
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;}
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Author
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;{
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; Name { &lt;span style="color: #0000ff"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff"&gt;set&lt;/span&gt;; }
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;}&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;Abbiamo semplificato parecchio. Se il nostro servizio esponesse l’entità &lt;em&gt;Book così com’è &lt;/em&gt;saremmo costretti a generare un messaggio con dati probabilmente non necessari per lo specifico contesto. Perchè trasferire tutto? E se la gerarchia fosse ancora più complessa? Performance, processo di serializzazione, dimensioni del messaggio, tutto ne pagherebbe le conseguenze, inutilmente.&lt;/p&gt;

&lt;h5&gt;Il Data Transfer Object&lt;/h5&gt;

&lt;p&gt;Ancora una volta i pattern ci vengono in aiuto. Il &lt;a href="http://martinfowler.com/eaaCatalog/dataTransferObject.html" target="_blank"&gt;Data Transfer Object&lt;/a&gt; (DTO, talvolta conosciuto anche come Value Object) è un oggetto che non appartiene al nostro dominio, contenente solo proprietà e nessun metodo o logica, ma soprattutto è un oggetto serializzabile ed ottimizzato per il semplice scopo per cui è stato creato: trasferimento di dati. 

  &lt;br /&gt;Nel nostro esempio avremmo dunque qualcosa di simile:&lt;/p&gt;

&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 500px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; BookDTO
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;{
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; Title { &lt;span style="color: #0000ff"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff"&gt;set&lt;/span&gt;; }
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; AuthorName { &lt;span style="color: #0000ff"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff"&gt;set&lt;/span&gt;; }
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;double&lt;/span&gt; Price { &lt;span style="color: #0000ff"&gt;get&lt;/span&gt;; &lt;span style="color: #0000ff"&gt;set&lt;/span&gt;; }
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;}&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;Semplicemente quello che deve essere trasferito. Niente di più. Di conseguenza il contratto del nostro servizio risulterebbe quindi questo:&lt;/p&gt;

&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 500px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;[ServiceContract]
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;interface&lt;/span&gt; BookService
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;{
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    [OperationContract]
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; BookDTO RetrieveBook(string isbn);
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;}&lt;/pre&gt;&lt;/pre&gt;

&lt;h5&gt;L‘implentazione del servizio ed il mapping dei dati&lt;/h5&gt;

&lt;p&gt;A questo punto il servizio si dovrebbe semplicemente occupare di invocare lo strato successivo, recuperare l’istanza dell’oggetto &lt;em&gt;Book&lt;/em&gt; e poi restituirla al chiamante:&lt;/p&gt;

&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 500px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; BookDTO RetrieveBook(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; isbn)
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;{
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    Book book = OtherLayer.GetBook(isbn);
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    BookDTO bookDTO = Map(book);
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; bookDTO;
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;}&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;Generalmente preferisco avere un servizio WCF che si occupa semplicemente di trasformare o adattare le esigenze di integrazione del mio dominio con il mondo esterno. Quindi pochissima logica, solo validazione dei dati e generazione di eventuali eccezioni (scordatevi l’accesso al database direttamente dal servizio &lt;img src="http://dotnetside.org/emoticons/emotion-1.gif" alt="Smile" /&gt;). Nel servizio quindi viene fatto il mapping del dominio verso l’entità esterna utilizzando logiche ad-hoc oppure appositi mapper. Il pattern DTO, come definito da Martin Fowler, prevere la realizzazione di un apposito componente chiamato &lt;em&gt;assembler&lt;/em&gt; che “assembla” le informazioni e crea il DTO (o l’entità, a seconda della direzione). L’&lt;em&gt;assembler&lt;/em&gt; deve essere sviluppato appositamente per ogni oggetto del dominio.&lt;/p&gt;

&lt;p&gt;Preferisco, invece, l’utilizzo di un mapper che automaticamente mappa le entità a seconda delle esigenze. &lt;a href="http://automapper.codeplex.com/" target="_blank"&gt;AutoMapper&lt;/a&gt; è decisamente un’ottimo punto di partenza. Consente infatti di eseguire il mapping di oggetti utilizzando specifiche regole. Nel nostro caso la funzione Map sarebbe semplicemente così composta:&lt;/p&gt;

&lt;pre style="border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #fbfbfb; min-height: 40px; padding-left: 5px; width: 500px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px"&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;&lt;span style="color: #0000ff"&gt;private&lt;/span&gt; BookDTO Map(Book sourceBook)
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;{
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    Mapper.CreateMap&amp;lt;Book, BookDTO&amp;gt;();
&lt;/pre&gt;&lt;pre style="background-color: #ffffff; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;    &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; Mapper.Map&amp;lt;Book, BookDTO&amp;gt;(sourceBook);
&lt;/pre&gt;&lt;pre style="background-color: #fbfbfb; margin: 0em; width: 100%; font-family: consolas,&amp;#39;Courier New&amp;#39;,courier,monospace; font-size: 12px"&gt;}&lt;/pre&gt;&lt;/pre&gt;

&lt;p&gt;AutoMapper effettuerà per noi la creazione di un istanza di BookDTO mappando le proprietà &lt;em&gt;Title&lt;/em&gt; e &lt;em&gt;Price&lt;/em&gt; da &lt;em&gt;Book&lt;/em&gt;, e la proprietà &lt;em&gt;AuthorName&lt;/em&gt; dalla proprietà &lt;em&gt;Name&lt;/em&gt; della classe &lt;em&gt;Author&lt;/em&gt;. Questo perchè nel momento in cui non trova nessuna proprietà con il nome della proprietà di destinazione e nessun metodo chiamato &lt;strong&gt;Get&lt;em&gt;NomeProprietà&lt;/em&gt;&lt;/strong&gt;, tenterà di suddividere il nome della proprietà di destinazione utilizzando il PascalCase per trovare il valore da assegnare (spero di essere stato chiaro &lt;img src="http://dotnetside.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;, altrimenti ditemelo…).&lt;/p&gt;

&lt;p&gt;Qual’è il vantaggio? Non devo scrivere quintali di righe di codice per ogni mapping che devo eseguire. E non è mica poco se il mio dominio è decisamente complesso.&lt;/p&gt;

&lt;h5&gt;Conclusioni&lt;/h5&gt;

&lt;p&gt;Sono uno dei fan del DTO. Collegandomi al &lt;a href="http://dotnetside.org/blogs/fabio/archive/2009/10/05/contract-first-development-una-discussione-ancora-aperta.aspx" target="_blank"&gt;post precedente&lt;/a&gt;, la sequenza ottimale da seguire per la realizzazione di un buon strato di servizi è questa:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Definizione degli schema XSD &lt;/li&gt;

  &lt;li&gt;Definizione dei messaggi &lt;/li&gt;

  &lt;li&gt;WSDL &lt;/li&gt;

  &lt;li&gt;Generazione del codice. Che si suddivide poi in: 
    &lt;ul&gt;
      &lt;li&gt;Creazione dei DTO (partendo dagli XSD) &lt;/li&gt;

      &lt;li&gt;Creazione dell’interfaccia del servizio (in parole povere l’interfaccia che marcheremo con &lt;em&gt;ServiceContract&lt;/em&gt; e &lt;em&gt;OperationContract&lt;/em&gt;) &lt;/li&gt;

      &lt;li&gt;Collegamento con il layer successivo, che comunica utilizzando gli oggetti del dominio e quindi generazione del mapping bidirezionale DTO &amp;lt;—&amp;gt; Domain Object &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vedo in questo approccio un’ottima suddivisione della logica del mio dominio con la logica di integrazione con i sistemi esterni. Un sistema esterno non è solo e necessariamente un’applicazione sviluppata da terze parti, ma anche una qualsiasi applicazione sempre da noi sviluppata e che fa parte della nostra soluzione, come ad esempio può essere un’applicazione Silverlight.&lt;/p&gt;

&lt;p&gt;Apertissimo alla discussione &lt;img src="http://dotnetside.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22258" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/WCF/default.aspx">WCF</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Patterns/default.aspx">Patterns</category></item><item><title>Contract-First development, una discussione ancora aperta…</title><link>http://dotnetside.org/blogs/fabio/archive/2009/10/05/contract-first-development-una-discussione-ancora-aperta.aspx</link><pubDate>Mon, 05 Oct 2009 12:51:09 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22247</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://dotnetside.org/blogs/fabio/rsscomments.aspx?PostID=22247</wfw:commentRss><comments>http://dotnetside.org/blogs/fabio/archive/2009/10/05/contract-first-development-una-discussione-ancora-aperta.aspx#comments</comments><description>&lt;p&gt;Apprendo da &lt;a href="http://blogs.msdn.com/drnick/archive/2009/10/02/contract-first-development-through-schema.aspx"&gt;Nicholas Allen&lt;/a&gt; la pubblicazione di un artticolo dal titolo: &lt;a href="http://msdn.microsoft.com/en-us/magazine/ee335699.aspx"&gt;Schema-based Development with Windows Communication Foundation&lt;/a&gt;. L’articolo, davvero molto interessante, parla in soldoni dell’approccio Contract-First, cioè la definizione prima delle informazioni da trasferire ed utilizzare nel servizio (modello di dati espresso in XSD), poi dei messaggi che contengono le informazioni da scambiare, infine del documento che descrive l’intera interfaccia (WSDL/MEX). Da qui si deve poi partire per generare le interfacce server e client.&lt;/p&gt;  &lt;p&gt;Il processo è sicuramente più articolato rispetto all’approccio Code-First (sviluppo prima del codice e poi generazione del WSDL), ma permette di avere il corretto controllo delle informazioni scambiate, con una più netta distinzione tra la fase di progettazione/contrattualizzazione e la fase di sviluppo.&lt;/p&gt;  &lt;p&gt;Visual Studio segue esclusivamente l’approccio Code-First, ma esiste un tool sviluppato da un guru come &lt;a href="http://blogs.thinktecture.com/cweyer/"&gt;Christian Weyer&lt;/a&gt; (co-autore dell’articolo), che consente di seguire l’approccio Contract-First: &lt;a href="http://wscfblue.codeplex.com/"&gt;WSCF.blue&lt;/a&gt;. &lt;a href="http://blogs.thinktecture.com/cweyer/archive/2009/09/30/415390.aspx"&gt;Qui&lt;/a&gt; l’annuncio della release 1.0.&lt;/p&gt;  &lt;p&gt;Leggete l’articolo e provatelo.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22247" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/WCF/default.aspx">WCF</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Contract-First/default.aspx">Contract-First</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Design/default.aspx">Design</category></item><item><title>Microsoft Forums in italiano</title><link>http://dotnetside.org/blogs/fabio/archive/2009/09/22/microsoft-forums-in-italiano.aspx</link><pubDate>Tue, 22 Sep 2009 21:23:30 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22216</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetside.org/blogs/fabio/rsscomments.aspx?PostID=22216</wfw:commentRss><comments>http://dotnetside.org/blogs/fabio/archive/2009/09/22/microsoft-forums-in-italiano.aspx#comments</comments><description>&lt;p&gt;Da qualche giorno sono attive le sezioni italiane di alcuni forum di Microsoft: &lt;a title="http://social.microsoft.com/Forums/it-IT/categories" href="http://social.microsoft.com/Forums/it-IT/categories"&gt;http://social.microsoft.com/Forums/it-IT/categories&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;E’ uno spazio decisamente utile soprattutto perchè è possibile ricevere il supporto degli MVP italiani e degli altri utenti. Ottimo &lt;img src="http://dotnetside.org/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22216" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Microsoft/default.aspx">Microsoft</category></item><item><title>Congratulazioni Simone!!!</title><link>http://dotnetside.org/blogs/fabio/archive/2009/08/09/congratulazioni-simone.aspx</link><pubDate>Sun, 09 Aug 2009 16:29:43 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22197</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetside.org/blogs/fabio/rsscomments.aspx?PostID=22197</wfw:commentRss><comments>http://dotnetside.org/blogs/fabio/archive/2009/08/09/congratulazioni-simone.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/piyo/archive/2009/08/06/beginning-asp.net-mvc-disponibile-su-amazon.aspx" target="_blank"&gt;Finalmente&lt;/a&gt; &lt;a href="http://p2p.wrox.com/book-beginning-asp-net-mvc-1-0-isbn-978-0-470-43399-7-504/" target="_blank"&gt;Beginning ASP.NET MVC 1.0&lt;/a&gt; è disponibile su &lt;a href="http://www.amazon.com/gp/product/047043399X?ie=UTF8&amp;amp;tag=codec04-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=047043399X" target="_blank"&gt;Amazon US&lt;/a&gt; e a breve anche su &lt;a href="http://www.amazon.co.uk/gp/product/047043399X?ie=UTF8&amp;amp;tag=foxyblog-21&amp;amp;linkCode=as2&amp;amp;camp=1634&amp;amp;creative=19450&amp;amp;creativeASIN=047043399X" target="_blank"&gt;Amazon UK&lt;/a&gt;. Scrivere un libro non è per niente semplice, il lavoro è lungo e paziente, quindi davvero complimenti &lt;a href="http://blogs.ugidotnet.org/piyo" target="_blank"&gt;Simone&lt;/a&gt; per questo grande e meritatissimo traguardo &lt;img src="http://dotnetside.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22197" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Books/default.aspx">Books</category></item><item><title>Installing Windows 7…Done!!!</title><link>http://dotnetside.org/blogs/fabio/archive/2009/08/08/install-windows-7-done.aspx</link><pubDate>Sat, 08 Aug 2009 18:13:47 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22195</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetside.org/blogs/fabio/rsscomments.aspx?PostID=22195</wfw:commentRss><comments>http://dotnetside.org/blogs/fabio/archive/2009/08/08/install-windows-7-done.aspx#comments</comments><description>&lt;p&gt;Fatto. Ho terminato da poco l’installazione di W7. Utilizzavo le versioni beta già da tempo, ma la prima differenza sostanziale che noto è un ulteriore, e prevedibile, miglioramento delle performance. Comunque, è assolutamente da provare.&lt;/p&gt;  &lt;p&gt;Prima di installarlo, seguite i &lt;a href="http://blogs.msdn.com/italy/archive/2009/08/06/windows-7-rtm-disponibile-da-oggi-per-abbonati-msdn.aspx"&gt;consigli di Lorenzo&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22195" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Windows+Seven/default.aspx">Windows Seven</category></item><item><title>Unity Lifetime Managers e l’integrazione in WCF</title><link>http://dotnetside.org/blogs/fabio/archive/2009/08/07/unity-lifetime-managers-e-l-integrazione-in-wcf.aspx</link><pubDate>Fri, 07 Aug 2009 06:00:00 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22189</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetside.org/blogs/fabio/rsscomments.aspx?PostID=22189</wfw:commentRss><comments>http://dotnetside.org/blogs/fabio/archive/2009/08/07/unity-lifetime-managers-e-l-integrazione-in-wcf.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://dotnetside.org/blogs/fabio/archive/2009/03/21/inversion-of-control-con-wcf-e-unity.aspx"&gt;Qualche&lt;/a&gt; &lt;a href="http://dotnetside.org/blogs/fabio/archive/2009/03/22/inversion-of-control-con-wcf-e-unity-su-iis-parte-ii.aspx"&gt;tempo&lt;/a&gt; &lt;a href="http://dotnetside.org/blogs/fabio/archive/2009/03/28/inversion-of-control-con-wcf-e-unity-parte-iii.aspx"&gt;fa&lt;/a&gt; ho parlato dell’integrazione di Unity, il container di Microsoft per l’IoC. A completamento della serie di post, può essere associato anche &lt;a href="http://drewdotnet.blogspot.com/2009/07/unity-lifetime-managers-and-wcf.html"&gt;questo post&lt;/a&gt; che spiega alcune problematiche che è possibile riscontrare quando il lifetime manager di Unity è per-thread e l’Instancing Mode di WCF è Per-Session.&lt;/p&gt;  &lt;p&gt;E’ chiaro che, in questa situazione, verrà utilizzata la stessa istanza di Unity in una unica sessione di comunicazione tra client e server in WCF, che potenzialmente significa più di una invocazione. Talvolta non è questo il comportamento che ci aspettiamo e rischiamo di avere risultati strani come quelli riportati nel &lt;a href="http://drewdotnet.blogspot.com/2009/07/unity-lifetime-managers-and-wcf.html"&gt;post di Drew&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;fonte: &lt;a href="http://blogs.msdn.com/kaevans/archive/2009/07/30/unity-lifetime-managers-and-wcf-integration.aspx"&gt;Kirk Evans&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22189" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/WCF/default.aspx">WCF</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/IoC/default.aspx">IoC</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Unity/default.aspx">Unity</category></item><item><title>Windows 7 RTM Day</title><link>http://dotnetside.org/blogs/fabio/archive/2009/08/06/windows-7-rtm-day.aspx</link><pubDate>Thu, 06 Aug 2009 06:00:00 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22188</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetside.org/blogs/fabio/rsscomments.aspx?PostID=22188</wfw:commentRss><comments>http://dotnetside.org/blogs/fabio/archive/2009/08/06/windows-7-rtm-day.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://windowsteamblog.com/blogs/windows7/archive/2009/07/21/when-will-you-get-windows-7-rtm.aspx" target="_blank"&gt;A quanto pare&lt;/a&gt; oggi dovrebbe essere il W7Day &lt;img src="http://dotnetside.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;. Mi preparo per il download … &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22188" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Windows+Seven/default.aspx">Windows Seven</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Windows/default.aspx">Windows</category></item><item><title>Gli user group crescono…</title><link>http://dotnetside.org/blogs/fabio/archive/2009/08/05/gli-user-group-crescono.aspx</link><pubDate>Wed, 05 Aug 2009 06:00:00 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22186</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetside.org/blogs/fabio/rsscomments.aspx?PostID=22186</wfw:commentRss><comments>http://dotnetside.org/blogs/fabio/archive/2009/08/05/gli-user-group-crescono.aspx#comments</comments><description>&lt;p&gt;Nell’ultimo periodo sono diverse gli user group nati in italia. L’ultimo arrivato in ordine di tempo è &lt;a href="http://orangedotnet.org/" target="_blank"&gt;OrangeDotNet&lt;/a&gt;, UG siciliano al quale do il mio benvenuto &lt;img src="http://dotnetside.org/emoticons/emotion-1.gif" alt="Smile" /&gt;.&lt;/p&gt;  &lt;p&gt;Questo l’elenco degli attuali user group italiani su .NET (in ordine cronologico):&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.ugidotnet.org"&gt;UgiDotNet&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.xedotnet.org"&gt;XeDotNet&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.dotnetside.org/"&gt;DotNetSide&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://dotnetmarche.org/"&gt;DotNetMarche&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.dotnetumbria.org/"&gt;DotNetUmbria&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://ugialt.net/" target="_blank"&gt;UGIALT.NET&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://dotnettoscana.org/"&gt;DotNetToscana&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.dotdotnet.org/" target="_blank"&gt;DotDotNet&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.dotnetromacesta.org/" target="_blank"&gt;DotNetRomaCestà&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://dotnetcampania.org/" target="_blank"&gt;DotNetCampania&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://orangedotnet.org/" target="_blank"&gt;OrangeDotNet&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Scusatemi se ho dimenticato qualcuno, anzi fatemelo notare &lt;img src="http://dotnetside.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;.&lt;/p&gt;  &lt;p&gt;Bello il proliferare degli UG, un qualcosa che in italia fino a qualche anno fa mancava proprio sul fronte .NET. Portare avanti un progetto del genere non è assolutamente semplice, bisogna esserne consapevoli. Il mio benvenuto, quindi, ai nuovi arrivati, con l’augurio che possano portare avanti il proprio progetto con la forza ed il coraggio necessari per produrre qualcosa di importante nella propria terra.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22186" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Varie/default.aspx">Varie</category></item><item><title>Debugging WCF: Let’s go!!!</title><link>http://dotnetside.org/blogs/fabio/archive/2009/08/04/debugging-wcf-let-s-go.aspx</link><pubDate>Tue, 04 Aug 2009 06:00:00 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22185</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://dotnetside.org/blogs/fabio/rsscomments.aspx?PostID=22185</wfw:commentRss><comments>http://dotnetside.org/blogs/fabio/archive/2009/08/04/debugging-wcf-let-s-go.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://dotnetside.org/blogs/fabio/archive/2008/01/17/Debuggare-il-framework-_2E00__2E00__2E00_.aspx"&gt;Debuggare il framework … non ha prezzo&lt;/a&gt;, dicevo qualche tempo fa. Purtroppo, però, non era disponibile il debug per WCF. Da qualche giorno, attraverso l’&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/59ed0a59-a86f-4e62-8eef-2f5fa613a727"&gt;annuncio&lt;/a&gt; lasciato sul forum di WCF, è possibile eseguire il debug di WCF dopo aver installato l’apposito installer disponibile a questo indirizzo:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://referencesource.microsoft.com/netframework.aspx" href="http://referencesource.microsoft.com/netframework.aspx"&gt;http://referencesource.microsoft.com/netframework.aspx&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;E’ inutile descrivervi l’importanza di questo rilascio. Ho passato ore con .NET Reflector alla mano nel tentativo di capire al meglio il comportamento di WCF nei scenari più disparati che mi sono capitati. E’ stata una scuola importante, senza dubbio, ma ne avrei fatto volentieri a meno &lt;img src="http://dotnetside.org/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;. &lt;/p&gt;  &lt;p&gt;Oltre a WCF, ce ne sono anche altri…&lt;/p&gt;  &lt;p&gt;Buon debug !!!&lt;/p&gt;  &lt;p&gt;Ps.: leggete il readme.txt per configurare correttamente Visual Studio…&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22185" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/WCF/default.aspx">WCF</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Debug/default.aspx">Debug</category></item></channel></rss>
