<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://xplayn.org/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>xplayn</title><link>http://xplayn.org/cs/blogs/</link><description>share your experience</description><dc:language>en-US</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Visual Studio 2008 Tip #1</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/12/17/visual-studio-2008-tip-1.aspx</link><pubDate>Wed, 17 Dec 2008 18:32:00 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:1386</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;In Visual Studio 2008 la pressione del tasto F12 rappresenta la scorciatoia da tastiera del comando Edit.GoToDefinition, che, come è&amp;nbsp;noto, permette di &amp;quot;saltare&amp;quot; direttamente alla dichiarazione del simbolo selezionato nel codice. Non è però cosi evidente che il simbolo selezionato potrebbe anche risiedere nella pagina aspx. Ad esempio, se selezioniamo la classe CSS associata ad un controllo in una pagina aspx, o se semplicemente posizioniamo il puntatore del mouse all&amp;#39;interno della stringa della classe CSS, alla pressione del tasto F12 verrà automaticamente&amp;nbsp; aperto il file CSS contentente la definizione del simbolo selezionato e verrà interamente evidenziata la classe stessa con tutti gli attributi grafici associati, come da esempio.&lt;/p&gt;
&lt;p&gt;Decisamente molto utile!&lt;/p&gt;
&lt;p&gt;&lt;img height="40" alt="" src="http://www.xplayn.org/images/blogs/f12tip1.bmp" width="696" align="left" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style="WIDTH:289px;HEIGHT:120px;" height="40" alt="" src="http://www.xplayn.org/images/blogs/f12tip2.bmp" width="696" align="left" border="0" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=1386" width="1" height="1"&gt;</description></item><item><title>Visual studio ide crash #2</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/12/09/visual-studio-ide-crash-2.aspx</link><pubDate>Tue, 09 Dec 2008 10:44:28 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:1384</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Avevo già parlato &lt;a href="http://xplayn.org/cs/blogs/maurizio/archive/2008/09/04/visual-studio-2008-ide-crash-dopo-quot-choose-items-quot-dalla-toolbox.aspx" target="_blank"&gt;qui&lt;/a&gt; (post immediatamente sotto :-)) di uno strano crash di Visual Studio 2008 SP1, a seguito dell&amp;#39;esecuzione comando &amp;quot;Choose items&amp;quot; della toolbox.&lt;/p&gt; &lt;p&gt;Il problema sembrava essere dovuto alla presenza dei PowerCommands e di una loro presunta incompatibilità con il Service Pack 1. Infatti per poter tornare alla &amp;quot;normalità&amp;quot; era necessario un&amp;#39;azione estrema, ovvero rimuovere i PowerCommands, ed a quel punto il problema spariva.&lt;/p&gt; &lt;p&gt;Oggi scopro che attraverso un assemply redirection nel file di configurazione di Visual Studio (devenv.exe.config) il problema si risolve definitivamente, e che il crash si verificava anche nell&amp;#39;editor XAML. Maggiori info &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/vssetup/thread/e2434065-9921-4861-b914-9cc9d6c55553/" target="_blank"&gt;qui&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Quindi la soluzione è inserire questo frammento XML nel file di configurazione di Visual Studio:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;&amp;lt;dependentAssembly&amp;gt;&lt;br /&gt;&amp;lt;assemblyIdentity name=&amp;quot;Microsoft.PowerCommands&amp;quot;&amp;nbsp;&amp;nbsp; publicKeyToken=&amp;quot;null&amp;quot; culture=&amp;quot;neutral&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;codeBase version=&amp;quot;1.1.0.0&amp;quot; href=&amp;quot;C:\Program Files (x86)\PowerCommands\Microsoft.PowerCommands.dll&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/dependentAssembly&amp;gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=1384" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Tips+_2600_amp_3B00_+tricks/default.aspx">Tips &amp;amp; tricks</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Visual+Studio+2008+/default.aspx">Visual Studio 2008 </category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category></item><item><title>Visual studio 2008 ide crash dopo "Choose items" dalla toolbox</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/09/04/visual-studio-2008-ide-crash-dopo-quot-choose-items-quot-dalla-toolbox.aspx</link><pubDate>Thu, 04 Sep 2008 20:54:08 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:1047</guid><dc:creator>maurizio</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Qualche giorno fa mi sono imbattuto in uno strano crash di Visual Studio 2008, dopo aver installato il Service Pack 1, vale a dire che il comando &amp;quot;Choose items&amp;quot; della toolbox era capace di mandare in crash l&amp;#39;intero IDE, scrivendo un laconico messaggio nell&amp;#39;Event viewer, del tipo&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;NET Runtime version 2.0.50727.3053 - Fatal Execution Engine Error (7A035E00) (80131506)&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;di nessuna utilità per la risoluzione del problema,&amp;nbsp; senza possibilità di scampo quindi. Dopo aver cercato invano per la rete per evitare di perdere ulteriore tempo ho evitato di disporre del controllo che mi interessava nella toolbox (precisamente una PropertyGrid) e l&amp;#39;ho inserito direttamente nel markup XAML della mia applicazione (una XBAP application).&lt;/p&gt; &lt;p&gt;Oggi ho letto questo &lt;a href="http://blogs.ugidotnet.org/ddl/archive/2008/09/04/vs2008-sp1---problema-con-quotadd-item.quot-toolbox.aspx" target="_blank"&gt;post&lt;/a&gt; di &lt;a href="http://blogs.ugidotnet.org/ddl/Default.aspx" target="_blank"&gt;Nazareno&lt;/a&gt; e speravo veramente di risolvere il problema, anche perchè questa volta la toolbox era indispensabile poichè dovevo inserire una intera suite di controlli.&lt;/p&gt; &lt;p&gt;Purtroppo non c&amp;#39;è stato niente da fare. Il problema sparisce solo dopo aver disinstallato i &lt;a href="http://code.msdn.microsoft.com/PowerCommands/" target="_blank"&gt;Power Commands&lt;/a&gt;, senza più reinstallarli.&amp;nbsp; Ma sono abituato ai Power Commands&amp;nbsp; e li trovo veramente utili. &lt;/p&gt; &lt;p&gt;Vale a dire che li disintallerò solo per utilizzare la toolbox, e poi li reinstallerò di nuovo...:-)&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=1047" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Workaround/default.aspx">Workaround</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Visual+Studio+2008+/default.aspx">Visual Studio 2008 </category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category></item><item><title>SQLBits -Londra, 13 settembre 2008</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/09/01/sqbbits-londra-13-settembre-2008.aspx</link><pubDate>Mon, 01 Sep 2008 21:08:00 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:1045</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Il prossimo 13 settembre parteciperò ad una conferenza internazionale, precisamente la &lt;a href="http://www.sqlbits.com/" target="_blank"&gt;SQLBits&lt;/a&gt;, dedicata ai professionisti di Sql Server, in quel di Londra. &lt;/p&gt; &lt;p&gt;Se qualche sqlellaro vuole accodarsi non ha che da &lt;a href="http://xplayn.org/cs/blogs/maurizio/contact.aspx" target="_blank"&gt;contattarmi&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Questa è la mia agenda:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://ftp.xplayn.org/images/blogs/SQBBitsLondra13settembre2008_1457F/SQLBits.png"&gt;&lt;img src="http://www.xplayn.org/images/blogs/SQBBitsLondra13settembre2008_1457F/SQLBits_thumb.png" style="border-width:0px;" alt="SQLBits" border="0" height="820" width="748" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;Qualche suggerimento ?&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=1045" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Eventi+_2600_amp_3B00_+conferenze/default.aspx">Eventi &amp;amp; conferenze</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/SQL+Server+2008/default.aspx">SQL Server 2008</category></item><item><title>Creare una "full trust" xbap application</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/08/04/creare-una-quot-full-trust-quot-xbap-application.aspx</link><pubDate>Mon, 04 Aug 2008 21:22:00 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:753</guid><dc:creator>maurizio</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Come chi programma in WPF ben sa, una applicazione WPF browser, meglio nota come XBAP application, gira all&amp;#39;interno del browser in un ambiente partial trust, oppure in una sandbox di sicurezza, come meglio si preferisce, per evitare appunto che il codice di una tale applicazione possa accedere a informazioni confidenziali oppure effettuare azioni non autorizzate. In particolari scenari, tuttavia, ad esempio in applicazioni Intranet, può nascere l&amp;#39;esigenza di dotare tali applicazioni di un maggior numero di permessi, oppure addirittura farle girare in ambiente full trust.&lt;/p&gt; &lt;p&gt;Bene, visto che per default una XBAP application viene eseguita in modalità partial trust, quali sono i passaggi necessari per farla funzionare invece in un ambiente full trust ?. Questo è il motivo di questo post. Di seguito elenco i passaggi che ho dovuto effettuare per raggiungere tale obiettivo, anche se alcuni sono un pò contorti e mi fanno dubitare di aver intrapreso la strada migliore, ma alla fine comunque il tutto ha funzionato:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Occorre far si che il processo che ospita la XBAP application non venga eseguito con un process token povero di privilegi. Per far questo è necessario intervenire sul Registry (non sono però certo che non esistano metodi più comodi).&amp;nbsp; Occorre posizionarsi sulla chiave:&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Windows Presentation Foundation\Hosting&lt;/p&gt;&lt;/blockquote&gt; &lt;blockquote&gt; &lt;p&gt;e creare un valore DWORD denominato RunUnrestricted ed assegnargli il valore 1.&lt;/p&gt;&lt;/blockquote&gt; &lt;ul&gt; &lt;li&gt;Nella scheda Security, accessibile dalle proprietà del progetto, occorre scegliere come zona il valore &amp;quot;Custom&amp;quot; al posto di &amp;quot;Internet&amp;quot;. Lasciare il valore di default &amp;quot;This is a partial trust application&amp;quot; e non spuntare &amp;quot;This is a full trust application&amp;quot; come invece la logica vorrebbe. Se si sceglie &amp;quot;full trust&amp;quot; senza cambiare la zona (lasciando il valore di default) il meccanismo non funzionerà. Dopo aver fatto questa modifica, riaprendo la scheda Security, si noterà come sia spuntato il valore &amp;quot;full trust&amp;quot; e la zona sia impostata a &amp;quot;Custom&amp;quot; e non modificabile.&amp;nbsp; &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;a href="http://www.xplayn.org/images/blogs/Creareunafulltrustxbapapplication_14902/Blog1.png"&gt;&lt;img src="http://www.xplayn.org/images/blogs/Creareunafulltrustxbapapplication_14902/Blog1_thumb.png" style="border:0px none;" alt="Blog1" border="0" height="365" width="565" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Nel file app.manifest dell&amp;#39;applicazione occorre aggiungere l&amp;#39;attributo Unrestricted=&amp;quot;true&amp;quot; come evidenziato sotto:&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;a href="http://www.xplayn.org/images/blogs/Creareunafulltrustxbapapplication_14902/Blog2.png"&gt;&lt;img src="http://www.xplayn.org/images/blogs/Creareunafulltrustxbapapplication_14902/Blog2_thumb.png" style="border:0px none;" alt="Blog2" border="0" height="228" width="575" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Se si vuol lanciare la propria applicazione mediante un url http, occorre firmare il manifest con un certificato digitale X.509. Quando creiamo la nostra applicazione XBAP Visual Studio genera un file con estensione &lt;b&gt;&amp;quot;pfx&amp;quot;.&lt;/b&gt; Questo file rappresenta un certificato digitale temporaneo da usare a scopo di test. Occorrerà solo registrare tale certificato in Internet Exporer, scegliendo da menù Tools l&amp;#39;opzione &amp;quot;&lt;b&gt;Options&lt;/b&gt;&amp;quot;, la scheda &amp;quot;&lt;b&gt;Content&lt;/b&gt;&amp;quot; ed il pulsante &amp;quot;&lt;b&gt;Certificates&lt;/b&gt;&amp;quot;. A questo punto click sul pulsante &amp;quot;&lt;b&gt;Import&lt;/b&gt;&amp;quot; e partirà il wizard di importazione del certificato, dove attraverso vari passaggi il certificato di test sarà registrato (occorre scegliere come store&amp;nbsp; &amp;quot;&lt;b&gt;Trusted root Certification Authorities&lt;/b&gt;&amp;quot;). E&amp;#39; comunque possibile generare un certificato di test direttamente da Visual Studio, scegliendo la scheda &amp;quot;&lt;b&gt;Signing&lt;/b&gt;&amp;quot; dalle proprietà del progetto e successivamente cliccando il pulsante &amp;quot;&lt;b&gt;Create Test Certificate&lt;/b&gt;&amp;quot;. A questo punto partirà un wizard che permetterà la creazione e la esportazione del certificato in un file &amp;quot;&lt;b&gt;pfx&lt;/b&gt;&amp;quot;, onde consentire la successiva importazione in Internet Explorer.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;A questo punto eseguendo l&amp;#39;applicazione via web essa funzionerà con tutti i permessi assegnati (full trust).&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=753" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Workaround/default.aspx">Workaround</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/WPF/default.aspx">WPF</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/XBAP+Application/default.aspx">XBAP Application</category></item><item><title>Mole, visualizer integrato per visual studio</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/07/31/mole-visualizer-integrato-per-visual-studio.aspx</link><pubDate>Thu, 31 Jul 2008 13:25:09 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:672</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Segnalo un gran bel Visualizer per Visual Studio 2005/2008. Trattasi di Mole v.4.2, un visualizer in grado di funzionare con diversi oggetti di diverse tipologie di progetto, che comprendono WinForms, WPF, WCF, WF, ASP.NET, XBAP. Io lo trovo molto utile soprattutto per progetti WCF, WPF, dove gli oggetti con cui si ha a che fare sono abbastanza complessi e strutturati. Uno strumento del genere, molto ben fatto e performante, può far risparmiare diversi &amp;quot;mal di testa&amp;quot; quando si effettua il debugging di progetti di questo tipo.&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.codeproject.com/KB/macros/MoleForVisualStudioEdit.aspx" target="_blank"&gt;Download&lt;/a&gt;&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=672" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Visual+Studio+2005/default.aspx">Visual Studio 2005</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Visual+Studio+2008+/default.aspx">Visual Studio 2008 </category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Tools/default.aspx">Tools</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/WPF/default.aspx">WPF</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/XBAP+Application/default.aspx">XBAP Application</category></item><item><title>Impossibile aggiungere una service reference in visual studio 2008</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/07/28/impossibile-aggiungere-una-service-reference-in-visual-studio-2008.aspx</link><pubDate>Mon, 28 Jul 2008 15:03:31 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:656</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Questo workaround spero sia utile a chi si è trovato nella stessa mia situazione, e cioè che improvvisamente Visual Studio 2008 si rifiuta di aggiungere una Service Reference ad un servizio WCF, dando questo errore:&lt;/p&gt; &lt;blockquote&gt; &lt;h3&gt;The components required to enumerate web references are not installed on this computer. Please re-install Visual studio.&lt;/h3&gt;&lt;/blockquote&gt; &lt;p&gt;Ho poi scoperto che il problema si presentava anche aggiungendo semplici web reference (ASP .NET web services) a progetti creati con Visual Studio 2005.&lt;/p&gt; &lt;p&gt;Per risolvere il problema non è mica necessario reinstallare Visual Studio :-)&lt;/p&gt; &lt;p&gt;Basta lanciare l&amp;#39;ambiente di sviluppo da prompt dei comandi (quello di Visual Studio) con il parametro /resetskippkgs, quindi in questo modo:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;devenv /resetskippkgs&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Il parametro /resetskippkgs impedisce che siano caricati eventuali VSPackages aggiuntivi, che potrebbero creare problemi con lo startup dei componenti di Visual Studio. Era proprio quello che accadeva a me. Chiaramente basta lanciare solo una volta Visual Studio in quel modo, giusto per disabilitare il caricamento dei VSPackages.&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=656" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Workaround/default.aspx">Workaround</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Visual+Studio+2008+/default.aspx">Visual Studio 2008 </category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/WCF/default.aspx">WCF</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Web+services/default.aspx">Web services</category></item><item><title>Le direttive using devono essere poste all'interno del namespace</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/07/22/le-direttive-using-devono-essere-poste-all-interno-del-namespace.aspx</link><pubDate>Tue, 22 Jul 2008 13:59:42 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:607</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Questo post inizia con una frase tratta da un &lt;a href="http://www.hanselman.com/blog/BackToBasicsDoNamespaceUsingDirectivesAffectAssemblyLoading.aspx" target="_blank"&gt;post&lt;/a&gt; di &lt;a href="http://www.hanselman.com/blog/" target="_blank"&gt;Scott Hanselmann&lt;/a&gt; con cui mi trovo completamente d&amp;#39;accordo:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Don&amp;#39;t believe everything you read, even on a Microsoft Blog.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Don&amp;#39;t believe this blog, either!&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Decide&amp;#160; for yourself with experiments if you need a tiebreaker!&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Credo sia proprio vero, mai fidarsi ciecamente di quello che si legge in giro, soprattutto quando seri dubbi farebbero pensare il contrario.&lt;/p&gt;  &lt;p&gt;Il motivo &amp;#232; presto detto: utilizzo normalmente &lt;strong&gt;FxCop&lt;/strong&gt; come strumento di analisi del codice sorgente, lo trovo molto completo e ben fatto. Spinto dalla curiosit&amp;#224; ho voluto utilizzare &lt;strong&gt;Source Analysis&lt;/strong&gt;, un tool gratuito fornito da Microsoft ed integrato nell&amp;#39;IDE di Visual Studio. Dopo la primissima prova fatta mi ha incuriosito una sua segnalazione:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;SA1200 - All using directives must be placed inside of the namaspace.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Per farla breve, tutti i files sorgenti del mio progetto provocavano una segnalazione di questo tipo poich&amp;#232; le direttive using erano poste esternamente alla definizione del namespace, cos&amp;#236; come automaticamente viene creato uno scheletro di una classe all&amp;#39;interno dell&amp;#39;IDE. La segnalazione in questione invita invece ad includere le direttive using all&amp;#39;interno della definizione del namespace, semprecch&amp;#232; sia presente. Facendo qualche ricerca in giro ho scoperto che in questo modo il compilatore segnala immediatamente una eventuale ambiguit&amp;#224; tra i nomi dei tipi creati all&amp;#39;interno del proprio namespace e i tipi presenti nei vari namespace del .NET Framework. E fin qui nulla di strano. &lt;/p&gt;  &lt;p&gt;Ho scoperto inoltre che questa guideline servirebbe anche ad aumentare le prestazioni, almeno nei casi specifici, in quanto forzarebbe il &amp;quot;lazy loading&amp;quot; degli assembly e non il caricamento immediato. In altre parole, quando il viene invocato un metodo di una classe e viene compilato il codice &amp;quot;just in time&amp;quot; (JITTED) il lazy loading permette di caricare in memoria solo gli assembly referenziati che servono all&amp;#39;invocazione del metodo stesso, e non tutti gli assembly referenziati da una classe, a prescindere se utilizzati o no da una specifica invocazione di un metodo. Questo permette di caricare solo lo stretto necessario anche se una classe referenzia un assemby non utilizzato da un metodo.&lt;/p&gt;  &lt;p&gt;Sinceramente non mi &amp;#232; venuto in mente un solo valido motivo per cui una direttiva using posta in un certo modo potesse influenzare l&amp;#39;attivit&amp;#224; del CRL a runtime, e sono rimasto alquanto dubbioso sulla effettiva validit&amp;#224;. Prima che potessi avere il tempo di fare una prova specifica mi son trovato questo &lt;a href="http://www.hanselman.com/blog/BackToBasicsDoNamespaceUsingDirectivesAffectAssemblyLoading.aspx" target="_blank"&gt;post&lt;/a&gt; di &lt;a href="http://www.hanselman.com/blog/" target="_blank"&gt;Scott Hanselmann&lt;/a&gt;, al quale rimando per una esauriente spiegazione, che dimostra come purtroppo ci&amp;#242; non sia affatto vero, cio&amp;#232; gli assembly referenziati vengono caricati tutti i memoria immediatamente, a prescindere se il metodo in questione li usa oppure no, ed a prescindere se le direttive using vengono poste all&amp;#39;interno o all&amp;#39;esterno della definizione di namespace.&lt;/p&gt;  &lt;p&gt;Quindi la morale &amp;#232;: non credere mai a quello che leggi, neanche se lo leggi da questo blog :), ma sperimenta sempre.&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=607" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Pensieri/default.aspx">Pensieri</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Visual+Studio+2008+/default.aspx">Visual Studio 2008 </category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Tools/default.aspx">Tools</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/.NET+Framework+3.5/default.aspx">.NET Framework 3.5</category></item><item><title>Visual source safe - troubleshooting</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/07/20/visual-source-safe-troubleshooting.aspx</link><pubDate>Sun, 20 Jul 2008 21:20:43 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:602</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Nel mio lavoro quotidiano come consulente uso spesso e volentieri Visual Source Safe (sigh!)&amp;nbsp; come repository del codice sorgente. Come chi già lo usa sicuramente ben sa, Source Safe è un prodotto ormai datato che si porta dietro un pò di problemi di varia natura. Quindi, non è sempre facile &amp;quot;addomesticarlo&amp;quot; per ottenere quello che si vuole. Appunto un paio di workaround su come evitare certe situazioni che possono portare a problemi:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Se si usa una cartella diversa da c:\inetpub\wwwroot per salvare i propri progetti web, non usare mai il comando File|Open fron Source Control. Questo comando, a dispetto della working folder impostata, salverà sempre il progetto web in una sottodirectory della directory c:\inetpub\wwwroot, con il risultato di avere una doppia copia del progetto web sulla propria macchina se si è scelto di utilizzare una directory differente per il proprio progetto. Questo comportamento si può evitare impostando la virtual directory della propria applicazione (che dovrà puntare alla directory fisica prescelta) PRIMA di eseguire il comando &amp;quot;Open from Source Control&amp;quot;.&lt;/li&gt; &lt;li&gt;Source Safe NON è transazionale, quindi un crash del sistema nel bel mezzo di una operaizione di scrittura porta quasi sempre a corruzione del database, non sempre risolvibili attraverso l&amp;#39;utility &amp;quot;&lt;strong&gt;Analyze&lt;/strong&gt;&amp;quot;&lt;/li&gt; &lt;li&gt;L&amp;#39;esecuzione del comando &amp;quot;&lt;strong&gt;Analyze&lt;/strong&gt;&amp;quot; come pure di altri comandi di diagnostica non và a buon fine se risultano utenti ancora connessi al database; questo è anche logico, se non fosse per il fatto che non esiste un metodo &amp;quot;pulito&amp;quot; per disconnettere utenti che risultano ancora connessi. Per far questo occorre utilizzare alcuni strumenti del sistema operativo per disconnettere forzatamente un utente dalla rete.&lt;/li&gt; &lt;li&gt;Effettuare un backup dell&amp;#39;intero database quanto più frequentemente possibile&lt;/li&gt;&lt;/ol&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=602" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Workaround/default.aspx">Workaround</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Visual+Source+Safe/default.aspx">Visual Source Safe</category></item><item><title>Automatic properties in c# 3.0</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/07/20/automatic-properties-in-c-3-0.aspx</link><pubDate>Sun, 20 Jul 2008 20:27:31 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:601</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Utilizzando C# 3.0 è possibile scrivere le proprietà di una classe in modo estremamente compatto, in questo modo:&lt;/p&gt; &lt;p&gt;&lt;font color="#00ffff"&gt;Public string Nome {get; set;}&lt;/font&gt;&lt;/p&gt; &lt;p&gt;Questa modalità, chiamata &amp;quot;Automatic properties&amp;quot; permette quindi di omettere il riferimento al membro privato che normalmente viene &amp;quot;wrappato&amp;quot; dalla proprietà stessa.&lt;/p&gt; &lt;p&gt;Sarà compito del compilatore autogenerare al volo il membro privato al momento della compilazione. Questa caratteristica impone che il codice della classe non può in nessun modo accedere alla variabile privata, appunto perchè al momento della stesura del codice essa non esiste ancora in quanto sarà autogenerata in fase di compilazione. E&amp;#39; quindi necessario utilizzare direttamente il nome della proprietà nel codice della classe per accedere al suo contenuto e/o modificarlo. &lt;/p&gt; &lt;p&gt;L&amp;#39;impossibilità del codice ad accedere alla variabile privata è dovuta al fatto che, poichè è possibile in qualsiasi momento tornare alla dichiarazione classica della proprietà indicando esplicitamente una variabile privata, è necessario assicurare al codice la piena compatibilità tra le due modalità. In altre parole, se si trasforma una &amp;quot;Automatic property&amp;quot; in una proprietà diciamo così &amp;quot;classica&amp;quot;, il codice che la utilizza continuerà a funzionare senza problemi perchè è certo che non avrà in nessun modo potuto utilizzare la variabile privata autogenerata. Per lo stesso motivo, non è possibile indicare un solo &amp;quot;accessor&amp;quot; per la proprietà ma dovranno essere indicati obbligatoriamente entrambi (get; set;), fermo restando che è sempre possibile indicare un ambito di visibilità diverso tra i due &amp;quot;accessor&amp;quot; (es. &lt;strong&gt;get;&lt;/strong&gt; con visibilità public e &lt;strong&gt;set;&lt;/strong&gt; con visibilità private)&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=601" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Visual+Studio+2008+/default.aspx">Visual Studio 2008 </category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/.NET+Framework+3.5/default.aspx">.NET Framework 3.5</category></item><item><title>IIS ASP .NET Tab missing</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/06/11/iis-asp-net-tab-missing.aspx</link><pubDate>Wed, 11 Jun 2008 08:54:08 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:429</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Vi è mai capitato che nella console di amministrazione di IIS per una certa web application sparisse il tab ASP .NET senza apparente motivo&amp;nbsp;?&lt;/p&gt; &lt;p&gt;A me sì, con tutte le conseguenze del caso, e senza che riuscissi a trovare una soluzione&amp;nbsp;nei forum e user group. Ora finalmente la soluzione esiste.&lt;/p&gt; &lt;p&gt;E&amp;#39; spiegata in modo dettagliato in questo &lt;a href="http://blogs.msdn.com/tom/archive/2008/04/17/asp-net-tab-missing.aspx"&gt;post&lt;/a&gt;, ed inoltre, come afferma l&amp;#39;autore del post, non esiste nessuna soluzione immediata che pone riparo a questa anomalia.&amp;nbsp;&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=429" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/ASP+.NET/default.aspx">ASP .NET</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Workaround/default.aspx">Workaround</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category></item><item><title>Community Days 2008, io ci sarò</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/06/05/community-days-2008-io-ci-sar-242.aspx</link><pubDate>Thu, 05 Jun 2008 14:51:50 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:418</guid><dc:creator>maurizio</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Da un po&amp;#39; di tempo non sto frequentando più assiduamente gli eventi delle varie community in generale. Ho sempre considerato questi eventi di grande importanza per ciò che riescono a trasmetterti e per&amp;nbsp;restare &amp;quot;a galla&amp;quot; nel campo informatico.&amp;nbsp;Ora inizio a sentirne la mancanza, e per questo motivo mi sono iscritto ai &lt;a href="http://www.communitydays.it/events/communitydays2008milano.aspx"&gt;Community Days 2008&lt;/a&gt;, evento imperdibile organizzato da &lt;a href="http://www.aspitalia.com/"&gt;Aspitalia&lt;/a&gt;, &lt;a href="http://www.guisa.org/"&gt;Guisa&lt;/a&gt; e &lt;a href="http://www.ugidotnet.org/"&gt;Ugidotnet&lt;/a&gt;, che si terrà a Milano i prossimo 9 e 10 luglio. Quindi, io ci sarò, e se qualcuno ha voglia di scambiare 4 chiacchere &amp;quot;tecnologiche&amp;quot; non esiti a contattarmi. Ci si vede là !&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=418" width="1" height="1"&gt;</description></item><item><title>Extentions Methods, come crearli</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/05/13/extentions-methods-come-crearli.aspx</link><pubDate>Tue, 13 May 2008 16:32:22 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:377</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Una delle più interessanti feature disponibili con la versione 3.5 del .NET Framework sono, a mio avviso, gli Extention Methods, caratteristica legata al linguaggio di programmazione che permette di aggiungere metodi personalizzati a qualsiasi classe/interfaccia del .NET Framework, incluse le classi usate come classi di base (un esempio per tutte: la classe object), &amp;nbsp;&amp;quot;estendendo&amp;quot; appunto il tipo originale. &lt;/p&gt; &lt;p&gt;In tal modo è possibile estendere il contratto pubblico &amp;nbsp;esposto dalla classe /interfaccia senza per questo ricorrere all&amp;#39;ereditarietà.&amp;nbsp;Utilizzando invece quest&amp;#39;ultima tecnica si era limitati alle solo classi ereditabili (non dichiarate &amp;quot;sealed&amp;quot;, come ad esempio la classe System.String), e soprattutto si correva il rischio di compromettere la consistenza dell&amp;#39;oggetto nel caso&amp;nbsp;in cui facendo&amp;nbsp;l&amp;#39;override&amp;nbsp;di un metodo ci si dimenticava di richiamare il corrispondente metodo della&amp;nbsp;classe di base.&lt;/p&gt; &lt;p&gt;A volte&amp;nbsp;molti programmatori&amp;nbsp;ricorrono all&amp;#39;ereditarietà per la semplice esigenza di aggiungere&amp;nbsp;propri metodi ad una classe, non certo per ridefinire il comportamento della classe di base.&lt;/p&gt; &lt;p&gt;Inoltre, l&amp;#39;Intellisense di Visual Studio fornisce pieno supporto per gli Extention Methods, visualizzandoli correttamente all&amp;#39;interno del tipo che estendono, con una icona personalizzata.&lt;/p&gt; &lt;p&gt;Guardando i numerosi esempi di &amp;quot;Extention methods&amp;quot; disponibili sulla rete ho notato però che questi metodi sono inclusi in una&amp;nbsp;classe avente un namespace custom, esempio Mycomponent.Extentions.StringExtentions per gli extention methods della classe String. Questo è a mio avviso un errore, in quanto così facendo l&amp;#39;Intellisense di Visual Studio non mostra gli Extention Methods di una certa classe se il relativo namespace non viene importato (cosa ovvia). Questo comportamento sicuramente disorienta, in quanto dato un certo tipo la lista dei suoi metodi visualizzata è parziale.&lt;/p&gt; &lt;p&gt;Quindi, gli Extention Methods di un tipo dovrebbero essere raggruppati un una classe inserita nello stesso namespace del tipo che estendono. Nell&amp;#39;esempio precedente per estendere la classe System.String la relativa classe statica dovrebbe essere inclusa nel namespace System.&lt;/p&gt; &lt;p&gt;In questo modo, importando un solo namespace sono visibili sia i metodi pubblici che i metodi estesi.&lt;/p&gt; &lt;p&gt;D&amp;#39;altronde, questo è il comportamento dello stesso Framework. Ad esempio tutti gli Extentions Methods della classe System.Data.DataTable sono racchiusi nella classe DataTableExtentions inserita nel namespace System.Data.&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=377" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/.NET+Framework+3.5/default.aspx">.NET Framework 3.5</category></item><item><title>Xobni - il tool di cui si sentiva la mancanza</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/05/07/xobni-il-tool-di-cui-si-sentiva-la-mancanza.aspx</link><pubDate>Wed, 07 May 2008 15:09:09 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:376</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Per chi utilizza Outlook in modo intensivo questo è davvero un must-have tool. Sto parlando di &lt;a href="http://www.xobni.com"&gt;Xobni,&lt;/a&gt; un add-in per Outlook 2003/2007 che permette di gestire i messaggi di posta in modo molto efficiente. Tra le sue caratteristiche segnalo:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Efficientissimo motore di ricerca di messaggi e/o persone con nutrito numero di opzioni;  &lt;li&gt;Gestione dei messaggi in thread;  &lt;li&gt;Estrazione automatica del numero di telefono del mittente dal messaggio di posta (spettacolare);  &lt;li&gt;Ricerca istantanea degli allegati legati ad un particolare mittente;  &lt;li&gt;Creazione di mail di invito&amp;nbsp;ad un evento&amp;nbsp;con estrazione automatica dei periodi di disponibilità dal proprio calendario;  &lt;li&gt;Statistiche estremamente dettagliate&amp;nbsp;sulle mail scambiate con ogni mittente;  &lt;li&gt;Navigazione della mailbox in base al profilo della persona;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;La feature che personalmente trovo estremamente comoda è la ricerca degli allegati legati ad una particolare persona. Quante volte si perde tempo a cercare un allegato di cui ci ricordiamo che la tal persona ce lo ha inviato senza ricordarci però in quale preciso messaggio ?&lt;/p&gt; &lt;p&gt;L&amp;#39;add-in è gratuito (particolare di una certa importanza), è attualmente scaricabile in versione beta con aggiornamento automatico alle versioni successive, è scritto da una azienda californiana, Xobni appunto, il cui significato è, curiosità, &amp;quot;Inbox&amp;quot; letto al contrario, richiede la presenza del .Net Framework 2.0 o successivo.&lt;/p&gt; &lt;p&gt;Davvero un ottimo tool.&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=376" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Office+development/default.aspx">Office development</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Varie/default.aspx">Varie</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Tools/default.aspx">Tools</category></item><item><title>101 LINQ Samples</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/04/23/101-linq-samples.aspx</link><pubDate>Wed, 23 Apr 2008 15:51:53 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:368</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Se lavorate con LINQ, questa pagina&amp;nbsp;è utile averla sempre a portata di mouse.&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://msdn2.microsoft.com/en-us/vcsharp/aa336746.aspx"&gt;101 LINQ Samples&lt;/a&gt;&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=368" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Visual+Studio+2008+/default.aspx">Visual Studio 2008 </category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/.NET+Framework+3.5/default.aspx">.NET Framework 3.5</category></item><item><title>ALT.NET Geek code</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/04/23/alt-net-geek-code.aspx</link><pubDate>Wed, 23 Apr 2008 15:38:24 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:367</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;em&gt;&lt;font face="Arial"&gt;&amp;quot;What&amp;#39;s it mean? Well, it&amp;#39;s a code that describes the &lt;strong&gt;processes and tools &lt;/strong&gt;that I like to use to develop&amp;quot;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Ecco il mio:&lt;/p&gt; &lt;div class="altnetgeekcode"&gt;&lt;a href="http://www.hanselman.com/altnetgeekcode/default.aspx?q=IOC(!?):IOC?:MOC(!?):MOC?:TDD(NU):TDD(Mb):SCC(Lame):SCC(!?):ORM(L2S):ORM(L2E):ORM(!):XPP(-):DDD(+):JSL(MS):CIS(!?):GoF(S):GoF(Sn)"&gt;IOC(!?):IOC?:MOC(!?):MOC?:TDD(NU):TDD(Mb):SCC(Lame):SCC(!?):ORM(L2S):ORM(L2E):ORM(!):XPP(-):DDD(+):JSL(MS):CIS(!?):GoF(S):GoF(Sn)&lt;/a&gt;&lt;/div&gt; &lt;div class="altnetgeekcode"&gt;&amp;nbsp;&lt;/div&gt; &lt;div class="altnetgeekcode"&gt;&lt;a href="http://www.hanselman.com/blog/ALTNETGeekCodeShouldYouCareAboutTheseALTNETGuys.aspx"&gt;Leggi tutto alla fonte&lt;/a&gt;&lt;/div&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=367" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Varie/default.aspx">Varie</category></item><item><title>Problemi di performance in Visual Studio 2008</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/04/18/problemi-di-performance-in-visual-studio-2008.aspx</link><pubDate>Fri, 18 Apr 2008 09:33:01 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:363</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Ero praticamente certo che sarebbe uscita&amp;nbsp;la hotfix giusta per me&amp;nbsp;riguardante Visual Studio 2008.&lt;/p&gt; &lt;p&gt;Negli ultimi tempi ho sperimentato in prima persona rallentamenti eccessivi e chiaramente molto fastidiosi nell&amp;#39;utilizzo di alcune funzionalità dell&amp;#39;IDE e precisamente:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Passando alla vista Design di una Web Form;&lt;/li&gt; &lt;li&gt;Passando alla vista Html Source di una Web Form;&lt;/li&gt; &lt;li&gt;Compilando un progetto web di grosse dimensioni;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Oggi ho scoperto che da pochissimo tempo è disponibile una &lt;a href="http://support.microsoft.com/?scid=kb%3Ben-us%3B946581&amp;amp;x=11&amp;amp;y=11"&gt;hotfix&lt;/a&gt; che risolve tutti e tre i problemi sopradescritti. &lt;/p&gt; &lt;p&gt;&lt;a href="http://code.msdn.microsoft.com/KB946581/Release/ProjectReleases.aspx?ReleaseId=854"&gt;Link per il download.&lt;/a&gt;&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=363" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Workaround/default.aspx">Workaround</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Visual+Studio+2008+/default.aspx">Visual Studio 2008 </category></item><item><title>Oracle Data Provider for .NET</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/04/17/oracle-data-provider-for-net.aspx</link><pubDate>Thu, 17 Apr 2008 15:00:37 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:362</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Negli ultimi tempi mi è capitato spesso di lavorare su applicazioni che utilizzano Oracle come database piuttosto che Sql Server e, naturalmente, ho dovuto utilizzare nello strato di accesso ai dati le classi specifiche di Oracle, meglio note come Oracle Data Provider for .NET. Utilizzare queste classi significa avere a che fare con oggetti tipici di Oracle, es. gli Oracle data type, o i cursori utilizzati per contenere i resultset derivanti da una chiamata ad una store procedure, ecc.&lt;/p&gt; &lt;p&gt;Non avendo una esperienza significativa in Oracle ho sempre pensato che il supporto per .NET fosse alquanto limitato e ridotto all&amp;#39;essenziale,&amp;nbsp;&amp;nbsp;es.&amp;nbsp; aprire una connessione ed eseguire un comando SQL che ritorna un resultset.&amp;nbsp; Ma noto con piacere che mi sbagliavo. La versione 11.1.0.6.20 dell&amp;#39;ODP for .NET fornisce sia una &lt;a href="http://www.oracle.com/technology/tech/windows/odpnet/newfeatures.html#ODT"&gt;integrazione&lt;/a&gt; con l&amp;#39;ambiente Visual Studio&amp;nbsp; in versione 2005/2008, es. Server Explorer, wizards e designer, sia una integrazione con la piattaforma ASP .NET. Quest&amp;#39;ultima per me è la più interessante in quanto è possibile utilizzare alcuni providers &amp;nbsp;(argomento di cui ho già parlato in un mio &lt;a href="http://www.dotnetside.org/blogs/articoli/pages/Servizi-basati-su-Provider-Model-in-ASP.NET-2.0.aspx"&gt;articolo&lt;/a&gt; apparso sul sito dello user group &lt;a href="http://www.dotnetside.org/"&gt;DotNetSide&lt;/a&gt;) ed utilizzare come repository un database Oracle. Nello specifico i providers sono i seguenti:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Memberhip (gestione degli utenti e validazione)&lt;/li&gt; &lt;li&gt;Role (ruoli)&lt;/li&gt; &lt;li&gt;SiteMap (mappa del sito)&lt;/li&gt; &lt;li&gt;SessionState (&amp;nbsp;&amp;nbsp;la Sessione di una applicazione ASP .NET&amp;nbsp;)&lt;/li&gt; &lt;li&gt;Profile (profili degli utenti)&lt;/li&gt; &lt;li&gt;Web Event (informazioni circa lo &amp;quot;stato di salute&amp;quot; delle applicazione ASP .NET)&lt;/li&gt; &lt;li&gt;Web Part personalization (chi lavora con le WebParts può ora memorizzare le informazioni di personalizzazione in un db Oracle)&lt;/li&gt; &lt;li&gt;Cache Dependency&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Il supporto per il Cache Dependency Provider a mio avviso è il più interessante di tutti. Ho già avuto modo di utilizzare ed apprezzare questo meccanismo (invalidazione automatica&amp;nbsp;di un oggetto in cache a fronte di modifiche apportate a resultset memorizzati in un database mediante il meccanismo di notifica) su applicazioni basate su database SqlServer. Sarà sicuramente interessante e produttivo&amp;nbsp;poterlo utilizzare anche in quei contesti dove il database è Oracle.&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=362" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Visual+Studio+2005/default.aspx">Visual Studio 2005</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Sql+Server+2005/default.aspx">Sql Server 2005</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/ADO+.NET/default.aspx">ADO .NET</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/.NET+Framework+3.0/default.aspx">.NET Framework 3.0</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Visual+Studio+2008+/default.aspx">Visual Studio 2008 </category></item><item><title>Tools di comparazione files</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/04/02/tools-di-comparazione-files.aspx</link><pubDate>Wed, 02 Apr 2008 15:54:04 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:347</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Tra i tools che ogni buon sviluppatore dovrebbe possedere non può mancare quello forse più classico e scontato, ovvero un software che compara il contenuto di 2 files ed evidenzia le differenze.&lt;/p&gt; &lt;p&gt;A meno di non voler usare le funzionalità di comparazione presenti nei vari&amp;nbsp;software di controllo del codice sorgente, il compare di files è una operazione abbastanza frequente.&lt;/p&gt; &lt;p&gt;Ho provato vari tools di comparazione, quello che uso e che a mio parere è uno dei più validi (soprattutto perchè a free :)) è &lt;a href="http://sourcegear.com/diffmerge/downloads.html"&gt;DiffMerge&lt;/a&gt; ver. 3.1.0.&lt;/p&gt; &lt;p&gt;Oltre alla classica funzione di comparazione di 2 files con indicazione grafica delle differenze, questo software contiene utilissime feature quali: &lt;/p&gt; &lt;p&gt;a)&amp;nbsp;merging dei contenuti&amp;nbsp;operando su 3 files;&lt;/p&gt; &lt;p&gt;b) comparazione di 2 cartelle con indicazione dei files mancanti e dei files con contenuto diverso;&lt;/p&gt; &lt;p&gt;c) aggiunta di&amp;nbsp;un comodo menù contestuale in Windows Explorer per una rapida comparazione di files;&lt;/p&gt; &lt;p&gt;d) è multipiattaforma;&lt;/p&gt; &lt;p&gt;e) (già detto) è gratuito;&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=347" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Tools/default.aspx">Tools</category></item><item><title>PowerCommands for Visual Studio 2008</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/04/01/powercommands-for-visual-studio-2008.aspx</link><pubDate>Tue, 01 Apr 2008 14:40:35 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:346</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Ho installato già da un po&amp;#39; di tempo i &lt;a href="http://code.msdn.microsoft.com/PowerCommands/Release/ProjectReleases.aspx?ReleaseId=559" target="_blank"&gt;PowerCommands for Visual Studio 2008&lt;/a&gt; (una estensione dell&amp;#39;IDE per aggiungere funzionalità)&amp;nbsp;e devo dire che sono davvero utili. &lt;/p&gt; &lt;p&gt;Tra le funzionalità più interessanti segnalo:&lt;/p&gt; &lt;p&gt;-&lt;strong&gt;Remove and Sort Usings:&lt;/strong&gt; a livello di progetto, ordina gli statements using e rimuove automaticamente quelli inutilizzati (disponibile solo per progetti scritti in C#);&lt;/p&gt; &lt;p&gt;-&lt;strong&gt;Collapse projects:&lt;/strong&gt; come dice lo stesso nome, &amp;quot;collassa&amp;quot; uno o più items (non necessariamente progetti) per migliorare la visione d&amp;#39;insieme della solution;&lt;/p&gt; &lt;p&gt;-&lt;strong&gt;Edit Project File&lt;/strong&gt;: carica il file di progetto nell&amp;#39;editor (dopo aver scaricato il progetto stesso), fornendo la sintassi colorata di un file XML;&lt;/p&gt; &lt;p&gt;-&lt;strong&gt;Open Command Prompts:&lt;/strong&gt; apre il prompt dei comandi di Visual Studio a partire dal path fisico dell&amp;#39;item selezionato;&lt;/p&gt; &lt;p&gt;-&lt;strong&gt;Clear Recent Project List:&lt;/strong&gt; permette di eliminare tutti o alcuni progetti aperti di recente dalla lista. Se non ricordo male senza questo tool è necessario editare il registro per ottenere lo stesso risultato.&lt;/p&gt; &lt;p&gt;Il tool dispone di altri comandi interessanti.&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=346" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Tools/default.aspx">Tools</category></item><item><title>Tecnologia in evoluzione ed il suo utilizzo</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/04/01/tecnologia-in-evoluzione-ed-il-suo-utilizzo.aspx</link><pubDate>Tue, 01 Apr 2008 09:27:51 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:345</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;In questi giorni mi è capitato frequentemente di leggere su blogs e forum vari&amp;nbsp;commenti entusiastici sull&amp;#39;adozione delle ultime tecnologie appena sfornate - parlo di&amp;nbsp;Silverlight, Ajax e LINQ, le quali hanno&amp;nbsp;ormai preso prepotentemente piede nello sviluppo di applicazioni. Premesso che utilizzo anch&amp;#39;io sia Ajax che LINQ, ritengo che il tutto debba essere calato nel contesto opportuno di utilizzo, senza lasciarsi prendere troppo dall&amp;#39;entusiasmo come invece vedo che accade. Può sembrare scontato ma la realtà è ben diversa. Comprendo perfettamente che lo sviluppatore esperto e soprattutto&amp;nbsp;appassionato affronti le sfide tecnologiche&amp;nbsp;che molto frequentemente il nostro mestiere ci offre, con l&amp;#39;entusiasmo di un ragazzino, ma credo che ultimamente si stia un po&amp;#39; esagerando.&amp;nbsp;Sembra quasi che oggiogiorno ogni applicazione web debba essere necessariamente Ajax-enabled e sembra che LINQ to SQL, o meglio gli ORM in generale, abbiano sostituito di colpo l&amp;#39;utilizzo di strumenti per così dire tradizionali quali le store procedure, diventate improvvisamente uno strumento superato. Riflettendo un attimo, questo entusiasmo non è certo una novità nel mondo delle tecnologie software: come esempio non isolato,&amp;nbsp;ricordo che&amp;nbsp; successivamente all&amp;#39;introduzione dei web services tutti gli utilizzatori di software hanno adottato incondizionatamente questa tecnologia anche se le loro applicazioni non erano affatto interoperanti se non con sè stesse...L&amp;#39;unificazione del paradigma di sviluppo in funzione dei diversi contesti di utilizzo si è verificata solo con l&amp;#39;avvento di WCF. Accadrà lo stesso con le attuali tecnologie ?&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=345" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Pensieri/default.aspx">Pensieri</category></item><item><title>Messaggio di errore Ambiguous match found e httpParseException</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/03/17/messaggio-di-errore-ambiguous-match-found-e-httpparseexception.aspx</link><pubDate>Mon, 17 Mar 2008 12:58:15 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:338</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Scenario: web application&amp;nbsp;che utilizza la versione 1.1 di ASP .NET migrata direttamente alla versione 3.5. Dopo la migrazione su una delle pagine ASPX viene sollevato una&amp;nbsp;HttpParseException durante il caricamento della stessa. L&amp;#39;eccezione in questione, come si evince dal nome, viene generata dal runtime di ASP .NET quando il parsing di una pagina ASPX fallisce a runtime.&amp;nbsp;Il messaggio di errore recita &amp;quot;Ambiguous match&amp;nbsp;found&amp;quot;, e quindi non aiuta granchè.&amp;nbsp;La cosa curiosa è che l&amp;#39;eccezione non si verifica in ambiente di sviluppo&amp;nbsp;ma solo sulla versione di deploying dell&amp;#39;applicazione, quindi non è&amp;nbsp;&amp;quot;debuggabile&amp;quot; in Visual Studio 2008 ( a meno di non&amp;nbsp;effettuare un debug in remoto, cosa&amp;nbsp;quasi mai&amp;nbsp;possibile in ambiente di produzione)&amp;nbsp;, e quindi non è di facile risoluzione.&lt;/p&gt; &lt;p&gt;In questi casi la prima cosa che penso è: sicuramente altri developers sparsi per il mondo hanno già sperimentato lo stesso problema, quindi &amp;nbsp;mi metto a perlustrare blogs e forum e normalmente alla fine il problema si risolve !&lt;/p&gt; &lt;p&gt;E così è stato anche stavolta, anche se le cause di questa eccezione possono essere diverse e quindi non esiste una soluzione universalmente applicabile.&lt;/p&gt; &lt;p&gt;Alcune delle&amp;nbsp;cause che possono produrre una httpParseException sono, in ordine sparso:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;la pagina contiene un campo hidden che ha un ID con lo stesso nome di una variabile querystring usata dalla stessa pagina;&lt;/li&gt; &lt;li&gt;la pagina ha un controllo (non ascx) inserito nel file ASPX (e quindi inserito nella partial class non visibile), e nel code-behind della stessa è dichiarato un altro controllo protected con lo stesso nome;&lt;/li&gt; &lt;li&gt;la pagina contiene&amp;nbsp;un controllo ASCX con lo stesso nome di un controllo nativo ASP .NET;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Tutte queste situazioni generano evidentemente una ambiguità dei tipi, che porta all&amp;#39;eccezione.&lt;/p&gt; &lt;p&gt;Inoltre,&amp;nbsp;&amp;nbsp;effettuando un deploy del sito con l&amp;#39;opzione &amp;quot;non aggiornabile&amp;quot;, ovvero&amp;nbsp;deselezionando l&amp;#39;opzione &amp;quot;Allow this precompiled site to be updateable&amp;quot;, l&amp;#39;eccezione dovrebbe scomparire, salvo poi approfondire le sue cause e riabilitare nel caso l&amp;#39;opzione.&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=338" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/ASP+.NET/default.aspx">ASP .NET</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Visual+Studio+2008+/default.aspx">Visual Studio 2008 </category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category></item><item><title>Partial rendering troubleshooting</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/03/13/partial-rendering-troubleshooting.aspx</link><pubDate>Thu, 13 Mar 2008 14:24:00 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:337</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Regola importante: l&amp;#39;update parziale di una pagina ASP .NET 2.0 (o successivi)&amp;nbsp;attraverso l&amp;#39;UpdatePanel di Ajax non funziona in presenza di questo tag nel file di configurazione dell&amp;#39;applicazione (o nel machine.config):&lt;/p&gt; &lt;p&gt;&amp;lt;xhtmlConformance mode=&amp;quot;Legacy&amp;quot;/&amp;gt;&lt;/p&gt; &lt;p&gt;Infatti, con questa impostazione la proprietà &amp;quot;SupportPartialRendering&amp;quot; dell&amp;#39;oggetto ScriptManager ritorna il valore false.&lt;/p&gt; &lt;p&gt;Il tag in questione imposta la modalità di rendering dei controlli, es.:&amp;nbsp; in modalità compatibile XHTML (mode=&amp;quot;Transitional&amp;quot; o &amp;quot;Strict&amp;quot;) oppure no (mode=&amp;quot;Legacy&amp;quot;). &lt;/p&gt; &lt;p&gt;In ASP .NET 1.1 i controlli subivano un rendering non XHTML compatibile, e questo comportamento è stato modificato in ASP .NET 2.0, che invece effettua il rendering XHTML compliant. Questo significa che se si migra una applicazione scritta con la versione 1.1 del .NET Framework ad una versione più recente, il wizard di migrazione imposta l&amp;#39;xhtml conformance mode in modalità Legacy, provocando di fatto il mancato funzionamento del partial rendering. Per risolvere il problema è sufficiente impostare il tag mode a &amp;quot;Transitional&amp;quot; (valore di default)&amp;nbsp;oppure &amp;quot;Strict&amp;quot;, oppure rimuovere il nodo in modo tale da assegnargli il valore&amp;nbsp; di default, es.:&lt;/p&gt; &lt;p&gt;&amp;lt;xhtmlConformance mode=&amp;quot;Transitional&amp;quot;/&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=337" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/ASP+.NET/default.aspx">ASP .NET</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/ASP+.NET+Ajax/default.aspx">ASP .NET Ajax</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category></item><item><title>Opportunità di lavoro</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/02/29/opportunit-224-di-lavoro.aspx</link><pubDate>Fri, 29 Feb 2008 12:54:51 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:323</guid><dc:creator>maurizio</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;/p&gt; &lt;p&gt;Interessante opportunità di lavoro su Milano:  &lt;p&gt;importante azienda cerca programmatore/programmatrice senior C# con buona conoscenza .NET Framework, ASP .NET e Oracle.  &lt;p&gt;Offresi contratto di assunzione e/o di consulenza.  &lt;p&gt;Titolo preferenziale: conoscenza del .Framework 3.5 e di C# 3.0.  &lt;p&gt;Le persone eventualmente interessate possono contattarmi attraverso la form &lt;a href="http://xplayn.org/cs/blogs/maurizio/contact.aspx"&gt;contact&lt;/a&gt; di questo blog.&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=323" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/Varie/default.aspx">Varie</category></item><item><title>TextBox ReadOnly in .NET 2.0 e successivi</title><link>http://xplayn.org/cs/blogs/maurizio/archive/2008/02/26/textbox-readonly-in-net-2-0-e-successivi.aspx</link><pubDate>Tue, 26 Feb 2008 13:13:00 GMT</pubDate><guid isPermaLink="false">d74d3a5b-520c-4616-8b05-6f47b5efe742:321</guid><dc:creator>maurizio</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Il controllo TextBox di una web application dispone della proprietà ReadOnly che, ovviamente, impedisce l&amp;#39;interazione dell&amp;#39;utente con il controllo quando è impostata a True. &lt;/p&gt;
&lt;p&gt;Ma c&amp;#39;è un particolare&amp;nbsp;importantissimo da considerare: a partire dalla versione 2.0 del .NET Framework il contenuto di un textbox in modalità &amp;quot;ReadOnly&amp;quot; è inviato al server durante un postback della pagina, ma il server ignora questo valore; in altre parole il contenuto del&amp;nbsp;textbox viene perso durante un postback. Questo comportamento mira ad impedire&amp;nbsp;attacchi&amp;nbsp;alla sicurezza, che potrebbero modificare&amp;nbsp;un valore che dovrebbe essere mantenuto inalterato.&lt;/p&gt;
&lt;p&gt;La perdita del valore del textbox&amp;nbsp;può essere inaccettabile in certi contesti applicativi e potrebbe essere necessario&amp;nbsp;applicare il&amp;nbsp;comportamento in essere prima del&amp;nbsp;Framework 2.0. Per far ciò è necessario impostare&amp;nbsp;la proprietà ReadOnly come attributo del controllo, in questo modo:&lt;/p&gt;
&lt;p&gt;TextBox1.Attributes.Add(&amp;quot;readonly&amp;quot;,&amp;quot;readonly&amp;quot;)&lt;/p&gt;
&lt;p&gt;e non impostando a True la relativa proprietà.&lt;/p&gt;
&lt;p&gt;Così facendo il valore del textbox (ovvero la sua proprietà Text) viene inviato al server durante il postback ed è altresì disponibile per l&amp;#39;elaborazione.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;UPDATE: questo aggiornamento è, diciamo così, dovuto: il &amp;quot;copyright&amp;quot; di questa scoperta che ha portato via parecchio tempo prima di venirne a capo non è mio ma della mia collega di lavoro &lt;a class="" href="http://ines.zingarelli.biz/"&gt;Ines&lt;/a&gt;. Io ho solo raccolto il troubleshooting per aiutare altri programmatori come un tempo altri programmatori hanno aiutato me&lt;/p&gt;&lt;img src="http://xplayn.org/cs/aggbug.aspx?PostID=321" width="1" height="1"&gt;</description><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/.NET+Framework+1.0+_2F00_+1.1+_2F00_+2.0/default.aspx">.NET Framework 1.0 / 1.1 / 2.0</category><category domain="http://xplayn.org/cs/blogs/maurizio/archive/tags/ASP+.NET/default.aspx">ASP .NET</category></item></channel></rss>