<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns: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/" version="2.0">
    <channel>
        <title>Angella Andrea</title>
        <link>http://blogs.ugidotnet.org/angellaa/Default.aspx</link>
        <description>Blog tecnico sulla piattaforma .NET e lo sviluppo software.</description>
        <language>it-IT</language>
        <copyright>Andrea Angella</copyright>
        <generator>Subtext Version 2.1.0.3</generator>
        <image>
            <title>Angella Andrea</title>
            <url>http://blogs.ugidotnet.org/images/RSS2Image.gif</url>
            <link>http://blogs.ugidotnet.org/angellaa/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/ugidotnet-angellaa" type="application/rss+xml" /><item>
            <title>IV UgiAltNetConf (27 Giugno 2009) - Impressioni</title>
            <link>http://blogs.ugidotnet.org/angellaa/archive/2009/06/28/iv-ugialtnetconf-27-giugno-2009-impressioni.aspx</link>
            <description>&lt;p&gt; &lt;/p&gt;  &lt;p&gt;Ieri ho partecipato alla &lt;a href="http://www.ugialt.net/Meetings.ashx#IV_UgiAltNetConf_CH_Giugno_CAAJ_16"&gt;quarta UgiAlt.Net Conference&lt;/a&gt; a Bologna. E’ stata una giornata molto intensa, e i contenuti sono stati davvero molto interessanti.&lt;/p&gt;  &lt;p&gt;In primis la sessione su Mono tenuta da &lt;a href="http://primates.ximian.com/~massi/blog/"&gt;Massimiliano Mantione&lt;/a&gt;. E’ stato veramente interessante conoscere i principali aspetti di Mono raccontati da un profondo conoscitore degli internals del framework. La sua enorme competenza tecnica che traspare evidente dalla sua sessione mi ha colpito tantissimo. Complimenti Massimiliano !!!&lt;/p&gt;  &lt;p&gt;In secondo luogo è stato bello partecipare all’open space su Model View ViewModel con &lt;a href="http://blogs.ugidotnet.org/topics/"&gt;Mauro Servienti&lt;/a&gt; anche se non avevo ancora avuto modo di applicare questo pattern. E’ stupefacente la profonda conoscenza tecnologica di Mauro e il suo approccio estremamente pragmatico nell’affrontare i problemi. Ho seguito anche la sua ultima sessione di “UI Composition” ma devo ammettere che per quanto mi riguarda è un tema ancora troppo avanzato per me ma ho comunque colto le problematiche affrontate.&lt;/p&gt;  &lt;p&gt;Anche la sessione di &lt;a href="http://blogs.ugidotnet.org/Royv/Default.aspx"&gt;Roberto Valenti&lt;/a&gt; sulla sua esperienza nel refactoring di codice legacy è stata molto istruttiva e ha evidenziato una metodologia che può funzionare basata sull’analisi di metriche del codice e sull’applicazione più o meno sistematica di principi dell’OOP e del testing.&lt;/p&gt;  &lt;p&gt;Infine la sessione su “Come progettare l’UX” di &lt;a href="http://tech.piyodesign.it/"&gt;Daniela Panfili&lt;/a&gt; mi ha incuriosito in quanto ha offerto una prospettiva differente nel come può essere affrontato il problema di progettare interfacce grafiche separando il più possibile il lavoro dello sviluppatore da quello del grafico. Ero un pò scettico su questo aspetto ma l’esperienza di Daniela sembra dimostrare che spesso e volentieri l’approccio che ha presentato può funzionare e portare a una maggiore soddisfazione del cliente stesso forzandolo a scontrarsi fin da subito su tutti i possibili problemi di usabilità che lei chiamava “criticità”.&lt;/p&gt;  &lt;p&gt;Andare a questi eventi è per me molto stimolante e mi fa rendere conto di quanta strada ancora devo fare nel fantastico mondo della programmazione. Inoltre è molto bello per me conoscere e rivedere persone che hanno la mia stessa passione.&lt;/p&gt;  &lt;p&gt;Un sentito grazie a tutti gli organizzatori e agli ottimi speaker che hanno tenuto le varie sessioni della giornata.&lt;/p&gt;  &lt;p&gt;A presto !&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/angellaa/aggbug/96549.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Angella</dc:creator>
            <guid>http://blogs.ugidotnet.org/angellaa/archive/2009/06/28/iv-ugialtnetconf-27-giugno-2009-impressioni.aspx</guid>
            <pubDate>Sun, 28 Jun 2009 12:33:30 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/angellaa/comments/96549.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/angellaa/archive/2009/06/28/iv-ugialtnetconf-27-giugno-2009-impressioni.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/angellaa/comments/commentRss/96549.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/angellaa/services/trackbacks/96549.aspx</trackback:ping>
        </item>
        <item>
            <title>Moonlight 1.0 porta Silverlight su Linux</title>
            <link>http://blogs.ugidotnet.org/angellaa/archive/2009/02/13/moonlight-1.0-porta-silverlight-su-linux.aspx</link>
            <description>&lt;p&gt;   &lt;br /&gt;Novell ha completato la prima versione stabile di Moonlight.&lt;/p&gt;  &lt;p&gt;Ecco qui il link alla notizia: &lt;a title="http://punto-informatico.it/2549927/PI/News/moonlight-10-porta-silverlight-linux.aspx" href="http://punto-informatico.it/2549927/PI/News/moonlight-10-porta-silverlight-linux.aspx"&gt;http://punto-informatico.it/2549927/PI/News/moonlight-10-porta-silverlight-linux.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/angellaa/aggbug/95461.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Angella</dc:creator>
            <guid>http://blogs.ugidotnet.org/angellaa/archive/2009/02/13/moonlight-1.0-porta-silverlight-su-linux.aspx</guid>
            <pubDate>Fri, 13 Feb 2009 10:37:51 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/angellaa/comments/95461.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/angellaa/archive/2009/02/13/moonlight-1.0-porta-silverlight-su-linux.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/angellaa/comments/commentRss/95461.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/angellaa/services/trackbacks/95461.aspx</trackback:ping>
        </item>
        <item>
            <title>Tanti auguri e segnalazione articolo sul .NET Micro Framework</title>
            <link>http://blogs.ugidotnet.org/angellaa/archive/2009/01/01/95063.aspx</link>
            <description>&lt;p&gt;Prima di tutto a voi ragazzi e ragazze di UgiDotNet:&lt;/p&gt;  &lt;h2&gt;&lt;font color="#ff0000"&gt;Tanti auguri e felice 2009 !&lt;/font&gt;&lt;/h2&gt;  &lt;p&gt;Approfitto dell'occasione per segnalare a tutti che ho realizzato e pubblicato un nuovo &lt;a href="http://dotnettoscana.org/wikis/articles/default.aspx" target="_blank"&gt;articolo&lt;/a&gt; per la community di &lt;a href="http://dotnettoscana.org/" target="_blank"&gt;DotNetToscana&lt;/a&gt;.     &lt;br /&gt;Il titolo dell'articolo è "&lt;a href="http://dotnettoscana.org/wikis/articles/introduzione-al-net-micro-framework.aspx" target="_blank"&gt;Introduzione al .NET Micro Framework&lt;/a&gt;".&lt;/p&gt;  &lt;p&gt;Di seguito elenco le sezioni di cui è composto:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Introduzione allo sviluppo su piattaforme embedded &lt;/li&gt;    &lt;li&gt;Che cos'è e perché è stato creato il .NET Micro Framework &lt;/li&gt;    &lt;li&gt;Versioni disponibili e caratteristiche principali &lt;/li&gt;    &lt;li&gt;Architettura del framework e Common Language Runtime &lt;/li&gt;    &lt;li&gt;Uno sguardo alla Base Class Library &lt;/li&gt;    &lt;li&gt;Come iniziare a sviluppare con il .NET Micro Framework &lt;/li&gt;    &lt;li&gt;Risorse utili per ottenere maggiori informazioni &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Un saluto a tutti !&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/angellaa/aggbug/95063.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Angella</dc:creator>
            <guid>http://blogs.ugidotnet.org/angellaa/archive/2009/01/01/95063.aspx</guid>
            <pubDate>Thu, 01 Jan 2009 18:27:55 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/angellaa/comments/95063.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/angellaa/archive/2009/01/01/95063.aspx#feedback</comments>
            <slash:comments>12</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/angellaa/comments/commentRss/95063.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/angellaa/services/trackbacks/95063.aspx</trackback:ping>
        </item>
        <item>
            <title>Intervista al Team Leader di JQuery</title>
            <category>Javascript</category>
            <link>http://blogs.ugidotnet.org/angellaa/archive/2008/11/24/intervista-al-team-leader-di-jquery.aspx</link>
            <description>&lt;p&gt;Su &lt;a href="http://www.html.it/" target="_blank"&gt;HTML.it&lt;/a&gt; è possibile trovare la traduzione in italiano dell'interessante &lt;a href="http://javascript.html.it/articoli/leggi/2879/intervista-a-john-resig/1/" target="_blank"&gt;intervista a John Resig&lt;/a&gt; che è il Team Leader del framework JQuery.&lt;/p&gt;  &lt;p&gt;Può essere sicuramente interessante valutare l'acquisto del suo libro &lt;em&gt;&lt;a href="http://www.amazon.com/Pro-JavaScript-Techniques-John-Resig/dp/1590597273/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1227561318&amp;amp;sr=8-1" target="_blank"&gt;Pro Javascript Techniques&lt;/a&gt;&lt;/em&gt; e di un altro intitolato &lt;em&gt;&lt;a href="http://www.amazon.com/Secrets-JavaScript-Ninja-John-Resig/dp/193398869X/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1227562278&amp;amp;sr=1-1" target="_blank"&gt;Secrets of the Javascript Ninja&lt;/a&gt;&lt;/em&gt; che sarà disponibile il prossimo anno.&lt;/p&gt;  &lt;p&gt;Nel frattempo sono in attesa del libro &lt;strong&gt;&lt;a href="http://www.amazon.com/jQuery-Action-Bear-Bibeault/dp/1933988355" target="_blank"&gt;JQuery in Action&lt;/a&gt;&lt;/strong&gt; che sono molto curioso di leggere. &lt;a href="http://blogs.ugidotnet.org/rgm/Default.aspx" target="_blank"&gt;Gian Maria&lt;/a&gt; è colpa tua :-)&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/angellaa/WindowsLiveWriter/IntervistaalTeamLeaderdiJQuery_13C1A/jquery_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="240" alt="jquery" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/angellaa/WindowsLiveWriter/IntervistaalTeamLeaderdiJQuery_13C1A/jquery_thumb.jpg" width="240" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/angellaa/aggbug/94741.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Angella</dc:creator>
            <guid>http://blogs.ugidotnet.org/angellaa/archive/2008/11/24/intervista-al-team-leader-di-jquery.aspx</guid>
            <pubDate>Mon, 24 Nov 2008 21:37:18 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/angellaa/comments/94741.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/angellaa/archive/2008/11/24/intervista-al-team-leader-di-jquery.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/angellaa/comments/commentRss/94741.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/angellaa/services/trackbacks/94741.aspx</trackback:ping>
        </item>
        <item>
            <title>[70-536] GZipStream class, DeflateStream class and Isolated Storage</title>
            <category>Exam 70-536 Application Development Foundation</category>
            <link>http://blogs.ugidotnet.org/angellaa/archive/2008/11/18/70-536-gzipstream-class-deflatestream-class-and-isolated-storage.aspx</link>
            <description>&lt;p&gt;&lt;strong&gt;Area di riferimento&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;- Implementing serialization and input/output functionality in a .NET Framework application (18 percent)    &lt;br /&gt;   - Compress or decompress stream information in a .NET Framework application and improve the security of application data by using isolated storage     &lt;br /&gt;      - May include but is not limited to: IsolatedStorageFile class, IsolatedStorageFileStream class;     &lt;br /&gt;      - DeflateStream class; GZipStream class &lt;/p&gt;  &lt;p /&gt;  &lt;hr /&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;GZipStream and DeflateStream classes&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;La classi &lt;strong&gt;GZipStream&lt;/strong&gt; e &lt;strong&gt;DeflateStream&lt;/strong&gt; permettono di comprimere dati utilizzando il famoso algoritmo di compressione Gzip. Conviene utilizzare la classe GZipStream nel caso in cui si intenda distribuire i file in modo che questi possano essere decompressi utilizzando l'ampiamente diffuso tool gzip.&lt;/p&gt;  &lt;p&gt;Queste classi si trovano nel namespace &lt;strong&gt;System.IO.Compression&lt;/strong&gt; e il loro utilizzo è molto semplice.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font /&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:d2be8732-e07e-4ee1-a376-323d0c8ceebb" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre style="background-color:WhiteSmoke;;overflow: none;;font-family:Consolas;font-size:12"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #000000; "&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;class&lt;/span&gt;&lt;span style="color: #000000; "&gt; Program
    {
        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;static&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; Main(&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt;[] args)
        {
            File.WriteAllText(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;source.txt&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Il contenuto di questo file verra' compresso.&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);

            &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; File compression&lt;/span&gt;&lt;span style="color: #008000; "&gt;
&lt;/span&gt;&lt;span style="color: #000000; "&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; (FileStream sourceFile &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; File.Open(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;source.txt&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, FileMode.Open))
            {
                &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; (FileStream destinationFile &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; File.Open(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;destination.dat&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, FileMode.Create))
                {
                    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; (GZipStream comp &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; GZipStream(destinationFile, CompressionMode.Compress))
                    {
                        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;int&lt;/span&gt;&lt;span style="color: #000000; "&gt; b;
                        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;while&lt;/span&gt;&lt;span style="color: #000000; "&gt; ((b &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; sourceFile.ReadByte()) &lt;/span&gt;&lt;span style="color: #000000; "&gt;!=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;-&lt;/span&gt;&lt;span style="color: #000000; "&gt;1&lt;/span&gt;&lt;span style="color: #000000; "&gt;)
                        {
                            comp.WriteByte((&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;byte&lt;/span&gt;&lt;span style="color: #000000; "&gt;)b);
                        }
                    }
                }
            }  
         
            &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; File decompression&lt;/span&gt;&lt;span style="color: #008000; "&gt;
&lt;/span&gt;&lt;span style="color: #000000; "&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; (FileStream sourceFile &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; File.Open(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;destination.dat&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, FileMode.Open))
            {
                &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; (FileStream destinationFile &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; File.Open(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;new-source.txt&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, FileMode.Create))
                {
                    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; (GZipStream decomp &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; GZipStream(sourceFile, CompressionMode.Decompress))
                    {
                        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;int&lt;/span&gt;&lt;span style="color: #000000; "&gt; b;
                        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;while&lt;/span&gt;&lt;span style="color: #000000; "&gt; ((b &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; decomp.ReadByte()) &lt;/span&gt;&lt;span style="color: #000000; "&gt;!=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;-&lt;/span&gt;&lt;span style="color: #000000; "&gt;1&lt;/span&gt;&lt;span style="color: #000000; "&gt;)
                        {
                            destinationFile.WriteByte((&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;byte&lt;/span&gt;&lt;span style="color: #000000; "&gt;)b);
                        }
                    }
                }
            }

            Console.WriteLine(File.ReadAllText(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;new-source.txt&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;));
            Console.ReadKey();
        }
    }&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;&lt;font size="3" /&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;font size="3" /&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;font&gt;Isolated Storage&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;L'Isolated Storage è un repository all'interno del quale è possibile leggere e scrivere dati in maniera sicura indipendentemente dai privilegi di cui disponde il codice.&lt;/p&gt;

&lt;p&gt;La prima cosa da fare quando si lavora con l'isolated storage è scegliere l'ambito in cui saranno memorizzati i dati:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Assembly/Machine&lt;/strong&gt; : Si utilizza questo ambito per persistere dati a livello di applicazione. &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;Assembly/User&lt;/strong&gt; : Si utilizza questo ambito per persistere dati a livello di utente. Ogni utente della macchina avrà le sue impostazioni specifiche. &lt;/li&gt;

  &lt;li&gt;... &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;L'utilizzo dell'Isolated Storage ruota intorno alle classi &lt;strong&gt;IsolatedStorageFile&lt;/strong&gt; e &lt;strong&gt;IsolatedStorageFileStream&lt;/strong&gt;. E' inoltre possibile utilizzare l'attributo &lt;strong&gt;IsolatedStorageFilePermission&lt;/strong&gt; per specificare il permesso di accedere all'Isolated Storage e impostare altri parametri come ad esempio la quota massima di spazio da associare a ciascun utente.&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:6fa3d32c-655a-4995-b5d3-e1116232121a" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre style="background-color:WhiteSmoke;;overflow: none;;font-family:Consolas;font-size:12"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #000000; "&gt;    [IsolatedStorageFilePermission(SecurityAction.Demand, UserQuota&lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt;256&lt;/span&gt;&lt;span style="color: #000000; "&gt;)]
    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;class&lt;/span&gt;&lt;span style="color: #000000; "&gt; Program
    {
        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;static&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; Main(&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt;[] args)
        {
            &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; Assembly/Machine Scope - Writing data&lt;/span&gt;&lt;span style="color: #008000; "&gt;
&lt;/span&gt;&lt;span style="color: #000000; "&gt;
            IsolatedStorageFile applicationStorage &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; IsolatedStorageFile.GetMachineStoreForAssembly();

            IsolatedStorageFileStream applicationStream &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; 
                &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; IsolatedStorageFileStream(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;application-settings.dat&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, FileMode.Create, applicationStorage);

            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; (StreamWriter writer &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; StreamWriter(applicationStream))
            {
                writer.Write(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Informazioni a livello applicazione&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
            }

            &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; User/Machine Scope - Writing data&lt;/span&gt;&lt;span style="color: #008000; "&gt;
&lt;/span&gt;&lt;span style="color: #000000; "&gt;
            IsolatedStorageFile userStorage &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; IsolatedStorageFile.GetUserStoreForAssembly();

            IsolatedStorageFileStream userStream &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt;
                &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; IsolatedStorageFileStream(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;user-settings.dat&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, FileMode.Create, userStorage);

            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; (StreamWriter writer &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; StreamWriter(userStream))
            {
                writer.Write(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Informazioni a livello utente in user-settings.dat&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
            }

            userStorage.CreateDirectory(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;folder&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);

            userStream &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; IsolatedStorageFileStream(&lt;/span&gt;&lt;span style="color: #000000; "&gt;@"&lt;/span&gt;&lt;span style="color: #000000; "&gt;folder\user-settings.dat&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, FileMode.Create, userStorage);

            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; (StreamWriter writer &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; StreamWriter(userStream))
            {
                writer.Write(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Informazioni a livello utente in folder\\user-settings.dat&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
            }

            &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; Reading data&lt;/span&gt;&lt;span style="color: #008000; "&gt;
&lt;/span&gt;&lt;span style="color: #000000; "&gt;
            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Directories :&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;foreach&lt;/span&gt;&lt;span style="color: #000000; "&gt; (&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; directory &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;in&lt;/span&gt;&lt;span style="color: #000000; "&gt; userStorage.GetDirectoryNames(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;*&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;))
            {
                Console.WriteLine(directory);
            }

            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Files *.dat :&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;foreach&lt;/span&gt;&lt;span style="color: #000000; "&gt; (&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; file &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;in&lt;/span&gt;&lt;span style="color: #000000; "&gt; userStorage.GetFileNames(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;*.dat&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;))
            {
                Console.WriteLine(file);
            }

            Console.ReadKey();
        }
    }&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/angellaa/aggbug/94686.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Angella</dc:creator>
            <guid>http://blogs.ugidotnet.org/angellaa/archive/2008/11/18/70-536-gzipstream-class-deflatestream-class-and-isolated-storage.aspx</guid>
            <pubDate>Tue, 18 Nov 2008 13:07:17 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/angellaa/comments/94686.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/angellaa/archive/2008/11/18/70-536-gzipstream-class-deflatestream-class-and-isolated-storage.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/angellaa/comments/commentRss/94686.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/angellaa/services/trackbacks/94686.aspx</trackback:ping>
        </item>
        <item>
            <title>[70-536] - File System classes and Streams</title>
            <category>Exam 70-536 Application Development Foundation</category>
            <link>http://blogs.ugidotnet.org/angellaa/archive/2008/11/18/70-536-file-system-classes-and-streams.aspx</link>
            <description>&lt;p&gt;&lt;strong&gt;Area di riferimento&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;- Implementing serialization and input/output functionality in a .NET Framework application (18 percent)    &lt;br /&gt;   - Access files and folders by using the File System classes     &lt;br /&gt;      - May include but is not limited to: File class and FileInfo class; Directory class and DirectoryInfo class;     &lt;br /&gt;      - DriveInfo class and DriveType enumeration; FileSystemInfo class and FileSystemWatcher class; Path class;     &lt;br /&gt;      - ErrorEventArgs class and ErrorEventHandler delegate; RenamedEventArgs class and RenamedEventHandler delegate     &lt;br /&gt;   - Manage byte streams by using Stream classes     &lt;br /&gt;      - May include but is not limited to: FileStream class; Stream class; MemoryStream; BufferedStream class     &lt;br /&gt;   - Manage .NET Framework application data by using Reader and Writer classes     &lt;br /&gt;      - May include but is not limited to: StringReader class and StringWriter class; TextReader class and TextWriter class;     &lt;br /&gt;      - StreamReader class and Stream Writer class; BinaryReader class and BinaryWriter class&lt;/p&gt;  &lt;p /&gt;  &lt;hr /&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;File System classes&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Il framework .NET offre numerose classi che permettono l'accesso al file system.&lt;/p&gt;  &lt;p&gt;La classe &lt;strong&gt;DriveInfo&lt;/strong&gt; permette di ottenere informazioni relative ai drive presenti sulla macchina. La classe &lt;strong&gt;File&lt;/strong&gt; permette di effettuare alcune tipiche operazioni sui file come la copia, la creazione e la cancellazione. Le classi &lt;strong&gt;FileInfo&lt;/strong&gt; e &lt;strong&gt;DirectoryInfo&lt;/strong&gt; derivano da &lt;strong&gt;FileSystemInfo&lt;/strong&gt; e consentono di accedere a diverse informazioni relative a file e directory. Utilizzando queste classi inoltre è estremamente semplice navigare attraverso il file system ottenendo l'elenco dei file presenti all'interno di una directory e l'elenco di directory presenti all'interno di un'altra directory. La classe &lt;strong&gt;Path&lt;/strong&gt; fornisce un valido supporto per estrapolare informazioni relative ad un path e soprattutto offre una comoda funzione per combinare due path fra loro.&lt;/p&gt;  &lt;p&gt;Grazie all'interessantissima classe &lt;strong&gt;FileSystemWatcher&lt;/strong&gt; è inoltre possibile monitorare in tempo reale le modifiche che vengono compiute all'interno di una particolare cartella semplicemente gestendo opportuni eventi.&lt;/p&gt;  &lt;p&gt;Di seguito riporto un pò di codice che utilizza tutte queste classi. Il loro utilizzo è molto intuitivo per questo non ritengo necessaria alcuna ulteriore spiegazione.&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:afec56a6-171e-4861-9fd6-6369f65e1682" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre style="background-color:WhiteSmoke;white-space:-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word;;overflow: auto;;font-family:Consolas;font-size:12"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #008080; "&gt;  1&lt;/span&gt; &lt;span style="color: #000000; "&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;class&lt;/span&gt;&lt;span style="color: #000000; "&gt; Program
&lt;/span&gt;&lt;span style="color: #008080; "&gt;  2&lt;/span&gt; &lt;span style="color: #000000; "&gt;    {
&lt;/span&gt;&lt;span style="color: #008080; "&gt;  3&lt;/span&gt; &lt;span style="color: #000000; "&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;static&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; Main(&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt;[] args)
&lt;/span&gt;&lt;span style="color: #008080; "&gt;  4&lt;/span&gt; &lt;span style="color: #000000; "&gt;        {
&lt;/span&gt;&lt;span style="color: #008080; "&gt;  5&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Drive\n&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;  6&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt;  7&lt;/span&gt; &lt;span style="color: #000000; "&gt;            DriveInfo driveInfo &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; DriveInfo(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;C&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;  8&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Name: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, driveInfo.Name);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;  9&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;TotalSize: {0} bytes&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, driveInfo.TotalSize);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 10&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;TotalFreeSpace: {0} bytes&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, driveInfo.TotalFreeSpace);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 11&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;AvailableFreeSpace: {0} bytes&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, driveInfo.AvailableFreeSpace);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 12&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;DriveFormat: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, driveInfo.DriveFormat);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 13&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;DriveType: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, driveInfo.DriveType);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 14&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;VolumeLabel: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, driveInfo.VolumeLabel);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 15&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 16&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;\nFile:\n&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 17&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 18&lt;/span&gt; &lt;span style="color: #000000; "&gt;            File.AppendAllText(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;file1.txt&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Ciao a tutti da Andrea&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, Encoding.ASCII);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 19&lt;/span&gt; &lt;span style="color: #000000; "&gt;            File.Copy(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;file1.txt&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;file2.txt&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;true&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 20&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 21&lt;/span&gt; &lt;span style="color: #000000; "&gt;            FileInfo file2Info &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; FileInfo(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;file2.txt&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 22&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;CreationTime: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, file2Info.CreationTime);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 23&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;LastWriteTime: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, file2Info.LastWriteTime);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 24&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;DirectoryName: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, file2Info.DirectoryName);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 25&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Exists: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, file2Info.Exists);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 26&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Extension: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, file2Info.Extension);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 27&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;FullName: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, file2Info.FullName);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 28&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Name: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, file2Info.Name);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 29&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;IsReadOnly: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, file2Info.IsReadOnly);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 30&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Length: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, file2Info.Length);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 31&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 32&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;\nDirectory:\n&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 33&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 34&lt;/span&gt; &lt;span style="color: #000000; "&gt;            DirectoryInfo dir2Info &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; file2Info.Directory;
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 35&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;CreationTime: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, dir2Info.CreationTime);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 36&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;FullTime: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, dir2Info.FullName);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 37&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Exists: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, dir2Info.Exists);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 38&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;LastAccessTime: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, dir2Info.LastAccessTime);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 39&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;LastWriteTime: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, dir2Info.LastWriteTime);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 40&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 41&lt;/span&gt; &lt;span style="color: #000000; "&gt;            dir2Info.CreateSubdirectory(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;folder1&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 42&lt;/span&gt; &lt;span style="color: #000000; "&gt;            dir2Info.CreateSubdirectory(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;folder2&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 43&lt;/span&gt; &lt;span style="color: #000000; "&gt;            dir2Info.CreateSubdirectory(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;folder3&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 44&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 45&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Files in folder: &lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 46&lt;/span&gt; &lt;span style="color: #000000; "&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;foreach&lt;/span&gt;&lt;span style="color: #000000; "&gt; (FileInfo fileInfo &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;in&lt;/span&gt;&lt;span style="color: #000000; "&gt; dir2Info.GetFiles())
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 47&lt;/span&gt; &lt;span style="color: #000000; "&gt;            {
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 48&lt;/span&gt; &lt;span style="color: #000000; "&gt;                Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;\t{0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, file2Info.Name);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 49&lt;/span&gt; &lt;span style="color: #000000; "&gt;            }
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 50&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 51&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Directory in folder: &lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 52&lt;/span&gt; &lt;span style="color: #000000; "&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;foreach&lt;/span&gt;&lt;span style="color: #000000; "&gt; (DirectoryInfo dirInfo &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;in&lt;/span&gt;&lt;span style="color: #000000; "&gt; dir2Info.GetDirectories())
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 53&lt;/span&gt; &lt;span style="color: #000000; "&gt;            {
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 54&lt;/span&gt; &lt;span style="color: #000000; "&gt;                Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;\t{0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, dirInfo.Name);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 55&lt;/span&gt; &lt;span style="color: #000000; "&gt;            }
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 56&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 57&lt;/span&gt; &lt;span style="color: #000000; "&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;if&lt;/span&gt;&lt;span style="color: #000000; "&gt; (Directory.Exists(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;folder1&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;))
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 58&lt;/span&gt; &lt;span style="color: #000000; "&gt;            {
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 59&lt;/span&gt; &lt;span style="color: #000000; "&gt;                Directory.Delete(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;folder1&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 60&lt;/span&gt; &lt;span style="color: #000000; "&gt;            }
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 61&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Directory.Delete(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;folder2&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 62&lt;/span&gt; &lt;span style="color: #000000; "&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; DirectoryInfo(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;folder3&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;).Delete();
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 63&lt;/span&gt; &lt;span style="color: #000000; "&gt;            file2Info.Delete();
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 64&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 65&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;\nPath: c:\\prova\\file.txt \n&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 66&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;GetDirectoryName: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, Path.GetDirectoryName(&lt;/span&gt;&lt;span style="color: #000000; "&gt;@"&lt;/span&gt;&lt;span style="color: #000000; "&gt;c:\prova\file.txt&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;));
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 67&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;GetExtension: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, Path.GetExtension(&lt;/span&gt;&lt;span style="color: #000000; "&gt;@"&lt;/span&gt;&lt;span style="color: #000000; "&gt;c:\prova\file.txt&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;));
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 68&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;GetFileName: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, Path.GetFileName(&lt;/span&gt;&lt;span style="color: #000000; "&gt;@"&lt;/span&gt;&lt;span style="color: #000000; "&gt;c:\prova\file.txt&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;));
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 69&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;GetFileNameWithoutExtension: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, Path.GetFileNameWithoutExtension(&lt;/span&gt;&lt;span style="color: #000000; "&gt;@"&lt;/span&gt;&lt;span style="color: #000000; "&gt;c:\prova\file.txt&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;));
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 70&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;GetFullPath: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, Path.GetFullPath(&lt;/span&gt;&lt;span style="color: #000000; "&gt;@"&lt;/span&gt;&lt;span style="color: #000000; "&gt;c:\prova\file.txt&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;));
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 71&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;GetPathRoot: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, Path.GetPathRoot(&lt;/span&gt;&lt;span style="color: #000000; "&gt;@"&lt;/span&gt;&lt;span style="color: #000000; "&gt;c:\prova\file.txt&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;));
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 72&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;GetRandomFileName: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, Path.GetRandomFileName());
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 73&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;GetTempPath: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, Path.GetTempPath());
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 74&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;GetTempFileName: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, Path.GetTempFileName());
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 75&lt;/span&gt; &lt;span style="color: #000000; "&gt;       
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 76&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Combine: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, Path.Combine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;c:\\prova1&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;prova2\\file.txt&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;));
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 77&lt;/span&gt; &lt;span style="color: #000000; "&gt;            
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 78&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;\nFileSystemWatcher: \n&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 79&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 80&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Directory.CreateDirectory(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;folder&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 81&lt;/span&gt; &lt;span style="color: #000000; "&gt;            FileSystemWatcher fsWatcher &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; FileSystemWatcher(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;folder&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 82&lt;/span&gt; &lt;span style="color: #000000; "&gt;            fsWatcher.Created &lt;/span&gt;&lt;span style="color: #000000; "&gt;+=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; FileSystemEventHandler(fsWatcher_Created);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 83&lt;/span&gt; &lt;span style="color: #000000; "&gt;            fsWatcher.Deleted &lt;/span&gt;&lt;span style="color: #000000; "&gt;+=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; FileSystemEventHandler(fsWatcher_Deleted);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 84&lt;/span&gt; &lt;span style="color: #000000; "&gt;            fsWatcher.Changed &lt;/span&gt;&lt;span style="color: #000000; "&gt;+=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; FileSystemEventHandler(fsWatcher_Changed);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 85&lt;/span&gt; &lt;span style="color: #000000; "&gt;            fsWatcher.Renamed &lt;/span&gt;&lt;span style="color: #000000; "&gt;+=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; RenamedEventHandler(fsWatcher_Renamed);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 86&lt;/span&gt; &lt;span style="color: #000000; "&gt;            fsWatcher.Error &lt;/span&gt;&lt;span style="color: #000000; "&gt;+=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; ErrorEventHandler(fsWatcher_Error);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 87&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 88&lt;/span&gt; &lt;span style="color: #000000; "&gt;            fsWatcher.EnableRaisingEvents &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;true&lt;/span&gt;&lt;span style="color: #000000; "&gt;;
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 89&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 90&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.ReadKey();
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 91&lt;/span&gt; &lt;span style="color: #000000; "&gt;        }
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 92&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 93&lt;/span&gt; &lt;span style="color: #000000; "&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;static&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; fsWatcher_Error(&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;object&lt;/span&gt;&lt;span style="color: #000000; "&gt; sender, ErrorEventArgs e)
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 94&lt;/span&gt; &lt;span style="color: #000000; "&gt;        {
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 95&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;FileSystemWatcher Error\n&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 96&lt;/span&gt; &lt;span style="color: #000000; "&gt;        }
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 97&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 98&lt;/span&gt; &lt;span style="color: #000000; "&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;static&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; fsWatcher_Changed(&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;object&lt;/span&gt;&lt;span style="color: #000000; "&gt; sender, FileSystemEventArgs e)
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 99&lt;/span&gt; &lt;span style="color: #000000; "&gt;        {
&lt;/span&gt;&lt;span style="color: #008080; "&gt;100&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;ChangeType: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, e.ChangeType);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;101&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;FullPath: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, e.FullPath);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;102&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Name: {0}\n&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, e.Name);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;103&lt;/span&gt; &lt;span style="color: #000000; "&gt;        }
&lt;/span&gt;&lt;span style="color: #008080; "&gt;104&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt;105&lt;/span&gt; &lt;span style="color: #000000; "&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;static&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; fsWatcher_Renamed(&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;object&lt;/span&gt;&lt;span style="color: #000000; "&gt; sender, RenamedEventArgs e)
&lt;/span&gt;&lt;span style="color: #008080; "&gt;106&lt;/span&gt; &lt;span style="color: #000000; "&gt;        {
&lt;/span&gt;&lt;span style="color: #008080; "&gt;107&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;ChangeType: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, e.ChangeType);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;108&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;FullPath: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, e.FullPath);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;109&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Name: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, e.Name);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;110&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;OldFullPath: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, e.OldFullPath);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;111&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;OldName: {0}\n&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, e.OldName);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;112&lt;/span&gt; &lt;span style="color: #000000; "&gt;        }
&lt;/span&gt;&lt;span style="color: #008080; "&gt;113&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt;114&lt;/span&gt; &lt;span style="color: #000000; "&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;static&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; fsWatcher_Deleted(&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;object&lt;/span&gt;&lt;span style="color: #000000; "&gt; sender, FileSystemEventArgs e)
&lt;/span&gt;&lt;span style="color: #008080; "&gt;115&lt;/span&gt; &lt;span style="color: #000000; "&gt;        {
&lt;/span&gt;&lt;span style="color: #008080; "&gt;116&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;ChangeType: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, e.ChangeType);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;117&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;FullPath: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, e.FullPath);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;118&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Name: {0}\n&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, e.Name);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;119&lt;/span&gt; &lt;span style="color: #000000; "&gt;        }
&lt;/span&gt;&lt;span style="color: #008080; "&gt;120&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt;121&lt;/span&gt; &lt;span style="color: #000000; "&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;static&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; fsWatcher_Created(&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;object&lt;/span&gt;&lt;span style="color: #000000; "&gt; sender, FileSystemEventArgs e)
&lt;/span&gt;&lt;span style="color: #008080; "&gt;122&lt;/span&gt; &lt;span style="color: #000000; "&gt;        {
&lt;/span&gt;&lt;span style="color: #008080; "&gt;123&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;ChangeType: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, e.ChangeType);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;124&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;FullPath: {0}&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, e.FullPath);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;125&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Name: {0}\n&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, e.Name);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;126&lt;/span&gt; &lt;span style="color: #000000; "&gt;        }
&lt;/span&gt;&lt;span style="color: #008080; "&gt;127&lt;/span&gt; &lt;span style="color: #000000; "&gt;    }&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;Streams&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Gli stream realizzano un meccanismo unificato per gestire l'accesso sequenziale e random ai dati. La classe astratta &lt;strong&gt;Stream&lt;/strong&gt; fornisce l'interfaccia di base e l'implementazione per tutti gli strem all'interno del Framework. Quando si apre un file viene restituito un oggetto di tipo &lt;strong&gt;FileStream&lt;/strong&gt; che offre una interfaccia di basso livello per l'accesso al file. Le classi &lt;strong&gt;StreamReader&lt;/strong&gt; e &lt;strong&gt;StreamWriter&lt;/strong&gt; facilitano la lettura e la scrittura di file di testo. Le classi &lt;strong&gt;BinaryReader&lt;/strong&gt; e &lt;strong&gt;BinaryWriter&lt;/strong&gt; invece permettono la lettura e la scrittura di dati binari in modo più semplice del dover lavorare direttamente su vettori di byte.&lt;/p&gt;

&lt;p&gt;Quando si lavora con piccoli file di testo è possibile utilizzare le funzioni &lt;strong&gt;File.WriteAllText&lt;/strong&gt; e &lt;strong&gt;File.ReadAllText&lt;/strong&gt; rispettivamente per scrivere un file di testo a partire da una stringa e per ottenere il contenuto di un file di testo all'interno di una stringa.&lt;/p&gt;

&lt;p&gt;La classe &lt;strong&gt;MemoryStream&lt;/strong&gt; fornisce le funzionalità per creare stream in memoria. Le classi &lt;strong&gt;StringReader&lt;/strong&gt; e &lt;strong&gt;StringWriter&lt;/strong&gt; invece svolgono le stesse funzionalità delle classi StreamReader e StreamWriter solo che la sorgente dati associata è una stringa al contrario di un file ( le classi astratte da cui derivano sono &lt;strong&gt;TextReader&lt;/strong&gt; e &lt;strong&gt;TextWriter&lt;/strong&gt; che implementano le funzionalità di base per la lettura e scrittura di testo).&lt;/p&gt;

&lt;p&gt;Ecco un pò di codice dimostrativo:&lt;/p&gt;

&lt;div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:e5fb8f4e-60a8-45e7-a2bd-5dee8ce38b48" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre style="background-color:WhiteSmoke;;overflow: auto;;font-family:Consolas;font-size:12"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #008080; "&gt; 1&lt;/span&gt; &lt;span style="color: #000000; "&gt;    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;class&lt;/span&gt;&lt;span style="color: #000000; "&gt; Program
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 2&lt;/span&gt; &lt;span style="color: #000000; "&gt;    {
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 3&lt;/span&gt; &lt;span style="color: #000000; "&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;static&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; Main(&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt;[] args)
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 4&lt;/span&gt; &lt;span style="color: #000000; "&gt;        {
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 5&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;*** Text Streams: ***\n&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 6&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 7&lt;/span&gt; &lt;span style="color: #000000; "&gt;            FileStream fs &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; File.Open(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;file.txt&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, FileMode.Create);
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 8&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt; 9&lt;/span&gt; &lt;span style="color: #000000; "&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;byte&lt;/span&gt;&lt;span style="color: #000000; "&gt;[] bytesTitolo &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; ASCIIEncoding().GetBytes(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Titolo del file\r\n\r\n&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;10&lt;/span&gt; &lt;span style="color: #000000; "&gt;            fs.Write(bytesTitolo, &lt;/span&gt;&lt;span style="color: #000000; "&gt;0&lt;/span&gt;&lt;span style="color: #000000; "&gt;, bytesTitolo.Length);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;11&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt;12&lt;/span&gt; &lt;span style="color: #000000; "&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; (StreamWriter sw &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; StreamWriter(fs))
&lt;/span&gt;&lt;span style="color: #008080; "&gt;13&lt;/span&gt; &lt;span style="color: #000000; "&gt;            {
&lt;/span&gt;&lt;span style="color: #008080; "&gt;14&lt;/span&gt; &lt;span style="color: #000000; "&gt;                sw.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Ciao a tutti&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;15&lt;/span&gt; &lt;span style="color: #000000; "&gt;                sw.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;il mio nome Ã¨ Andrea&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;16&lt;/span&gt; &lt;span style="color: #000000; "&gt;            }
&lt;/span&gt;&lt;span style="color: #008080; "&gt;17&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt;18&lt;/span&gt; &lt;span style="color: #000000; "&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; (StreamReader sr &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; File.OpenText(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;file.txt&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;))
&lt;/span&gt;&lt;span style="color: #008080; "&gt;19&lt;/span&gt; &lt;span style="color: #000000; "&gt;            {
&lt;/span&gt;&lt;span style="color: #008080; "&gt;20&lt;/span&gt; &lt;span style="color: #000000; "&gt;                &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;while&lt;/span&gt;&lt;span style="color: #000000; "&gt; (&lt;/span&gt;&lt;span style="color: #000000; "&gt;!&lt;/span&gt;&lt;span style="color: #000000; "&gt;sr.EndOfStream)
&lt;/span&gt;&lt;span style="color: #008080; "&gt;21&lt;/span&gt; &lt;span style="color: #000000; "&gt;                {
&lt;/span&gt;&lt;span style="color: #008080; "&gt;22&lt;/span&gt; &lt;span style="color: #000000; "&gt;                    Console.WriteLine(sr.ReadLine());
&lt;/span&gt;&lt;span style="color: #008080; "&gt;23&lt;/span&gt; &lt;span style="color: #000000; "&gt;                }
&lt;/span&gt;&lt;span style="color: #008080; "&gt;24&lt;/span&gt; &lt;span style="color: #000000; "&gt;            }
&lt;/span&gt;&lt;span style="color: #008080; "&gt;25&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt;26&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine();
&lt;/span&gt;&lt;span style="color: #008080; "&gt;27&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt;28&lt;/span&gt; &lt;span style="color: #000000; "&gt;            File.WriteAllText(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;file2.txt&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Prima riga del file2\r\nSeconda riga del file2&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;29&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(File.ReadAllText(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;file2.txt&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;));
&lt;/span&gt;&lt;span style="color: #008080; "&gt;30&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt;31&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;\n*** Binary Streams: ***\n&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;32&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt;33&lt;/span&gt; &lt;span style="color: #000000; "&gt;            fs &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; File.Open(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;file3.dat&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, FileMode.Create);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;34&lt;/span&gt; &lt;span style="color: #000000; "&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; (BinaryWriter bw &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; BinaryWriter(fs))
&lt;/span&gt;&lt;span style="color: #008080; "&gt;35&lt;/span&gt; &lt;span style="color: #000000; "&gt;            {
&lt;/span&gt;&lt;span style="color: #008080; "&gt;36&lt;/span&gt; &lt;span style="color: #000000; "&gt;                bw.Write(&lt;/span&gt;&lt;span style="color: #000000; "&gt;'&lt;/span&gt;&lt;span style="color: #000000; "&gt;A&lt;/span&gt;&lt;span style="color: #000000; "&gt;'&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;37&lt;/span&gt; &lt;span style="color: #000000; "&gt;                bw.Write(&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;true&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;38&lt;/span&gt; &lt;span style="color: #000000; "&gt;                bw.Write(&lt;/span&gt;&lt;span style="color: #000000; "&gt;12.45&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;39&lt;/span&gt; &lt;span style="color: #000000; "&gt;                bw.Write(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Ciao&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;40&lt;/span&gt; &lt;span style="color: #000000; "&gt;            }
&lt;/span&gt;&lt;span style="color: #008080; "&gt;41&lt;/span&gt; &lt;span style="color: #000000; "&gt;            fs &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; File.Open(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;file3.dat&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, FileMode.Open);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;42&lt;/span&gt; &lt;span style="color: #000000; "&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; (BinaryReader br &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; BinaryReader(fs))
&lt;/span&gt;&lt;span style="color: #008080; "&gt;43&lt;/span&gt; &lt;span style="color: #000000; "&gt;            {
&lt;/span&gt;&lt;span style="color: #008080; "&gt;44&lt;/span&gt; &lt;span style="color: #000000; "&gt;                Console.WriteLine(br.ReadChar());
&lt;/span&gt;&lt;span style="color: #008080; "&gt;45&lt;/span&gt; &lt;span style="color: #000000; "&gt;                Console.WriteLine(br.ReadBoolean());
&lt;/span&gt;&lt;span style="color: #008080; "&gt;46&lt;/span&gt; &lt;span style="color: #000000; "&gt;                Console.WriteLine(br.ReadDouble());
&lt;/span&gt;&lt;span style="color: #008080; "&gt;47&lt;/span&gt; &lt;span style="color: #000000; "&gt;                Console.WriteLine(br.ReadString());
&lt;/span&gt;&lt;span style="color: #008080; "&gt;48&lt;/span&gt; &lt;span style="color: #000000; "&gt;            }
&lt;/span&gt;&lt;span style="color: #008080; "&gt;49&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt;50&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;\n*** Memory Streams: ***\n&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;51&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt;52&lt;/span&gt; &lt;span style="color: #000000; "&gt;            MemoryStream ms &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; MemoryStream();
&lt;/span&gt;&lt;span style="color: #008080; "&gt;53&lt;/span&gt; &lt;span style="color: #000000; "&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; (StreamWriter sw &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; StreamWriter(ms))
&lt;/span&gt;&lt;span style="color: #008080; "&gt;54&lt;/span&gt; &lt;span style="color: #000000; "&gt;            {
&lt;/span&gt;&lt;span style="color: #008080; "&gt;55&lt;/span&gt; &lt;span style="color: #000000; "&gt;                sw.WriteLine(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Scrivo su uno stream in memoria.&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;56&lt;/span&gt; &lt;span style="color: #000000; "&gt;                sw.Flush();
&lt;/span&gt;&lt;span style="color: #008080; "&gt;57&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt;58&lt;/span&gt; &lt;span style="color: #000000; "&gt;                &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; (fs &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; File.Open(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;file.txt&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, FileMode.Append))
&lt;/span&gt;&lt;span style="color: #008080; "&gt;59&lt;/span&gt; &lt;span style="color: #000000; "&gt;                {
&lt;/span&gt;&lt;span style="color: #008080; "&gt;60&lt;/span&gt; &lt;span style="color: #000000; "&gt;                    ms.WriteTo(fs);
&lt;/span&gt;&lt;span style="color: #008080; "&gt;61&lt;/span&gt; &lt;span style="color: #000000; "&gt;                }
&lt;/span&gt;&lt;span style="color: #008080; "&gt;62&lt;/span&gt; &lt;span style="color: #000000; "&gt;            }
&lt;/span&gt;&lt;span style="color: #008080; "&gt;63&lt;/span&gt; &lt;span style="color: #000000; "&gt;
&lt;/span&gt;&lt;span style="color: #008080; "&gt;64&lt;/span&gt; &lt;span style="color: #000000; "&gt;            Console.ReadKey();
&lt;/span&gt;&lt;span style="color: #008080; "&gt;65&lt;/span&gt; &lt;span style="color: #000000; "&gt;        }
&lt;/span&gt;&lt;span style="color: #008080; "&gt;66&lt;/span&gt; &lt;span style="color: #000000; "&gt;    }&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;Infine è importante citare la classe &lt;strong&gt;BufferedStream&lt;/strong&gt; che permette di migliorare le performance implementando un meccanismo di lettura e scrittura bufferizzato.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/angellaa/aggbug/94685.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Angella</dc:creator>
            <guid>http://blogs.ugidotnet.org/angellaa/archive/2008/11/18/70-536-file-system-classes-and-streams.aspx</guid>
            <pubDate>Tue, 18 Nov 2008 12:51:37 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/angellaa/comments/94685.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/angellaa/archive/2008/11/18/70-536-file-system-classes-and-streams.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/angellaa/comments/commentRss/94685.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/angellaa/services/trackbacks/94685.aspx</trackback:ping>
        </item>
        <item>
            <title>DotNetToscana: il principio.</title>
            <link>http://blogs.ugidotnet.org/angellaa/archive/2008/11/08/dotnettoscana-il-principio.aspx</link>
            <description>&lt;p&gt;Io, Andrea Angella, sono diventato un membro della community UgiDotNet il giorno &lt;strong&gt;9 Agosto 2007&lt;/strong&gt; con il post &lt;a href="http://blogs.ugidotnet.org/angellaa/archive/2007/08/09/87672.aspx" target="_blank"&gt;Finalmente il mio blog tecnico&lt;/a&gt;. Circa un mese dopo alle &lt;strong&gt;ore 10:33 del giorno&lt;/strong&gt; &lt;strong&gt;11 Settembre 2007&lt;/strong&gt; (gli attentati fortunatamente non centrano niente) arriva nella mia casella di posta elettronica una mail da parte di &lt;a href="http://blogs.ugidotnet.org/bmatte" target="_blank"&gt;Matteo Baglini&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Riporto il testo integrale di questa "storica" mail:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&lt;strong&gt;"Ciao,         &lt;br /&gt;girovagando per il tuo blog ho letto che studi a Pisa quindi non credo che abiti fuori Toscana, spero di non essere invadente ed antipatico, però ti volevo chiedere se hai letto della cena che sto organizzando a Livorno &lt;/strong&gt;&lt;/em&gt;&lt;a href="http://blogs.ugidotnet.org/bmatte/archive/2007/09/06/cacciuccata-a-livorno-il-29-settembre.aspx"&gt;&lt;/a&gt;&lt;a href="http://blogs.ugidotnet.org/bmatte/archive/2007/09/06/cacciuccata-a-livorno-il-29-settembre.aspx.%20Ti"&gt;&lt;em&gt;&lt;strong&gt;http://blogs.ugidotnet.org/bmatte/archive/2007/09/06/cacciuccata-a-livorno-il-29-settembre.aspx&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&lt;strong&gt;. Ti va di venire? Se hai già letto l'annuncio e non sei interessato ti va di spiegarmi il perchè? Ti chiedo queste cose perchè ho visto che sono molto pochi i Toscani che hanno risposto all'appello e volevo capire il motivo, in modo da migliorare per un eventuale cena futura e perchè magari anche per questa. Ti chiedo ancora scusa per il disturbo e spero non essere stato scortese.&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;&lt;strong&gt;Ciao Matteo."&lt;/strong&gt;&lt;/em&gt;      &lt;br /&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Ero molto felice di aver ricevuto quella mail ed ho accettato ben volentieri l'invito alla cena. Da quell'istante la mia presenza in UgiDotNet si è concretizzata, sapevo che quello sarebbe stato solo l'inizio di una serie di incontri che mi avrebbero permesso di conoscere personalmente persone eccezionali che condividono la mia forte passione per l'informatica e con le quali avrei potuto passare piacevoli momenti insieme per divertirsi, discutere e condividere esperienze. E così è stato...&lt;/p&gt;  &lt;p&gt;La sera del &lt;strong&gt;29 Settembre 2007&lt;/strong&gt; ho quindi partecipato alla prima cena con membri di UgiDotNet. Eravamo solamente in 4 (Io, Matteo Baglini, &lt;a href="http://blog.vivendobyte.net/" target="_blank"&gt;Igor Damiani&lt;/a&gt; e &lt;a href="http://blogs.ugidotnet.org/odamiani/Default.aspx" target="_blank"&gt;Omar Damiani&lt;/a&gt;) ma la serata è stata davvero molto piacevole. Verso mezzanotte i due fratelli Damiani (che ringrazio ancora per il forte spirito di community che mi hanno dimostrato) sono tornati a casa. Io avevo il treno verso le ore 3 quindi Matteo ha pensato di portarmi in un pub per fare quattro chiacchere. Dopo avermi presentato la ragazza (al contrario di me lui è felicemente fidanzato) e alcune sue amiche, non abbiamo resistito alla tentazione di tornare a parlare di .NET :-)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;E' proprio lì che per la primissima volta abbiamo parlato della possibilità di costruire insieme una nuova community&lt;/font&gt;&lt;/strong&gt; come punto di incontro di studenti e professionisti Microsoft presenti nella regione Toscana. I problemi erano tanti, in primis che eravamo pochi (la cena purtroppo era stata una triste conferma). Matteo pensava in grande, voleva fare le cose con i giusti tempi affinchè tutto non si rivelasse un fallimento, per questo prima di tutto voleva confrontarsi con altri ragazzi delle community regionali. &lt;strong&gt;Vedevo in lui una forte motivazione, un'estrema passione per il suo lavoro e soprattutto un incredibile spirito di community. &lt;/strong&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/angellaa/WindowsLiveWriter/LeoriginidiDotNetToscana_CB7E/logo_dotnet5_2.png"&gt;&lt;strong&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 10px; border-left: 0px; border-bottom: 0px" height="85" alt="logo_dotnet5" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/angellaa/WindowsLiveWriter/LeoriginidiDotNetToscana_CB7E/logo_dotnet5_thumb.png" width="85" align="right" border="0" /&gt;&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Il giorno &lt;strong&gt;16 Ottobre 2008&lt;/strong&gt;, ad un anno da quella data, ai &lt;a href="http://www.microsoft.com/italy/eventi/days/technical.mspx" target="_blank"&gt;Microsoft Days 2008&lt;/a&gt; è stata &lt;a href="http://video.msn.com/?mkt=it-IT&amp;amp;playlist=videoByUuids:uuids:f34fef94-bb0d-4ae0-a706-68d67217881f&amp;amp;showPlaylist=true&amp;amp;from=msnvideo" target="_blank"&gt;ufficialmente presentata a Firenze&lt;/a&gt; la community &lt;a href="http://dotnettoscana.org/" target="_blank"&gt;DotNetToscana&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;DotNetToscana è per sua volontà una associazione no-profit, dove non esistono ruoli ufficiali ma tutto evolve grazie alla passione di ciascun membro. Nonostante questo per me, &lt;font color="#ff0000"&gt;&lt;strong&gt;Matteo Baglini è il Leader naturale del gruppo, colui che ha creduto e reso possibile tutto questo&lt;/strong&gt;. &lt;strong&gt;Oggi è il compleanno di Matteo e questo post è il mio regalo per lui.&lt;/strong&gt;&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;Il più grande augurio è che DotNetToscana possa crescere per diventare un punto di riferimento e sicuramente tutti i suoi attuali membri si impegneranno per questo.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Tanti auguri di Buon Compleanno Matteo !     &lt;br /&gt;Tanti auguri di Buon Inizio DotNetToscana !&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Andrea&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/angellaa/aggbug/94556.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Angella</dc:creator>
            <guid>http://blogs.ugidotnet.org/angellaa/archive/2008/11/08/dotnettoscana-il-principio.aspx</guid>
            <pubDate>Sat, 08 Nov 2008 14:38:48 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/angellaa/comments/94556.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/angellaa/archive/2008/11/08/dotnettoscana-il-principio.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/angellaa/comments/commentRss/94556.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/angellaa/services/trackbacks/94556.aspx</trackback:ping>
        </item>
        <item>
            <title>&amp;quot;Informatica Industriale&amp;quot; superato alla grande :-)</title>
            <link>http://blogs.ugidotnet.org/angellaa/archive/2008/11/06/quotinformatica-industrialequot-superato-alla-grande.aspx</link>
            <description>&lt;p&gt;Questa mattina &lt;a href="http://www.angellaa.it/" target="_blank"&gt;io&lt;/a&gt; e il mio collega &lt;a href="http://nevi.altervista.org/" target="_blank"&gt;Vincenzo&lt;/a&gt; abbiamo sostenuto l'esame di Informatica Industriale conseguendo entrambi una votazione pari a &lt;strong&gt;30 e Lode &lt;/strong&gt;!&lt;/p&gt;  &lt;p&gt;L'esame consisteva (in parte) nella realizzazione del progetto di un semplice Sistema Embedded in modo da familiarizzare con la programmazione di microcontrollori. Abbiamo utilizzato il microcontrollore ADuC836 con un core a 8 bit (8052) e realizzato il software in linguaggio C.&lt;/p&gt;  &lt;p&gt;Il risultato si chiama &lt;strong&gt;Speedy Finger&lt;/strong&gt; ed è la realizzazione in hardware del semplice gioco del dito più veloce.    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Di seguito il logo creato (ovviamente non realizzato da me che di grafica sono molto carente):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/angellaa/WindowsLiveWriter/InformaticaIndustrialesuperatoallagrande_1219D/image_6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="181" alt="image" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/angellaa/WindowsLiveWriter/InformaticaIndustrialesuperatoallagrande_1219D/image_thumb_2.png" width="260" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Per l'occasione (come richiesto dai docenti) abbiamo realizzato un video di presentazione disponibile su YouTube anche in alta risoluzione:&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;embed src="http://www.youtube.com/v/5Sa6omx6qk8&amp;amp;hl=it&amp;amp;fs=1" width="425" height="344" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" /&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Oggi termina una lunga &lt;a href="http://nevi.altervista.org/progetti.php" target="_blank"&gt;serie di progetti&lt;/a&gt; universitari che ho realizzato insieme a Vincenzo, &lt;strong&gt;collega ma soprattuto grande e sincero amico&lt;/strong&gt; che ringrazio particolarmente per aver reso molto più piacevole (se non divertente) questo ultimo anno accademico. &lt;/p&gt;  &lt;p&gt;Adesso personalmente cercherò di sostenere al più presto l'ultimo esame rimastomi per poi iniziare l'avventura della Tesi.&lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/angellaa/aggbug/94543.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Angella</dc:creator>
            <guid>http://blogs.ugidotnet.org/angellaa/archive/2008/11/06/quotinformatica-industrialequot-superato-alla-grande.aspx</guid>
            <pubDate>Thu, 06 Nov 2008 20:07:30 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/angellaa/comments/94543.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/angellaa/archive/2008/11/06/quotinformatica-industrialequot-superato-alla-grande.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/angellaa/comments/commentRss/94543.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/angellaa/services/trackbacks/94543.aspx</trackback:ping>
        </item>
        <item>
            <title>[70-536] - Serialization and Deserialization</title>
            <category>Exam 70-536 Application Development Foundation</category>
            <link>http://blogs.ugidotnet.org/angellaa/archive/2008/11/01/70-536-serialization-and-deserialization.aspx</link>
            <description>&lt;p&gt;&lt;strong&gt;Area di riferimento&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;- Implementing serialization and input/output functionality in a .NET Framework application (18 percent)    &lt;br /&gt;    - Serialize or deserialize an object or an object graph by using runtime serialization techniques.     &lt;br /&gt;        - May include but is not limited to: Serialization interfaces; Serialization attributes; SerializationEntry structure and SerializationInfo class;     &lt;br /&gt;        - ObjectManager class; Formatter class, FormatterConverter class, and FormatterServices class; StreamingContext structure     &lt;br /&gt;   - Control the serialization of an object into XML format by using the System.Xml.Serialization namespace.     &lt;br /&gt;       - May include but is not limited to: Serialize and deserialize objects into XML format by using the XmlSerializer class; Control serialization by using serialization attributes;     &lt;br /&gt;       - Implement XML serialization interfaces to provide custom formatting for XML serialization; Delegates and event handlers provided by the System.Xml.Serialization namespace  &lt;br /&gt;   - Implement custom serialization formatting by using the Serialization Formatter classes.  &lt;br /&gt;       - May include but is not limited to: SoapFormatter; BinaryFormatter class &lt;/p&gt;  &lt;p /&gt;  &lt;hr /&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;Serialization and Deserialization&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;La serializzazione consiste nel trasformare un oggetto in una sequenza di byte che può essere memorizzata o trasferita tra diverse applicazioni.&lt;/p&gt;  &lt;p&gt;Affinchè un tipo possa essere serializzato è necessario decorarlo con l'attributo &lt;strong&gt;[Serializable]&lt;/strong&gt;. Se non non si vuole serializzare un particolare membro allora si utilizza l'attributo &lt;strong&gt;[NonSerialized]&lt;/strong&gt;. Nel caso fosse necessario eseguire del codice dopo l'operazione di deserializzazione (per esempio per impostare membri calcolati che non sono stati serializzati) si può implementare l'interfaccia &lt;strong&gt;IDeserializationCallback &lt;/strong&gt;come mostrato nell'esempio.&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:aeeb2c0c-5731-4312-ad92-a0ad521888e1" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;   &lt;pre style="font-size: 12px; overflow: auto; font-family: consolas; background-color: whitesmoke"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #008080"&gt; 1&lt;/span&gt; &lt;span style="color: #000000"&gt;        [Serializable]
&lt;/span&gt;&lt;span style="color: #008080"&gt; 2&lt;/span&gt; &lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;span style="color: #000000"&gt; Student : IDeserializationCallback
&lt;/span&gt;&lt;span style="color: #008080"&gt; 3&lt;/span&gt; &lt;span style="color: #000000"&gt;        {
&lt;/span&gt;&lt;span style="color: #008080"&gt; 4&lt;/span&gt; &lt;span style="color: #000000"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; Student(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt; name, &lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt; surname, DateTime birthDate)
&lt;/span&gt;&lt;span style="color: #008080"&gt; 5&lt;/span&gt; &lt;span style="color: #000000"&gt;            {
&lt;/span&gt;&lt;span style="color: #008080"&gt; 6&lt;/span&gt; &lt;span style="color: #000000"&gt;                Name &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; name;
&lt;/span&gt;&lt;span style="color: #008080"&gt; 7&lt;/span&gt; &lt;span style="color: #000000"&gt;                Surname &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; surname;
&lt;/span&gt;&lt;span style="color: #008080"&gt; 8&lt;/span&gt; &lt;span style="color: #000000"&gt;                BirthDate &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; birthDate;
&lt;/span&gt;&lt;span style="color: #008080"&gt; 9&lt;/span&gt; &lt;span style="color: #000000"&gt;                calculateAge();
&lt;/span&gt;&lt;span style="color: #008080"&gt;10&lt;/span&gt; &lt;span style="color: #000000"&gt;            }
&lt;/span&gt;&lt;span style="color: #008080"&gt;11&lt;/span&gt; &lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008080"&gt;12&lt;/span&gt; &lt;span style="color: #000000"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt; Name { &lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;; }
&lt;/span&gt;&lt;span style="color: #008080"&gt;13&lt;/span&gt; &lt;span style="color: #000000"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt; Surname { &lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;; }
&lt;/span&gt;&lt;span style="color: #008080"&gt;14&lt;/span&gt; &lt;span style="color: #000000"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; DateTime BirthDate { &lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;; }
&lt;/span&gt;&lt;span style="color: #008080"&gt;15&lt;/span&gt; &lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008080"&gt;16&lt;/span&gt; &lt;span style="color: #000000"&gt;            [NonSerialized]
&lt;/span&gt;&lt;span style="color: #008080"&gt;17&lt;/span&gt; &lt;span style="color: #000000"&gt;            [SoapIgnore]
&lt;/span&gt;&lt;span style="color: #008080"&gt;18&lt;/span&gt; &lt;span style="color: #000000"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;private&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt; age;
&lt;/span&gt;&lt;span style="color: #008080"&gt;19&lt;/span&gt; &lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008080"&gt;20&lt;/span&gt; &lt;span style="color: #000000"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;&lt;span style="color: #000000"&gt; Age
&lt;/span&gt;&lt;span style="color: #008080"&gt;21&lt;/span&gt; &lt;span style="color: #000000"&gt;            {
&lt;/span&gt;&lt;span style="color: #008080"&gt;22&lt;/span&gt; &lt;span style="color: #000000"&gt;                &lt;/span&gt;&lt;span style="color: #0000ff"&gt;get&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008080"&gt;23&lt;/span&gt; &lt;span style="color: #000000"&gt;                {
&lt;/span&gt;&lt;span style="color: #008080"&gt;24&lt;/span&gt; &lt;span style="color: #000000"&gt;                    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt; age;
&lt;/span&gt;&lt;span style="color: #008080"&gt;25&lt;/span&gt; &lt;span style="color: #000000"&gt;                }
&lt;/span&gt;&lt;span style="color: #008080"&gt;26&lt;/span&gt; &lt;span style="color: #000000"&gt;                &lt;/span&gt;&lt;span style="color: #0000ff"&gt;set&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008080"&gt;27&lt;/span&gt; &lt;span style="color: #000000"&gt;                {
&lt;/span&gt;&lt;span style="color: #008080"&gt;28&lt;/span&gt; &lt;span style="color: #000000"&gt;                    age &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; value;
&lt;/span&gt;&lt;span style="color: #008080"&gt;29&lt;/span&gt; &lt;span style="color: #000000"&gt;                }
&lt;/span&gt;&lt;span style="color: #008080"&gt;30&lt;/span&gt; &lt;span style="color: #000000"&gt;            }
&lt;/span&gt;&lt;span style="color: #008080"&gt;31&lt;/span&gt; &lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008080"&gt;32&lt;/span&gt; &lt;span style="color: #000000"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;override&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&lt;span style="color: #000000"&gt; ToString()
&lt;/span&gt;&lt;span style="color: #008080"&gt;33&lt;/span&gt; &lt;span style="color: #000000"&gt;            {
&lt;/span&gt;&lt;span style="color: #008080"&gt;34&lt;/span&gt; &lt;span style="color: #000000"&gt;                &lt;/span&gt;&lt;span style="color: #0000ff"&gt;return&lt;/span&gt;&lt;span style="color: #000000"&gt; Name &lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;, &lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt; Surname &lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;, &lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt; BirthDate.ToShortDateString() &lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt;, &lt;/span&gt;&lt;span style="color: #000000"&gt;"&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;+&lt;/span&gt;&lt;span style="color: #000000"&gt; age;
&lt;/span&gt;&lt;span style="color: #008080"&gt;35&lt;/span&gt; &lt;span style="color: #000000"&gt;            }
&lt;/span&gt;&lt;span style="color: #008080"&gt;36&lt;/span&gt; &lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008080"&gt;37&lt;/span&gt; &lt;span style="color: #000000"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;private&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt; calculateAge()
&lt;/span&gt;&lt;span style="color: #008080"&gt;38&lt;/span&gt; &lt;span style="color: #000000"&gt;            {
&lt;/span&gt;&lt;span style="color: #008080"&gt;39&lt;/span&gt; &lt;span style="color: #000000"&gt;                Age &lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; DateTime.Now.Year &lt;/span&gt;&lt;span style="color: #000000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt; BirthDate.Year;
&lt;/span&gt;&lt;span style="color: #008080"&gt;40&lt;/span&gt; &lt;span style="color: #000000"&gt;            }
&lt;/span&gt;&lt;span style="color: #008080"&gt;41&lt;/span&gt; &lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008080"&gt;42&lt;/span&gt; &lt;span style="color: #000000"&gt;            &lt;/span&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;&lt;span style="color: #000000"&gt; OnDeserialization(&lt;/span&gt;&lt;span style="color: #0000ff"&gt;object&lt;/span&gt;&lt;span style="color: #000000"&gt; sender)
&lt;/span&gt;&lt;span style="color: #008080"&gt;43&lt;/span&gt; &lt;span style="color: #000000"&gt;            {
&lt;/span&gt;&lt;span style="color: #008080"&gt;44&lt;/span&gt; &lt;span style="color: #000000"&gt;                calculateAge();
&lt;/span&gt;&lt;span style="color: #008080"&gt;45&lt;/span&gt; &lt;span style="color: #000000"&gt;            }
&lt;/span&gt;&lt;span style="color: #008080"&gt;46&lt;/span&gt; &lt;span style="color: #000000"&gt;        }&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;
&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;
  &lt;br /&gt;Con la classe &lt;strong&gt;BinaryFormatter&lt;/strong&gt; è possibile serializzare in modo efficiente l'oggetto ma questo sarà accessibile solo da parte di altre applicazioni .NET:&lt;/p&gt;

&lt;p /&gt;

&lt;p /&gt;

&lt;p&gt;
  &lt;/p&gt;&lt;div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:8edb7515-568d-49bb-8ea1-4348dd6a7499" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre style="background-color:WhiteSmoke;;overflow: none;;font-family:Consolas;font-size:12"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #000000; "&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;static&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; Main(&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt;[] args)
        {
            Student student &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; Student(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Andrea&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Angella&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; DateTime(&lt;/span&gt;&lt;span style="color: #000000; "&gt;1984&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #000000; "&gt;7&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #000000; "&gt;14&lt;/span&gt;&lt;span style="color: #000000; "&gt;));

            &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; Binary Serialization&lt;/span&gt;&lt;span style="color: #008000; "&gt;
&lt;/span&gt;&lt;span style="color: #000000; "&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; (FileStream fs &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; FileStream(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;file.dat&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, FileMode.Create))
            {
                BinaryFormatter bf &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; BinaryFormatter();
                bf.Serialize(fs, student);
            }

            &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; Binary Deserialization&lt;/span&gt;&lt;span style="color: #008000; "&gt;
&lt;/span&gt;&lt;span style="color: #000000; "&gt;            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;using&lt;/span&gt;&lt;span style="color: #000000; "&gt; (FileStream fs &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; FileStream(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;file.dat&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, FileMode.Open))
            {
                BinaryFormatter bf &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;new&lt;/span&gt;&lt;span style="color: #000000; "&gt; BinaryFormatter();
                student &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; (Student)bf.Deserialize(fs);
            }

            Console.Write(student);
            Console.ReadKey();
        }&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;


&lt;p&gt; &lt;/p&gt;

&lt;p&gt;La classe &lt;strong&gt;SoapFormatter&lt;/strong&gt; (assembly &lt;strong&gt;System.Runtime.Serialization.Formatters.Soap&lt;/strong&gt;) permette di serializzare un oggetto come un SOAP Envelop adatto per essere condiviso anche con applicazioni non appartenenti al mondo .NET. Il suo utilizzo è analogo a quello della classe BinaryFormatter. E' possibile controllare la formattazione utilizzando opportuni attributi come &lt;strong&gt;[SoapAttribute]&lt;/strong&gt;, &lt;strong&gt;[SoapElement]&lt;/strong&gt;, &lt;strong&gt;[SoapEnum]&lt;/strong&gt;, &lt;strong&gt;[SoapIgnore]&lt;/strong&gt; e &lt;strong&gt;[SoapInclude]&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;E' possibile serializzare un oggetto in uno specifico formato XML attraverso la classe &lt;strong&gt;XmlSerializer&lt;/strong&gt;. Questa modalità ovviamente porta con se i vantaggi del linguaggio XML e cioè forte interoperabilità, amministrazione user-friendly e migliore compatibilità all'indietro. La serializzazione XML può serializzare solamente membri pubblici (al contrario di quella binaria) e non possono essere serializzati grafi di oggetti. E' richiesto un costruttore di default. Anche in questo caso è possibile personalizzare il markup xml che sarà generato utilizzando opportuni attributi come&lt;strong&gt; [XmlAttribute]&lt;/strong&gt;, &lt;strong&gt;[XmlElement]&lt;/strong&gt;, &lt;strong&gt;[XmlIgnore]&lt;/strong&gt;, &lt;strong&gt;[XmlEnum]&lt;/strong&gt; ecc.&lt;/p&gt;

&lt;p&gt;E' interessante la possibiiltà di generare classi con attributi xml a partire da un file XML Schema Definition. Lo strumento da utilizzare è il tool a linea di comando &lt;strong&gt;xsd&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Se si vuole avere un controllo maggiore sul processo di serializzazione e deserializzazione è possibile implementare l'interfaccia &lt;strong&gt;ISerializable&lt;/strong&gt;. Tramite il metodo &lt;strong&gt;GetObjectData&lt;/strong&gt; si specificano i membri che si vogliono serializzare. All'interno di un particolare costruttore (chiamato dopo la fase di deserializzazione) sarà possibile accedere a questi valori e ripristinare il contenuto dell'oggetto. E' possibile intervenire prima e dopo la fase di serializzazione e deserializzazione inserendo opportuni metodi decorati con gli attributi &lt;strong&gt;[OnSerializing]&lt;/strong&gt;, &lt;strong&gt;[OnSerialized]&lt;/strong&gt;, &lt;strong&gt;[OnDeserializing]&lt;/strong&gt;, &lt;strong&gt;[OnDeserialized]&lt;/strong&gt;. La classe &lt;strong&gt;StreamingContext&lt;/strong&gt; è utile se si vuole serializzare un oggetto in modo differente in base alla destinazione (stesso processo, processi su macchine differenti, ecc. ). 

  &lt;br /&gt;&lt;/p&gt;

&lt;div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:782417b4-9f82-49c6-8f8a-86ce6db91f3b" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;pre style="background-color:WhiteSmoke;;overflow: none;;font-family:Consolas;font-size:12"&gt;&lt;div&gt;&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #000000; "&gt;    [Serializable]
    &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;class&lt;/span&gt;&lt;span style="color: #000000; "&gt; Student : ISerializable
    {
        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; Name { &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;get&lt;/span&gt;&lt;span style="color: #000000; "&gt;; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;set&lt;/span&gt;&lt;span style="color: #000000; "&gt;; }
        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; Surname { &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;get&lt;/span&gt;&lt;span style="color: #000000; "&gt;; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;set&lt;/span&gt;&lt;span style="color: #000000; "&gt;; }
        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; DateTime BirthDate { &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;get&lt;/span&gt;&lt;span style="color: #000000; "&gt;; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;set&lt;/span&gt;&lt;span style="color: #000000; "&gt;; }
        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;int&lt;/span&gt;&lt;span style="color: #000000; "&gt; Age { &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;get&lt;/span&gt;&lt;span style="color: #000000; "&gt;; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;set&lt;/span&gt;&lt;span style="color: #000000; "&gt;; }

        &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; Costruttore standard&lt;/span&gt;&lt;span style="color: #008000; "&gt;
&lt;/span&gt;&lt;span style="color: #000000; "&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; Student(&lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; name, &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; surname, DateTime birthDate)
        {
            Name &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; name;
            Surname &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; surname;
            BirthDate &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; birthDate;
            calculateAge();
        }

        &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; Costruttore per la deserializzazione&lt;/span&gt;&lt;span style="color: #008000; "&gt;
&lt;/span&gt;&lt;span style="color: #000000; "&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; Student(SerializationInfo info, StreamingContext context)
        {
            Name &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; info.GetString(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Name&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
            Surname &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; info.GetString(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Surname&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
            BirthDate &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; info.GetDateTime(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;BirthDate&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;);
        }
        
        [OnSerializing]
        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; BeforeSerialization(StreamingContext context)
        {
            &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; ...&lt;/span&gt;&lt;span style="color: #008000; "&gt;
&lt;/span&gt;&lt;span style="color: #000000; "&gt;        }

        [OnSerialized]
        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; AfterSerialization(StreamingContext context)
        {
            &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; ...&lt;/span&gt;&lt;span style="color: #008000; "&gt;
&lt;/span&gt;&lt;span style="color: #000000; "&gt;        }

        [OnDeserializing]
        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; BeforeDeserialization(StreamingContext context)
        {
            &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; ...&lt;/span&gt;&lt;span style="color: #008000; "&gt;
&lt;/span&gt;&lt;span style="color: #000000; "&gt;        }
        
        [OnDeserialized]
        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; AfterDeserialization(StreamingContext context)
        {
            calculateAge();
        }

        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;override&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;string&lt;/span&gt;&lt;span style="color: #000000; "&gt; ToString()
        {
            &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;return&lt;/span&gt;&lt;span style="color: #000000; "&gt; Name &lt;/span&gt;&lt;span style="color: #000000; "&gt;+&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;+&lt;/span&gt;&lt;span style="color: #000000; "&gt; Surname &lt;/span&gt;&lt;span style="color: #000000; "&gt;+&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;+&lt;/span&gt;&lt;span style="color: #000000; "&gt; BirthDate.ToShortDateString() &lt;/span&gt;&lt;span style="color: #000000; "&gt;+&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, &lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #000000; "&gt;+&lt;/span&gt;&lt;span style="color: #000000; "&gt; Age;
        }

        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;private&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; calculateAge()
        {
            Age &lt;/span&gt;&lt;span style="color: #000000; "&gt;=&lt;/span&gt;&lt;span style="color: #000000; "&gt; DateTime.Now.Year &lt;/span&gt;&lt;span style="color: #000000; "&gt;-&lt;/span&gt;&lt;span style="color: #000000; "&gt; BirthDate.Year;
        }

        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;#region&lt;/span&gt;&lt;span style="color: #000000; "&gt; ISerializable Members&lt;/span&gt;&lt;span style="color: #000000; "&gt;

        &lt;/span&gt;&lt;span style="color: #008000; "&gt;//&lt;/span&gt;&lt;span style="color: #008000; "&gt; Metodo chiamato durante la fase di serializzazione&lt;/span&gt;&lt;span style="color: #008000; "&gt;
&lt;/span&gt;&lt;span style="color: #000000; "&gt;        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;public&lt;/span&gt;&lt;span style="color: #000000; "&gt; &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;void&lt;/span&gt;&lt;span style="color: #000000; "&gt; GetObjectData(SerializationInfo info, StreamingContext context)
        {
            info.AddValue(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Name&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, Name);
            info.AddValue(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;Surname&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, Surname);
            info.AddValue(&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;BirthDate&lt;/span&gt;&lt;span style="color: #000000; "&gt;"&lt;/span&gt;&lt;span style="color: #000000; "&gt;, BirthDate);
        }

        &lt;/span&gt;&lt;span style="color: #0000FF; "&gt;#endregion&lt;/span&gt;&lt;span style="color: #000000; "&gt;
    }&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --&gt;&lt;/div&gt;

&lt;p&gt;
  &lt;br /&gt;Anche se è raramente necessario è bene sapere che è offerta anche la possibilità di realizzare dei formatter personalizzati. Invece di utilizzare ad esempio la classe BinaryFormatter è possibile costruire il proprio formatter implementando l'interfaccia &lt;strong&gt;IFormatter&lt;/strong&gt; o &lt;strong&gt;IGenericFormatter&lt;/strong&gt;.  &lt;/p&gt;&lt;img src="http://blogs.ugidotnet.org/angellaa/aggbug/94491.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Angella</dc:creator>
            <guid>http://blogs.ugidotnet.org/angellaa/archive/2008/11/01/70-536-serialization-and-deserialization.aspx</guid>
            <pubDate>Sat, 01 Nov 2008 22:59:23 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/angellaa/comments/94491.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/angellaa/archive/2008/11/01/70-536-serialization-and-deserialization.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/angellaa/comments/commentRss/94491.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/angellaa/services/trackbacks/94491.aspx</trackback:ping>
        </item>
        <item>
            <title>Piattaforma di Social Bookmarking per Technet e MSDN</title>
            <category>Novità</category>
            <link>http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx</link>
            <description>&lt;p&gt;Voglio annunciare la nascita della piattaforma italiana di Social Bookmarking per sviluppatori e professionisti IT. L'idea sarà quella di integrarla in una serie di servizi che andranno sotto il nome di "Microsoft Social Platform".&lt;/p&gt;  &lt;p&gt;Fonte della notizia: &lt;a title="http://blogs.technet.com/italy/archive/2008/10/23/social-bookmarking-ma-non-solo.aspx" href="http://blogs.technet.com/italy/archive/2008/10/23/social-bookmarking-ma-non-solo.aspx"&gt;http://blogs.technet.com/italy/archive/2008/10/23/social-bookmarking-ma-non-solo.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ecco i rispettivi link:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://social.technet.microsoft.com/it-it/" target="_blank"&gt;Social Bookmarking per Technet&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://social.msdn.microsoft.com/it-it/" target="_blank"&gt;Social Bookmarking per MSDN&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Interessante la presenza di un &lt;a href="http://www.dotnetscraps.com/dotnetscraps/post/Social-Bookmarking-Plugin-for-Windows-Live-Writer.aspx" target="_blank"&gt;Plug-in per Windows Live Writer&lt;/a&gt; che permette di aggiungere ai propri post i link che permettono ai lettori di condividere il post su diversi servizi di social bookmarking.    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Di seguito ecco un esempio di contenuto generato da questo plug-in:   &lt;br /&gt;&lt;/p&gt; &lt;span class="sbmLink"&gt;   &lt;table cellspacing="1" cellpadding="1"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td class="sbmText"&gt;Condividi questo post : &lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to Social!" href="http://social.microsoft.com/en-us/action/create/s/E/?url=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;ttl=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://www.dotnetscraps.com/dotnetscraps/samples/sbmtool/social.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to MSDN!" href="http://social.msdn.microsoft.com/en-us/action/create/s/E/?url=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;ttl=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://www.dotnetscraps.com/dotnetscraps/samples/sbmtool/msdn.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to Technet!" href="http://social.technet.microsoft.com/en-us/action/create/s/E/?url=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;ttl=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://www.dotnetscraps.com/dotnetscraps/samples/sbmtool/technet.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to Expression!" href="http://social.expression.microsoft.com/en-us/action/create/s/E/?url=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;ttl=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://www.dotnetscraps.com/dotnetscraps/samples/sbmtool/expression.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to backflip" href="http://www.backflip.com/add_page_pop.ihtml?url=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;title=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/backflip4.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to blinkbits!" href="http://www.blinkbits.com/bookmarklets/save.php?v=1&amp;amp;source_url=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;title=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/blinkbit4.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to blogmemes" href="http://www.blogmemes.net/post.php?url=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;title=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/blogmemes4.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to buddymark" href="http://buddymarks.com/s_add_bookmark.php?bookmark_url=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;bookmark_title=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/buddymar4.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to complore" href="http://complore.com?q=node/add/flexinode-5&amp;amp;url=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;title=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/complore4.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to del.icio.us" href="http://del.icio.us/post?url=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;;title=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/deliciou4.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to del.iri.ous!" href="http://de.lirio.us/bookmarks/sbmtool?action=add&amp;amp;address=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;title=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/deliriou4.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to digg" href="http://digg.com/submit?phase=2&amp;amp;url=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;title=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/digg14.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to dotnetkicks" href="http://www.dotnetkicks.com/kick/?url=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;title=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/CropperCapture154.jpg" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to Facebook" href="http://www.facebook.com/sharer.php?u=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;t=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://blogs.technet.com/photos/james/images/1765319/original.aspx" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to furl" href="http://www.furl.net/store?s=f&amp;amp;to=0&amp;amp;u=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;ti=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/furl4.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to live" href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;title=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/live4.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to magnolia!" href="http://ma.gnolia.com/bookmarklet/add?url=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;title=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/magnolia4.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to netvouz!" href="http://netvouz.com/action/submitBookmark?url=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;title=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/netvouz4.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to reddit!" href="http://reddit.com/submit?url=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;title=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/reddit4.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to shadow" href="http://www.shadows.com/bookmark/saveLink.rails?page=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;title=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/shadows6.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to spurl" href="http://www.spurl.net/spurl.php?v=3&amp;amp;url=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;title=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/spurl8.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to technorati!" href="http://technorati.com/faves/?add=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;title=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/technora4.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to wists" href="http://www.wists.com/?action=add&amp;amp;url=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;title=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/wists9.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td&gt;&lt;a title="Post it to yahoo!" href="http://myweb.yahoo.com/myresults/bookmarklet?u=http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx&amp;amp;t=Piattaforma di Social Bookmarking per Technet e MSDN" target="_blank"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/rahulso/WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites_B387/yahoo9.png" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/span&gt;&lt;img src="http://blogs.ugidotnet.org/angellaa/aggbug/94370.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Andrea Angella</dc:creator>
            <guid>http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx</guid>
            <pubDate>Fri, 24 Oct 2008 16:49:57 GMT</pubDate>
            <wfw:comment>http://blogs.ugidotnet.org/angellaa/comments/94370.aspx</wfw:comment>
            <comments>http://blogs.ugidotnet.org/angellaa/archive/2008/10/24/piattaforma-di-social-bookmarking-per-technet-e-msdn.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/angellaa/comments/commentRss/94370.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/angellaa/services/trackbacks/94370.aspx</trackback:ping>
        </item>
    </channel>
</rss>
