<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>VB .NET</title>
        <link>http://blogs.ugidotnet.org/marcom/category/VB .NET.aspx</link>
        <description>VB .NET</description>
        <language>it-IT</language>
        <copyright>Marco Minerva</copyright>
        <generator>Subtext Version 2.6.0.0</generator>
        <item>
            <title>Text-To-Speech anche per Javascript e C++</title>
            <link>http://blogs.ugidotnet.org/marcom/archive/2012/11/01/text-to-speech-anche-per-javascript-e-c.aspx</link>
            <description>&lt;p&gt;Oggi ho finalmente trovato il tempo di aggiornare la mia &lt;a href="http://translatorservice.codeplex.com/" target="_blank"&gt;libreria&lt;/a&gt; per la traduzione e il Text-To-Speech con il servizio &lt;a href="http://msdn.microsoft.com/en-us/library/ff512423.aspx" target="_blank"&gt;Microsoft Translator&lt;/a&gt;. Questa release porta con sé un’importante novità: la versione per Windows Store adesso è un Windows Runtime Component, e quindi può essere utilizzata, oltre che da C#/VB .NET, anche con Javascript e C++.&lt;/p&gt;  &lt;p&gt;Come sempre, potete scaricarla da &lt;a href="http://translatorservice.codeplex.com/" target="_blank"&gt;CodePlex&lt;/a&gt; oppure tramite &lt;a href="http://www.nuget.org/packages/translatorservice.speech" target="_blank"&gt;NuGet&lt;/a&gt; (il nome del package è &lt;em&gt;TranslatorService.Speech&lt;/em&gt;).&lt;/p&gt;  &lt;div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:3f538f3c-efad-4bea-b60b-f1af2265e8d6" class="wlWriterEditableSmartContent" style="float: none; padding-bottom: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px"&gt;Tag di Technorati: &lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Programming" rel="tag"&gt;Programming&lt;/a&gt;,&lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;,&lt;a href="http://technorati.com/tags/VB.NET" rel="tag"&gt;VB.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+Phone" rel="tag"&gt;Windows Phone&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WinRT" rel="tag"&gt;WinRT&lt;/a&gt;,&lt;a href="http://technorati.com/tags/CodePlex" rel="tag"&gt;CodePlex&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/marcom/aggbug/101300.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marco Minerva</dc:creator>
            <guid>http://blogs.ugidotnet.org/marcom/archive/2012/11/01/text-to-speech-anche-per-javascript-e-c.aspx</guid>
            <pubDate>Thu, 01 Nov 2012 22:02:51 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/marcom/archive/2012/11/01/text-to-speech-anche-per-javascript-e-c.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/marcom/comments/commentRss/101300.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/marcom/services/trackbacks/101300.aspx</trackback:ping>
        </item>
        <item>
            <title>Un po' di chiarezza sull'in-place upgrade a .NET 4.5</title>
            <link>http://blogs.ugidotnet.org/marcom/archive/2012/09/13/un-po-di-chiarezza-sullin-place-upgrade-a-.net-4.5.aspx</link>
            <description>&lt;p&gt;Il .NET Framework 4.5 è rilasciato come un in-place upgrade della versione 4.0. Questo significa che .NET 4.5 sostituisce completamente la release precedente sul PC, senza modificarne il numero di versione. Come si può leggere nel post &lt;a href="http://www.west-wind.com/weblog/posts/2012/Mar/13/NET-45-is-an-inplace-replacement-for-NET-40"&gt;.NET 4.5 is an in-place replacement for .NET 4.0&lt;/a&gt; di Rick Strahl:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When you install .NET 4.5 your .NET 4.0 assemblies in the \Windows\.NET Framework\V4.0.30319 are overwritten with a new set of assemblies. You end up with overwritten assemblies as well as a bunch of new ones (like the new System.Net.Http assemblies for example). […] The 4.5 update completely replaces the .NET 4.0 runtime and leaves the actual version number set at v4.0.30319. &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Un punto che può creare confusione riguarda la possibilità di creare applicazioni per .NET 4.0 dopo che è stato effettuato l'upgrade alla versione 4.5. Rick ci dice che:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When you build a new project with Visual Studio 2011, you can still target .NET 4.0 or you can target .NET 4.5. But you are in effect referencing the same set of assemblies for both regardless which version you use. &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Scott Hanselman, invece, nel suo post &lt;a href="http://www.hanselman.com/blog/NETVersioningAndMultiTargetingNET45IsAnInplaceUpgradeToNET40.aspx"&gt;.NET Versioning and Multi-Targeting - .NET 4.5 is an in-place upgrade to .NET 4.0&lt;/a&gt;, fa notare una cosa diversa:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It's been implied on blogs that if you install .NET 4.5 on your machine that you can't safely develop for .NET 4. In Rick's post, he compares two DLLs on a .NET 4 machine and again after the .NET 4.5 in place upgrade. How can you target safely against .NET 4 if you've installed .NET 4.5? You don't have those .NET 4 DLLs anymore, right?&lt;/p&gt;
&lt;p&gt;Actually you do. They are in C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework.&lt;/p&gt;
&lt;p&gt;[…] So while .NET 4 and .NET 4.5 don't live side by side on your system at runtime, Visual Studio knows about all the different versions of .NET and the compiler will reference different versions when you build.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Chi ha ragione? La cosa necessità di ulteriori approfondimenti.&lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:26fd742b-3b13-4f9d-b57a-a8daa40a5049" style="margin: 0px; padding: 0px; float: none; display: inline;"&gt;Tag di Technorati: &lt;a rel="tag" href="http://technorati.com/tags/.NET"&gt;.NET&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Programming"&gt;Programming&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Visual+Studio"&gt;Visual Studio&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/C%23"&gt;C#&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/VB.NET"&gt;VB.NET&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/ASP.NET"&gt;ASP.NET&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/marcom/aggbug/101212.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marco Minerva</dc:creator>
            <guid>http://blogs.ugidotnet.org/marcom/archive/2012/09/13/un-po-di-chiarezza-sullin-place-upgrade-a-.net-4.5.aspx</guid>
            <pubDate>Thu, 13 Sep 2012 11:08:50 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/marcom/archive/2012/09/13/un-po-di-chiarezza-sullin-place-upgrade-a-.net-4.5.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/marcom/comments/commentRss/101212.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/marcom/services/trackbacks/101212.aspx</trackback:ping>
        </item>
        <item>
            <title>Microsoft Translator: la sottoscrizione al servizio &amp;egrave; diventata obbligatoria</title>
            <link>http://blogs.ugidotnet.org/marcom/archive/2012/04/18/microsoft-translator-la-sottoscrizione-al-servizio-egrave-diventata-obbligatoria.aspx</link>
            <description>&lt;p&gt;Ieri sera ho iniziato a lavorare al porting su Windows Phone della mia libreria per il &lt;a href="http://code.msdn.microsoft.com/Speech-Synthesis-with-7658fa03" target="_blank"&gt;&lt;strong&gt;Text-To-Speech&lt;/strong&gt;&lt;/a&gt; con Microsoft Translator. Ad un certo punto, il servizio ha iniziato a restituire il codice di errore &lt;em&gt;400&lt;/em&gt; (&lt;em&gt;Bad Request&lt;/em&gt;) ad ogni mia richiesta: l’unica cosa che riuscivo ad ottenere era la lista dei linguaggi supportati dal Text-To-Speech.&lt;/p&gt;  &lt;p&gt;Dopo aver fatto qualche ricerca, sono arrivato alla pagina &lt;a href="https://datamarket.azure.com/dataset/1899a118-d202-492c-aa16-ba21c33c06cb" target="_blank"&gt;Microsoft Translator&lt;/a&gt; sul Windows Azure Marketplace, in cui sono elencati i costi del servizio, in base al numero di caratteri inviati al mese. L’ultima opzione, fino a 2.000.000 di caratteri, è gratuita. Ho quindi effettuato la sottoscrizione e la mia libreria ha ripreso a funzionare senza problemi.&lt;/p&gt;  &lt;p&gt;L’ultima volta che avevo utilizzato la mia libreria, un paio di settimane fa, questa sottoscrizione non era necessaria (era sufficiente aver registrato la propria applicazione nella pagina &lt;a href="https://datamarket.azure.com/developer/applications/" target="_blank"&gt;https://datamarket.azure.com/developer/applications/&lt;/a&gt;, per ottenere il Client ID e il Client Secret richiesti). Ora, invece, oltre a registrare l’applicazione, dobbiamo sottoscrivere esplicitamente il servizio, anche se ci limitiamo ad usare la versione gratuita.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c88f836e-76ff-4ad7-9405-d37dc10b6a89" class="wlWriterEditableSmartContent"&gt;Tag di Technorati: &lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Programming" rel="tag"&gt;Programming&lt;/a&gt;,&lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;,&lt;a href="http://technorati.com/tags/VB+.NET" rel="tag"&gt;VB .NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WPF" rel="tag"&gt;WPF&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Windows+Phone" rel="tag"&gt;Windows Phone&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/marcom/aggbug/100962.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marco Minerva</dc:creator>
            <guid>http://blogs.ugidotnet.org/marcom/archive/2012/04/18/microsoft-translator-la-sottoscrizione-al-servizio-egrave-diventata-obbligatoria.aspx</guid>
            <pubDate>Wed, 18 Apr 2012 21:45:10 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/marcom/archive/2012/04/18/microsoft-translator-la-sottoscrizione-al-servizio-egrave-diventata-obbligatoria.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/marcom/comments/commentRss/100962.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/marcom/services/trackbacks/100962.aspx</trackback:ping>
        </item>
        <item>
            <title>Traduzioni localizzate dei messaggi di errore</title>
            <link>http://blogs.ugidotnet.org/marcom/archive/2012/04/06/traduzioni-localizzate-dei-messaggi-di-errore.aspx</link>
            <description>&lt;p&gt;Alzi la mano chi non ha mai inserito in Google un messaggio di errore di .NET, alla ricerca di una spiegazione del problema: così facendo, infatti, spesso possiamo trovare descrizioni dettagliate, con precise indicazioni su come risolvere l'inghippo.&lt;/p&gt;  &lt;p&gt;Tuttavia, se utilizziamo una versione localizzata del Framework .NET (oppure se installiamo un'applicazione in un PC con la versione localizzata del Framework), anche i messaggi di errore sono tradotti. Come ben sappiamo, invece, abbiamo maggiori possibilità di trovare informazioni se cerchiamo il messaggio in inglese. Ma c'è un problema: spesso le traduzioni dall'inglese lasciano molto a desiderare (per non dire di peggio), quindi in tale scenario può non essere facile trovare quello che ci serve.&lt;/p&gt;  &lt;p&gt;Ecco allora che &lt;a href="http://www.finderr.net/" target="_blank"&gt;&lt;strong&gt;FindErr.NET&lt;/strong&gt;&lt;/a&gt; arriva in nostro soccorso: in questo sito, inseriamo il messaggio di errore, ad esempio in italiano, ed otteniamo l'esatta traduzione in inglese, che possiamo immediatamente ricercare con Google usando il link fornito. Davvero molto utile.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0c78fb5d-8f94-4e54-9a05-77c640dd03cc" class="wlWriterEditableSmartContent"&gt;Tag di Technorati: &lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Programming" rel="tag"&gt;Programming&lt;/a&gt;,&lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;,&lt;a href="http://technorati.com/tags/VB.NET" rel="tag"&gt;VB.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Silverlight" rel="tag"&gt;Silverlight&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WPF" rel="tag"&gt;WPF&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WCF" rel="tag"&gt;WCF&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/marcom/aggbug/100928.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marco Minerva</dc:creator>
            <guid>http://blogs.ugidotnet.org/marcom/archive/2012/04/06/traduzioni-localizzate-dei-messaggi-di-errore.aspx</guid>
            <pubDate>Fri, 06 Apr 2012 19:21:11 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/marcom/archive/2012/04/06/traduzioni-localizzate-dei-messaggi-di-errore.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/marcom/comments/commentRss/100928.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/marcom/services/trackbacks/100928.aspx</trackback:ping>
        </item>
        <item>
            <title>Traduzioni con TranslatorService.Speech</title>
            <link>http://blogs.ugidotnet.org/marcom/archive/2012/03/12/traduzioni-con-translatorservice.speech.aspx</link>
            <description>&lt;p&gt;Lo scorso weekend ho pubblicato una nuova versione della mia libreria per il &lt;a target="_blank" href="http://code.msdn.microsoft.com/Speech-Synthesis-with-7658fa03"&gt;&lt;strong&gt;Text-To-Speech&lt;/strong&gt;&lt;/a&gt;. Ora espone un nuovo metodo, &lt;strong&gt;Translate&lt;/strong&gt; (e la corrispondente versione asincrona &lt;strong&gt;TranslateAsync&lt;/strong&gt;), che permette di ottenere solo la traduzione del testo, senza richiedere lo stream del parlato.&lt;/p&gt;
&lt;p&gt;Inoltre, ho aggiunto la proprietà &lt;strong&gt;AutomaticTranslation&lt;/strong&gt;, che se impostata a &lt;strong&gt;false&lt;/strong&gt; non richiede la traduzione del testo quando si recupera lo stream audio. In questo modo, è possibile velocizzare l’esecuzione quando abbiamo già il testo nella lingua corretta (e quindi non abbiamo bisogno di traduzioni).&lt;/p&gt;
&lt;p&gt;Come sempre, la potete trovare su &lt;a target="_blank" href="http://code.msdn.microsoft.com/Speech-Synthesis-with-7658fa03"&gt;MSDN Code Gallery&lt;/a&gt; e su NuGet, con nome &lt;a target="_blank" href="https://www.nuget.org/packages/TranslatorService.Speech"&gt;&lt;strong&gt;TranslatorService.Speech&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f18d3abc-a08d-4ae1-a200-a366a750d39d" style="margin: 0px; padding: 0px; float: none; display: inline;"&gt;Tag di Technorati: &lt;a rel="tag" href="http://technorati.com/tags/.NET"&gt;.NET&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Programming"&gt;Programming&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/C%23"&gt;C#&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/VB.NET"&gt;VB.NET&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/marcom/aggbug/100859.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marco Minerva</dc:creator>
            <guid>http://blogs.ugidotnet.org/marcom/archive/2012/03/12/traduzioni-con-translatorservice.speech.aspx</guid>
            <pubDate>Mon, 12 Mar 2012 21:47:29 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/marcom/archive/2012/03/12/traduzioni-con-translatorservice.speech.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/marcom/comments/commentRss/100859.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/marcom/services/trackbacks/100859.aspx</trackback:ping>
        </item>
        <item>
            <title>La mia libreria per il Text-To-Speech su Channel9</title>
            <link>http://blogs.ugidotnet.org/marcom/archive/2012/03/10/la-mia-libreria-per-il-text-to-speech-su-channel9.aspx</link>
            <description>&lt;p&gt;Questa mattina, con grandissima sorpresa ed estremo piacere, ho scoperto che la mia libreria per il &lt;a target="_blank" href="http://channel9.msdn.com/coding4fun/blog/Text-to-Speech-in-Net-and-Net-Micro-Framework-with-translation-too"&gt;&lt;strong&gt;Text-To-Speech&lt;/strong&gt;&lt;/a&gt; è oggetto di un &lt;a target="_blank" href="http://channel9.msdn.com/coding4fun/blog/Text-to-Speech-in-Net-and-Net-Micro-Framework-with-translation-too"&gt;&lt;strong&gt;post su Channel9&lt;/strong&gt;&lt;/a&gt;. Sono molto felice che stia riscuotendo questo successo, quindi continuerò sicuramente a lavorarci sopra.&lt;/p&gt;
&lt;p&gt;Insomma, sono soddisfazioni…&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:45d6244a-eb17-4fb9-8577-3925374b3824" style="margin: 0px; padding: 0px; float: none; display: inline;"&gt;Tag di Technorati: &lt;a rel="tag" href="http://technorati.com/tags/.NET"&gt;.NET&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Programming"&gt;Programming&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/C%23"&gt;C#&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/VB.NET"&gt;VB.NET&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/marcom/aggbug/100853.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marco Minerva</dc:creator>
            <guid>http://blogs.ugidotnet.org/marcom/archive/2012/03/10/la-mia-libreria-per-il-text-to-speech-su-channel9.aspx</guid>
            <pubDate>Sat, 10 Mar 2012 13:49:36 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/marcom/archive/2012/03/10/la-mia-libreria-per-il-text-to-speech-su-channel9.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/marcom/comments/commentRss/100853.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/marcom/services/trackbacks/100853.aspx</trackback:ping>
        </item>
        <item>
            <title>Encode e Decode di HTML e Url con il .NET Client Profile</title>
            <link>http://blogs.ugidotnet.org/marcom/archive/2012/02/29/encode-e-decode-di-html-e-url-con-il-.net.aspx</link>
            <description>&lt;p&gt;Qualche giorno fa &lt;a href="http://blogs.ugidotnet.org/marcom/archive/2012/02/25/applicazioni-client-profile-e-librerie-full-profile.aspx" target="_blank"&gt;ho parlato&lt;/a&gt; di un possibile problema che si può avere usando una libreria per il “Full” Profile in un progetto che invece si appoggia al profilo Client.&lt;/p&gt;  &lt;p&gt;Come detto, il Client Profile è la scelta consigliata quando sviluppiamo applicazioni client. Tuttavia, anche in questo caso spesso si ha necessità di usare classi che fanno parte del Full Profile. Ad esempio, se dobbiamo effettuare l’encode/decode di stringhe HTML e Url, è naturale pensare ai metodi della classe &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.aspx" target="_blank"&gt;HttpServerUtility&lt;/a&gt;, che però è contenuta nell’assembly &lt;em&gt;System.Web.dll&lt;/em&gt;, che non fa parte del Client Profile.&lt;/p&gt;  &lt;p&gt;D’altra parte, può sembrare esagerato cambiare il target Framework solo per usare un paio di metodi. Per fortuna, il .NET Framework 3.5 (e versioni successive) include una classe compresa nel Client Profile (si trova nell’assembly &lt;em&gt;System.dll&lt;/em&gt;) che permette di effettuare l’encode e il decode di una stringa HTML: &lt;a href="http://msdn.microsoft.com/en-us/library/system.net.webutility.aspx" target="_blank"&gt;&lt;strong&gt;System.Net.WebUtility&lt;/strong&gt;&lt;/a&gt;. Nel caso di Url, invece, abbiamo a disposizione i metodi statici della classe &lt;a href="http://msdn.microsoft.com/en-us/library/system.uri.aspx" target="_blank"&gt;&lt;strong&gt;Uri&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Il blog di Pete Brown riassume &lt;a href="http://10rem.net/blog/2010/04/07/encoding-decoding-uris-and-html-in-the-net-4-client-profile" target="_blank"&gt;questa situazione&lt;/a&gt; e fornisce alcuni esempi di utilizzo dei metodi descritti.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:635d7654-79d8-4830-8e1a-059ea4d8df87" class="wlWriterEditableSmartContent"&gt;Tag di Technorati: &lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Programming" rel="tag"&gt;Programming&lt;/a&gt;,&lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;,&lt;a href="http://technorati.com/tags/VB+.NET" rel="tag"&gt;VB .NET&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/marcom/aggbug/100814.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marco Minerva</dc:creator>
            <guid>http://blogs.ugidotnet.org/marcom/archive/2012/02/29/encode-e-decode-di-html-e-url-con-il-.net.aspx</guid>
            <pubDate>Wed, 29 Feb 2012 21:45:28 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/marcom/archive/2012/02/29/encode-e-decode-di-html-e-url-con-il-.net.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/marcom/comments/commentRss/100814.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/marcom/services/trackbacks/100814.aspx</trackback:ping>
        </item>
        <item>
            <title>Nuova versione della mia libreria per il Text-To-Speech</title>
            <link>http://blogs.ugidotnet.org/marcom/archive/2012/02/27/nuova-versione-della-mia-libreria-per-il-text-to-speech.aspx</link>
            <description>&lt;p&gt;Qualche settimana fa ho &lt;a href="http://blogs.ugidotnet.org/marcom/archive/2012/01/14/nuova-versione-della-mia-libreria-per-il-text-to-speech.-anche-su.aspx" target="_blank"&gt;parlato&lt;/a&gt; della mia libreria per il &lt;a href="http://code.msdn.microsoft.com/Speech-Synthesis-with-7658fa03" target="_blank"&gt;&lt;strong&gt;Text-To-Speech&lt;/strong&gt;&lt;/a&gt; con il .NET Framework.&lt;/p&gt;  &lt;p&gt;Nel frattempo, il servizio Microsoft Translator, su cui la libreria si appoggia, è stato spostato su Azure ed è stato arricchito di nuove funzionalità. Ora è possibile ottenere il parlato in formato WAV oppure MP3 e specificarne la qualità.&lt;/p&gt;  &lt;p&gt;Uno dei maggiori cambiamenti è che il meccanismo di accesso basato sul Bing Application ID, usato nella versione precedente, non è più supportato. Il nuovo servizio utilizza un sistema basato su token, compatibile con lo standard OAuth.&lt;/p&gt;  &lt;p&gt;Di conseguenza, per usare il servizio dobbiamo registrare le nostre applicazioni sull’&lt;a href="https://datamarket.azure.com/developer/applications" target="_blank"&gt;Azure DataMarket&lt;/a&gt;, in modo da ottenere il Client ID e il Client Secret di cui abbiamo bisogno. La registrazione è gratuita fino a 2 milioni di carattere inviati al mese.&lt;/p&gt;  &lt;p&gt;Ho quindi aggiornato la mia libreria per supportare il nuovo sistema di accesso e vi ho aggiunto due proprietà che permettono di specificare il formato e la qualità dello stream audio che si vuole ottenere.&lt;/p&gt;  &lt;p&gt;Come sempre, può essere scaricata da &lt;a href="http://code.msdn.microsoft.com/Speech-Synthesis-with-7658fa03" target="_blank"&gt;&lt;strong&gt;MSDN Code Gallery&lt;/strong&gt;&lt;/a&gt; oppure prelevata direttamente da &lt;a href="https://www.nuget.org/packages/TranslatorService.Speech" target="_blank"&gt;&lt;strong&gt;NuGet&lt;/strong&gt;&lt;/a&gt; (è sufficiente cercare &lt;strong&gt;TranslatorService.Speech&lt;/strong&gt;).&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a891e575-78f8-4d4d-a446-32a0cbb2e660" class="wlWriterEditableSmartContent"&gt;Tag di Technorati: &lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Programming" rel="tag"&gt;Programming&lt;/a&gt;,&lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;,&lt;a href="http://technorati.com/tags/VB+.NET" rel="tag"&gt;VB .NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/.NET+Micro+Framework" rel="tag"&gt;.NET Micro Framework&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/marcom/aggbug/100805.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marco Minerva</dc:creator>
            <guid>http://blogs.ugidotnet.org/marcom/archive/2012/02/27/nuova-versione-della-mia-libreria-per-il-text-to-speech.aspx</guid>
            <pubDate>Mon, 27 Feb 2012 02:00:45 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/marcom/archive/2012/02/27/nuova-versione-della-mia-libreria-per-il-text-to-speech.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/marcom/comments/commentRss/100805.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/marcom/services/trackbacks/100805.aspx</trackback:ping>
        </item>
        <item>
            <title>Applicazioni Client Profile e librerie Full Profile</title>
            <link>http://blogs.ugidotnet.org/marcom/archive/2012/02/25/applicazioni-client-profile-e-librerie-full-profile.aspx</link>
            <description>&lt;p&gt;Le applicazioni per Windows create con Visual Studio 2010, siano esse WPF, Windows Forms o Console, utilizzano di default il &lt;a href="http://msdn.microsoft.com/it-it/library/cc656912.aspx" target="_blank"&gt;&lt;strong&gt;.NET 4 Client Profile&lt;/strong&gt;&lt;/a&gt;, ovvero un sottoinsieme del .NET Framework ottimizzato proprio per le applicazioni client.&lt;/p&gt;  &lt;p&gt;Al contrario, le Class Library sono configurate per usare il “Full Profile”, ovvero l’intera Base Class Library di .NET. Questo può portare ad un problema nel momento in cui utilizziamo un assembly che non fa parte del Client Profile. Infatti, se proviamo ad utilizzare tale libreria in un’applicazione Client Profile, otterremo un errore, perché stiamo tentando di accedere ad oggetti che sfruttano una libreria del Full Profile, a cui l’assembly dell’applicazione, che invece usa il Client Profile, non ha accesso.&lt;/p&gt;  &lt;p&gt;Nessun problema, invece, se la nostra Class Library, pur usando il Full Profile, sfrutta solo gli assembly che fanno parte anche del Client Profile.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5144169f-dbb5-4f68-bd1e-07fee1bbbd2b" class="wlWriterEditableSmartContent"&gt;Tag di Technorati: &lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Programming" rel="tag"&gt;Programming&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Visual+Studio+2010" rel="tag"&gt;Visual Studio 2010&lt;/a&gt;,&lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;,&lt;a href="http://technorati.com/tags/VB.NET" rel="tag"&gt;VB.NET&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/marcom/aggbug/100803.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marco Minerva</dc:creator>
            <guid>http://blogs.ugidotnet.org/marcom/archive/2012/02/25/applicazioni-client-profile-e-librerie-full-profile.aspx</guid>
            <pubDate>Sat, 25 Feb 2012 18:09:35 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/marcom/archive/2012/02/25/applicazioni-client-profile-e-librerie-full-profile.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/marcom/comments/commentRss/100803.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/marcom/services/trackbacks/100803.aspx</trackback:ping>
        </item>
        <item>
            <title>Interessante post sull&amp;rsquo;utilizzo dei Task in .NET 4.0</title>
            <link>http://blogs.ugidotnet.org/marcom/archive/2012/02/18/interessante-post-sullrsquoutilizzo-dei-task-in-.net-4.0.aspx</link>
            <description>&lt;p&gt;Girovagando su Internet, ho trovato un &lt;a href="http://reedcopsey.com/2010/03/26/parallelism-in-net-part-16-creating-tasks-via-a-taskfactory/" target="_blank"&gt;articolo&lt;/a&gt; che illustra in maniera molto semplice l'utilizzo della classe &lt;a href="http://msdn.microsoft.com/en-us/library/system.threading.tasks.task.aspx" target="_blank"&gt;Task&lt;/a&gt;. Gli esempi forniti permettono di comprendere immediatamente la potenza di questo oggetto.&lt;/p&gt;  &lt;p&gt;Esso fa parte di una serie di 20 post, &lt;a href="http://reedcopsey.com/series/parallelism-in-net4/" target="_blank"&gt;&lt;strong&gt;Parallelism in .NET&lt;/strong&gt;&lt;/a&gt;, dedicati alla &lt;a href="http://msdn.microsoft.com/en-us/library/dd460717.aspx" target="_blank"&gt;Task Parallel Library&lt;/a&gt; e a &lt;a href="http://msdn.microsoft.com/en-us/library/dd460688.aspx" target="_blank"&gt;PLINQ&lt;/a&gt;. Caldamente consigliato a chi vuote approfondire l’argomento (quindi spero la maggior parte dei programmatori .NET…).&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a46a48e4-1db1-44dd-b2fd-8d0b4dcf66f8" class="wlWriterEditableSmartContent"&gt;Tag di Technorati: &lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Programming" rel="tag"&gt;Programming&lt;/a&gt;,&lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;,&lt;a href="http://technorati.com/tags/VB+.NET" rel="tag"&gt;VB .NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Silverlight" rel="tag"&gt;Silverlight&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WPF" rel="tag"&gt;WPF&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ASP+.NET" rel="tag"&gt;ASP .NET&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.ugidotnet.org/marcom/aggbug/100780.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Marco Minerva</dc:creator>
            <guid>http://blogs.ugidotnet.org/marcom/archive/2012/02/18/interessante-post-sullrsquoutilizzo-dei-task-in-.net-4.0.aspx</guid>
            <pubDate>Sat, 18 Feb 2012 19:25:31 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/marcom/archive/2012/02/18/interessante-post-sullrsquoutilizzo-dei-task-in-.net-4.0.aspx#feedback</comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/marcom/comments/commentRss/100780.aspx</wfw:commentRss>
            <trackback:ping>http://blogs.ugidotnet.org/marcom/services/trackbacks/100780.aspx</trackback:ping>
        </item>
    </channel>
</rss>