<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>ReBitting</title>
        <link>http://blogs.ugidotnet.org/SalvoDiFazio/Default.aspx</link>
        <description>Blog ecologico. Sono stati usati solamente bytes riciclati</description>
        <language>it-IT</language>
        <copyright>Salvatore Di Fazio</copyright>
        <managingEditor>salvatore.difazio@gmail.com</managingEditor>
        <generator>Subtext Version 1.9.5.176</generator>
        <image>
            <title>ReBitting</title>
            <url>http://blogs.ugidotnet.org/images/RSS2Image.gif</url>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Google &amp;quot;Sharepoint&amp;quot;?</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/07/01/google-quotsharepointquot.aspx</link>
            <description>&lt;p&gt;Google si sta muovendo per la produzione del suo Sharepoint?   &lt;br /&gt;&lt;a href="http://sites.google.com/site/sites" target="_blank"&gt;Link&lt;/a&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a31b3a0a-2276-4d93-9392-308ba50b6fc8" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/Varie" rel="tag"&gt;Varie&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/93242.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/07/01/google-quotsharepointquot.aspx</guid>
            <pubDate>Tue, 01 Jul 2008 14:09:06 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/93242.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/07/01/google-quotsharepointquot.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/93242.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/93242.aspx</trackback:ping>
        </item>
        <item>
            <title>Refactoring notion 1</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/06/30/refactoring-notion-1.aspx</link>
            <description>&lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Martin Fowler: &lt;em&gt;"a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior"&lt;/em&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;Chi tra voi non ha mai lavorato su un vecchio codice, di un vecchio progetto?!?!&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;Beh beati voi... a me, purtroppo, è capitato spesso.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;In questo contesto il refactoring si fa strada, per rimuovere duplicati di codice, semplificarne la complessità logica e per chiarire il codice esistente.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;Possiamo fare del refactoring su grossi pezzi di codice o solamente sul nome di una variabile, importante è che il tutto migliori la comprensione del codice.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;Ricordiamoci che è buona norma effettuare refactoring a piccoli passi anche di grossi pezzi di codice e di farsi aiutare dai test, affinchè possiamo capire subito se stiamo introducendo degli errori.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font face="Calibri" size="3"&gt;Le motivazioni tipiche che spingono al refactoring:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font face="Calibri" size="3"&gt;Semplificare la scrittura di nuovo codice&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font face="Calibri" size="3"&gt;Migliorare il design del codice esistente&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font face="Calibri" size="3"&gt;Migliorare la capacità d'espressione del codice affinchè chi lo legge riesce a capirlo. E' inutile inserire dei commenti nel codice&lt;/font&gt;&lt;/li&gt;    &lt;li&gt;&lt;font face="Calibri" size="3"&gt;Rendere meno noioso lavorare sul progetto&lt;/font&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;&lt;strong&gt;Refactoring to patterns        &lt;br /&gt;&lt;/strong&gt;Refactoring to patterns è il processo che unisce il refactoring del codice ai patterns.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;Ciò non significa che ogni qual volta vediamo un pezzo di codice da sistemare dobbiamo per forza applicare un pattern&lt;/font&gt;&lt;font face="Calibri" size="3"&gt;.&lt;/font&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:98a73bb6-d547-487f-95ed-a780b1fe5696" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://http://blogs.ugidotnet.org/SalvoDifazio/Refactoring" rel="tag"&gt;Refactoring&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/93233.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/06/30/refactoring-notion-1.aspx</guid>
            <pubDate>Mon, 30 Jun 2008 21:20:31 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/93233.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/06/30/refactoring-notion-1.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/93233.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/93233.aspx</trackback:ping>
        </item>
        <item>
            <title>ASP.NET Dynamic Data</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/06/19/asp.net-dynamic-data.aspx</link>
            <description>&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Non so quanti di voi l'hanno già fatto, ma vi consiglio di vedere i video su:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.asp.net/learn/3.5-SP1/default.aspx" target="_blank"&gt;&lt;font face="Calibri" size="3"&gt;ASP.NET Dynamic Data&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c266bf23-62d8-4153-8d33-79f3ae1d3c38" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/93102.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/06/19/asp.net-dynamic-data.aspx</guid>
            <pubDate>Thu, 19 Jun 2008 15:31:43 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/93102.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/06/19/asp.net-dynamic-data.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/93102.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/93102.aspx</trackback:ping>
        </item>
        <item>
            <title>Not NotNorthwind</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/06/13/not-notnorthwind.aspx</link>
            <description>&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Proprio l'altro giorno, mentre facevo la demo per LINQ, mi domandavo perchè ancora si usasse Northwind come database per fare le demo.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;Oggi ritrovo questo bellissimo &lt;/font&gt;&lt;a href="http://scottonwriting.net/sowblog/posts/13321.aspx" target="_blank"&gt;&lt;font face="Calibri" size="3"&gt;post&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri" size="3"&gt;.&lt;/font&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d7bd3bbf-1e23-41b2-bd0a-055e3ba0a5ae" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/Altro" rel="tag"&gt;Altro&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/93021.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/06/13/not-notnorthwind.aspx</guid>
            <pubDate>Fri, 13 Jun 2008 08:59:46 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/93021.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/06/13/not-notnorthwind.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/93021.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/93021.aspx</trackback:ping>
        </item>
        <item>
            <title>LINQtoSQL -&amp;gt; LINQtoXML</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/06/07/linqtosql--gt-linqtoxml.aspx</link>
            <description>&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Guardando un pò di video in rete ho potuto scoprire una funzionalità di LINQ che non conoscevo per nulla.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;LINQ offre la possibilità di creare file XML "al volo" specificando la sorgente dei dati.      &lt;br /&gt;Tutto questo è fattibile grazie alle seguenti nuove classi:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/SalvoDiFazio/WindowsLiveWriter/LINQtoSQLLINQtoXML_91DC/system.xml.linq_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="435" alt="system.xml.linq" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/SalvoDiFazio/WindowsLiveWriter/LINQtoSQLLINQtoXML_91DC/system.xml.linq_thumb.jpg" width="253" border="0" /&gt;&lt;/a&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;I seguenti esempi si basano sul database di esempio &lt;a href="http://www.codeplex.com/MSFTDBProdSamples/Release/ProjectReleases.aspx?ReleaseId=4004"&gt;AdventureWorksDB.msi&lt;/a&gt; installato SQL Express.&lt;/font&gt;&lt;/p&gt;  &lt;h2&gt;&lt;font color="#ff8000"&gt;Creazione di un file XML da una sorgente dati.&lt;/font&gt;&lt;/h2&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;Una volta creato il DataContext tramite il file dbml (chiamato per l'occasione AdventureWorks), ho importato la vista &lt;strong&gt;vEmployee&lt;/strong&gt;:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/SalvoDiFazio/WindowsLiveWriter/LINQtoSQLLINQtoXML_91DC/vEmployees_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="403" alt="vEmployees" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/SalvoDiFazio/WindowsLiveWriter/LINQtoSQLLINQtoXML_91DC/vEmployees_thumb.jpg" width="204" border="0" /&gt;&lt;/a&gt;  &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;Fatto questo si procede con il seguente codice:&lt;/font&gt;&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="background: black; color: white"&gt;            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;AdventureWorksDataContext &lt;/span&gt;&lt;span style="background: black; color: white"&gt;db = &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;AdventureWorksDataContext&lt;/span&gt;&lt;span style="background: black; color: white"&gt;();
                                                                           
            db.Log = &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;Console&lt;/span&gt;&lt;span style="background: black; color: white"&gt;.Out;                                          
                                                                           
            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement &lt;/span&gt;&lt;span style="background: black; color: white"&gt;xel = &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"Result"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;,                          
                &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;from &lt;/span&gt;&lt;span style="background: black; color: white"&gt;c &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;in &lt;/span&gt;&lt;span style="background: black; color: white"&gt;db.vEmployees                                    
                &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;where &lt;/span&gt;&lt;span style="background: black; color: white"&gt;c.City == &lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"Seattle"                                  
                &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;where &lt;/span&gt;&lt;span style="background: black; color: white"&gt;c.FirstName.Length &amp;gt;= &lt;/span&gt;&lt;span style="background: black; color: #6897bb"&gt;5                              
                &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;select new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"Employee"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;,                            
                    &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XAttribute&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"EmployeeID"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;, c.EmployeeID),            
                    &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"FirstName"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;, c.FirstName),                
                    &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"JobTitle"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;, c.JobTitle)                   
                    ));                                                    
                                                                           
            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;FileStream &lt;/span&gt;&lt;span style="background: black; color: white"&gt;fs = &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;File&lt;/span&gt;&lt;span style="background: black; color: white"&gt;.OpenWrite(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"Result.xml"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;);                  
            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;StreamWriter &lt;/span&gt;&lt;span style="background: black; color: white"&gt;sw = &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;StreamWriter&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(fs);                        
            sw.Write(xel.ToString());                                      
            sw.Close();                                                    
            fs.Close();                                                    &lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;font face="Calibri" size="3"&gt;Il codice di sopra genererà i file xml &lt;strong&gt;Result.xml&lt;/strong&gt; che conterrà un set di dati:&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/SalvoDiFazio/WindowsLiveWriter/LINQtoSQLLINQtoXML_91DC/result.xml_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="361" alt="result.xml" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/SalvoDiFazio/WindowsLiveWriter/LINQtoSQLLINQtoXML_91DC/result.xml_thumb.jpg" width="409" border="0" /&gt;&lt;/a&gt;  &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Per un'esaustiva spiegazione della classe &lt;strong&gt;XElement&lt;/strong&gt;, fate riferimento alle MSDN.&lt;/font&gt;&lt;/p&gt;

&lt;h2&gt;&lt;font color="#ff8000"&gt;Join fra dati ottenuti da file xml.&lt;/font&gt;&lt;/h2&gt;

&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Importo nel mio DataContext altre due tabelle presenti nel database AdventureWorks:&lt;/font&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;font face="Calibri" size="3"&gt;SalesPerson&lt;/font&gt; &lt;/li&gt;

  &lt;li&gt;&lt;font face="Calibri" size="3"&gt;Contact&lt;/font&gt; &lt;/li&gt;

  &lt;li&gt;&lt;font face="Calibri" size="3"&gt;Employee&lt;/font&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;font face="Calibri" size="3"&gt;LINQ, quando vengono importate delle tabelle, si occuperà della gestione delle relazioni. 
    &lt;br /&gt;Quindi, una volta portate le due tabelle nel vostro file dbml, vedrete graficamente la relazione tra la tabella &lt;strong&gt;SalesPerson,&lt;/strong&gt; la tabella &lt;strong&gt;Contact&lt;/strong&gt; e la tabella &lt;strong&gt;Employee&lt;/strong&gt;:&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/SalvoDiFazio/WindowsLiveWriter/LINQtoSQLLINQtoXML_91DC/relationship_6.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="464" alt="relationship" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/SalvoDiFazio/WindowsLiveWriter/LINQtoSQLLINQtoXML_91DC/relationship_thumb_2.jpg" width="736" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Le relazione sono basaste, per &lt;strong&gt;Employee&lt;/strong&gt; con il campo &lt;strong&gt;EmployeeID&lt;/strong&gt; con il campo &lt;strong&gt;SalesPersonID&lt;/strong&gt; della tabella &lt;strong&gt;SalesPerson&lt;/strong&gt;. 

    &lt;br /&gt;E la tabella &lt;strong&gt;Employee&lt;/strong&gt; con la tabella &lt;strong&gt;Contact&lt;/strong&gt; tramite il campo &lt;strong&gt;ContactID&lt;/strong&gt;.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Genero tre file xml che conterranno i dati presenti nelle tabelle e che ci serviranno per la dimostrazione:&lt;/font&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;font face="Calibri" size="3"&gt;SalesPersons.xml&lt;/font&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="code"&gt;&lt;span style="background: black; color: white"&gt;            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;AdventureWorksDataContext &lt;/span&gt;&lt;span style="background: black; color: white"&gt;db = &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;AdventureWorksDataContext&lt;/span&gt;&lt;span style="background: black; color: white"&gt;();
            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement &lt;/span&gt;&lt;span style="background: black; color: white"&gt;xel = &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"SalesPersons"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;,                    
                &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;from &lt;/span&gt;&lt;span style="background: black; color: white"&gt;c &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;in &lt;/span&gt;&lt;span style="background: black; color: white"&gt;db.SalesPersons                                  
                &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;select new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"SalesPerson"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;,                         
                    &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"SalesPersonID"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;, c.SalesPersonID),        
                    &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"SalesLastYear"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;, c.SalesLastYear)));      
            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;FileStream &lt;/span&gt;&lt;span style="background: black; color: white"&gt;fs = &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;File&lt;/span&gt;&lt;span style="background: black; color: white"&gt;.OpenWrite(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"SalesPersons.xml"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;);            
            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;StreamWriter &lt;/span&gt;&lt;span style="background: black; color: white"&gt;sw = &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;StreamWriter&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(fs);                        
            sw.Write(xel.ToString());                                      
            sw.Close();                                                    
            fs.Close();                                                    &lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;ul&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

  &lt;li&gt;&lt;font face="Calibri" size="3"&gt;Contacts.xml&lt;/font&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="code"&gt;&lt;span style="background: black; color: white"&gt;            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;AdventureWorksDataContext &lt;/span&gt;&lt;span style="background: black; color: white"&gt;db = &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;AdventureWorksDataContext&lt;/span&gt;&lt;span style="background: black; color: white"&gt;();
            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement &lt;/span&gt;&lt;span style="background: black; color: white"&gt;xel = &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"Contacts"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;,                        
                &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;from &lt;/span&gt;&lt;span style="background: black; color: white"&gt;c &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;in &lt;/span&gt;&lt;span style="background: black; color: white"&gt;db.Contacts                                      
                &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;select new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"Contact"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;,                             
                    &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XAttribute&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"ContactID"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;, c.ContactID),              
                    &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"FirstName"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;, c.FirstName),                
                    &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"LastName"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;, c.LastName),                  
                    &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"EmailAddress"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;, c.EmailAddress)));        
            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;FileStream &lt;/span&gt;&lt;span style="background: black; color: white"&gt;fs = &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;File&lt;/span&gt;&lt;span style="background: black; color: white"&gt;.OpenWrite(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"Contacts.xml"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;);                
            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;StreamWriter &lt;/span&gt;&lt;span style="background: black; color: white"&gt;sw = &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;StreamWriter&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(fs);                        
            sw.Write(xel.ToString());                                      
            sw.Close();                                                    
            fs.Close();                                                    &lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;font face="Calibri" size="3"&gt;Employees.xml&lt;/font&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="code"&gt;&lt;span style="background: black; color: white"&gt;            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;AdventureWorksDataContext &lt;/span&gt;&lt;span style="background: black; color: white"&gt;db = &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;AdventureWorksDataContext&lt;/span&gt;&lt;span style="background: black; color: white"&gt;();
            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement &lt;/span&gt;&lt;span style="background: black; color: white"&gt;xel = &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"Employees"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;,                       
                &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;from &lt;/span&gt;&lt;span style="background: black; color: white"&gt;c &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;in &lt;/span&gt;&lt;span style="background: black; color: white"&gt;db.Employees                                     
                &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;select new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"Employee"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;,                            
                    &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XAttribute&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"EmployeeID"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;, c.EmployeeID),            
                    &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"LoginID"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;, c.LoginID),                    
                    &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"Title"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;, c.Title)));                      
            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;FileStream &lt;/span&gt;&lt;span style="background: black; color: white"&gt;fs = &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;File&lt;/span&gt;&lt;span style="background: black; color: white"&gt;.OpenWrite(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"Employees.xml"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;);               
            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;StreamWriter &lt;/span&gt;&lt;span style="background: black; color: white"&gt;sw = &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;StreamWriter&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(fs);                        
            sw.Write(xel.ToString());                                      
            sw.Close();                                                    
            fs.Close();                                                    &lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;font face="Calibri" size="3"&gt;Adesso, ipotizziamo che questi tre files non sono stati creati da noi ma sono stati mandati da un nostro cliente tramite dei vecchi applicativi, questo ci chiede di creare un nuovo file xml dove, in base al &lt;strong&gt;SalesPersonID&lt;/strong&gt; del primo file, può ritrovare dati presenti nel file &lt;strong&gt;Contacts.xml&lt;/strong&gt; e &lt;strong&gt;Employess.xml&lt;/strong&gt;, ecco come LINQ ci verrà in aiuto:&lt;/font&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background: black; color: white"&gt;            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement &lt;/span&gt;&lt;span style="background: black; color: white"&gt;employees = &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;.Load(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"Employees.xml"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;);                        
            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement &lt;/span&gt;&lt;span style="background: black; color: white"&gt;contacts = &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;.Load(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"Contacts.xml"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;);                          
            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement &lt;/span&gt;&lt;span style="background: black; color: white"&gt;salesPersons = &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;.Load(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"SalesPersons.xml"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;);                  
                                                                                        
            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement &lt;/span&gt;&lt;span style="background: black; color: white"&gt;xel = &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"NewContacts"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;,                                  
                &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;from &lt;/span&gt;&lt;span style="background: black; color: white"&gt;s &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;in &lt;/span&gt;&lt;span style="background: black; color: white"&gt;salesPersons.Elements(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"SalesPerson"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;)                          
                &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;join &lt;/span&gt;&lt;span style="background: black; color: white"&gt;e &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;in &lt;/span&gt;&lt;span style="background: black; color: white"&gt;employees.Elements(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"Employee"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;)                                
                &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;on &lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;int&lt;/span&gt;&lt;span style="background: black; color: white"&gt;)s.Element(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"SalesPersonID"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;) &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;equals &lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;int&lt;/span&gt;&lt;span style="background: black; color: white"&gt;)e.Attribute(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"EmployeeID"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;)
                &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;join &lt;/span&gt;&lt;span style="background: black; color: white"&gt;c &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;in &lt;/span&gt;&lt;span style="background: black; color: white"&gt;contacts.Elements(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"Contact"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;)                                  
                &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;on &lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;int&lt;/span&gt;&lt;span style="background: black; color: white"&gt;)e.Attribute(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"EmployeeID"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;) &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;equals &lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;int&lt;/span&gt;&lt;span style="background: black; color: white"&gt;)c.Attribute(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"ContactID"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;)  
                &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;select new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;XElement&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"NewContact"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;,                                       
                    e.Attribute(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"EmployeeID"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;),                                          
                    c.Element(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"FirstName"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;),                                             
                    c.Element(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"LastName"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;),                                              
                    c.Element(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"EmailAddress"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;),                                          &lt;br /&gt;&lt;/span&gt;&lt;span style="background: black; color: white"&gt;                    e.Element(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"Title"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;),                                                 
                    s.Element(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"SalesLastYear"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;)));                                       &lt;/span&gt;&lt;span style="background: black; color: white"&gt;
            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;FileStream &lt;/span&gt;&lt;span style="background: black; color: white"&gt;fs = &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;File&lt;/span&gt;&lt;span style="background: black; color: white"&gt;.OpenWrite(&lt;/span&gt;&lt;span style="background: black; color: #a5c25c"&gt;"NewContacs.xml"&lt;/span&gt;&lt;span style="background: black; color: white"&gt;);                           
            &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;StreamWriter &lt;/span&gt;&lt;span style="background: black; color: white"&gt;sw = &lt;/span&gt;&lt;span style="background: black; color: #cc7832"&gt;new &lt;/span&gt;&lt;span style="background: black; color: #ffc66d"&gt;StreamWriter&lt;/span&gt;&lt;span style="background: black; color: white"&gt;(fs);                                     
            sw.Write(xel.ToString());                                                   
            sw.Close();                                                                 
            fs.Close();                                                                 &lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;font face="Calibri" size="3"&gt;in pratica, come prima utiliziamo gli &lt;strong&gt;XElement&lt;/strong&gt; come sorgenti dati e facciamo le join che ci servono per poter ottenere i dati dai vari file xml.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Il risultato ottenuto sarà:&lt;/font&gt;&lt;/p&gt;

&lt;p&gt; &lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/SalvoDiFazio/WindowsLiveWriter/LINQtoSQLLINQtoXML_91DC/newcontacts.xml_4.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="300" alt="newcontacts.xml" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/SalvoDiFazio/WindowsLiveWriter/LINQtoSQLLINQtoXML_91DC/newcontacts.xml_thumb_1.jpg" width="507" border="0" /&gt;&lt;/a&gt; 

  &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Strabiliante :D&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Per qualsiasi dubbio vi consiglio di far riferimento a questo video:&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;a title="http://www.microsoft.com/emea/msdn/spotlight/sessionh.aspx?videoid=317" href="http://www.microsoft.com/emea/msdn/spotlight/sessionh.aspx?videoid=317"&gt;&lt;font face="Calibri" size="3"&gt;http://www.microsoft.com/emea/msdn/spotlight/sessionh.aspx?videoid=317&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Buon divertimento!!!&lt;/font&gt;&lt;/p&gt;

&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:85e08edf-b00f-4f92-b4fe-12c7f06d2ab7" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://http://blogs.ugidotnet.org/SalvoDifazio/LINQ" rel="tag"&gt;LINQ&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/92962.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/06/07/linqtosql--gt-linqtoxml.aspx</guid>
            <pubDate>Sat, 07 Jun 2008 15:10:17 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/92962.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/06/07/linqtosql--gt-linqtoxml.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/92962.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/92962.aspx</trackback:ping>
        </item>
        <item>
            <title>Silverlight 2 Beta2 Released</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/06/07/silverlight-2-beta2-released.aspx</link>
            <description>&lt;p&gt;&lt;font face="Calibri" size="3"&gt;Quando si dice "il buon giorno si vede dal mattino", ecco questa mattina il buon giorno.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;E' stata rilasciata la Beta2 di Silverlight.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;Per maggiori approfondimenti:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://weblogs.asp.net/scottgu/archive/2008/06/06/silverlight-2-beta2-released.aspx" href="http://weblogs.asp.net/scottgu/archive/2008/06/06/silverlight-2-beta2-released.aspx"&gt;&lt;font face="Calibri" size="3"&gt;http://weblogs.asp.net/scottgu/archive/2008/06/06/silverlight-2-beta2-released.aspx&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c288e352-2433-4301-9c60-421513db77ef" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://http://blogs.ugidotnet.org/SalvoDifazio/Silverlight" rel="tag"&gt;Silverlight&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/92958.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/06/07/silverlight-2-beta2-released.aspx</guid>
            <pubDate>Sat, 07 Jun 2008 06:37:07 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/92958.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/06/07/silverlight-2-beta2-released.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/92958.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/92958.aspx</trackback:ping>
        </item>
        <item>
            <title>Replace Constructors with Creation Methods</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/05/26/replace-constructors-with-creation-methods.aspx</link>
            <description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;Motivazione al refactoring:&lt;/strong&gt;         &lt;br /&gt;Sviluppare una classe con più costruttori creerà qualche disagio allo sviluppatore che dovrà decidere a quale costruttore affidarsi per istanziarla; questo comportà un certo tempo di studioe dei parametri dei costruttori e/o magari del codice stesso dei costruttori.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font face="Calibri" size="3"&gt;Più costruttori abbiamo nella nostra classe più sarà complicato capirne il comportamento.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;Per di più, spesso, molti dei costruttori che creeremo non verranno mai utilizzati appunto per via della complessità nel doverne studiare il comportamento.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;Soluzione:          &lt;br /&gt;&lt;/strong&gt;Il &lt;em&gt;Creation Method&lt;/em&gt; può aiutare a rendere il tutto più semplice.         &lt;br /&gt;Il &lt;em&gt;Creation Method&lt;/em&gt; è un metodo &lt;strong&gt;statico&lt;/strong&gt; o &lt;strong&gt;non statico&lt;/strong&gt; utilizzato per creare una nuova istanza.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Calibri" size="3"&gt;E' bene chiamare il metodo in maniera chiara, in modo che si capisca immediatamente cosa crea (creaConnessioneFtp(), creaConnessioneHttp() ... etc).&lt;/font&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;table class="MsoTableLightListAccent1" style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none; border-collapse: collapse; mso-border-alt: solid #4f81bd 1.0pt; mso-border-themecolor: accent1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellspacing="0" cellpadding="0" border="1"&gt;&lt;tbody&gt;     &lt;tr style="mso-yfti-irow: -1; mso-yfti-firstrow: yes"&gt;       &lt;td style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: #4f81bd 1pt solid; padding-left: 5.4pt; background: #4f81bd; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: medium none; mso-border-themecolor: accent1; mso-background-themecolor: accent1" valign="top" width="638"&gt;         &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; text-align: center; mso-yfti-cnfc: 5" align="center"&gt;&lt;b&gt;&lt;span lang="IT" style="color: white; mso-themecolor: background1"&gt;Pro e Contro &lt;/span&gt;&lt;/b&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 0"&gt;       &lt;td style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: #4f81bd 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: #4f81bd 1pt solid; mso-border-themecolor: accent1" valign="top" width="638"&gt;         &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-yfti-cnfc: 68"&gt;&lt;b&gt;&lt;span lang="IT"&gt;(+) &lt;/span&gt;&lt;/b&gt;&lt;span lang="IT" style="mso-bidi-font-weight: bold"&gt;Comunica meglio il tipo di istanza che creerà              &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 1"&gt;       &lt;td style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: medium none; mso-border-left-themecolor: accent1; mso-border-right-themecolor: accent1" valign="top" width="638"&gt;         &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-yfti-cnfc: 4"&gt;&lt;b&gt;&lt;span lang="IT"&gt;(+)&lt;/span&gt;&lt;/b&gt;&lt;span lang="IT" style="mso-bidi-font-weight: bold"&gt; Supera i limiti dei costruttori. Es. non possiamo avere due costruttori con lo stesso numero di parametri              &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 2"&gt;       &lt;td style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: #4f81bd 1pt solid; padding-left: 5.4pt; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: #4f81bd 1pt solid; mso-border-themecolor: accent1" valign="top" width="638"&gt;         &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-yfti-cnfc: 68"&gt;&lt;b&gt;&lt;span lang="IT"&gt;(+)&lt;/span&gt;&lt;/b&gt;&lt;span lang="IT" style="mso-bidi-font-weight: bold"&gt; E’ più facile trovare codice non usato              &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="mso-yfti-irow: 3; mso-yfti-lastrow: yes"&gt;       &lt;td style="border-right: #4f81bd 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: #4f81bd 1pt solid; width: 6.65in; padding-top: 0in; border-bottom: #4f81bd 1pt solid; mso-border-themecolor: accent1" valign="top" width="638"&gt;         &lt;p class="MsoNormal" style="margin-bottom: 0pt; line-height: normal; mso-yfti-cnfc: 4"&gt;&lt;b&gt;&lt;span lang="IT"&gt;(-)&lt;/span&gt;&lt;/b&gt;&lt;span lang="IT" style="mso-bidi-font-weight: bold"&gt; Crea un metodo non standard di creazione di un’istanza              &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;Come fare il refactoring:&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;ol&gt;&lt;font face="Calibri" size="3"&gt;     &lt;li&gt;Trovare un punto dove la classe viene istanziata.        &lt;br /&gt;&lt;font face="Calibri" size="3"&gt;A questo punto bisogna estrarne il codice e creare un metodo publico e statico.          &lt;br /&gt;Questo sarà il nostro &lt;em&gt;creation method&lt;/em&gt;.           &lt;br /&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;             &lt;br /&gt;(compilare e testare)               &lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/li&gt;      &lt;li&gt;Trovare tutti i costruttori che istanziano la classe usando il costruttore di prima, cancellare l'istanza ed usare il nuovo &lt;em&gt;creation method.&lt;/em&gt;   &lt;br /&gt;        &lt;br /&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;(compilare e testare)            &lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;      &lt;li&gt;Se il costruttore scelto per il refactoring è chiamato da un'altro costruttore, modificare il costruttore inserendo il &lt;em&gt;creation method&lt;/em&gt;         &lt;br /&gt;        &lt;br /&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;(compilare e testare)            &lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;      &lt;li&gt;Ripetere i punti da 1 a 3        &lt;br /&gt;&lt;/li&gt;      &lt;li&gt;Se un costruttore non viene utilizzato fuori dalla classe, renderlo non pubblico        &lt;br /&gt;        &lt;br /&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;(compilare e testare) &lt;/font&gt;&lt;/strong&gt;&lt;/li&gt;   &lt;/font&gt;&lt;/ol&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;strong&gt;Variante:         &lt;br /&gt;&lt;/strong&gt;Se durante la crazione dei &lt;em&gt;creation methods&lt;/em&gt; vi ritrovate a lavorare con molti &lt;em&gt;creation method&lt;/em&gt;, tipo 25, potrebbe essere noioso.        &lt;br /&gt;In tal caso è meglio creare un &lt;em&gt;factory&lt;/em&gt; che ritorni l'istanza appropriata.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;   &lt;/p&gt;&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d10f4a3d-5f7d-4f6e-88ca-242405de87fa" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/Refactoring" rel="tag"&gt;Refactoring&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/92818.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/05/26/replace-constructors-with-creation-methods.aspx</guid>
            <pubDate>Mon, 26 May 2008 19:48:31 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/92818.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/05/26/replace-constructors-with-creation-methods.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/92818.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/92818.aspx</trackback:ping>
        </item>
        <item>
            <title>ASP.NET 10 Tips for Writing High-Performance Web Applications</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/05/13/asp.net-10-tips-for-writing-high-performance-web-applications.aspx</link>
            <description>&lt;p&gt;Eh un periodo che, ovunque mi giro, mi chiedono di tirar giù almeno 120.000 records da macchine web server basate su un PIV...&lt;/p&gt;  &lt;p&gt;Ho risolto il problema ma adesso devo leggere bene questo articolo:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc163854.aspx" target="_blank"&gt;ASP.NET: 10 Tips for Writing High-Performance Web Applications&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Spero vi torni utile anche a voi.   &lt;br /&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:45494718-4d61-471d-a3ba-643343d608be" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/tags/ASP.NET/" rel="tag"&gt;ASP.NET&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/92649.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/05/13/asp.net-10-tips-for-writing-high-performance-web-applications.aspx</guid>
            <pubDate>Tue, 13 May 2008 13:05:15 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/92649.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/05/13/asp.net-10-tips-for-writing-high-performance-web-applications.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/92649.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/92649.aspx</trackback:ping>
        </item>
        <item>
            <title>LINQ to *: Ottenere solamente i dati non inclusi</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/05/07/linq-to--ottenere-solamente-i-dati-non-inclusi.aspx</link>
            <description>&lt;p&gt;Stavo facendo il merge di dati. Alcuni presenti in un db ed altri presi da un XML.&lt;/p&gt;  &lt;p&gt;Entrambi sono un elenco di Provincie.    &lt;br /&gt;Ho bisogno di sapere se quelle presenti nel db sono presenti nell'XML.     &lt;br /&gt;Così ho fatto:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;                &lt;/span&gt;&lt;span style="background: #202020; color: #00d2d2"&gt;MyDataContext &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;mdc &lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;= &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;new &lt;/span&gt;&lt;span style="background: #202020; color: #00d2d2"&gt;MyDataContext&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;();&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;
                &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;var &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Provincia &lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;= &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;from &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;db &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;in &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;mdc&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;tblProvincies
                                &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;select &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;db&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Provincia.Trim().ToUpper()&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;;&lt;br /&gt;                &lt;/span&gt;&lt;span style="background: #202020; color: #00d2d2"&gt;XDocument &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;xdoc &lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;= &lt;/span&gt;&lt;span style="background: #202020; color: #00d2d2"&gt;XDocument&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Load&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;(&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;strFilePath&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;);&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;
                &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;var &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;xProv &lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;= &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;from &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;x &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;in &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;xdoc&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Descendants&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;(&lt;/span&gt;&lt;span style="background: #202020; color: salmon"&gt;"location"&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;)
                            &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;where &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;x&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Element&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;(&lt;/span&gt;&lt;span style="background: #202020; color: salmon"&gt;"Prov"&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;) &lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;!= &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;null
                            select &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;x&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Element&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;(&lt;/span&gt;&lt;span style="background: #202020; color: salmon"&gt;"Prov"&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;)&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Value&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Trim&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;()&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;ToUpper&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;();&lt;/span&gt;&lt;span style="background: #202020; color: #bdb76b"&gt;
                &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;var &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;joined &lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;= &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Provincia&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Except&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;(&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;xProv&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;);&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Il risultato ottenuto è:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Local sequence cannot be used in LINQ to SQL implementation of query operators except the Contains() operator&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Facendo un paio di ricerche sulle msdn ho risolto in questa maniera:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;                &lt;/span&gt;&lt;span style="background: #202020; color: #00d2d2"&gt;MyDataContext &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;mdc &lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;= &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;new &lt;/span&gt;&lt;span style="background: #202020; color: #00d2d2"&gt;MyDataContext&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;();
&lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;                var &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Provincia &lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;= &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;from &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;db &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;in &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;mdc&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;tblProvincies
                                &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;select &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;db&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Provincia&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Trim&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;()&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;ToUpper&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;();
                &lt;/span&gt;&lt;span style="background: #202020; color: #00d2d2"&gt;XDocument &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;xdoc &lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;= &lt;/span&gt;&lt;span style="background: #202020; color: #00d2d2"&gt;XDocument&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Load&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;(&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;strFilePath&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;);&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;
                &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;var &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;xProv &lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;= &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;from &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;x &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;in &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;xdoc&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Descendants&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;(&lt;/span&gt;&lt;span style="background: #202020; color: salmon"&gt;"location"&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;)
                            &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;where &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;x&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Element&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;(&lt;/span&gt;&lt;span style="background: #202020; color: salmon"&gt;"Prov"&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;) &lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;!= &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;null
                            select &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;x&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Element&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;(&lt;/span&gt;&lt;span style="background: #202020; color: salmon"&gt;"Prov"&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;)&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Value&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Trim&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;()&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;ToUpper&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;();
&lt;/span&gt;&lt;span style="background: #202020; color: #bdb76b"&gt;
                &lt;/span&gt;&lt;span style="background: #202020; color: #7ee0ce"&gt;IEnumerable&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;string&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;&amp;gt; &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;xObjProv &lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;= &lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;(&lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;from &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;xp &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;in &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;xProv &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;select &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;xp&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;)&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;OfType&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;string&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;();
                &lt;/span&gt;&lt;span style="background: #202020; color: #7ee0ce"&gt;IEnumerable&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;string&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;&amp;gt; &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;objProv &lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;= &lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;(&lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;from &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;prv &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;in &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Provincia &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;select &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;prv&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;)&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;OfType&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;string&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;();

                &lt;/span&gt;&lt;span style="background: #202020; color: #00bfff"&gt;var &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;joined &lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;= &lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;objProv&lt;/span&gt;&lt;span style="background: #202020; color: silver"&gt;.&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;Except&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;(&lt;/span&gt;&lt;span style="background: #202020; color: #c4c4c4"&gt;xObjProv&lt;/span&gt;&lt;span style="background: #202020; color: #e0e0e0"&gt;);&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Note e consigli, sempre ben accetti.&lt;/p&gt;

&lt;p&gt;Grazie&lt;/p&gt;

&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0df7c69e-4c57-4791-89f4-b5c3c4c95511" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/tags/LINQ/" rel="tag"&gt;LINQ&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/92554.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/05/07/linq-to--ottenere-solamente-i-dati-non-inclusi.aspx</guid>
            <pubDate>Wed, 07 May 2008 11:03:50 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/92554.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/05/07/linq-to--ottenere-solamente-i-dati-non-inclusi.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/92554.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/92554.aspx</trackback:ping>
        </item>
        <item>
            <title>[OT] Di ritorno da Londra</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/05/05/ot-di-ritorno-da-londra.aspx</link>
            <description>&lt;p&gt;Appena tornato da Londra...&lt;/p&gt;  &lt;p&gt;Cavolo se ci vivrei :D&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:7d764996-e387-4692-b4d2-91e8a9b72256" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/OT" rel="tag"&gt;OT&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/92522.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/05/05/ot-di-ritorno-da-londra.aspx</guid>
            <pubDate>Mon, 05 May 2008 18:43:30 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/92522.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/05/05/ot-di-ritorno-da-londra.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/92522.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/92522.aspx</trackback:ping>
        </item>
        <item>
            <title>LINQ e DataContext + Unit Test</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/29/linq-e-datacontext.aspx</link>
            <description>&lt;p&gt;&lt;strike&gt;Passerò per stupido ma debuggando di quà e di là mi è capitato di notare che, una volta instanziata la DataContext, avevo tutti i dati del db in memoria.&lt;/strike&gt;&lt;/p&gt;  &lt;p&gt;&lt;strike&gt;Mi domandavo ... come mai?&lt;/strike&gt;&lt;/p&gt;  &lt;p&gt;&lt;strike&gt;In più aggiungo... come usereste LINQ per creare un bel test dei dati appena inseriti?&lt;/strike&gt;&lt;/p&gt;  &lt;p&gt;Scusatemi sono un coglione... grazie &lt;a href="http://blogs.ugidotnet.org/davcup/Default.aspx" target="_blank"&gt;Davide&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Seguendo il consiglio di Davide (cazzo io e quando dimentico il profiler) ho attaccato il profiler.&lt;/p&gt;  &lt;p&gt;I dati vengono scaricati quando con l'IntelliSense si prova a visualizzarli -_-    &lt;br /&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:52d985c1-3403-47f3-b678-3bbccb235c10" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/tags/LINQ/" rel="tag"&gt;LINQ&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/92445.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/29/linq-e-datacontext.aspx</guid>
            <pubDate>Tue, 29 Apr 2008 17:14:05 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/92445.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/29/linq-e-datacontext.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/92445.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/92445.aspx</trackback:ping>
        </item>
        <item>
            <title>Security videos</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/security-videos.aspx</link>
            <description>&lt;p&gt;Nuovi video sulla sicurezza postati su &lt;a href="http://www.asp.net/learn/security/"&gt;asp.net (security)&lt;/a&gt; (tnx &lt;a href="http://scottonwriting.net/sowblog/posts/13184.aspx"&gt;Scott Mitchell&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;Ed altri due video da Lamees Ayman:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/security/cc424864.aspx"&gt;Encryption&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn2.microsoft.com/en-us/security/cc424865.aspx"&gt;Export and Import Certificates&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:15f993f1-56e4-4a8f-b9e0-90a14f1b43b2" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/Security" rel="tag"&gt;Security&lt;/a&gt;, &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/92403.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/security-videos.aspx</guid>
            <pubDate>Sun, 27 Apr 2008 08:18:45 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/92403.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/security-videos.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/92403.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/92403.aspx</trackback:ping>
        </item>
        <item>
            <title>WCF e Vista: AddressAccessDeniedException &amp;ndash; Causa e Soluzione</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/wcf-e-vista-addressaccessdeniedexception-ndash-causa-e-soluzione.aspx</link>
            <description>&lt;p&gt;Un'altro link che potrà tornare in aiuto per le applicazione WCF su Vista:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/amitlale/archive/2007/01/29/addressaccessdeniedexception-cause-and-solution.aspx"&gt;http://blogs.msdn.com/amitlale/archive/2007/01/29/addressaccessdeniedexception-cause-and-solution.aspx&lt;/a&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:137c01de-844e-4dca-a0d0-37292f116477" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/WCF" rel="tag"&gt;WCF&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/92402.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/wcf-e-vista-addressaccessdeniedexception-ndash-causa-e-soluzione.aspx</guid>
            <pubDate>Sun, 27 Apr 2008 08:17:17 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/92402.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/wcf-e-vista-addressaccessdeniedexception-ndash-causa-e-soluzione.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/92402.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/92402.aspx</trackback:ping>
        </item>
        <item>
            <title>Problemi con IIS 7 e applicazione WCF</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/problemi-con-iis-7-e-applicazione-wcf.aspx</link>
            <description>&lt;p&gt;Se ricevi un errore 404.3 dalla tua neo applicazione wcf leggi il seguente post: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/davidwaddleton/archive/2007/11/02/wcf-and-404-3-errors.aspx"&gt;http://blogs.msdn.com/davidwaddleton/archive/2007/11/02/wcf-and-404-3-errors.aspx&lt;/a&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6b966a76-f777-4679-b15b-ed8000aa2e71" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/WCF" rel="tag"&gt;WCF&lt;/a&gt;, &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/IIS" rel="tag"&gt;IIS&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/92401.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/problemi-con-iis-7-e-applicazione-wcf.aspx</guid>
            <pubDate>Sun, 27 Apr 2008 08:16:14 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/92401.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/problemi-con-iis-7-e-applicazione-wcf.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/92401.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/92401.aspx</trackback:ping>
        </item>
        <item>
            <title>Video MIX08</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/video-mix08.aspx</link>
            <description>&lt;p&gt;Per chi fosse interessato, al seguente link si possono trovare i video delle sezioni del Mix08: &lt;a href="http://sessions.visitmix.com/"&gt;http://sessions.visitmix.com/&lt;/a&gt;     &lt;br /&gt;    &lt;br /&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:06b33a98-a5fb-489f-8067-a55bbf469e7c" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/Video%20Tutorial" rel="tag"&gt;Video Tutorial&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/92400.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/video-mix08.aspx</guid>
            <pubDate>Sun, 27 Apr 2008 08:14:47 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/92400.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/video-mix08.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/92400.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/92400.aspx</trackback:ping>
        </item>
        <item>
            <title>Differenze tra eXtreme Programming e SCRUM</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/differenze-tra-extreme-programming-e-scrum.aspx</link>
            <description>&lt;p&gt;Sono un appassionato delle metodologie xp, e per questo continuo a studiarle e provare ad applicarle un pò per volta.    &lt;br /&gt;Una domanda che è nata in questi giorni è stata:  &lt;br /&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Quali sono le differenze tra SCRUM e XP? &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Rileggendo un articolo di Martin Fowler ho trovato la risposta:    &lt;br /&gt;&lt;a href="http://martinfowler.com/articles/newMethodology.html"&gt;http://martinfowler.com/articles/newMethodology.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Martin dice che le più grandi differenze sono: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Scrum concentrates on the management aspects of software development &lt;/li&gt;    &lt;li&gt;Scrum dividing development into thirty day iterations (called      &lt;br /&gt;'sprints') and applying closer monitoring and control with daily scrum       &lt;br /&gt;meetings &lt;/li&gt;    &lt;li&gt;Scrum places much less emphasis on engineering practices &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Continuo a preferire XP perchè mi piace l'approccio TDD.    &lt;br /&gt;Cosa ne pensate?&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f69db596-7080-4903-b5df-6eeea08d4666" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/Agile" rel="tag"&gt;Agile&lt;/a&gt;, &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/XP" rel="tag"&gt;XP&lt;/a&gt;, &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/SCRUM" rel="tag"&gt;SCRUM&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/92399.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/differenze-tra-extreme-programming-e-scrum.aspx</guid>
            <pubDate>Sun, 27 Apr 2008 08:13:22 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/92399.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/differenze-tra-extreme-programming-e-scrum.aspx#feedback</comments>
            <slash:comments>12</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/92399.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/92399.aspx</trackback:ping>
        </item>
        <item>
            <title>Silverlight charts</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/silverlight-charts-again.aspx</link>
            <description>&lt;p&gt;A questo indirizzo: &lt;a href="http://www.visifire.com/silverlight_charts_gallery.php"&gt;http://www.visifire.com/silverlight_charts_gallery.php&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Potete trovare vari charts con d'esempio, sviluppati in Siliverlight.&lt;/p&gt;  &lt;p&gt;Veramente carini.&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2c732989-88e7-4631-a08a-826985a7e3fc" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/Silverlight" rel="tag"&gt;Silverlight&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/92398.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/silverlight-charts-again.aspx</guid>
            <pubDate>Sun, 27 Apr 2008 08:08:20 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/92398.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/silverlight-charts-again.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/92398.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/92398.aspx</trackback:ping>
        </item>
        <item>
            <title>ASP.NET ViewState data security</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/asp.net-viewstate-data-security.aspx</link>
            <description>&lt;p&gt;ASP.NET offre la possibilità di criptare i dati all'interno della ViewState in moda da incrementare la sicurezza. &lt;/p&gt;  &lt;p&gt;Per far ciò abbiamo due possibilità: &lt;/p&gt;  &lt;p&gt;1 - Tramite il file web.config, abilitiamo il criptaggio della ViewState per tutta l'applicazione:    &lt;br /&gt;  &amp;lt;configuration&amp;gt;     &lt;br /&gt;      &amp;lt;system.web&amp;gt;     &lt;br /&gt;      &amp;lt;pages viewStateEncryptionMode="Always" /&amp;gt; &lt;/p&gt;  &lt;p&gt;2 -  Solo per una pagina specifica:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="background: #d7d7d7"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="background: #202020; color: #7ee0ce"&gt;@ Page &lt;/span&gt;&lt;span style="background: #202020; color: salmon"&gt;Language&lt;/span&gt;&lt;span style="background: #202020; color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="background: #202020; color: #87df71"&gt;"C#" &lt;/span&gt;&lt;span style="background: #202020; color: salmon"&gt;Trace&lt;/span&gt;&lt;span style="background: #202020; color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="background: #202020; color: #87df71"&gt;"false" &lt;/span&gt;&lt;span style="background: #202020; color: salmon"&gt;ViewStateEncryptionMode&lt;/span&gt;&lt;span style="background: #202020; color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="background: #202020; color: #87df71"&gt;"Always" &lt;/span&gt;&lt;span style="background: #d7d7d7"&gt;%&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:ea17fd1b-3904-49dc-8ade-f29c57828fc2" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;, &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/Security" rel="tag"&gt;Security&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/92397.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/asp.net-viewstate-data-security.aspx</guid>
            <pubDate>Sun, 27 Apr 2008 08:07:13 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/92397.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/asp.net-viewstate-data-security.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/92397.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/92397.aspx</trackback:ping>
        </item>
        <item>
            <title>Disabling Session State</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/silverlight-charts.aspx</link>
            <description>&lt;p&gt;Se la tua applicazione non usa le session puoi migliorarne le prestazioni della tua applicazione disabilitando le sessioni.&lt;/p&gt;  &lt;p&gt;Le sessioni si possono disabilitare, per tutta la sezione inserendo la seguente opzione nel file di web.config:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="background: #202020; color: #7ee0ce"&gt;    &amp;lt;system.web&amp;gt;
    &amp;lt;sessionState &lt;/span&gt;&lt;span style="background: #202020; color: salmon"&gt;mode&lt;/span&gt;&lt;span style="background: #202020; color: #7ee0ce"&gt;=&lt;/span&gt;&lt;span style="background: #202020; color: #87df71"&gt;"Off" &lt;/span&gt;&lt;span style="background: #202020; color: #7ee0ce"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Oppure su una singola pagina:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background: #d7d7d7"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="background: #202020; color: #7ee0ce"&gt;@ Page &lt;/span&gt;&lt;span style="background: #202020; color: salmon"&gt;Language&lt;/span&gt;&lt;span style="background: #202020; color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="background: #202020; color: #87df71"&gt;"C#" &lt;/span&gt;&lt;span style="background: #202020; color: salmon"&gt;Trace&lt;/span&gt;&lt;span style="background: #202020; color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="background: #202020; color: #87df71"&gt;"false" &lt;/span&gt;&lt;span style="background: #202020; color: salmon"&gt;EnableSessionState&lt;/span&gt;&lt;span style="background: #202020; color: #d0d0d0"&gt;=&lt;/span&gt;&lt;span style="background: #202020; color: #87df71"&gt;"False" &lt;/span&gt;&lt;span style="background: #d7d7d7"&gt;%&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:1500cf60-6e3c-4b1c-b844-d0b07646a77b" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/salvatoredifazio/Security"&gt; &lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/92396.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/silverlight-charts.aspx</guid>
            <pubDate>Sun, 27 Apr 2008 07:56:10 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/92396.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/27/silverlight-charts.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/92396.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/92396.aspx</trackback:ping>
        </item>
        <item>
            <title>Design Patterns Study Group</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/25/design-patterns-study-group.aspx</link>
            <description>&lt;p&gt;Leggendo &lt;a href="http://www.amazon.com/Refactoring-Patterns-Addison-Wesley-Signature-Kerievsky/dp/0321213351/ref=pd_bbs_sr_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1209120051&amp;amp;sr=8-2" target="_blank"&gt;Refactoring to Patterns&lt;/a&gt; sono venuto a conoscenza dell'iniziativa che ha avuto l'autore, ormai anni fa (nel 1995), nel creare dei Gruppi di Studio dove vengono analizzati/discussi/utilizzati i vari patterns, tutto orientato al refactoring e al miglioramento del design di un applicativo.&lt;/p&gt;  &lt;p&gt;Non sarebbe un'iniziativa carina a cui pensare?&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a4f5d0a3-9798-4d29-b743-839b4d08ce03" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/Refactoring" rel="tag"&gt;Refactoring&lt;/a&gt;, &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/Agile" rel="tag"&gt;Agile&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/92376.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/25/design-patterns-study-group.aspx</guid>
            <pubDate>Fri, 25 Apr 2008 10:50:59 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/92376.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/04/25/design-patterns-study-group.aspx#feedback</comments>
            <slash:comments>17</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/92376.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/92376.aspx</trackback:ping>
        </item>
        <item>
            <title>Sperimentando Silverlight 2</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/03/29/sperimentando-silverlight-2.aspx</link>
            <description>Non so quanti di voi stanno oggi sperimentando Silverlight 2 tentando di fare una demo per qualche fantomatico applicativo :D  &lt;p&gt;So solamente che una solution con un'applicativo Silverlight e un servizio WCF, attualmente, non è la cosa più stabile al mondo ... o almeno a quest'ora si ha qualche problema :D&lt;/p&gt;  &lt;p&gt;Spero di poter pubblicare la demo il prima possibile.&lt;/p&gt;  &lt;p&gt;Per chi potesse interessare, Microsoft ha messo a disposizione: &lt;a href="http://streaming.live.com/" target="_blank"&gt;Microsoft Silverlight Streaming&lt;/a&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:1d5b7d96-843c-49dc-a51f-b19d9c7dcd8f" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/Silverlight" rel="tag"&gt;Silverlight&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/91937.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/03/29/sperimentando-silverlight-2.aspx</guid>
            <pubDate>Fri, 28 Mar 2008 23:14:54 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/91937.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/03/29/sperimentando-silverlight-2.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/91937.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/91937.aspx</trackback:ping>
        </item>
        <item>
            <title>OT - Linkedin</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/03/12/ot---linkedin.aspx</link>
            <description>&lt;p&gt;Ragazzi perchè non creiamo un gruppo su linkedin? :o&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c6cd7c40-d73d-454c-becd-b0ca9cfd0394" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/Altro" rel="tag"&gt;Altro&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/91670.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/03/12/ot---linkedin.aspx</guid>
            <pubDate>Wed, 12 Mar 2008 19:29:11 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/91670.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/03/12/ot---linkedin.aspx#feedback</comments>
            <slash:comments>12</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/91670.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/91670.aspx</trackback:ping>
        </item>
        <item>
            <title>Tools, Testing, and Secure Coding Policies</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/03/09/tools-testing-and-secure-coding-policies.aspx</link>
            <description>&lt;p&gt;E' fondamentale ai fini della sicurezza implementare dei tools propri o utilizzare tools di terze parti che possono analizzare l'applicativo prodotto.&lt;/p&gt;  &lt;p&gt;E' altrettanto fondamentale utilizzare gli ultimi compilatori/linker/framework rilasciati e non utilizzare metodi bannati.&lt;/p&gt;  &lt;p&gt;I compilatori di ultima generazione (C e C++) tendono a scrivere un messaggio di warning nel caso in cui il metodo che stiamo utilizzando non è sicuro (vedi i vari: strcat, sprintf etc)&lt;/p&gt;  &lt;p&gt;Ricordiamoci comunque che tutti i tools che utilizzeremo non potranno mai analizzare il codice come un essere umano, sicuramente potranno venirci incontro con la maggior parte di bugs (almeno quelli più grossolani).&lt;/p&gt;  &lt;p&gt;E' utile avere una &lt;em&gt;secure coding checklist &lt;/em&gt;dove appunteremo i passi da seguire per ottenere almeno un risultato minimo in termini di sicurezza.&lt;/p&gt;  &lt;h4&gt;&lt;font color="#ff8000"&gt;Test&lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;Utilissimi per capire lo stato della nostra applicazione sono i test.    &lt;br /&gt;E' indubbio che scrivendo codice seguendo la metodologia agile del &lt;a href="http://en.wikipedia.org/wiki/Test-driven_development" target="_blank"&gt;TDD&lt;/a&gt; porta ad avere codice testato almeno in fase di implementazione.&lt;/p&gt;  &lt;p&gt;Ma è utile anche implementare dei test del tipo:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Fuzz &lt;/li&gt;    &lt;li&gt;Penetration &lt;/li&gt;    &lt;li&gt;Run-time &lt;/li&gt; &lt;/ul&gt;  &lt;h5&gt;&lt;/h5&gt;  &lt;h5&gt;&lt;font color="#ff8000"&gt;Fuzz&lt;/font&gt;&lt;/h5&gt;  &lt;p&gt;La metodologia del &lt;em&gt;Fuzz Tesing&lt;/em&gt; si basa nel creare un dato mal formattato che il nostro applicativo dovrà analizzare.     &lt;br /&gt;Solitamente questi dati possono esser di tre tipi:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;File &lt;/li&gt;    &lt;li&gt;Network protocol parsers &lt;/li&gt;    &lt;li&gt;APIs and micellaneous parsers &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;In tutti e tre i casi la procedura rimane la stessa.    &lt;br /&gt;Creare un dato mal formattato (dimensioni, dati sporchi, crc errato, file di grosse dimensioni etc) e darli in pasto all'applicativo a run-time.&lt;/p&gt;  &lt;p&gt;Come fare è solamente questione di fantasia.    &lt;br /&gt;Possiamo avere una collezione di file errati, o possiamo creare un metodo che manda un pacchetto mal formattato etc.&lt;/p&gt;  &lt;p&gt;Se l'applicativo muore durante questa fase di test, abbiamo trovato un bug e molto probabilmente un bug di sicurezza.&lt;/p&gt;  &lt;h5&gt;&lt;font color="#ff8000"&gt;Penetration&lt;/font&gt;&lt;/h5&gt;  &lt;p&gt;In un test di tipo &lt;em&gt;Penetration&lt;/em&gt;, viene simulato un attacco da parte di un'entità esterna al sistema.    &lt;br /&gt;Ovvero ci fingeremo cracker ed andremo ad analizzare il sistema dall'esterno alla ricerca di eventuali falle e, una volta trovate, si inizierà una fase di studio su com'è possibile sfruttarle.&lt;/p&gt;  &lt;p&gt;Una volta capito come è possibile sfruttare la falla potremo scegliere la contromisura da usare.&lt;/p&gt;  &lt;h5&gt;&lt;font color="#ff8000"&gt;Run-Time&lt;/font&gt;&lt;/h5&gt;  &lt;p&gt;Questa è l'ultima fase di test dove andremo ad usare applicativi come AppVerif per verificare i bugs presenti nella nostra applicazione.&lt;/p&gt;  &lt;p&gt;Un tool simile che mette a disposizione Microsoft è Driver Verifier (Verifier.exe).&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:ccd93991-e786-4345-8b68-e177e37309bd" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/SDL" rel="tag"&gt;SDL&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/91593.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/03/09/tools-testing-and-secure-coding-policies.aspx</guid>
            <pubDate>Sun, 09 Mar 2008 14:11:53 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/91593.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/03/09/tools-testing-and-secure-coding-policies.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/91593.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/91593.aspx</trackback:ping>
        </item>
        <item>
            <title>SDL, documentazione e tools</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/02/29/sdl-documentazione-e-tools.aspx</link>
            <description>&lt;p&gt;A questo punto del progetto dovreste aver pronto un prodotto con pochi bugs e un pò di tools che avete creato per testare il vostro software (o che magari avevate già).&lt;/p&gt;  &lt;p&gt;Affinchè il vostro cliente utilizzi in maniera corretta l'applicativo, dovremo rilasciare un pò di documentazione affinchè possiamo rendere noti le scelte fatte per rendere il software sicuro.&lt;/p&gt;  &lt;h4&gt;Setup documentation&lt;/h4&gt;  &lt;p&gt;E' il tipo di documentazione dove andremo a scrivere informazioni quali:   &lt;br /&gt;quale porta e quale protocollo utilizzeremo, perchè le utilizziamo, su che tipo di restrizioni di accesso deve avere la nostra applicazione, che restrizione dovremmo avere nella subnet.&lt;/p&gt;  &lt;p&gt;Si continuerà con evidenziare quali sistemi operativi possono supportare il nostro applicativo e perchè.&lt;/p&gt;  &lt;p&gt;Ad esempio, se registriamo dei dati sensibili ed utilizziamo un servizio di crittografica dobbiamo renderlo noto all'amministratore.&lt;/p&gt;  &lt;h4&gt;Mainline Product Use Documentation&lt;/h4&gt;  &lt;p&gt;Chiamatelo pure &lt;strong&gt;User Manual&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Quì annoteremo informazioni come i pericoli che si possono incorrere se abilitiamo una feature che di default è disabilita. Specificando perchè è disabilitata, cosa bisogna fare per abilitarla e cosa fare, comunque, per ridurne i rischi.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Non aver paura di dire chiaramente qual'è il punto debole dell'applicazione&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Si consiglia anche di indicare, in un sol punto, l'elenco di tutte le miglior soluzioni per rendere il software più sicuro.&lt;/p&gt;  &lt;h4&gt;Help Documentation&lt;/h4&gt;  &lt;p&gt;Solitamente è meglio inserirla all'interno dell'applicazione stessa.   &lt;br /&gt;Si pigia &amp;lt;F1&amp;gt; è l'utente può subito venir a conoscenza di informazioni riguardanti il task su cui sta operando.&lt;/p&gt;  &lt;h4&gt;Developer Documentation&lt;/h4&gt;  &lt;p&gt;Se rilasciate API o un framework è utile includere informazioni riguardo la sicurezza dei metodi sviluppati e come utilizzarli nella miglior maniera.&lt;/p&gt;  &lt;p&gt;Alcune di queste informazioni vengono rilasciare anche dal compilatore nella vostra finestra di build (provate ad usare dei metodi C++ come: sprintf, scanf, etc)&lt;/p&gt;  &lt;h4&gt;Creating tools&lt;/h4&gt;  &lt;p&gt;Creare dei tools di sicurezza e' il massimo aiuto che possiamo dare ai nostri clienti.&lt;/p&gt;  &lt;p&gt;Pensate quanto Microsoft sta investendo in questo campo.&lt;/p&gt;  &lt;h4&gt;Conclusione&lt;/h4&gt;  &lt;p&gt;Ricordiamoci di specificare tutto il più chiaramente possibile e nella maniera più sintetica.   &lt;br /&gt;Una lunga documentazione non verrà mai letta anche se ben realizzata.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;   &lt;/p&gt;&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:bcbc72c2-73d1-47de-8ea0-abbf9b4896e1" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/SDL" rel="tag"&gt;SDL&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/91443.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/02/29/sdl-documentazione-e-tools.aspx</guid>
            <pubDate>Fri, 29 Feb 2008 21:06:32 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/91443.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/02/29/sdl-documentazione-e-tools.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/91443.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/91443.aspx</trackback:ping>
        </item>
        <item>
            <title>XSSDetect Public Beta</title>
            <link>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/02/29/xssdetect-public-beta.aspx</link>
            <description>&lt;p&gt;Oggi sono venuto a &lt;a href="http://blogs.msdn.com/ace_team/archive/2007/10/22/xssdetect-public-beta-now-available.aspx" target="_blank"&gt;conoscenza&lt;/a&gt; di questo utile tools che analizza i vostri progetti    &lt;br /&gt;ASP.NET, alla ricerca di &lt;a href="http://msdn2.microsoft.com/en-us/library/ms533028(VS.85).aspx" target="_blank"&gt;Cross-Site Scripting (XSS)&lt;/a&gt;, si integra perfettamente con    &lt;br /&gt;VS 2005.&lt;/p&gt;  &lt;p&gt;Per scaricarlo cliccate &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=19a9e348-bdb9-45b3-a1b7-44ccdcb7cfbe&amp;amp;displaylang=en" target="_blank"&gt;quì&lt;/a&gt;.&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:dd5dd8a5-932e-4145-90fd-cb8b9a92f7c4" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Tags: &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/tags/Security/" rel="tag"&gt;Security&lt;/a&gt;, &lt;a href="http://blogs.ugidotnet.org/SalvoDiFazio/tags/SDL/" rel="tag"&gt;SDL&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/SalvoDiFazio/aggbug/91428.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Salvatore Di Fazio</dc:creator>
            <guid>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/02/29/xssdetect-public-beta.aspx</guid>
            <pubDate>Fri, 29 Feb 2008 10:08:25 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/SalvoDiFazio/comments/91428.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/SalvoDiFazio/archive/2008/02/29/xssdetect-public-beta.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/SalvoDiFazio/comments/commentRss/91428.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/SalvoDiFazio/services/trackbacks/91428.aspx</trackback:ping>
        </item>
    </channel>
</rss>