<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>AlbLog - Il blog di Alberto Dallagiacoma on Alberto Dallagiacoma</title><link>https://www.albertodallagiacoma.it/blog/</link><description>Recent content in AlbLog - Il blog di Alberto Dallagiacoma on Alberto Dallagiacoma</description><generator>Hugo</generator><language>it-IT</language><lastBuildDate>Tue, 26 Sep 2017 17:24:00 +0200</lastBuildDate><atom:link href="https://www.albertodallagiacoma.it/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>Upgrade di Service Fabric - Storie di vita vissuta</title><link>https://www.albertodallagiacoma.it/blog/2017/09/upgrade-di-service-fabric-storie-di-vita-vissuta/</link><pubDate>Tue, 26 Sep 2017 17:24:00 +0200</pubDate><guid>https://www.albertodallagiacoma.it/blog/2017/09/upgrade-di-service-fabric-storie-di-vita-vissuta/</guid><description>&lt;p&gt;Vista la &lt;a href="https://blogs.msdn.microsoft.com/azureservicefabric/2017/09/25/service-fabric-6-0-release/" target="_blank" rel="noopener noreferrer"&gt;disponibilità della versione 6.0 del runtime di Service Fabric&lt;/a&gt; ho aggiornato la mia macchina di sviluppo, ma la cosa non è andata propriamente “liscia”, nonostante abbia usato il &lt;a href="https://www.microsoft.com/web/downloads/platform.aspx" target="_blank" rel="noopener noreferrer"&gt;Web Platform Installer&lt;/a&gt; come ho sempre fatto per le versioni precedenti.&lt;br&gt;&#10;La procedura di setup usa uno script PowerShell chiamato &lt;code&gt;CleanFabric.ps1&lt;/code&gt;, che si trova in &lt;code&gt;C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code&lt;/code&gt;. Lo script elimina l’installazione precedente prima di procedere al setup della nuova versione&amp;hellip;&lt;/p&gt;</description></item><item><title>SQL Saturday #462 a Parma</title><link>https://www.albertodallagiacoma.it/blog/2015/11/sql-saturday-462-a-parma/</link><pubDate>Thu, 26 Nov 2015 17:45:00 +0100</pubDate><guid>https://www.albertodallagiacoma.it/blog/2015/11/sql-saturday-462-a-parma/</guid><description>&lt;p&gt;&lt;img src="https://www.albertodallagiacoma.it/blog/2015/11/sql-saturday-462-a-parma/112615_1507_SQLSaturday1.png" width="236" height="115" alt="" loading="lazy"&gt;Dopo qualche anno di silenzio, rispolvero il mio blog per ricordare che sabato 28 novembre 2015 si terrà a Parma il &lt;a href="http://www.sqlsaturday.com/" target="_blank" rel="noopener noreferrer"&gt;SQLSaturday&lt;/a&gt; #462, e qualcuno ha avuto il coraggio :-) di includermi tra gli speakers dell&amp;rsquo;evento.&lt;/p&gt;&#10;&lt;p&gt;Per chi non lo conoscesse, il &lt;a href="http://www.sqlsaturday.com/" target="_blank" rel="noopener noreferrer"&gt;SQLSaturday&lt;/a&gt; è un evento gratuito della durata di una giornata, nella quale si affrontano tante interessanti tematiche relative a &lt;a href="http://www.microsoft.com/en-us/server-cloud/products/sql-server/" target="_blank" rel="noopener noreferrer"&gt;SQL Server&lt;/a&gt; e a tutto ciò che lo circonda. Su &lt;a href="http://www.sqlsaturday.com/462/Sessions/Schedule.aspx" target="_blank" rel="noopener noreferrer"&gt;tre track separate&lt;/a&gt;, si parlerà di SQL Server 2016, Data Analysis/BI e Cloud/Development; un evento da non perdere, direi.&lt;/p&gt;</description></item><item><title>Visual NUnit</title><link>https://www.albertodallagiacoma.it/blog/2012/04/visual-nunit/</link><pubDate>Fri, 06 Apr 2012 17:30:00 +0200</pubDate><guid>https://www.albertodallagiacoma.it/blog/2012/04/visual-nunit/</guid><description>&lt;p&gt;E’ più che altro una questione di abitudine, ma mi sono sempre trovato così bene con &lt;a href="http://www.nunit.org/" target="_blank" rel="noopener noreferrer"&gt;NUnit&lt;/a&gt;, che non mi è mai capitato di usare sul serio MSTest.&lt;br&gt;&#10;Una cosa davvero molto bella che ha MSTest è, ovviamente, la totale integrazione con l’IDE di Visual Studio, cosa che &lt;a href="http://www.nunit.org" target="_blank" rel="noopener noreferrer"&gt;NUnit&lt;/a&gt; può avere solo con tool di terze parti, spesso a pagamento (&lt;a href="http://www.jetbrains.com/resharper/" target="_blank" rel="noopener noreferrer"&gt;ReSharper&lt;/a&gt; in primis).&lt;/p&gt;&#10;&lt;p&gt;Ho trovato però &lt;a href="http://visualstudiogallery.msdn.microsoft.com/c8164c71-0836-4471-80ce-633383031099" target="_blank" rel="noopener noreferrer"&gt;Visual NUnit 2010&lt;/a&gt;, un add-in molto carino per Visual Studio 2010 che aggiunge un test runner per NUnit all’IDE di Visual Studio 2010. Non è completo come quello di &lt;a href="http://www.jetbrains.com/resharper/" target="_blank" rel="noopener noreferrer"&gt;ReSharper&lt;/a&gt;, ma per gli “NUnit addicted” è decisamente da provare.&lt;/p&gt;</description></item><item><title>AppFabric 1.1 Cumulative Update</title><link>https://www.albertodallagiacoma.it/blog/2012/04/appfabric-1.1-cumulative-update/</link><pubDate>Thu, 05 Apr 2012 01:05:00 +0200</pubDate><guid>https://www.albertodallagiacoma.it/blog/2012/04/appfabric-1.1-cumulative-update/</guid><description>&lt;p&gt;E’ stata rilasciata una Cumulative Update per &lt;a href="http://msdn.microsoft.com/en-us/library/hh351318.aspx" target="_blank" rel="noopener noreferrer"&gt;Windows Server AppFabric 1.1&lt;/a&gt; che risolve alcune “magagne” qua e là.&lt;br&gt;&#10;Come buona abitudine, consiglio sempre di leggere prima le &lt;a href="http://support.microsoft.com/kb/2671763/en-us" target="_blank" rel="noopener noreferrer"&gt;informazioni sull’update&lt;/a&gt;, e poi eventualmente procedere al &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=29241&amp;amp;WT.mc_id=" target="_blank" rel="noopener noreferrer"&gt;download&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;Mi raccomando! 🙂&lt;/p&gt;</description></item><item><title>Evento “Performances e Scalabilità nelle applicazioni .NET”</title><link>https://www.albertodallagiacoma.it/blog/2012/02/evento-ldquoperformances-e-scalabilitagrave-nelle-applicazioni-.netrdquo/</link><pubDate>Wed, 15 Feb 2012 23:00:00 +0100</pubDate><guid>https://www.albertodallagiacoma.it/blog/2012/02/evento-ldquoperformances-e-scalabilitagrave-nelle-applicazioni-.netrdquo/</guid><description>&lt;p&gt;&lt;img src="https://www.albertodallagiacoma.it/blog/2012/02/evento-ldquoperformances-e-scalabilitagrave-nelle-applicazioni-.netrdquo/DotDotNetLogo.png" width="680" height="253" alt="DotDotNetLogo" loading="lazy"&gt;&lt;/p&gt;&#10;&lt;p&gt;Il 21 febbraio 2012, in collaborazione con &lt;a href="http://www.otconsulting.com/" target="_blank" rel="noopener noreferrer"&gt;OT Consulting&lt;/a&gt;, &lt;a href="http://dotdotnet.org" target="_blank" rel="noopener noreferrer"&gt;DotDotNet&lt;/a&gt; organizza a Reggio Emilia un evento incentrato sulle performances e la scalabilità delle applicazioni.&lt;/p&gt;&#10;&lt;p&gt;Per quanto mi riguarda, farò &lt;a href="https://www.albertodallagiacoma.it/blog/2011/12/buon-.net-2011/"&gt;un bis&lt;/a&gt; sull’utilizzo di &lt;a href="http://msdn.microsoft.com/en-us/library/hh351318.aspx" target="_blank" rel="noopener noreferrer"&gt;Windows Server AppFabric Cache&lt;/a&gt;, approfittando anche dell’uscita della &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27115" target="_blank" rel="noopener noreferrer"&gt;versione 1.1&lt;/a&gt; rilasciata a dicembre.&lt;/p&gt;&#10;&lt;p&gt;Nell’altra sessione si parlerà di &lt;a href="http://www.microsoft.com/biztalk/en/us/default.aspx" target="_blank" rel="noopener noreferrer"&gt;BizTalk Server 2010&lt;/a&gt; con Marco Morsiani.&lt;/p&gt;&#10;&lt;p&gt;Per chi è interessato, ci si può registrare all’evento seguendo &lt;a href="http://communitydevtool.com/public/frmdetailevent.aspx?eventid=0503GNNBDGHPSEPEBTNRRP" target="_blank" rel="noopener noreferrer"&gt;questo link&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Buon .NET 2011</title><link>https://www.albertodallagiacoma.it/blog/2011/12/buon-.net-2011/</link><pubDate>Mon, 12 Dec 2011 20:00:00 +0100</pubDate><guid>https://www.albertodallagiacoma.it/blog/2011/12/buon-.net-2011/</guid><description>&lt;p&gt;&lt;img src="https://www.albertodallagiacoma.it/blog/2011/12/buon-.net-2011/DotDotNetLogo_2.png" width="236" height="88" alt="DotDotNetLogo" loading="lazy"&gt;&lt;/p&gt;&#10;&lt;p&gt;Il 16 dicembre a Parma si svolgerà l’ultimo evento &lt;a href="http://www.dotdotnet.org" target="_blank" rel="noopener noreferrer"&gt;DotDotNet&lt;/a&gt; del 2011, dove si parlerà di scalabilità e di sviluppo cross platform per dispositivi mobili.&lt;/p&gt;&#10;&lt;p&gt;Nella mia sessione farò una panoramica su &lt;a href="http://msdn.microsoft.com/en-us/library/ee677312.aspx" target="_blank" rel="noopener noreferrer"&gt;Windows Server AppFabric Cache&lt;/a&gt;, dove mostrerò la gestione, la configurazione e i più comuni patterns di utilizzo. La seconda sessione sullo sviluppo mobile sarà tenuta da &lt;a href="http://sviluppomobile.blogspot.com" target="_blank" rel="noopener noreferrer"&gt;Dan Ardelean&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;Qual miglior modo di chiudere il 2011, se non con un bell’evento DotDotnet? 🙂&lt;br&gt;&#10;Per chi è interessato, questa è la pagina per &lt;a href="http://communitydevtool.com/public/frmdetailevent.aspx?eventid=1203NUNBQEEPMBMPNRBBGC" target="_blank" rel="noopener noreferrer"&gt;l’iscrizione&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>JavaScript (senza parole)</title><link>https://www.albertodallagiacoma.it/blog/2011/06/javascript-senza-parole/</link><pubDate>Sat, 25 Jun 2011 13:00:00 +0200</pubDate><guid>https://www.albertodallagiacoma.it/blog/2011/06/javascript-senza-parole/</guid><description>&lt;p&gt;&lt;img src="https://www.albertodallagiacoma.it/blog/2011/06/javascript-senza-parole/31723_700b.jpg" width="700" height="565" alt="" loading="lazy"&gt;&lt;/p&gt;</description></item><item><title>Visual Studio 2010 SP1, SSMS e l’IntelliSense che fu…</title><link>https://www.albertodallagiacoma.it/blog/2011/04/visual-studio-2010-sp1-ssms-e-lrsquointellisense-che-fuhellip/</link><pubDate>Fri, 29 Apr 2011 20:00:00 +0200</pubDate><guid>https://www.albertodallagiacoma.it/blog/2011/04/visual-studio-2010-sp1-ssms-e-lrsquointellisense-che-fuhellip/</guid><description>&lt;p&gt;L’installazione del &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=75568aa6-8107-475d-948a-ef22627e57a5" target="_blank" rel="noopener noreferrer"&gt;SP1 di Visual Studio 2010&lt;/a&gt; ha una spiacevole controindicazione: l’intellisense nel SSMS di SQL Server 2008 R2 smette di funzionare.&lt;/p&gt;&#10;&lt;p&gt;Il problema &lt;a href="http://connect.microsoft.com/SQLServer/feedback/details/650569/ssms-2008-r2-is-losing-intellisense-after-installing-visual-studio-2010-sp1" target="_blank" rel="noopener noreferrer"&gt;era stato segnalato su Connect&lt;/a&gt; qualche tempo fa, ed ora &lt;a href="http://support.microsoft.com/kb/2531482" target="_blank" rel="noopener noreferrer"&gt;esiste la soluzione&lt;/a&gt;: basta installare la &lt;a href="http://support.microsoft.com/kb/2507770/en-us" target="_blank" rel="noopener noreferrer"&gt;Cumulative Update 7&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;Bentornato, IntelliSense! 🙂&lt;/p&gt;</description></item><item><title>Liberare spazio su disco dopo il setup del SP1 di Windows 7</title><link>https://www.albertodallagiacoma.it/blog/2011/02/liberare-spazio-su-disco-dopo-il-setup-del-sp1-di/</link><pubDate>Sat, 19 Feb 2011 11:00:00 +0100</pubDate><guid>https://www.albertodallagiacoma.it/blog/2011/02/liberare-spazio-su-disco-dopo-il-setup-del-sp1-di/</guid><description>&lt;p&gt;Per permettere la disinstallazione di un service pack, la procedura di setup esegue un backup di tutti i files che vengono sostituiti. Da Windows Vista in poi è sempre stato messo a disposizione un comando apposito che permette di eliminare questi files di backup, una volta sicuri che il Service Pack non provoca problemi alla nostra installazione.&lt;br&gt;&#10;Il comando da eseguire è sempre cambiato a seconda della versione di &lt;a href="http://windows.microsoft.com/en-US/windows/downloads/service-packs" target="_blank" rel="noopener noreferrer"&gt;Service Pack&lt;/a&gt; 🙂:&lt;/p&gt;</description></item><item><title>NBuilder</title><link>https://www.albertodallagiacoma.it/blog/2010/11/nbuilder/</link><pubDate>Tue, 02 Nov 2010 13:41:00 +0100</pubDate><guid>https://www.albertodallagiacoma.it/blog/2010/11/nbuilder/</guid><description>&lt;p&gt;Me lo segno qui, perché l’altro qualche giorno fa ne avevo bisogno, ma non mi ricordavo né il nome, né il sito… 😠 (grazie &lt;a href="http://blog.fewbit.com/" target="_blank" rel="noopener noreferrer"&gt;Luca&lt;/a&gt;, per il reminder 😃).&lt;/p&gt;&#10;&lt;p&gt;Tutte le volte che creiamo i nostri unit test, abbiamo anche bisogno di creare le istanze delle classi che saranno poi oggetto dei test.&lt;br&gt;&#10;&lt;a href="http://www.nbuilder.org/" target="_blank" rel="noopener noreferrer"&gt;NBuilder&lt;/a&gt; è una libreria che facilita la creazione di test objects, evitandoci di scrivere tutto quel noioso codice in fase di &lt;a href="http://www.nunit.org/index.php?p=setup&amp;amp;r=2.5.8" target="_blank" rel="noopener noreferrer"&gt;SetUp&lt;/a&gt;/&lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.testinitializeattribute.aspx" target="_blank" rel="noopener noreferrer"&gt;TestInitialize&lt;/a&gt; di ogni test fixture.&lt;/p&gt;</description></item><item><title>DotDotNet al NHDay</title><link>https://www.albertodallagiacoma.it/blog/2010/09/dotdotnet-al-nhday/</link><pubDate>Thu, 02 Sep 2010 16:30:00 +0200</pubDate><guid>https://www.albertodallagiacoma.it/blog/2010/09/dotdotnet-al-nhday/</guid><description>&lt;p&gt;&lt;img src="https://www.albertodallagiacoma.it/blog/2010/09/dotdotnet-al-nhday/NHDay_2.png" width="200" height="54" alt="NHDay" loading="lazy"&gt;&lt;/p&gt;&#10;&lt;p&gt;Ora che abbiamo passato le votazioni, e abbiamo inviato &lt;a href="http://nhday.eu/en/speakers.aspx#dotdotnet" target="_blank" rel="noopener noreferrer"&gt;foto e biografie&lt;/a&gt;, possiamo dire ufficialmente che &lt;a href="http://www.dotdotnet.org" target="_blank" rel="noopener noreferrer"&gt;DotDotNet&lt;/a&gt; parteciperà al &lt;a href="http://www.nhday.eu" target="_blank" rel="noopener noreferrer"&gt;NHibernate Day&lt;/a&gt;.&lt;br&gt;&#10;Io e i miei compari &lt;a href="http://blog.technothink.net/" target="_blank" rel="noopener noreferrer"&gt;Igor&lt;/a&gt; e &lt;a href="http://www.lucamilan.it/" target="_blank" rel="noopener noreferrer"&gt;Luca&lt;/a&gt; terremo una sessione riguardante la configurazione “smart” di un’applicazione, utilizzando gli Event Listeners di NHibernate per aggiungere funzionalità senza stravolgere la struttura iniziale.&lt;/p&gt;&#10;&lt;p&gt;Partecipare ad una conferenza dove sono presenti &lt;a href="http://www.nhday.eu/it/speaker.aspx" target="_blank" rel="noopener noreferrer"&gt;tanti speaker di rilievo&lt;/a&gt; non è da tutti i giorni, ma faremo del nostro meglio.&lt;br&gt;&#10;Per chi si è iscritto, ci vediamo a &lt;a href="http://www.nhday.eu/it/location.aspx" target="_blank" rel="noopener noreferrer"&gt;Bologna il 9 ottobre 2010&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Nuova versione di Castle Windsor (e NHibernate?)</title><link>https://www.albertodallagiacoma.it/blog/2010/08/nuova-versione-di-castle-windsor-e-nhibernate/</link><pubDate>Tue, 24 Aug 2010 17:06:00 +0200</pubDate><guid>https://www.albertodallagiacoma.it/blog/2010/08/nuova-versione-di-castle-windsor-e-nhibernate/</guid><description>&lt;p&gt;Giusto ieri è stata rilasciata la &lt;a href="http://kozmic.pl/archive/2010/08/22/castle-windsor-incl.-core-with-dynamicproxy-and-dictionary-adapter-v2.5.aspx" target="_blank" rel="noopener noreferrer"&gt;nuova versione 2.5&lt;/a&gt; di &lt;a href="http://www.castleproject.org/container/index.html" target="_blank" rel="noopener noreferrer"&gt;Castle Windsor&lt;/a&gt;; tra le tante novità, il supporto a .NET 4.0 e &lt;a href="http://www.silverlight.net/" target="_blank" rel="noopener noreferrer"&gt;Silverlight&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;Bene; supponiamo di voler aggiornare un progetto esistente basato su &lt;a href="http://www.nhforge.org" target="_blank" rel="noopener noreferrer"&gt;NHibernate&lt;/a&gt;, in modo che usi anche l’ultima versione di Castle Windsor.&lt;br&gt;&#10;Prima della versione 2.1.x di NHibernate, la cosa non era semplicissima, dato che era presente una reference diretta agli assembly Castle.Core e Castle.DynamicProxy, quindi l’unica strada percorribile era::&lt;/p&gt;</description></item><item><title>CommunityServer e Captcha</title><link>https://www.albertodallagiacoma.it/blog/2010/06/communityserver-e-captcha/</link><pubDate>Fri, 25 Jun 2010 17:09:00 +0200</pubDate><guid>https://www.albertodallagiacoma.it/blog/2010/06/communityserver-e-captcha/</guid><description>&lt;p&gt;Chi usa CommunityServer, almeno nella versione Express &lt;a href="http://telligent.com/support/communityserver/community_server_2008/" target="_blank" rel="noopener noreferrer"&gt;2008.5 SP1&lt;/a&gt;, avrà notato la mancanza di un qualcosa che impedisca il proliferare di utenti spammer tra le registrazioni al sito.&lt;/p&gt;&#10;&lt;p&gt;Sul sito &lt;a href="http://www.dotdotnet.org" target="_blank" rel="noopener noreferrer"&gt;DotDotNet&lt;/a&gt; abbiamo adottato la soluzione del controllo Captcha nella pagina di registrazione degli utenti, utilizzando il componente &lt;a href="http://ngcsextensions.codeplex.com/" target="_blank" rel="noopener noreferrer"&gt;CommunityServerExtensions&lt;/a&gt; presente su &lt;a href="http://www.codeplex.com/" target="_blank" rel="noopener noreferrer"&gt;CodePlex&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;L’integrazione è davvero molto semplice, e la documentazione spiega come &lt;a href="http://ngcsextensions.codeplex.com/documentation" target="_blank" rel="noopener noreferrer"&gt;procedere passo passo&lt;/a&gt;.&lt;br&gt;&#10;L’unica cosa da tenere d’occhio è che, se si vuole usare il provider per il servizio &lt;a href="http://recaptcha.net" target="_blank" rel="noopener noreferrer"&gt;Recaptcha&lt;/a&gt; di Google, bisogna modificare il codice sorgente, come ho &lt;a href="http://ngcsextensions.codeplex.com/Thread/View.aspx?ThreadId=216655" target="_blank" rel="noopener noreferrer"&gt;segnalato sulla discussions list del progetto&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Scripts per la manutenzione dei Database SQL Server</title><link>https://www.albertodallagiacoma.it/blog/2010/06/scripts-per-la-manutenzione-dei-database-sql-server/</link><pubDate>Tue, 15 Jun 2010 20:00:00 +0200</pubDate><guid>https://www.albertodallagiacoma.it/blog/2010/06/scripts-per-la-manutenzione-dei-database-sql-server/</guid><description>&lt;p&gt;Su consiglio di &lt;a href="http://community.ugiss.org/blogs/dmauri/" target="_blank" rel="noopener noreferrer"&gt;Davide&lt;/a&gt;, ho iniziato ad utilizzare gli script di manutenzione di &lt;a href="http://ola.hallengren.com/" target="_blank" rel="noopener noreferrer"&gt;Ola Hallengren&lt;/a&gt; che si trovano &lt;a href="http://ola.hallengren.com/scripts/MaintenanceSolution.sql" target="_blank" rel="noopener noreferrer"&gt;a questo indirizzo&lt;/a&gt;.&lt;br&gt;&#10;Questi scripts permettono di gestire ed automatizzare molte attività di manutezione dei database, tipo piani di backup, ricostruzione/riorganizzazione degli indici, e check di consistenza.&lt;br&gt;&#10;Ben fatti ed anche &lt;a href="http://ola.hallengren.com/Documentation.html" target="_blank" rel="noopener noreferrer"&gt;ben documentati&lt;/a&gt;, rendono la vita del “povero dba” un po’ più semplice. :)&lt;/p&gt;&#10;&lt;p&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SQL&amp;#43;Server" target="_blank" rel="noopener noreferrer"&gt;SQL Server&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Scripts" target="_blank" rel="noopener noreferrer"&gt;Scripts&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Castle Scheduler</title><link>https://www.albertodallagiacoma.it/blog/2010/06/castle-scheduler/</link><pubDate>Mon, 14 Jun 2010 18:25:00 +0200</pubDate><guid>https://www.albertodallagiacoma.it/blog/2010/06/castle-scheduler/</guid><description>&lt;p&gt;La suite &lt;a href="http://www.castleproject.org/" target="_blank" rel="noopener noreferrer"&gt;CastleProject&lt;/a&gt; si arricchisce di un nuovo componente: &lt;a href="http://using.castleproject.org/display/Comp/Castle.Components.Scheduler" target="_blank" rel="noopener noreferrer"&gt;Castle Scheduler&lt;/a&gt;.&lt;br&gt;&#10;Si tratta di un Job Scheduler simile al forse più famoso &lt;a href="http://quartznet.sourceforge.net/" target="_blank" rel="noopener noreferrer"&gt;Quartz.NET&lt;/a&gt;, porting della &lt;a href="http://www.quartz-scheduler.org/" target="_blank" rel="noopener noreferrer"&gt;omonima libreria Java&lt;/a&gt;.&lt;br&gt;&#10;Ovviamente, l’integrazione con &lt;a href="http://www.castleproject.org/container/index.html" target="_blank" rel="noopener noreferrer"&gt;Castle Windsor&lt;/a&gt; è &lt;a href="http://using.castleproject.org/display/Comp/Castle.Components.Scheduling-Tutorial" target="_blank" rel="noopener noreferrer"&gt;piuttosto semplice&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="http://sourceforge.net/projects/castleproject/files/Scheduler/" target="_blank" rel="noopener noreferrer"&gt;Merita un’occhiata&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Avviare Windows 7 a tutto gas</title><link>https://www.albertodallagiacoma.it/blog/2010/06/avviare-windows-7-a-tutto-gas/</link><pubDate>Sun, 13 Jun 2010 12:54:00 +0200</pubDate><guid>https://www.albertodallagiacoma.it/blog/2010/06/avviare-windows-7-a-tutto-gas/</guid><description>&lt;p&gt;Il boot time di Windows 7 è di tutto rispetto, ma se non fosse sufficiente, ecco un bell’articolo che spiega come analizzare la fase di boot del sistema operativo ed, eventualmente, migliorarne i tempi.&lt;/p&gt;&#10;&lt;p&gt;&lt;a href="http://itexpertvoice.com/home/what%e2%80%99s-taking-so-long-how-to-fight-slow-startup-times-in-windows-7" target="_blank" rel="noopener noreferrer"&gt;Buona lettura&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Servizi Windows autoinstallanti</title><link>https://www.albertodallagiacoma.it/blog/2010/05/servizi-windows-autoinstallanti/</link><pubDate>Sun, 09 May 2010 01:25:00 +0200</pubDate><guid>https://www.albertodallagiacoma.it/blog/2010/05/servizi-windows-autoinstallanti/</guid><description>&lt;p&gt;E’ noto che per installare un Windows Service bisogna ricorrere al tool &lt;a href="http://msdn.microsoft.com/en-us/library/50614e95%28v=VS.100%29.aspx" target="_blank" rel="noopener noreferrer"&gt;InstallUtil&lt;/a&gt;, che si occupa di eseguire tutte le configurazioni necessarie affinche il nostro eseguibile possa essere gestito come servizio di sistema.&lt;/p&gt;&#10;&lt;p&gt;Spesso si trovano eseguibili che possono operare come servizi di sistema semplicemente invocandoli con particolari parametri sulla linea di comando, ad esempio:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;code&gt;MyService.exe –installservice&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;MyService.exe -uninstallservice&lt;/code&gt;&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Per aggiungere una funzionalità simile al nostro Windows Service, basta andare a curiosare all’interno di InstallUtil.exe con il fido Reflector, per accorgersi che in realtà il tool non fa altro che passare gli argomenti in ingresso sulla riga di comando alla classe &lt;a href="http://msdn.microsoft.com/en-us/library/system.configuration.install.managedinstallerclass.aspx" target="_blank" rel="noopener noreferrer"&gt;ManagedInstallerClass&lt;/a&gt;:&lt;/p&gt;</description></item><item><title>Da Virtual Server 2005 a Hyper-V Server R2: la porta parallela</title><link>https://www.albertodallagiacoma.it/blog/2010/02/da-virtual-server-2005-a-hyper-v-server-r2-la-porta/</link><pubDate>Tue, 23 Feb 2010 17:21:00 +0100</pubDate><guid>https://www.albertodallagiacoma.it/blog/2010/02/da-virtual-server-2005-a-hyper-v-server-r2-la-porta/</guid><description>&lt;p&gt;Dopo aver lavorato per un po’ di tempo su &lt;a href="http://www.vmware.com/products/esx/index.html" target="_blank" rel="noopener noreferrer"&gt;VMware ESX&lt;/a&gt;, sono riuscito anche a dare un’occhiata a &lt;a href="http://www.microsoft.com/hyper-v-server" target="_blank" rel="noopener noreferrer"&gt;Hyper-V Server R2&lt;/a&gt;, evoluzione naturale (e gratuita) in caso di aggiornamento di un Virtual Server 2005.&lt;br&gt;&#10;La migrazione delle macchine virtuali è semplice: visto che il formato dei dischi virtuali è il solito &lt;a href="http://en.wikipedia.org/wiki/VHD_%28file_format%29" target="_blank" rel="noopener noreferrer"&gt;VHD&lt;/a&gt;, alla fine basta:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Riconfigurare la macchina virtuale dicendo ad Hyper-V di usare dischi già esistenti.&lt;/li&gt;&#10;&lt;li&gt;Disinstallare le VM Additions di Virtual Server 2005.&lt;/li&gt;&#10;&lt;li&gt;Installare gli Hyper-V Integration Services.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;L’unica cosa strana che si nota, è un servizio che all’avvio va sempre in errore, e, guardando l’event viewer, è il driver della porta parallela; sembra infatti che, a differenza di Virtual Server 2005, la LPT non sia tra i device virtualizzabili da Hyper-V.&lt;/p&gt;</description></item><item><title>NHibernate in applicazioni desktop</title><link>https://www.albertodallagiacoma.it/blog/2009/12/nhibernate-in-applicazioni-desktop/</link><pubDate>Thu, 10 Dec 2009 18:50:00 +0100</pubDate><guid>https://www.albertodallagiacoma.it/blog/2009/12/nhibernate-in-applicazioni-desktop/</guid><description>&lt;p&gt;Ho sempre notato che la maggior parte degli esempi e della documentazione che si trova in rete su &lt;a href="http://www.nhforge.org" target="_blank" rel="noopener noreferrer"&gt;NHibernate&lt;/a&gt; riguarda applicazioni web, e per me che ho sempre dato precedenza ad applicazioni Smart Client, è stato un problema, almeno all’inizio.&lt;/p&gt;&#10;&lt;p&gt;Fortunatamente, il solito &lt;a href="http://ayende.com/blog/" target="_blank" rel="noopener noreferrer"&gt;Ayende&lt;/a&gt; è corso in nostro aiuto: su &lt;a href="http://msdn.microsoft.com/en-us/magazine/default.aspx" target="_blank" rel="noopener noreferrer"&gt;MSDN magazine&lt;/a&gt; è stato pubblicato un suo articolo che tratta l’utilizzo di NHibernate in un’applicazione WPF, spiegando con quali tecniche gestire la concorrenza, il databinding e la Session in un contesto molto diverso da quello web quale è l’applicazione desktop.&lt;br&gt;&#10;Articolo interessante che merita una lettura: lo trovate &lt;a href="http://msdn.microsoft.com/en-us/magazine/ee819139.aspx" target="_blank" rel="noopener noreferrer"&gt;qui&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Software installato e PowerShell</title><link>https://www.albertodallagiacoma.it/blog/2009/11/software-installato-e-powershell/</link><pubDate>Mon, 16 Nov 2009 01:21:00 +0100</pubDate><guid>https://www.albertodallagiacoma.it/blog/2009/11/software-installato-e-powershell/</guid><description>&lt;p&gt;Tempo fa avevo scritto &lt;a href="https://www.albertodallagiacoma.it/blog/2009/08/ora-che-cosa-devo-installare/"&gt;un post&lt;/a&gt; che mostrava come ricavare l’elenco del software installato tramite WMI, con la limitazione, però, di poter avere solo l’elenco di tutto cio che è stato installato tramite &lt;a href="http://en.wikipedia.org/wiki/Windows_Installer" target="_blank" rel="noopener noreferrer"&gt;Windows Installer&lt;/a&gt;.&lt;/p&gt;&#10;&lt;p&gt;Ho trovato metodi alternativi per ottenere lo stesso risultato, che sfruttano la potenza di &lt;a href="http://technet.microsoft.com/en-us/scriptcenter/dd742419.aspx" target="_blank" rel="noopener noreferrer"&gt;PowerShell&lt;/a&gt; e permettono anche di scegliere il formato di output che più ci piace:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="http://myitforum.com/cs2/blogs/yli628/archive/2008/01/16/powershell-script-to-list-installed-software-on-local-computer.aspx" target="_blank" rel="noopener noreferrer"&gt;Foglio di Excel&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="http://blogs.msdn.com/powershell/archive/2009/11/15/i-can-do-that-with-1-line-of-powershell-installed-software.aspx" target="_blank" rel="noopener noreferrer"&gt;GridView&lt;/a&gt;&lt;/li&gt;&#10;&lt;li&gt;File di testo:&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;PS&amp;gt; gp HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*&#10;| Select DisplayName, DisplayVersion, Publisher, InstallDate, UninstallString&#10;| Out-File &amp;#39;installed-sw.txt&amp;#39;&#10;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>Tabelle temporanee e variabili di tipo TABLE</title><link>https://www.albertodallagiacoma.it/blog/2009/11/tabelle-temporanee-e-variabili-di-tipo-table/</link><pubDate>Wed, 11 Nov 2009 18:42:00 +0100</pubDate><guid>https://www.albertodallagiacoma.it/blog/2009/11/tabelle-temporanee-e-variabili-di-tipo-table/</guid><description>&lt;p&gt;In SQL Server ci sono due modi per creare una tabella temporanea:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Appoggiarsi al &lt;a href="http://technet.microsoft.com/en-us/library/ms190768.aspx" target="_blank" rel="noopener noreferrer"&gt;tempdb&lt;/a&gt;:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;#&lt;/span&gt;&lt;span class="n"&gt;TempTable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Field1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Field2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;varchar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;INSERT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;INTO&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;#&lt;/span&gt;&lt;span class="n"&gt;TempTable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Field1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Field2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;VALUES&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;42&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Alberto&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;#&lt;/span&gt;&lt;span class="n"&gt;TempTable&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#10;&lt;li&gt;&#10;&lt;p&gt;Utilizzare una &lt;a href="http://msdn.microsoft.com/en-us/library/ms175010.aspx" target="_blank" rel="noopener noreferrer"&gt;variabile di tipo TABLE&lt;/a&gt;:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;DECLARE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;TempTable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;TABLE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Field1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Field2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;varchar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;INSERT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;INTO&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;TempTable&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Field1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Field2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;VALUES&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;42&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;Alberto&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;SELECT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="n"&gt;TempTable&lt;/span&gt;&lt;span class="w"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Sebbene i due modi si assomiglino molto, in realtà alcune differenze ci sono, e sono ben riassunte in &lt;a href="http://blogs.msdn.com/sqlserverstorageengine/archive/2008/03/30/sql-server-table-variable-vs-local-temporary-table.aspx" target="_blank" rel="noopener noreferrer"&gt;questo post&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>“Un Po di .NET” a Monticelli d’Ongina (PC)</title><link>https://www.albertodallagiacoma.it/blog/2009/09/ldquoun-po-di-.netrdquo-a-monticelli-drsquoongina/</link><pubDate>Thu, 17 Sep 2009 14:45:00 +0200</pubDate><guid>https://www.albertodallagiacoma.it/blog/2009/09/ldquoun-po-di-.netrdquo-a-monticelli-drsquoongina/</guid><description>&lt;p&gt;&lt;img src="https://www.albertodallagiacoma.it/blog/2009/09/ldquoun-po-di-.netrdquo-a-monticelli-drsquoongina/DotDotNetLogo_2.png" width="236" height="88" alt="DotDotNetLogo" loading="lazy"&gt;&lt;/p&gt;&#10;&lt;p&gt;Ecco gli argomenti che tratterò al &lt;a href="http://www.dotdotnet.org/events/09-07-30/Un_PO_di_NET_-_Golosone_NET.aspx" target="_blank" rel="noopener noreferrer"&gt;workshop&lt;/a&gt;:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;IoC e Dependency Injection&#10;&lt;ol&gt;&#10;&lt;li&gt;Di cosa si tratta.&lt;/li&gt;&#10;&lt;li&gt;StructureMap e Unity.&lt;/li&gt;&#10;&lt;li&gt;Pattern “Service Locator”.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/li&gt;&#10;&lt;li&gt;O/RM e persistenza&#10;&lt;ol&gt;&#10;&lt;li&gt;Pattern “Repository”.&lt;/li&gt;&#10;&lt;li&gt;Pattern “Unit of Work”&lt;/li&gt;&#10;&lt;li&gt;Persistenza con NHibernate.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;Per chi volesse fare un salto, &lt;a href="http://www.canottieriongina.net/" target="_blank" rel="noopener noreferrer"&gt;ci vediamo là&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Sconto per TechDays-WPC ai soci DotDotNet</title><link>https://www.albertodallagiacoma.it/blog/2009/09/sconto-per-techdays-wpc-ai-soci-dotdotnet/</link><pubDate>Tue, 08 Sep 2009 17:00:00 +0200</pubDate><guid>https://www.albertodallagiacoma.it/blog/2009/09/sconto-per-techdays-wpc-ai-soci-dotdotnet/</guid><description>&lt;p&gt;Dal 24 al 26 novembre 2009 si svolgeranno a Milano i &lt;a href="http://techdays-wpc.it/" target="_blank" rel="noopener noreferrer"&gt;TechDays-WPC&lt;/a&gt;, la maggiore conferenza ICT italiana dedicata al mondo Microsoft.&lt;br&gt;&#10;Per i soci &lt;a href="http://www.dotdotnet.org" target="_blank" rel="noopener noreferrer"&gt;DotDotNet&lt;/a&gt; è previsto uno sconto di 50 € sul prezzo di iscrizione; chi fosse interessato alla cosa, può inviare una mail a &lt;a href="mailto:info@dotdotnet.org"&gt;info@dotdotnet.org&lt;/a&gt; per sapere come usufruire del benefit.&lt;/p&gt;</description></item><item><title>Ora, che cosa devo installare?</title><link>https://www.albertodallagiacoma.it/blog/2009/08/ora-che-cosa-devo-installare/</link><pubDate>Mon, 17 Aug 2009 01:00:00 +0200</pubDate><guid>https://www.albertodallagiacoma.it/blog/2009/08/ora-che-cosa-devo-installare/</guid><description>&lt;p&gt;Quando si aggiorna il sistema operativo, oppure si dà una “sana rinfrescata” (cioè si pialla l’hard disk… 😁) alla propria installazione, ci tocca poi dover reinstallare tutta quella montagna di software che abbiamo installato nel tempo, e che è sempre difficile da ricordare. &lt;a href="http://msdn.microsoft.com/en-us/library/aa394582%28VS.85%29.aspx" target="_blank" rel="noopener noreferrer"&gt;WMI&lt;/a&gt; ci può dare una mano; tramite il comando:&lt;/p&gt;&#10;&lt;p&gt;&lt;code&gt;wmic product&lt;/code&gt;&lt;/p&gt;&#10;&lt;p&gt;otteniamo un pratico elenco di tutto il sotware installato tramite Windows Installer, da poter utilizzare in seguito come promemoria. E&amp;rsquo; vero, non è la totalità del software, ma è comunque utile.&lt;/p&gt;</description></item><item><title>Linq2NHibernate, FirstOrDefault e… I Dire Straits</title><link>https://www.albertodallagiacoma.it/blog/2009/08/linq2nhibernate-firstordefault-ehellip-i-dire-straits/</link><pubDate>Wed, 05 Aug 2009 16:50:00 +0200</pubDate><guid>https://www.albertodallagiacoma.it/blog/2009/08/linq2nhibernate-firstordefault-ehellip-i-dire-straits/</guid><description>&lt;p&gt;Tutti conosciamo i &lt;a href="http://it.wikipedia.org/wiki/Dire_Straits" target="_blank" rel="noopener noreferrer"&gt;Dire Straits&lt;/a&gt;, vero? Bene.&lt;/p&gt;&#10;&lt;p&gt;La miglior formazione dei Dire Straits, a mio avviso, è stata quella composta da:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="http://it.wikipedia.org/wiki/Mark_Knopfler" target="_blank" rel="noopener noreferrer"&gt;Mark Knopfler&lt;/a&gt; (voce e chitarra solista)&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="http://it.wikipedia.org/wiki/John_Illsley" target="_blank" rel="noopener noreferrer"&gt;John Illsley&lt;/a&gt; (basso)&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="http://it.wikipedia.org/wiki/Hal_Lindes" target="_blank" rel="noopener noreferrer"&gt;Hal Lindes&lt;/a&gt; (chitarra ritmica)&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="http://it.wikipedia.org/wiki/Alan_Clark" target="_blank" rel="noopener noreferrer"&gt;Alan Clark&lt;/a&gt; (tastiere)&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="http://it.wikipedia.org/wiki/Terry_Williams" target="_blank" rel="noopener noreferrer"&gt;Terry Williams&lt;/a&gt; (batteria)&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Se provassimo a mappare il tutto in un modello ad oggetti, potremmo scrivere:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Band&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;BandId&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="n"&gt;IList&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Player&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Members&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Player&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;PlayerId&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;FirstName&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;LastName&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="n"&gt;Band&lt;/span&gt; &lt;span class="n"&gt;Band&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;E ora che abbiamo Linq2NHibernate possiamo scrivere una cosa del tipo:&lt;/p&gt;</description></item></channel></rss>