<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://dotnetside.org/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" 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:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"><channel><title>DotNetSide</title><link>http://dotnetside.org/blogs/</link><description>Dot Net South Italy Developers User Group</description><dc:language>en-US</dc:language><generator>CommunityServer 2008 SP1 (Build: 30619.63)</generator><item><title>Registro Italiano in Internet??!?! Ma chi è costui?</title><link>http://dotnetside.org/blogs/fabio/archive/2010/03/19/registro-italiano-in-internet-ma-chi-232-costui.aspx</link><pubDate>Thu, 18 Mar 2010 23:05:20 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22405</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Oggi apro la posta e ricevo una lettera con intestazione &lt;strong&gt;Registro Italiano in Internet&lt;/strong&gt;. Mai sentito nominare. La lettera è strana:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&amp;quot;Gentili Sigg.re e Sigg.ri,       &lt;br /&gt;Nel quadro dell’attualizzazione annuale della Vostra registrazione nel Registro Italiano in Internet, Vi preghiamo di verificare la correttezza e completezza dei Vostri dati da noi registrati e di verificarli, se ne è necessario, sotto il seguente indirizzo Internet: www.Registro-Italiano-in-Internet.com.         &lt;br /&gt;Solamente così, il Registro Internet riporterà i dati più attuali! La Vostra registrazione di base e la sua attualizzazione sono gratuite.        &lt;br /&gt;I Vostri dati attualmente registrati, li troverete nel modulo allegato, che Vi preghiamo di utilizzare, nel caso in cui &lt;strong&gt;vorreste&lt;/strong&gt; &lt;strong&gt;passare un ordine soggetto a spese.&lt;/strong&gt; La registrazione di base gratuita e la sua attualizzazione possono essere effettuati da Voi stessi nel nostro sito www.Registro-Italiano-in-Internet.com sotto il menu, cliccando su &amp;quot;registrazione&amp;quot;.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Vi auguriamo ancora molto successo con la Vostra registrazione nel Registro Italiano in Internet!&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Distinti saluti&lt;/em&gt;&amp;quot;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Mi da l’impressione di un phishing … sembra presentarsi quasi come una pratica burocratica. Ma la frase &lt;em&gt;vorreste passare un ordine soggetto a spese&lt;/em&gt; è alquanto strana. Allegato c’è un modulo con i VOSTRI DATI e una casella per la firma. In piccolo c’è una frase che specifica che è necessario pagare &lt;strong&gt;958 euri&lt;/strong&gt; all’anno per l’inserzione. Bè, diffidate perchè &lt;strong&gt;&lt;font color="#ff0000"&gt;SI TRATTA DI UNA TRUFFA.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;E’ bastata una semplice ricerca su internet per trovare quintali di materiale su una truffa ormai vecchia di qualche anno. Questa fantomatica azienda tedesca ci prova a quanto pare ogni anno. Poi … la frase vige il diritto tedesco … ma daii…..&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.agcm.it/AGCM_ITA/COSTAMPA/COSTAMPA.NSF/5eae098911a82b5ec125615d003a9cb9/d8c6b58bacc63817c12574a3003a8053?OpenDocument"&gt;Comunicato stampa dell’Autorità Garante della concorrenza e del mercato.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;A costo di essere pignoli, leggete tutto e state sempre attenti a cosa firmate. Purtroppo c'è gente che ci è cascata e ha pagato 958*3 anni (l’importo da pagare è annuale e il presunto contratto vale per tre anni).&lt;/p&gt;  &lt;p&gt;Cosa fare?? Secondo me, la cosa migliore è chiaramente &lt;strong&gt;non rispondere&lt;/strong&gt; e denunciare il tentativo di truffa ai carabinieri.&lt;/p&gt;  &lt;p&gt;Ecco un po’ di link, i primi che ho trovato:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://dilatua.aduc.it/forum/truffa+registro+italiano+internet_1415.php" href="http://dilatua.aduc.it/forum/truffa+registro+italiano+internet_1415.php"&gt;http://dilatua.aduc.it/forum/truffa+registro+italiano+internet_1415.php&lt;/a&gt;    &lt;br /&gt;&lt;a title="http://www.puntobeta.it/blog/news/registro-italiano-in-internet-958e-per-registrarsi" href="http://www.puntobeta.it/blog/news/registro-italiano-in-internet-958e-per-registrarsi"&gt;http://www.puntobeta.it/blog/news/registro-italiano-in-internet-958e-per-registrarsi&lt;/a&gt;    &lt;br /&gt;&lt;a title="http://www.tomshw.it/news.php?newsid=16830" href="http://www.tomshw.it/news.php?newsid=16830"&gt;http://www.tomshw.it/news.php?newsid=16830&lt;/a&gt;    &lt;br /&gt;&lt;a title="http://punto-informatico.it/2019485/PI/Commenti/occhio-al-registro-italiano-internet.aspx" href="http://punto-informatico.it/2019485/PI/Commenti/occhio-al-registro-italiano-internet.aspx"&gt;http://punto-informatico.it/2019485/PI/Commenti/occhio-al-registro-italiano-internet.aspx&lt;/a&gt;    &lt;br /&gt;&lt;a title="http://blog.dsd.it/index.php/attenzione-alle-lettere-ingannevoli-del-registro-italiano-in-internet/truffe-on-line/" href="http://blog.dsd.it/index.php/attenzione-alle-lettere-ingannevoli-del-registro-italiano-in-internet/truffe-on-line/"&gt;http://blog.dsd.it/index.php/attenzione-alle-lettere-ingannevoli-del-registro-italiano-in-internet/truffe-on-line/&lt;/a&gt;    &lt;br /&gt;&lt;a title="http://blog.dsd.it/index.php/registro-italiano-in-internet-2a-puntata/truffe-on-line/" href="http://blog.dsd.it/index.php/registro-italiano-in-internet-2a-puntata/truffe-on-line/"&gt;http://blog.dsd.it/index.php/registro-italiano-in-internet-2a-puntata/truffe-on-line/&lt;/a&gt;    &lt;br /&gt;&lt;a title="http://blog.dsd.it/index.php/registro-italiano-in-internet-3a-puntata/truffe-on-line/" href="http://blog.dsd.it/index.php/registro-italiano-in-internet-3a-puntata/truffe-on-line/"&gt;http://blog.dsd.it/index.php/registro-italiano-in-internet-3a-puntata/truffe-on-line/&lt;/a&gt;    &lt;br /&gt;&lt;a title="http://blog.dsd.it/index.php/registro-italiano-in-internet-il-consiglio-dellagcm/sicurezza-internet/" href="http://blog.dsd.it/index.php/registro-italiano-in-internet-il-consiglio-dellagcm/sicurezza-internet/"&gt;http://blog.dsd.it/index.php/registro-italiano-in-internet-il-consiglio-dellagcm/sicurezza-internet/&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22405" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Varie/default.aspx">Varie</category></item><item><title>Silverlight 4, Blend 4 e Windows Phone 7 Developer Tools</title><link>http://dotnetside.org/blogs/vito/archive/2010/03/16/silverlight-4-blend-4-e-windows-phone-7-developer-tools.aspx</link><pubDate>Tue, 16 Mar 2010 13:57:33 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22404</guid><dc:creator>VitoA</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;Un sacco di novità interessantissime sono venute fuori dalla prima giornata del &lt;a href="http://live.visitmix.com/" target="_blank"&gt;mix10&lt;/a&gt;.&lt;/p&gt;  &lt;h3&gt;Silverlight 4 Release Candidate (RC)&lt;/h3&gt;  &lt;p&gt;Come già nell’aria da tempo, ieri, durante la prima giornata di &lt;a href="http://live.visitmix.com/" target="_blank"&gt;MIX10&lt;/a&gt;, è stata rilasciata una nuova versione di Silverlight 4, questa volta la Release Candidate. Oltre a conferme e migliorie rispetto alle features incluse nella precedente beta, ci sono alcune novità come la possibilità di eseguire applicazioni Silverlight full-screen con il supporto a più monitor, il nuovo WCF RIA Services Toolkit o, ciliegina sulla torta, la possibilità di installare applicazioni Silverlight Out-Of-Browser senza la necessità di essere collegati ad un server web devo questa è “hostata” (ndr installazione da CD).&lt;/p&gt;  &lt;p&gt;Maggiori info sulle differenze dalla beta : &lt;a href="http://timheuer.com/blog/archive/2010/03/15/whats-new-in-silverlight-4-rc-mix10.aspx"&gt;A guide to what has changed in the Silverlight 4 RC&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Expression Blend 4 Beta&lt;/h3&gt;  &lt;p&gt;Nuova versione anche per il tool dedicato a designer per applicazione Silverlight, WPF e, da questa versione, anche per Windows Phone 7. In questa versione, inoltre, abbiamo il &lt;a href="http://blogs.ugidotnet.org/corrado/archive/2010/03/15/blend-4rsquos-new-model-view-viewmodel-support.aspx" target="_blank"&gt;supporto al Model-View-ViewModel&lt;/a&gt;.&lt;/p&gt;  &lt;h3&gt;Windows Phone 7 Developer Tools&lt;/h3&gt;  &lt;p&gt;Sicuramente la novità più “eccitante” della prima giornata del mix, ovvero il rilascio dei tools per lo sviluppo di applicazioni per Windows Phone 7. la notizia era già nell’area ma adesso è stata ufficializzata. Le applicazione per il nuovo sistema operativo mobile saranno basata su Silveright 4 o, per applicazioni a più basso livello, XNA. IMHO…spettacolo!!!!&lt;/p&gt;  &lt;p&gt;Tutto il necessario per sviluppare applicazioni di questo tipo lo trovate all’indirizzo &lt;a href="http://go.microsoft.com/fwlink/?LinkID=185584"&gt;Windows Phone developer tools CTP&lt;/a&gt; (&lt;a href="http://go.microsoft.com/fwlink/?LinkID=185269"&gt;release notes&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;A tutto questo, ovviamente, daremo un’occhiata durante la mia sessione all’evento &lt;/strong&gt;&lt;a href="http://dotnetside.org/content/CommunityTour2010.aspx" target="_blank"&gt;&lt;strong&gt;Lancio Visual Studio 2010 @ Community Tour&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; del 25 marzo prossimo a Bari &lt;img src="http://dotnetside.org/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22404" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/vito/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://dotnetside.org/blogs/vito/archive/tags/Blend/default.aspx">Blend</category></item><item><title>Visual Studio 2008 e i file in lock</title><link>http://dotnetside.org/blogs/tcaldarola/archive/2010/03/08/visual-studio-2008-e-i-file-in-lock.aspx</link><pubDate>Mon, 08 Mar 2010 13:51:05 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22400</guid><dc:creator>Tommaso Caldarola</dc:creator><slash:comments>0</slash:comments><description>Ultimamente mi capita spesso di trovarmi un file in lock mentre cerco di salvarlo. Dopo aver eseguito un check con una delle tante utility del tipo “who locks me” e aver confermato che è VS stesso che blocca il file generalmente procedevo con il restart di Visual Studio. Poiché questa operazione mi era un po’ antipatica oggi, all’ennesimo lock, ho provato dapprima a giocare, invano, col build del progetto di riferimento e successivamente con un Rebuild All. Beh, con quest’ultima operazione il lock...(&lt;a href="http://dotnetside.org/blogs/tcaldarola/archive/2010/03/08/visual-studio-2008-e-i-file-in-lock.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22400" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/tcaldarola/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Iscrizioni aperte il Lancio di VS2010 @ Community Tour</title><link>http://dotnetside.org/blogs/vito/archive/2010/03/08/iscrizioni-aperte-il-lancio-di-vs2010-community-tour.aspx</link><pubDate>Mon, 08 Mar 2010 11:43:09 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22399</guid><dc:creator>VitoA</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Sono aperte le iscrizioni per il Lancio Visual Studio 2010 @ Community Tour che si terrà il 25 marzo 2010 presso Tecnopolis a Valenzano (BA). Ne approfitto per ringraziare il parco scientifico e tecnologico &lt;a href="http://www.tno.it/" target="_blank"&gt;Tecnopolis&lt;/a&gt; per la disponibilità nel concederci la sala per l’evento.&lt;/p&gt;  &lt;p&gt;Info &amp;amp; iscrizioni : &lt;a href="http://dotnetside.org/content/CommunityTour2010.aspx" target="_blank"&gt;Lancio Visual Studio 2010 @ Community Tour&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22399" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/vito/archive/tags/Eventi/default.aspx">Eventi</category><category domain="http://dotnetside.org/blogs/vito/archive/tags/DotNetSide/default.aspx">DotNetSide</category></item><item><title>.NET Campus - Meet, Learn, Share</title><link>http://dotnetside.org/blogs/fabio/archive/2010/03/02/net-campus-meet-learn-share.aspx</link><pubDate>Mon, 01 Mar 2010 23:31:47 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22398</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Sabato 13 Marzo a Roma presso l’università Roma Tre si svolgerà il primo &lt;a href="http://www.dotnetcampus.it/"&gt;.NET Campus&lt;/a&gt;, un evento gratuito organizzato dagli amici di &lt;a href="http://www.devleap.it/"&gt;DevLeap&lt;/a&gt; in collaborazione con il gruppo dei &lt;a href="https://student-partners.com/"&gt;Microsoft Student Partner&lt;/a&gt;. Un’intensa mattinata di sessioni tecniche davvero interessanti ma soprattutto un’opportunità di incontro tra studenti, aziende ed il mondo reale.&lt;/p&gt;  &lt;p&gt;E’ un evento davvero interessante e se vi trovate a Roma o dintorni (ma anche no &lt;img src="http://dotnetside.org/emoticons/emotion-1.gif" alt="Smile" /&gt;) non fatevelo sfuggire …&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.dotnetcampus.it/" href="http://www.dotnetcampus.it/"&gt;http://www.dotnetcampus.it/&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22398" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Eventi/default.aspx">Eventi</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Workshop/default.aspx">Workshop</category></item><item><title>Lancio Visual Studio 2010 @ Community Tour: online l’agenda</title><link>http://dotnetside.org/blogs/fabio/archive/2010/02/26/lancio-visual-studio-2010-community-tour-online-l-agenda.aspx</link><pubDate>Fri, 26 Feb 2010 12:51:03 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22393</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Come già &lt;a href="http://dotnetside.org/blogs/vito/archive/2010/02/18/lancio-visual-studio-2010-community-tour.aspx"&gt;annunciato da vito&lt;/a&gt;, è ora pronta anche &lt;a href="http://dotnetside.org/content/CommunityTour2010.aspx"&gt;l’agenda del prossimo evento&lt;/a&gt; di lancio di Visual Studio 2010. Parleremo delle novità del .NET Framework 4.0 ma, come al solito, da un punto di vista molto pratico e diretto alle reali problematiche che affrontiamo giornalmente. Quindi davvero poca “fuffa” &lt;img src="http://dotnetside.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt; e molto codice.&lt;/p&gt;  &lt;p&gt;Avremo il piacere della compagnia di due ospiti ma soprattutto amici di DotNetSide: &lt;a href="http://blogs.msdn.com/pietrobr/"&gt;Pietro Brambati&lt;/a&gt; che ci introdurrà le novità di ASP.NET MVC 2, e &lt;a href="http://blogs.ugidotnet.org/AndreaCol"&gt;Andrea Colaci&lt;/a&gt; che parlerà invece di ASP.NET 4.0. &lt;/p&gt;  &lt;p&gt;La procedura di registrazione sarà attiva a breve, ma vi consiglio di non impegnarvi per quella la data &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=22393" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/.netSide/default.aspx">.netSide</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Eventi/default.aspx">Eventi</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Workshop/default.aspx">Workshop</category></item><item><title>Lancio Visual Studio 2010 @ Community Tour</title><link>http://dotnetside.org/blogs/vito/archive/2010/02/18/lancio-visual-studio-2010-community-tour.aspx</link><pubDate>Thu, 18 Feb 2010 11:17:17 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22387</guid><dc:creator>VitoA</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;Segnate questa data in agenda: &lt;strong&gt;25 marzo 2010&lt;/strong&gt;, Bari!&lt;/p&gt;  &lt;p&gt;Maggiori dettagli nei prossimi giorni &lt;img src="http://dotnetside.org/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22387" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/vito/archive/tags/Eventi/default.aspx">Eventi</category><category domain="http://dotnetside.org/blogs/vito/archive/tags/DotNetSide/default.aspx">DotNetSide</category></item><item><title>ATE @ Smau Business Bari 2010</title><link>http://dotnetside.org/blogs/vito/archive/2010/02/09/ate-smau-business-bari-2010.aspx</link><pubDate>Tue, 09 Feb 2010 10:13:01 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22385</guid><dc:creator>VitoA</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a href="http://www.smau.it/"&gt;&lt;img border="0" src="http://www.smau.it/html/img/10_ba/logo_sb_ba_top.gif" width="227" height="51" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Il 10 e 11 febbraio 2010 si terrà a Bari presso la Fiera del Levante una delle tappe dello SMAU Business 2010. L’evento è un appuntamento dedicato alle tecnologie più avanzate per un target “business“ ed è composto da una parte espositiva e da una serie di workshop.&lt;/p&gt;  &lt;p&gt;L’evento è gratuito previa registrazione all’indirizzo &lt;a href="http://www.smau.it"&gt;www.smau.it&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Io sarò presente allo stand Microsoft per rispondere a qualsiasi domanda sulle novità di Windows 7 e dintorni. &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=22385" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/vito/archive/tags/Eventi/default.aspx">Eventi</category><category domain="http://dotnetside.org/blogs/vito/archive/tags/MVP/default.aspx">MVP</category></item><item><title>Back from DotNetCampania !!!</title><link>http://dotnetside.org/blogs/fabio/archive/2010/02/07/back-from-dotnetcampania.aspx</link><pubDate>Sun, 07 Feb 2010 13:29:23 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22384</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Reduce dalla bellissima esperienza presso &lt;a href="http://dotnetcampania.org/"&gt;dotnetcampania&lt;/a&gt;, finalmente riesco a trovare un po’ di tempo per postare. GRAZIE!!! Anche se sono stato dei vostri per poco tempo, ho sentito aleggiare l’aria da community tipica di questi eventi. La partecipazione è stata secondo me ottima, la sala era piena, come testimoniano le foto, e la gente interessata a tutti gli argomenti trattati.&lt;/p&gt;  &lt;p&gt;Alcune foto tratte da facebook:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://photos-c.ak.fbcdn.net/hphotos-ak-snc3/hs208.snc3/21556_1272679829562_1606890775_30671834_3693069_n.jpg" width="240" height="160" /&gt;&lt;img style="margin: 0px 0px 0px 5px" src="http://photos-f.ak.fbcdn.net/hphotos-ak-snc3/hs228.snc3/21556_1272677149495_1606890775_30671794_7869087_n.jpg" width="240" height="160" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img src="http://photos-g.ak.fbcdn.net/hphotos-ak-snc3/hs228.snc3/21556_1272682429627_1606890775_30671874_5931671_n.jpg" width="240" height="160" /&gt;&lt;img style="margin: 0px 0px 0px 5px" src="http://photos-e.ak.fbcdn.net/hphotos-ak-snc3/hs208.snc3/21556_1272682549630_1606890775_30671877_5656745_n.jpg" width="240" height="160" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Grazie a &lt;a href="http://dotnetcampania.org/blogs/michele"&gt;Michele&lt;/a&gt; e &lt;a href="http://www.alessandroforte.it/"&gt;Alessandro&lt;/a&gt; per l’accoglienza.&lt;/p&gt;  &lt;p&gt;Intanto ho &lt;a href="http://cid-540d132f4650788f.skydrive.live.com/self.aspx/WebDevelopmentDay^_DotNetCampania"&gt;pubblicato su skydrive&lt;/a&gt; le slides ed il codice utilizzati durante la mia sessione. Nei prossimi giorni saranno anche linkati dalla &lt;a href="http://dotnetcampania.org/content/WebDevelopmentDay.aspx"&gt;pagina ufficiale dell’evento&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Complimenti ragazzi.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22384" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Eventi/default.aspx">Eventi</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Workshop/default.aspx">Workshop</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/WCF/default.aspx">WCF</category></item><item><title>La sicurezza in .NET 4.0</title><link>http://dotnetside.org/blogs/vito/archive/2010/01/21/la-sicurezza-in-net-4-0.aspx</link><pubDate>Thu, 21 Jan 2010 09:32:18 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22380</guid><dc:creator>VitoA</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Spesso sottovalutata, la sicurezza nelle applicazioni .net, acquista nuove funzionalità con il nuovo framework. Su &lt;a href="http://dotnetside.org/"&gt;DotNetSide&lt;/a&gt; è stato appena pubblicato un articolo dell’amico &lt;a href="http://blogs.ugidotnet.org/AndreaCol/Default.aspx"&gt;Andrea&lt;/a&gt; sull’argomento.&lt;/p&gt;  &lt;p&gt;Buona Lettura!&lt;/p&gt;  &lt;p&gt;Articolo : &lt;a title="http://dotnetside.org/blogs/articoli/pages/net-framework-4-0-il-nuovo-modello-di-security.aspx" href="http://dotnetside.org/blogs/articoli/pages/net-framework-4-0-il-nuovo-modello-di-security.aspx"&gt;.Net Framework 4.0 - Il nuovo modello di security&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22380" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/vito/archive/tags/Articoli/default.aspx">Articoli</category><category domain="http://dotnetside.org/blogs/vito/archive/tags/.NET/default.aspx">.NET</category><category domain="http://dotnetside.org/blogs/vito/archive/tags/Pubblicazioni/default.aspx">Pubblicazioni</category></item><item><title>WCF al Web Development Day di DotNetCampania</title><link>http://dotnetside.org/blogs/fabio/archive/2010/01/17/wcf-al-web-development-day-di-dotnetcampania.aspx</link><pubDate>Sun, 17 Jan 2010 11:02:25 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22376</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Ora è ufficiale e posso dirlo: al &lt;a href="http://dotnetcampania.org/content/WebDevelopmentDay.aspx"&gt;Web Development Day&lt;/a&gt; di &lt;a href="http://dotnetcampania.org"&gt;DotNetCampania&lt;/a&gt; ci sarò anche io con una sessione interamente dedicata a WCF. Una bella collaborazione &lt;a href="http://dotnetside.org"&gt;DotNetSide&lt;/a&gt; - &lt;a href="http://dotnetcampania.org"&gt;DotNetCampania&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Nella sessione ci sarà spazio per qualche novità della versione 4.0, alcuni tips per migliorare l’utilizzo di WCF ma soprattutto cercheremo di capirne l’architettura per meglio sviluppare le nostre soluzioni.&lt;/p&gt;  &lt;p&gt;Quindi, se vi trovate dalle parti di Napoli il 5 Febbraio, venite a trovarci, anche perchè l’&lt;a href="http://dotnetcampania.org/content/WebDevelopmentDay.aspx"&gt;agenda&lt;/a&gt; si presenta bella ricca di spunti interessanti.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22376" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Eventi/default.aspx">Eventi</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Workshop/default.aspx">Workshop</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/WCF/default.aspx">WCF</category></item><item><title>Nuova data di lancio Visual Studio 2010</title><link>http://dotnetside.org/blogs/vito/archive/2010/01/14/nuova-data-di-lancio-visual-studio-2010.aspx</link><pubDate>Thu, 14 Jan 2010 18:43:02 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22375</guid><dc:creator>VitoA</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;E’ stata annunciata la nuova data di lancio di Visual Studio 2010 che era stata in un primo momento fissata per il 22 marzo. La nuova sarà quindi il &lt;strong&gt;12 aprile 2010&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Segnatelo in agenda &lt;img src="http://dotnetside.org/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22375" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/vito/archive/tags/Eventi/default.aspx">Eventi</category><category domain="http://dotnetside.org/blogs/vito/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Localizzazione con SQL Server parte II</title><link>http://dotnetside.org/blogs/madil/archive/2010/01/04/localizzazione-con-sql-server-parte-ii.aspx</link><pubDate>Mon, 04 Jan 2010 19:43:15 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22372</guid><dc:creator>MADIL</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Tornando al problema della localizzazione visto nel &lt;a href="http://dotnetside.org/blogs/madil/archive/2010/01/02/localizzazione-e-paginazione-con-sql-server.aspx"&gt;post precedente&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;In questo caso devo estrarre una singola notizia con tutte le sue localizzazioni; questa è una tipica situazione che si verifica a livello di &lt;em&gt;(back end)&lt;/em&gt;, dove l’utente vuole avere la possibilità di modificare le informazioni generali della notizia e le informazioni relative alle versioni localizzate, ottenendo la query &lt;em&gt;(vedi codice).&lt;/em&gt;&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @CultureIdDefault &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="kwrd"&gt;INT&lt;/span&gt; = 16;   &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @NewsId &lt;span class="kwrd"&gt;AS&lt;/span&gt; UNIQUEIDENTIFIER = &lt;span class="str"&gt;'51C0E6DF-58B7-4913-A156-9A6196C3FBC1'&lt;/span&gt;; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt;    NewsGenerale.&lt;span class="kwrd"&gt;Data&lt;/span&gt;, NewsGenerale.ImmagineUrl, NewsGenerale.Url,   &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;          NewsLocaleDefault.CultureId &lt;span class="kwrd"&gt;AS&lt;/span&gt; CultureIdLocaleDefault,    &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;          NewsLocaleDefault.ImmagineAltTesto &lt;span class="kwrd"&gt;AS&lt;/span&gt; ImmagineAltTestoLocaleDefault,    &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;          NewsLocaleDefault.Titolo &lt;span class="kwrd"&gt;AS&lt;/span&gt; TitoloLocaleDefault,   &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;          NewsLocaleDefault.Abstract &lt;span class="kwrd"&gt;AS&lt;/span&gt; AbstractLocaleDefault,    &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;          NewsLocaleDefault.Testo &lt;span class="kwrd"&gt;AS&lt;/span&gt; TestoLocaleDefault,   &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;          NewsLocale.CultureId &lt;span class="kwrd"&gt;AS&lt;/span&gt; CultureIdLocale,   &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;          NewsLocale.ImmagineAltTesto &lt;span class="kwrd"&gt;AS&lt;/span&gt; ImmagineAltTestoLocale,   &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;          NewsLocale.Titolo &lt;span class="kwrd"&gt;AS&lt;/span&gt; TitoloLocale,   &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;          NewsLocale.Abstract &lt;span class="kwrd"&gt;AS&lt;/span&gt; AbstractLocale, &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;          NewsLocale.Testo &lt;span class="kwrd"&gt;AS&lt;/span&gt; TestoLocale  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt;      (  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            &lt;span class="kwrd"&gt;SELECT&lt;/span&gt;   NewsId, Visibile, &lt;span class="kwrd"&gt;Data&lt;/span&gt;, ImmagineUrl, Url  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;            &lt;span class="kwrd"&gt;FROM&lt;/span&gt;     News&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;            &lt;span class="kwrd"&gt;WHERE&lt;/span&gt;     NewsId = @NewsId&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;          ) &lt;span class="kwrd"&gt;AS&lt;/span&gt; NewsGenerale &lt;span class="kwrd"&gt;INNER&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt;  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;          (  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;            &lt;span class="kwrd"&gt;SELECT&lt;/span&gt;   NewsId, CultureId, ImmagineAltTesto, Titolo, Abstract, Testo  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;            &lt;span class="kwrd"&gt;FROM&lt;/span&gt;     NewsLocale &lt;span class="kwrd"&gt;AS&lt;/span&gt; NewsLocale_2  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;            &lt;span class="kwrd"&gt;WHERE&lt;/span&gt;    (NewsId = @NewsId) &lt;span class="kwrd"&gt;AND&lt;/span&gt; (CultureId = @CultureIdDefault)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;          ) &lt;span class="kwrd"&gt;AS&lt;/span&gt; NewsLocaleDefault &lt;span class="kwrd"&gt;ON&lt;/span&gt; NewsGenerale.NewsId = NewsLocaleDefault.NewsId &lt;span class="kwrd"&gt;LEFT&lt;/span&gt; &lt;span class="kwrd"&gt;OUTER&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt;  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;          (  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;            &lt;span class="kwrd"&gt;SELECT&lt;/span&gt;   NewsId, CultureId, ImmagineAltTesto, Titolo, Abstract, Testo  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;            &lt;span class="kwrd"&gt;FROM&lt;/span&gt;     NewsLocale &lt;span class="kwrd"&gt;AS&lt;/span&gt; NewsLocale_1 &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;            &lt;span class="kwrd"&gt;WHERE&lt;/span&gt;   (NewsId = @NewsId) &lt;span class="kwrd"&gt;AND&lt;/span&gt; (CultureId &amp;lt;&amp;gt; @CultureIdDefault)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;           ) &lt;span class="kwrd"&gt;AS&lt;/span&gt; NewsLocale &lt;span class="kwrd"&gt;ON&lt;/span&gt; NewsGenerale.NewsId = NewsLocale.NewsId&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;










.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;Questa query permette di estrarre in un unico passaggio la notizia identificata dal NewsId con tutte le sue localizzazioni, per distinguere la lingua di default dalle altre localizzazioni vengono utilizzati due join; il primo un &lt;em&gt;INNER JOIN&lt;/em&gt; che permette di recuperare i dati localizzati nella lingua di default, il secondo un &lt;em&gt;LEFT OUTER JOIN&lt;/em&gt; che permette di recuperare i dati localizzati nelle altre lingue.&lt;/p&gt;

&lt;p&gt;Con questa query ottengo tante righe quante sono le localizzazioni presenti, quindi i dati generali della notizia e i dati localizzati nella lingua di default vengono ripetuti ottenendo una ridondanza di dati, nel caso in cui i dati relativi alla notizia siano presenti solo nella lingua di default otterremo una riga dove i dati relativi alla localizzazioni saranno &lt;em&gt;NULL&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;La notizia completa è un’entità composta da una classe contenente i dati generali della notizia, e da una lista di classi contenenti le localizzazioni della notizia.&lt;/p&gt;

&lt;p&gt;La notizia completa viene costruita utilizzando un ciclo. I dati generali della notizia ed i dati localizzati nella lingua di default vengono recuperati la prima volta che viene eseguito il ciclo mentre i dati localizzati vengono recuperati ogni volta che il ciclo viene eseguito &lt;em&gt;(“vedi codice”).&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;      boNewsCompleta nc = &lt;span class="kwrd"&gt;new&lt;/span&gt; boNewsCompleta();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;      nc.ParteDeLoc = &lt;span class="kwrd"&gt;new&lt;/span&gt; boNewsDeLoc();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;      nc.ParteLocale = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;boNewsLocale&amp;gt;();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;      boNewsLocale nl;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;      &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;      SqlDataReader r;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;      &lt;span class="kwrd"&gt;bool&lt;/span&gt; primaVolta = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;      &lt;span class="kwrd"&gt;string&lt;/span&gt; msg;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;      &lt;span class="kwrd"&gt;while&lt;/span&gt; (r.Read())&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;      {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;        &lt;span class="rem"&gt;//Verifica se è la prima volta che si entra nel ciclo&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (primaVolta)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;          &lt;span class="rem"&gt;//Notizia generale&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;          nc.ParteDeLoc.Data = (DateTime)r[&lt;span class="str"&gt;&amp;quot;Data&amp;quot;&lt;/span&gt;];&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;          nc.ParteDeLoc.ImmagineUrl = (String)r[&lt;span class="str"&gt;&amp;quot;ImmagineUrl&amp;quot;&lt;/span&gt;];&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;          nc.ParteDeLoc.Url = (String)r[&lt;span class="str"&gt;&amp;quot;Url&amp;quot;&lt;/span&gt;];&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;          &lt;span class="rem"&gt;//Notizia localizzata nella lingua di default&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;          nl = &lt;span class="kwrd"&gt;new&lt;/span&gt; boNewsLocale();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;          nl.CultureId = (&lt;span class="kwrd"&gt;int&lt;/span&gt;)r[&lt;span class="str"&gt;&amp;quot;CultureIdLocaleDefault&amp;quot;&lt;/span&gt;];&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;          nl.ImmagineAltTesto = (String)r[&lt;span class="str"&gt;&amp;quot;ImmagineAltTestoLocaleDefault&amp;quot;&lt;/span&gt;];&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;          nl.Titolo = (String)r[&lt;span class="str"&gt;&amp;quot;TitoloLocaleDefault&amp;quot;&lt;/span&gt;];&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;          nl.Abstract = (String)r[&lt;span class="str"&gt;&amp;quot;AbstractLocaleDefault&amp;quot;&lt;/span&gt;];&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;          nl.Testo = (String)r[&lt;span class="str"&gt;&amp;quot;TestoLocaleDefault&amp;quot;&lt;/span&gt;];&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;          nc.ParteLocale.Add(nl);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;          &lt;span class="rem"&gt;//Imposta il flag a false&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;          primaVolta = &lt;span class="kwrd"&gt;false&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;        }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;        &lt;span class="rem"&gt;//Notizia localizzata&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;        nl = &lt;span class="kwrd"&gt;new&lt;/span&gt; boNewsLocale();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;        nl.CultureId = (r[&lt;span class="str"&gt;&amp;quot;CultureIdLocale&amp;quot;&lt;/span&gt;] &lt;span class="kwrd"&gt;is&lt;/span&gt; DBNull) ? 0 : (&lt;span class="kwrd"&gt;int&lt;/span&gt;)r[&lt;span class="str"&gt;&amp;quot;CultureIdLocale&amp;quot;&lt;/span&gt;];&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;        nl.ImmagineAltTesto = (r[&lt;span class="str"&gt;&amp;quot;ImmagineAltTestoLocale&amp;quot;&lt;/span&gt;] &lt;span class="kwrd"&gt;is&lt;/span&gt; DBNull) ? String.Empty : (String)r[&lt;span class="str"&gt;&amp;quot;ImmagineAltTestoLocale&amp;quot;&lt;/span&gt;];&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;        nl.Titolo = (r[&lt;span class="str"&gt;&amp;quot;TitoloLocale&amp;quot;&lt;/span&gt;] &lt;span class="kwrd"&gt;is&lt;/span&gt; DBNull) ? String.Empty : (String)r[&lt;span class="str"&gt;&amp;quot;TitoloLocale&amp;quot;&lt;/span&gt;];&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;        nl.Abstract = (r[&lt;span class="str"&gt;&amp;quot;AbstractLocale&amp;quot;&lt;/span&gt;] &lt;span class="kwrd"&gt;is&lt;/span&gt; DBNull) ? String.Empty : (String)r[&lt;span class="str"&gt;&amp;quot;AbstractLocale&amp;quot;&lt;/span&gt;];&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;        nl.Testo = (r[&lt;span class="str"&gt;&amp;quot;TestoLocale&amp;quot;&lt;/span&gt;] &lt;span class="kwrd"&gt;is&lt;/span&gt; DBNull) ? String.Empty : (String)r[&lt;span class="str"&gt;&amp;quot;TestoLocale&amp;quot;&lt;/span&gt;];&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;        &lt;span class="rem"&gt;//Verifica se la notizia localizzata è stata creata correttamente &lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (!nl.IsNull(&lt;span class="kwrd"&gt;out&lt;/span&gt; msg))&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;        {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;          nc.ParteLocale.Add(nl);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;        }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;      }&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;









.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22372" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/madil/archive/tags/Sql+Server/default.aspx">Sql Server</category><category domain="http://dotnetside.org/blogs/madil/archive/tags/SQL/default.aspx">SQL</category></item><item><title>.NET CAMPUS 2010</title><link>http://dotnetside.org/blogs/madil/archive/2010/01/04/net-campus-2010.aspx</link><pubDate>Mon, 04 Jan 2010 19:07:58 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22371</guid><dc:creator>MADIL</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;a title="Banner evento .NET CAMPUS 2010" href="http://www.dotnetcampus.it/" target="_blank"&gt;&lt;img style="margin: 0px 15px 0px 0px; display: inline" alt="banner-evento" align="left" src="http://static.flickr.com/4064/4245416580_1dbcbb8e88.jpg" width="240" height="137" /&gt;&lt;/a&gt;Il 10/03/2010 a Roma si svolgerà un evento su tecnologie .NET, al quale penso valga la pena partecipare.&lt;/p&gt;  &lt;p&gt;Si tratta di un evento gratuito che durerà tutta la giornata dove verranno illustrate le nuove caratteristiche presenti nel Framework 4.0. &lt;/p&gt;  &lt;p&gt;Inoltre ci saranno momenti d’incontro e contatto con diverse aziende, alle quali sarà possibile lasciare il proprio CV.&lt;/p&gt;  &lt;p&gt;Ecco alcuni link utili relativi all’evento.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.dotnetcampus.it/Evento.aspx" target="_blank"&gt;Evento .NET CAMPUS 2010&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032433548&amp;amp;Culture=it-IT" target="_blank"&gt;Iscrizioni a .NET CAMPUS 2010&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.dotnetcampus.it/Agenda.aspx" target="_blank"&gt;Agenda .NET CAMPUS 2010&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.dotnetcampus.it/Speaker.aspx" target="_blank"&gt;Speaker .NET CAMPUS 2010&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22371" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/madil/archive/tags/Other/default.aspx">Other</category><category domain="http://dotnetside.org/blogs/madil/archive/tags/Eventi/default.aspx">Eventi</category></item><item><title>Localizzazione e paginazione con SQL Server</title><link>http://dotnetside.org/blogs/madil/archive/2010/01/02/localizzazione-e-paginazione-con-sql-server.aspx</link><pubDate>Sat, 02 Jan 2010 16:36:42 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22370</guid><dc:creator>MADIL</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Un problema ricorrente molto spesso nei siti Web è legato alla localizzazione dei dati, se questi sono memorizzati in un database, quando si estraggono i dati bisogna tenere conto del fatto che alcune informazioni potrebbero non essere state localizzate, quindi è necessario estrarre le informazioni nella lingua di default.&lt;/p&gt;  &lt;p&gt;Il modo più semplice per risolvere questo problema consiste nell’effettuare due accessi al database, il primo nel quale prendo i dati localizzati, se questa operazione non va a buon fine effettuo il secondo accesso al database nel quale prendo i dati nella lingua di default.&lt;/p&gt;  &lt;p&gt;Il tipo di approccio descritto sopra richiede un numero elevato di accessi al database e per siti di medie/grandi dimensioni influisce negativamente sulle prestazioni, per questo motivo l’ideale sarebbe prendere tutti i dati necessari dal database con un unica query, provvedo a verificare l’esistenza dei dati localizzati o meno da codice.&lt;/p&gt;  &lt;p&gt;Per essere più chiaro abbiamo un database con delle news localizzate quindi avremo due tabelle una con i dati generali delle news e l’altra con i dati localizzati &lt;em&gt;(vedi codice)&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; [News](&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    [NewsId] [uniqueidentifier] &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    [&lt;span class="kwrd"&gt;Data&lt;/span&gt;] [datetime] &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    [ImmagineUrl] [&lt;span class="kwrd"&gt;varchar&lt;/span&gt;](255) &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    [Url] [nvarchar](&lt;span class="kwrd"&gt;max&lt;/span&gt;) &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;CONSTRAINT&lt;/span&gt; [PK_news] &lt;span class="kwrd"&gt;PRIMARY&lt;/span&gt; &lt;span class="kwrd"&gt;KEY&lt;/span&gt; &lt;span class="kwrd"&gt;CLUSTERED&lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;(&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    [NewsId] &lt;span class="kwrd"&gt;ASC&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt; [NewsLocale](&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    [NewsId] [uniqueidentifier] &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    [CultureId] [&lt;span class="kwrd"&gt;int&lt;/span&gt;] &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    [ImmagineAltTesto] [nvarchar](255) &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;    [Titolo] [nvarchar](255) &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;    [Abstract] [nvarchar](&lt;span class="kwrd"&gt;max&lt;/span&gt;) &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;    [Testo] [nvarchar](&lt;span class="kwrd"&gt;max&lt;/span&gt;) &lt;span class="kwrd"&gt;NOT&lt;/span&gt; &lt;span class="kwrd"&gt;NULL&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt; &lt;span class="kwrd"&gt;CONSTRAINT&lt;/span&gt; [PK_NewsLocale_1] &lt;span class="kwrd"&gt;PRIMARY&lt;/span&gt; &lt;span class="kwrd"&gt;KEY&lt;/span&gt; &lt;span class="kwrd"&gt;CLUSTERED&lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;(&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;    [NewsId] &lt;span class="kwrd"&gt;ASC&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;    [CultureId] &lt;span class="kwrd"&gt;ASC&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;)&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;










.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Nella Tabella “&lt;em&gt;NewsLocale”&lt;/em&gt; vanno memorizzati i dati localizzati della notizia che vengono distinti per “&lt;em&gt;NewsId” &lt;/em&gt;e “&lt;em&gt;CultureId”&lt;/em&gt; . La query che, permette di selezionare le notizie localizzate sia nella lingua di default che nella lingua richiesta dall’utente, prevede l’utilizzo di due “&lt;em&gt;JOIN”&lt;/em&gt; &lt;em&gt;(vedi foto) &lt;/em&gt;un “&lt;em&gt;LEFT OUTER JOIN”&lt;/em&gt; per estrarre i dati localizzati ed un &lt;em&gt;INNER JOIN”&lt;/em&gt; per estrarre i dati localizzati nella lingua di default &lt;em&gt;(vedi codice)&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;a title="QueryJoin" href="http://www.flickr.com/photos/8919199@N04/4237605990/"&gt;&lt;img style="margin: 0px 10px" border="0" alt="QueryJoin" src="http://static.flickr.com/2775/4237605990_4f1a99047c.jpg" width="692" height="227" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @CultureIdDefault &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="kwrd"&gt;INT&lt;/span&gt; = 16;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @CultureId          &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="kwrd"&gt;INT&lt;/span&gt; = 9;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt;    NewsGenerale.&lt;span class="kwrd"&gt;Data&lt;/span&gt;, NewsGenerale.ImmagineUrl, NewsGenerale.Url, &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;          NewsLocaleDefault.CultureId &lt;span class="kwrd"&gt;AS&lt;/span&gt; CultureIdLocaleDefault, &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;          NewsLocaleDefault.ImmagineAltTesto &lt;span class="kwrd"&gt;AS&lt;/span&gt; ImmagineAltTestoLocaleDefault, &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;          NewsLocaleDefault.Titolo &lt;span class="kwrd"&gt;AS&lt;/span&gt; TitoloLocaleDefault, &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;          NewsLocaleDefault.Abstract &lt;span class="kwrd"&gt;AS&lt;/span&gt; AbstractLocaleDefault, &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;          NewsLocaleDefault.Testo &lt;span class="kwrd"&gt;AS&lt;/span&gt; TestoLocaleDefault, &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;          NewsLocale.CultureId &lt;span class="kwrd"&gt;AS&lt;/span&gt; CultureIdLocale, &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;          NewsLocale.ImmagineAltTesto &lt;span class="kwrd"&gt;AS&lt;/span&gt; ImmagineAltTestoLocale, &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;          NewsLocale.Titolo &lt;span class="kwrd"&gt;AS&lt;/span&gt; TitoloLocale, &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;          NewsLocale.Abstract &lt;span class="kwrd"&gt;AS&lt;/span&gt; AbstractLocale, NewsLocale.Testo &lt;span class="kwrd"&gt;AS&lt;/span&gt; TestoLocale&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt;      (&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;            &lt;span class="kwrd"&gt;SELECT&lt;/span&gt;   NewsId, Visibile, &lt;span class="kwrd"&gt;Data&lt;/span&gt;, ImmagineUrl, Url&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            &lt;span class="kwrd"&gt;FROM&lt;/span&gt;     News&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;           ) &lt;span class="kwrd"&gt;AS&lt;/span&gt; NewsGenerale &lt;span class="kwrd"&gt;INNER&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;          (&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;            &lt;span class="kwrd"&gt;SELECT&lt;/span&gt;   NewsId, CultureId, ImmagineAltTesto, Titolo, Abstract, Testo&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            &lt;span class="kwrd"&gt;FROM&lt;/span&gt;     NewsLocale &lt;span class="kwrd"&gt;AS&lt;/span&gt; NewsLocale_2&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;            &lt;span class="kwrd"&gt;WHERE&lt;/span&gt;     CultureId = @CultureIdDefault&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;           ) &lt;span class="kwrd"&gt;AS&lt;/span&gt; NewsLocaleDefault &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;             &lt;span class="kwrd"&gt;ON&lt;/span&gt; NewsGenerale.NewsId = NewsLocaleDefault.NewsId &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;             &lt;span class="kwrd"&gt;LEFT&lt;/span&gt; &lt;span class="kwrd"&gt;OUTER&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;          (&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;            &lt;span class="kwrd"&gt;SELECT&lt;/span&gt;   NewsId, CultureId, ImmagineAltTesto, Titolo, Abstract, Testo&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;            &lt;span class="kwrd"&gt;FROM&lt;/span&gt;     NewsLocale &lt;span class="kwrd"&gt;AS&lt;/span&gt; NewsLocale_1&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;            &lt;span class="kwrd"&gt;WHERE&lt;/span&gt;     CultureId = @CultureId&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;           ) &lt;span class="kwrd"&gt;AS&lt;/span&gt; NewsLocale &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;             &lt;span class="kwrd"&gt;ON&lt;/span&gt; NewsGenerale.NewsId = NewsLocale.NewsId&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;









.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;A questo punto può essere utile soprattutto se bisogna avere a che fare con grandi quantità di dati paginare i dati direttamente da SQL Server, la tecnica che verrà usata è la stessa vista nel post precedente, che prevede di contare le righe e poi estrarre le righe a cui siamo effettivamente interessati &lt;em&gt;(vedi codice)&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @CultureIdDefault &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="kwrd"&gt;INT&lt;/span&gt;;   &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @CultureId        &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="kwrd"&gt;INT&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @FirstRecord      &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="kwrd"&gt;INT&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @LastRecord       &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="kwrd"&gt;INT&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt;     @CultureIdDefault = 16;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt;     @CultureId          = 9;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt;     @FirstRecord      = 1;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt;     @LastRecord       = 4;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt;    NewsGenerale.&lt;span class="kwrd"&gt;Data&lt;/span&gt;, NewsGenerale.ImmagineUrl, NewsGenerale.UserId, &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;          NewsGenerale.CategoriaNewsId, NewsGenerale.FlagEvento, NewsGenerale.DataDa, &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;          NewsGenerale.DataA, NewsGenerale.Url,   &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;          NewsLocaleDefault.ImmagineAltTesto &lt;span class="kwrd"&gt;AS&lt;/span&gt; ImmagineAltTestoLocaleDefault,    &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;          NewsLocaleDefault.Titolo &lt;span class="kwrd"&gt;AS&lt;/span&gt; TitoloLocaleDefault,   &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;          NewsLocaleDefault.Abstract &lt;span class="kwrd"&gt;AS&lt;/span&gt; AbstractLocaleDefault,    &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;          NewsLocaleDefault.Testo &lt;span class="kwrd"&gt;AS&lt;/span&gt; TestoLocaleDefault,   &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;          NewsLocale.CultureId &lt;span class="kwrd"&gt;AS&lt;/span&gt; CultureIdLocale,   &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;          NewsLocale.ImmagineAltTesto &lt;span class="kwrd"&gt;AS&lt;/span&gt; ImmagineAltTestoLocale,   &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;          NewsLocale.Titolo &lt;span class="kwrd"&gt;AS&lt;/span&gt; TitoloLocale,   &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;          NewsLocale.Abstract &lt;span class="kwrd"&gt;AS&lt;/span&gt; AbstractLocale, &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;          NewsLocale.Testo &lt;span class="kwrd"&gt;AS&lt;/span&gt; TestoLocale  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt;      (  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;            &lt;span class="kwrd"&gt;SELECT&lt;/span&gt;    Temp.NewsId, Temp.Visibile, Temp.&lt;span class="kwrd"&gt;Data&lt;/span&gt;, Temp.ImmagineUrl, Temp.UserId, &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;                      Temp.CategoriaNewsId, Temp.FlagEvento, Temp.DataDa, Temp.DataA, Temp.Url    &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;            &lt;span class="kwrd"&gt;FROM&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;                (&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;SELECT&lt;/span&gt;   ROW_NUMBER() &lt;span class="kwrd"&gt;OVER&lt;/span&gt; (&lt;span class="kwrd"&gt;ORDER&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; &lt;span class="kwrd"&gt;Data&lt;/span&gt; &lt;span class="kwrd"&gt;DESC&lt;/span&gt;) &lt;span class="kwrd"&gt;AS&lt;/span&gt; NumeroRiga,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;                             NewsId, Visibile, &lt;span class="kwrd"&gt;Data&lt;/span&gt;, ImmagineUrl, UserId, CategoriaNewsId, &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;                             FlagEvento, DataDa, DataA, Url  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;FROM&lt;/span&gt;     News  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;                ) &lt;span class="kwrd"&gt;AS&lt;/span&gt; Temp&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;            &lt;span class="kwrd"&gt;WHERE&lt;/span&gt; (Temp.NumeroRiga &amp;gt;= @FirstRecord) &lt;span class="kwrd"&gt;AND&lt;/span&gt; (Temp.NumeroRiga &amp;lt;= @LastRecord)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;          ) &lt;span class="kwrd"&gt;AS&lt;/span&gt; NewsGenerale &lt;span class="kwrd"&gt;INNER&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt;  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;          (  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;            &lt;span class="kwrd"&gt;SELECT&lt;/span&gt;   NewsId, CultureId, ImmagineAltTesto, Titolo, Abstract, Testo  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;            &lt;span class="kwrd"&gt;FROM&lt;/span&gt;     NewsLocale &lt;span class="kwrd"&gt;AS&lt;/span&gt; NewsLocale_2  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;            &lt;span class="kwrd"&gt;WHERE&lt;/span&gt;     CultureId = @CultureIdDefault &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;          ) &lt;span class="kwrd"&gt;AS&lt;/span&gt; NewsLocaleDefault &lt;span class="kwrd"&gt;ON&lt;/span&gt; NewsGenerale.NewsId = NewsLocaleDefault.NewsId &lt;span class="kwrd"&gt;LEFT&lt;/span&gt; &lt;span class="kwrd"&gt;OUTER&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt;  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;          (  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;            &lt;span class="kwrd"&gt;SELECT&lt;/span&gt;   NewsId, CultureId, ImmagineAltTesto, Titolo, Abstract, Testo  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;            &lt;span class="kwrd"&gt;FROM&lt;/span&gt;     NewsLocale &lt;span class="kwrd"&gt;AS&lt;/span&gt; NewsLocale_1 &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;            &lt;span class="kwrd"&gt;WHERE&lt;/span&gt;     CultureId = @CultureId &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  46:  &lt;/span&gt;           ) &lt;span class="kwrd"&gt;AS&lt;/span&gt; NewsLocale &lt;span class="kwrd"&gt;ON&lt;/span&gt; NewsGenerale.NewsId = NewsLocale.NewsId&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22370" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/madil/archive/tags/Sql+Server/default.aspx">Sql Server</category><category domain="http://dotnetside.org/blogs/madil/archive/tags/SQL/default.aspx">SQL</category></item><item><title>Paginare i dati con SQL Server</title><link>http://dotnetside.org/blogs/madil/archive/2010/01/02/paginare-i-dati-con-sql-server.aspx</link><pubDate>Sat, 02 Jan 2010 16:31:13 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22369</guid><dc:creator>MADIL</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;All’interno di un sito Web la paginazione dei dati è una delle operazioni fondamentali. Con una query prendevo tutti i dati dal database e poi provvedevo ad eseguire la paginazione da codice &lt;em&gt;(vedi codice)&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt;     Products.ProductName, &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;           Products.QuantityPerUnit, Products.UnitPrice, Categories.CategoryName&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt;       Products &lt;span class="kwrd"&gt;INNER&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;           Categories &lt;span class="kwrd"&gt;ON&lt;/span&gt; Products.CategoryID = Categories.CategoryID&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;




.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Ottenendo i risultati visibili in figura &lt;em&gt;(77 righe)&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a title="Query" href="http://www.flickr.com/photos/8919199@N04/4236830291/"&gt;&lt;img style="margin: 0px 10px 0px 0px; display: inline" border="0" alt="Query" src="http://static.flickr.com/2729/4236830291_3d97e23eaf.jpg" width="500" height="351" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Questo modo di procedere può andare bene fino a quando si lavora con siti Web di piccole dimensioni, in quanto sono limitati sia i dati da gestire che gli accessi, ma quando si passa a siti Web di medie dimensioni, una query come quella mostrata sopra influisce pesantemente sulle prestazioni. &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;La soluzione consiste nell’estrarre effettivamente i dati che servono, quindi facendoli paginare da SQL Server in questo modo sulla rete non viaggiano dati inutili ed il Web server non deve provvedere a filtrare ulteriormente i dati per eseguire la paginazione correttamente.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;La query che permette a SQL Server di paginare i dati è la seguente:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @FirstRecord &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="kwrd"&gt;INT&lt;/span&gt; = 10;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @LastRecord &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="kwrd"&gt;INT&lt;/span&gt; = 30;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;SELECT&lt;/span&gt; NumeroRiga, ProductName, QuantityPerUnit, UnitPrice, CategoryName&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;FROM&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    (    &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;        &lt;span class="kwrd"&gt;SELECT&lt;/span&gt;     ROW_NUMBER() &lt;span class="kwrd"&gt;OVER&lt;/span&gt; (&lt;span class="kwrd"&gt;ORDER&lt;/span&gt; &lt;span class="kwrd"&gt;BY&lt;/span&gt; Products.ProductName &lt;span class="kwrd"&gt;DESC&lt;/span&gt;) &lt;span class="kwrd"&gt;AS&lt;/span&gt; NumeroRiga,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;                   Products.ProductName, Products.QuantityPerUnit, &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;                   Products.UnitPrice, Categories.CategoryName&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        &lt;span class="kwrd"&gt;FROM&lt;/span&gt;       Products &lt;span class="kwrd"&gt;INNER&lt;/span&gt; &lt;span class="kwrd"&gt;JOIN&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;                   Categories &lt;span class="kwrd"&gt;ON&lt;/span&gt; Products.CategoryID = Categories.CategoryID&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;    ) &lt;span class="kwrd"&gt;AS&lt;/span&gt; ProductsCategories&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&lt;span class="kwrd"&gt;WHERE&lt;/span&gt;    (ProductsCategories.NumeroRiga &amp;gt;= @FirstRecord) &lt;span class="kwrd"&gt;AND&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;         (ProductsCategories.NumeroRiga &amp;lt;= @LastRecord)&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;style type="text/css"&gt;




.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Questa query permette di paginare i dati utilizzando la funzione “ROW_NUMBER” che conta le righe selezionate in base ad un specificato, poi questa viene racchiusa da una query più grande che provvede a selezionare le righe interessate secondo i criteri specificati &lt;a href="mailto:&amp;ldquo;@FirstRecord"&gt;“@FirstRecord&lt;/a&gt;” e &lt;a href="mailto:&amp;ldquo;@LastRecord"&gt;“@LastRecord&lt;/a&gt;”, da questa query otteniamo &lt;em&gt;(21 righe)&lt;/em&gt; per dati di dimensione limitata la differenza non si nota ma grandi quantitativi di dati questo modo di procedere aumenta notevolmente le prestazioni &lt;em&gt;(vedi figura)&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a title="Query_1" href="http://www.flickr.com/photos/8919199@N04/4237605788/"&gt;&lt;img style="display: inline; margin-left: 0px; margin-right: 0px" border="0" alt="Query_1" src="http://static.flickr.com/4005/4237605788_290082a9b3.jpg" width="500" height="355" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22369" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/madil/archive/tags/Sql+Server/default.aspx">Sql Server</category><category domain="http://dotnetside.org/blogs/madil/archive/tags/SQL/default.aspx">SQL</category></item><item><title>Buon Natale a tutti !!!</title><link>http://dotnetside.org/blogs/fabio/archive/2009/12/23/buon-natale-a-tutti.aspx</link><pubDate>Wed, 23 Dec 2009 13:43:00 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22366</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Tanti auguri di buon natale e felice anno nuovo a tutti !!!&lt;/p&gt;
&lt;p&gt;Il prossimo anno sar&amp;agrave; pieno di novit&amp;agrave;, impegni, workshop e chi pi&amp;ugrave; ne ha pi&amp;ugrave; ne metta... intanto godiamoci qualche giorno di riposo...&lt;/p&gt;
&lt;p&gt;AUGURIIIII!!!! &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22366" width="1" height="1"&gt;</description></item><item><title>Articolo “Silverlight 4 elevated permissions”</title><link>http://dotnetside.org/blogs/vito/archive/2009/12/18/articolo-silverlight-4-elevated-permissions.aspx</link><pubDate>Fri, 18 Dec 2009 16:43:24 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22362</guid><dc:creator>VitoA</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Su &lt;a href="http://www.silverlightshow.net"&gt;SilverlightShow&lt;/a&gt; è stato pubblicato un interessantissimo articolo di &lt;a href="http://blogs.ugidotnet.org/corrado"&gt;Corrado&lt;/a&gt; sulle nuove funzionalità di OOB in Silverlight 4.&lt;/p&gt;  &lt;p&gt;Lettura consigliatissima! &lt;img src="http://dotnetside.org/emoticons/emotion-1.gif" alt="Smile" /&gt;&lt;/p&gt;  &lt;p&gt;Fonte : &lt;a href="http://www.silverlightshow.net/items/Silverlight-4-elevated-permissions.aspx"&gt;Silverlight 4 elevated permissions&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22362" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/vito/archive/tags/Articoli/default.aspx">Articoli</category><category domain="http://dotnetside.org/blogs/vito/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Rilascio di Visual Studio 2010 e .NET Framework 4</title><link>http://dotnetside.org/blogs/fabio/archive/2009/12/17/rilascio-di-visual-studio-2010-e-net-framework-4.aspx</link><pubDate>Thu, 17 Dec 2009 19:48:00 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22361</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Slitta di qualche settimana la data di rilascio, inizialmente prevista per il 22 marzo 2010, di Visual Studio 2010 e del .NET Framework 4. A quanto pare i feedback sono numerosi e diverse sono le segnalazioni di problemi relativi alle performance:&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;i&gt;"In order to make sure that these fixes
truly address the performance issues reported, and to help validate
them across the broadest number of scenarios and machine
configurations, we&amp;rsquo;ve decided to ship another public preview release of
VS 2010 and .NET 4 before we ship."&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;quindi l'annuncio con il fine proprio di migliorare il prodotto e non affrettarne l'uscita:&lt;/p&gt;
&lt;p style="padding-left: 30px;"&gt;&lt;i&gt;"The goal behind the Release Candidate is to get broad feedback on the readiness of the product.&amp;nbsp; In order to ensure that we are able to receive and react to this feedback, we will also be moving the launch of Visual Studio 2010 and .NET 4 back a few weeks."&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Sicuramente una mossa saggia. Attendiamo quindi fiduciosi.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22361" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Visual+Studio+.NET/default.aspx">Visual Studio .NET</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Microsoft/default.aspx">Microsoft</category></item><item><title>Community Tour 2009: Disponibile l’OnLine Feedback</title><link>http://dotnetside.org/blogs/fabio/archive/2009/12/12/community-tour-2009-disponibile-l-online-feedback.aspx</link><pubDate>Sat, 12 Dec 2009 16:56:00 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22356</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Chi ha partecipato al nostro workshop che si è tenuto ieri può utilizzare il &lt;a href="http://www.surveymonkey.com/s/6RMYDFS"&gt;modulo di feedback online&lt;/a&gt; per lasciarci il proprio commento. Si tratta di 10 semplici domande ma che ci possono aiutare davvero tanto per migliorare la qualità dei nostri incontri. Ci vogliono davvero 2 minuti, basta poco che ce vo’ … &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=22356" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/.netSide/default.aspx">.netSide</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Eventi/default.aspx">Eventi</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Workshop/default.aspx">Workshop</category></item><item><title>Community Tour 2009: Grazie a tutti !!!</title><link>http://dotnetside.org/blogs/fabio/archive/2009/12/12/community-tour-2009-grazie-a-tutti.aspx</link><pubDate>Sat, 12 Dec 2009 14:02:19 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22355</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Ieri l’evento è stato davvero grandioso. Grazie, grazie, grazie !!! A Lorenzo e ad Andrea per aver fatto kilometri e kilometri di strada per venire a parlarci di Visual Studio 2010 e di &lt;a href="http://dotnetside.org/Immagini/blogs/fabio/CommunityTour2009Grazieatutti_D2BF/CommunityTour_2009_Sala_1.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 5px 10px 5px 0px; display: inline; border-top: 0px; border-right: 0px" title="CommunityTour_2009_Sala_1" border="0" alt="CommunityTour_2009_Sala_1" align="left" src="http://dotnetside.org/Immagini/blogs/fabio/CommunityTour2009Grazieatutti_D2BF/CommunityTour_2009_Sala_1_thumb.jpg" width="244" height="139" /&gt;&lt;/a&gt;AppFabric Caching. Un grazie anche a Stefano che, tra mille peripezie dovute alla connessione ad internet, ha preparato una sessione ad alto contenuto tecnico.&lt;/p&gt;  &lt;p&gt; Vito e Silverlight sono ormai un connubio senza dubbio sicuro e vincente &lt;img src="http://dotnetside.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;. Per la mia sessione sono invece soltanto dispiaciuto di non aver avuto modo di mostrare le demo sempre a causa della mancanza della connessione internet. Cercherò comunque di riparare in questi giorni pubblicando una serie di video che mostreranno proprio le demo.&lt;a href="http://dotnetside.org/Immagini/blogs/fabio/CommunityTour2009Grazieatutti_D2BF/CommunityTour_2009_W7.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 5px 0px 5px 10px; display: inline; border-top: 0px; border-right: 0px" title="CommunityTour_2009_W7" border="0" alt="CommunityTour_2009_W7" align="right" src="http://dotnetside.org/Immagini/blogs/fabio/CommunityTour2009Grazieatutti_D2BF/CommunityTour_2009_W7_thumb.jpg" width="244" height="139" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ringrazio tutti i partecipanti, davvero numerosi, che hanno riempito la sala sin dalla&amp;#160; mattina (alle 9:30 si stava già riempendo). Ma ringrazio soprattutto chi con molta pazienza è rimasto in piedi (ebbene sì non avevamo più posti a sedere a disposizione). Workshop di questo tipo, del tutto gratuiti, vengono fatti per condividere le proprie esperienze con tutti. E’ facile quindi superare ogni tipo di difficoltà, come può esserlo il fatto di rimanere in piedi, se l’argomento è di proprio interesse. Questo è motivo per noi di soddisfazione.&lt;/p&gt;  &lt;p&gt;Le vostre domande, poi, sono anche sintomo di grande voglia di contribuire, di curiosità, di &lt;a href="http://dotnetside.org/Immagini/blogs/fabio/CommunityTour2009Grazieatutti_D2BF/CommunityTour_2009_Fabio_Eclipse.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 5px 10px 5px 0px; display: inline; border-top: 0px; border-right: 0px" title="CommunityTour_2009_Fabio_Eclipse" border="0" alt="CommunityTour_2009_Fabio_Eclipse" align="left" src="http://dotnetside.org/Immagini/blogs/fabio/CommunityTour2009Grazieatutti_D2BF/CommunityTour_2009_Fabio_Eclipse_thumb.jpg" width="244" height="139" /&gt;&lt;/a&gt;desiderio di partecipazione. A questo proposito ribadisco che avete la possibilità di proporre la vostra sessione o un argomento che vorrete venga trattato nei prossimi workshop, utilizzando il &lt;a href="http://dotnetside.org/forums"&gt;forum&lt;/a&gt; oppure contattandoci direttamente. Se invece volete supportarci, &lt;a href="http://dotnetside.org/content/supportus.aspx"&gt;visitate questa pagina&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.windowsazure4j.org/"&gt;&lt;/a&gt;&lt;/a&gt;La strana immagine qui di fianco con me che apro Eclipse &lt;img src="http://dotnetside.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;?? Segno di convergenza sempre più forte tra Microsoft e Java. Esiste anche &lt;a href="http://www.windowsazure4j.org/"&gt;l’SDK per sviluppatori Java&lt;/a&gt; per accedere a &lt;a href="http://www.microsoft.com/windowsazure/"&gt;Windows Azure&lt;/a&gt;, quindi è stato anche un piacere mostrarlo. Se avete ancora dubbi, volete parlare di Azure o di altro, &lt;a href="http://dotnetside.org/blogs/fabio/contact.aspx"&gt;contattatemi&lt;/a&gt; pure o scrivete nel nostro &lt;a href="http://dotnetside.org/forums/"&gt;forum&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Vi ricordo inoltre che, appena possibile, i moduli di feedback saranno presto online.&lt;/p&gt;  &lt;p&gt;Alla prossima&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22355" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/.netSide/default.aspx">.netSide</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Eventi/default.aspx">Eventi</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Workshop/default.aspx">Workshop</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Azure/default.aspx">Azure</category></item><item><title>Community Tour: SOLD-OUT</title><link>http://dotnetside.org/blogs/fabio/archive/2009/12/09/community-tour-sold-out.aspx</link><pubDate>Wed, 09 Dec 2009 14:04:00 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22351</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Ed una &lt;em&gt;waiting list&lt;/em&gt; anche abbastanza lunghetta. Ormai l&amp;rsquo;evento &amp;egrave; alle porte e gli ultimi preparativi sono in piena corsa per dare il via ad una giornata che si preannuncia davvero ricca di sorprese e di novit&amp;agrave;.&lt;/p&gt;
&lt;p&gt;Ci saranno ben tre (e dico tre) ospiti speciali: &lt;a href="http://www.geniodelmale.info/"&gt;Lorenzo&lt;/a&gt;, anche se &amp;egrave; ormai di casa, &lt;a href="http://www.andreacol.net/"&gt;Andrea&lt;/a&gt; e &lt;a href="http://blogs.dotnethell.it/stefano/"&gt;Stefano&lt;/a&gt;. Se questo non dovesse bastare vi posso solo dire che durante l&amp;rsquo;evento saranno ci saranno diversi premi e simpatici gadget per i partecipanti. Non vi convinco ancora? &amp;hellip; mmm &amp;hellip; vediamo &amp;hellip; posso solo dire che Windows 7 sar&amp;agrave; protagonista &amp;hellip; &lt;img src="http://dotnetside.org/emoticons/emotion-16.gif" alt="Zip it!" /&gt;&lt;/p&gt;
&lt;p&gt;Vi consiglio davvero di non mancare&amp;hellip; &lt;img src="http://dotnetside.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;. L&amp;rsquo;agenda &amp;egrave; pienamente confermata. Vi aspettiamo&amp;hellip;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22351" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/.netSide/default.aspx">.netSide</category><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Eventi/default.aspx">Eventi</category></item><item><title>Almeno una volta è capitato a tutti …</title><link>http://dotnetside.org/blogs/fabio/archive/2009/12/04/almeno-una-volta-232-capitato-a-tutti.aspx</link><pubDate>Fri, 04 Dec 2009 07:13:00 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22343</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;img src="http://geekandpoke.typepad.com/.a/6a00d8341d3df553ef01287602c920970c-pi" width="542" height="768" /&gt; &lt;/p&gt;  &lt;p&gt;fonte: &lt;a title="http://geekandpoke.typepad.com/" href="http://geekandpoke.typepad.com/"&gt;http://geekandpoke.typepad.com/&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22343" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Varie/default.aspx">Varie</category></item><item><title>Se vuoi proporre qualcosa per Windows Azure…</title><link>http://dotnetside.org/blogs/fabio/archive/2009/12/04/se-vuoi-proporre-qualcosa-per-windows-azure.aspx</link><pubDate>Fri, 04 Dec 2009 00:43:16 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22341</guid><dc:creator>Fabio.Cozzolino</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;… puoi farlo accedendo a &lt;a href="http://www.mygreatwindowsazureidea.com"&gt;http://www.mygreatwindowsazureidea.com&lt;/a&gt;.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://blogs.msdn.com/wickstrand/archive/2009/11/23/pdc-09-your-great-windows-azure-ideas.aspx"&gt;&lt;em&gt;Mike Wickstrand&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, the director of Windows Azure product planning has put together a site where you can post and vote for Windows Azure ideas&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;A proposito, &lt;a href="http://dotnetside.org/content/CommunityTour2009.aspx"&gt;venerdì prossimo&lt;/a&gt; parleremo anche di &lt;a href="http://www.microsoft.com/windowsazure"&gt;Windows Azure&lt;/a&gt;, non mancate… &lt;img src="http://dotnetside.org/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;/p&gt;  &lt;p&gt;fonte: &lt;a title="http://blogs.msdn.com/jnak/archive/2009/11/24/make-your-great-windows-azure-idea-a-reality.aspx" href="http://blogs.msdn.com/jnak/archive/2009/11/24/make-your-great-windows-azure-idea-a-reality.aspx"&gt;http://blogs.msdn.com/jnak/archive/2009/11/24/make-your-great-windows-azure-idea-a-reality.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=22341" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/fabio/archive/tags/Azure/default.aspx">Azure</category></item><item><title>Forzare l’aggiornamento del datawarehouse di TFS</title><link>http://dotnetside.org/blogs/vito/archive/2009/12/02/forzare-l-aggiormento-del-datawarehouse-di-tfs.aspx</link><pubDate>Wed, 02 Dec 2009 11:47:39 GMT</pubDate><guid isPermaLink="false">2d5e8256-a19a-4586-a65e-031f7ebe8345:22338</guid><dc:creator>VitoA</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Team Foundation Server utilizza SQL Reports per visualizzare grafici prendendo i vari dati da Work items, Version Controls e Builds. Questi dati vengono aggregati in un database SQL Analysis Services e quindi in un cubo OLAP. &lt;/p&gt;  &lt;p&gt;In alcuni casi, quindi, non sempre il cubo è aggiornato in tempo reale ma, a seconda del tempo di update impostato, possiamo vedere o meno i cambiamenti nei grafici o report che ci aspettiamo.&lt;/p&gt;  &lt;p&gt;Possiamo “forzare” l’aggiornamento del cubo utilizzando, ovviamente, SQL Server Management Stuodio ma, se non abbiamo la possibilità di connetterci da remoto al db, possiamo usare la strada dei webservices disponibili in TFS.&lt;/p&gt;  &lt;p&gt;Dal browser, quindi, puntiamo il webservice relativo alle operazioni di tipo datawarehouse:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://tfs-mrmc:8080/Warehouse/v1.0/WarehouseController.asmx" href="http://nomeservertfs:8080/Warehouse/v1.0/WarehouseController.asmx"&gt;http://nomeservertfs:8080/Warehouse/v1.0/WarehouseController.asmx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Nell’elenco dei metodi disponibili selezioniamo Run:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.vitoarconzo.it/images/ForzarelaggiormentodeldatawarehousediTFS_B369/image.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blog.vitoarconzo.it/images/ForzarelaggiormentodeldatawarehousediTFS_B369/image_thumb.png" width="436" height="252" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Per monitorare l’avanzamento dell’update possiamo utilizzare il metodo GetWarehouseStatus che restituisce i valori &lt;strong&gt;Idle&lt;/strong&gt;, &lt;strong&gt;ProcessingOlap&lt;/strong&gt;, &lt;strong&gt;RunningAdapters&lt;/strong&gt; o &lt;strong&gt;Blocked&lt;/strong&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnetside.org/aggbug.aspx?PostID=22338" width="1" height="1"&gt;</description><category domain="http://dotnetside.org/blogs/vito/archive/tags/Team+Foundation+Server/default.aspx">Team Foundation Server</category></item></channel></rss>