<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>C#</title>
        <link>http://blogs.ugidotnet.org/NetArt/category/809.aspx</link>
        <description>C#</description>
        <language>it-IT</language>
        <copyright>Gabriele Gaggi</copyright>
        <generator>Subtext Version 2.1.0.3</generator>
        <item>
            <title>Gestione efficiente delle stringe</title>
            <link>http://blogs.ugidotnet.org/NetArt/archive/2005/09/29/27242.aspx</link>
            <description>&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;Segnalo quest'illuminante post del grande &lt;A title="" href="http://www.dotnet2themax.it/Team.aspx" target="" name=""&gt;Balena&lt;/A&gt;:&lt;/P&gt;&lt;FONT size=2&gt;&lt;A title="" href="http://www.dotnet2themax.it/blog/PermaLink,guid,750f4c9b-1ff4-4219-b9ee-df61621b0b36.aspx" target="" name=""&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;STRONG&gt;Usare il string intern pool per scrivere codice 
pi&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face=Tahoma size=2&gt;&lt;STRONG&gt;ù 
efficiente&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;/A&gt;IMHO tecnica assolutamente da adottare quando si manipolano grandi 
quantità di stringhe in memoria.&lt;/FONT&gt;&lt;FONT face=Tahoma size=2&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;/FONT&gt;
&lt;FONT face=Verdana size=2&gt;&lt;P&gt;&lt;A href="http://imhoproject.org"&gt;&lt;FONT face=Verdana size=1&gt;    powered by IMHO&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;!-- Powered by IMHO Instant Blogger Copyright (c) 2004 A.Boschin - http://www.elite.boschin.it --&gt;&lt;img src="http://blogs.ugidotnet.org/NetArt/aggbug/27242.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gabriele Gaggi</dc:creator>
            <guid>http://blogs.ugidotnet.org/NetArt/archive/2005/09/29/27242.aspx</guid>
            <pubDate>Thu, 29 Sep 2005 13:14:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/NetArt/archive/2005/09/29/27242.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/NetArt/comments/commentRss/27242.aspx</wfw:commentRss>
        </item>
        <item>
            <title>IE senza il peso di mshtml.dll</title>
            <link>http://blogs.ugidotnet.org/NetArt/archive/2005/03/31/13260.aspx</link>
            <description>&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;Segnalo &lt;A title="" href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=6151260c-89c7-4b9f-91ad-b467f6e62b07" target="" name=""&gt;questo controllo&lt;/A&gt; con licenza LGPL che consente di 
embeddare internet explorer senza doversi portare in giro la "pesante" 
mshtml.dll. Tra l'altro credo sia anche utilizzato nel progetto &lt;A title="" href="http://www.rssbandit.org/" target="" name=""&gt;RSS Bandit&lt;/A&gt;         
          
&lt;/P&gt;
&lt;P&gt;

&lt;/FONT&gt;
&lt;FONT face=Verdana size=2&gt;&lt;A href="http://imhoproject.org"&gt;&lt;FONT face=Verdana size=1&gt;powered by IMHO 1.2 with Emoticon Formatter&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;!-- Powered by IMHO Instant Blogger Copyright (c) 2004 A.Boschin - http://www.elite.boschin.it --&gt;&lt;img src="http://blogs.ugidotnet.org/NetArt/aggbug/13260.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gabriele Gaggi</dc:creator>
            <guid>http://blogs.ugidotnet.org/NetArt/archive/2005/03/31/13260.aspx</guid>
            <pubDate>Thu, 31 Mar 2005 11:46:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/NetArt/archive/2005/03/31/13260.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/NetArt/comments/commentRss/13260.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Embed Win32 resources in C# programs</title>
            <link>http://blogs.ugidotnet.org/NetArt/archive/2005/03/31/13243.aspx</link>
            <description>&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;Questa non la sapevo ed è stata una scoperta 
interessante e molto utile.&lt;/P&gt;
&lt;P&gt;Internet Explorer supporta diversi protocolli, tra cui il protocollo res (&lt;A title="" href="http://www.microsoft.com/mind/0199/cutting/cutting0199.asp" target="" name=""&gt;Qui&lt;/A&gt; un articolo interessante del lontano&amp;nbsp;gennaio 1999 
di &lt;A title="" href="http://blogs.ugidotnet.org/dinoes/" target="" name=""&gt;Dino 
Esposito&lt;/A&gt;). Il protocollo res consente di estrarre 
una risorsa Win32 da una dll o da un eseguibile. Quindi, se per esempio abbiamo 
un'applicazione che&amp;nbsp;ospita Internet Explorer (ad es. &lt;A title="" href="http://imhoproject.org" target="" name=""&gt;IMHO&lt;/A&gt;&amp;nbsp;&lt;IMG alt="Smile che strizza l'occhio" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/netart/811/o_wink_smile.gif"&gt;              
            
), possiamo dare in pasto al browser qualsiasi tipo di file senza 
renderlo facilmente fruibile e modificabile dall'utente (ad esempio un'immagine, un 
foglio di stile, del codice javascript). Questo semplicemente linkando la 
risorsa con la seguente sintassi:&lt;/P&gt;
&lt;P&gt;res://[posizioneFisicaDelFileContenenteLaRisorsa]/[TipoDiRisorsa]/[NomeDellaRisorsa]&lt;/P&gt;
&lt;P&gt;Quindi, ad esempio:&lt;/P&gt;
&lt;P&gt;&amp;lt;img src="res://c:\Programmi\MioProgramma\Sample.dll/GIF/Logo.gif"&amp;gt;&lt;/P&gt;
&lt;P&gt;Rimane solo una questione... come includere una risorsa Win32 in un 
eseguibile/assembly .net?&lt;/P&gt;
&lt;P&gt;Vi sono tre strade:&lt;/P&gt;
&lt;OL&gt;
  &lt;LI&gt;Creando un file RES con il Resource Compiler e 
  includendolo nell'exe/dll con il parametro di compilazione /win32res 
  &lt;LI&gt;Aprendo l'eseguibile/assembly con visual studio 
  (Resource Editor) e aggiungendo le risorse 
  &lt;LI&gt;Utilizzando un software free come suggerito da questo &lt;A title=""   href="http://www.codeproject.com/csharp/embedwin32resources.asp" target=""   name=""&gt;articolo&lt;/A&gt;&amp;nbsp;(del lontano dicembre 2002... ma dove sono stato 
  tutto questo tempo?!?)&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Personalmente, dopo aver provato la seconda (il resources 
editor di vs&amp;nbsp;risulta poco funzionale), ho optato per la terza ipotesi.&lt;/P&gt;
&lt;/FONT&gt;
&lt;FONT face=Verdana size=2&gt;&lt;P&gt;&lt;A href="http://imhoproject.org"&gt;&lt;FONT face=Verdana size=1&gt;powered by IMHO 1.2 with Emoticon Formatter&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;!-- Powered by IMHO Instant Blogger Copyright (c) 2004 A.Boschin - http://www.elite.boschin.it --&gt;&lt;img src="http://blogs.ugidotnet.org/NetArt/aggbug/13243.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gabriele Gaggi</dc:creator>
            <guid>http://blogs.ugidotnet.org/NetArt/archive/2005/03/31/13243.aspx</guid>
            <pubDate>Thu, 31 Mar 2005 06:41:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/NetArt/archive/2005/03/31/13243.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/NetArt/comments/commentRss/13243.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Utilizzare assembly sparsi nel filesystem</title>
            <link>http://blogs.ugidotnet.org/NetArt/archive/2005/03/21/12701.aspx</link>
            <description>&lt;FONT face=Verdana&gt;
&lt;P&gt;&lt;FONT size=2&gt;Problema: il nostro codice utilizza un assembly che non risiede n&amp;#232; nella directory dell'eseguibile n&amp;#232; in una sua sottodirectory (Infatti se di sottodirectory si trattasse&amp;nbsp;sarebbe sufficiente utilizzare il metodo System.AppDomain.CurrentDomain.AppendPrivatePath).&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Soluzione:&amp;nbsp;utilizzare un file di configurazione.&lt;BR&gt;&lt;BR&gt;Aggiungiamo un file di configurazione al nostro progetto.&amp;nbsp;Per automatizzare&amp;nbsp;la build&amp;nbsp;aggiungiamo la seguente direttiva post-build alle propriet&amp;#224; di progetto:&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;copy&amp;nbsp;app.config&amp;nbsp;"$(TargetPath).config"&lt;BR&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;(Chiss&amp;#224; perch&amp;#232; vs non lo fa da se)&lt;BR&gt;&lt;BR&gt;Nel file config aggiungiamo quindi la sezione necessaria per linkare gli assembly:&lt;/FONT&gt; &lt;/P&gt;&lt;FONT size=2&gt;
&lt;DIV style="BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: black 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: black 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: gainsboro"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;&amp;lt;?xml&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #ff0000; FONT-FAMILY: Courier New"&gt;version&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;="1.0"&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #ff0000; FONT-FAMILY: Courier New"&gt;encoding&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;="utf-8"&amp;nbsp;?&amp;gt;&lt;BR&gt;&amp;lt;configuration&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;runtime&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;assemblyBinding&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #ff0000; FONT-FAMILY: Courier New"&gt;xmlns&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;="urn:schemas-microsoft-com:asm.v1"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;dependentAssembly&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;assemblyIdentity&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #ff0000; FONT-FAMILY: Courier New"&gt;name&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;="AssemblyName"&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #ff0000; FONT-FAMILY: Courier New"&gt;culture&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;="neutral"&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #ff0000; FONT-FAMILY: Courier New"&gt;publicKeyToken&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;="ab9f21381c07889c"&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #8b0000; FONT-FAMILY: Courier New"&gt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;codeBase&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #ff0000; FONT-FAMILY: Courier New"&gt;version&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;="1.0.0.0"&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #ff0000; FONT-FAMILY: Courier New"&gt;href&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;="FILE://c:/Programmi/myAssembly/AssemblyName.dll"&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #8b0000; FONT-FAMILY: Courier New"&gt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #8b0000; FONT-FAMILY: Courier New"&gt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;dependentAssembly&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #8b0000; FONT-FAMILY: Courier New"&gt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;assemblyBinding&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #8b0000; FONT-FAMILY: Courier New"&gt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;runtime&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;lt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #8b0000; FONT-FAMILY: Courier New"&gt;/&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;configuration&amp;gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=2&gt;Come si vede &amp;#232; necessario indicare anche la publicKeyToken. Per estrarla possiamo fare uso dell'utility sn con il parametro -T. &lt;BR&gt;&lt;BR&gt;Ok... questo&amp;nbsp;&amp;#232; tutto nel caso in cui&amp;nbsp;l'assembly lo referenziamo regolarmente, se invece l'assembly lo carichiamo con un Assembly.Load senza fornire il nome completo dell'assembly (senza versione, chiave e cultura)?&lt;BR&gt;In questo caso dobbiamo fare uso di un ulteriore&amp;nbsp;nodo (qualifyAssembly)&amp;nbsp;nel file config sempre sotto assemblyBinding:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;SPAN style="FONT-SIZE: 8pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;&amp;lt;qualifyAssembly&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 8pt; COLOR: #ff0000; FONT-FAMILY: Courier New"&gt;partialName&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 8pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;="AssemblyName"&amp;nbsp;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 8pt; COLOR: #ff0000; FONT-FAMILY: Courier New"&gt;fullName&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 8pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;="AssemblyName,version=1.0.0.0,publicKeyToken=ab9f21381c07889c,culture=neutral"&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 8pt; COLOR: #8b0000; FONT-FAMILY: Courier New"&gt;/&lt;/SPAN&gt;&lt;/FONT&gt;&lt;SPAN style="FONT-SIZE: 8pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;&lt;FONT size=1&gt;&amp;gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;
&lt;P&gt;&lt;/SPAN&gt;&lt;FONT size=2&gt;Ovviamente&amp;nbsp;l'ideale &amp;#232; che la posizione della dll venga modificata all'interno del file config in fase di installazione del software. Per fare questo si potr&amp;#224; aggiungere al progetto una Installer class, farne l'override del metodo install ed in quella sezione modificare il file config trattandolo semplicemente come un xml. Infine nel progetto di setup non dobbiamo dimenticare di aggiungere la nostra Installer class alle Custom Action (ma questa &amp;#232; un'altra storia &lt;IMG alt="Smile che strizza l'occhio" src="/images/blogs_ugidotnet_org/netart/811/o_wink_smile.gif"&gt; ).&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Riferimenti:&lt;BR&gt;&lt;A title="" href="http://support.microsoft.com/default.aspx?scid=kb;en-us;837908" target="" name=""&gt;How to load an assembly at runtime that is located in a folder that is not the bin folder of the application&lt;/A&gt; &lt;BR&gt;&lt;A title="" href="http://msdn.microsoft.com/library/en-us/dv_vstechart/html/vbtchredirectingapplicationtotargetdifferentxmlwebserviceduringinstallation.asp" target="" name=""&gt;Redirecting an Application to Target a Different XML Web Service During Installation&lt;/A&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Ovviamente, come sempre, sono benvenuti commenti, suggerimenti, etc. &lt;IMG alt="Smile a bocca aperta" src="/images/blogs_ugidotnet_org/netart/811/o_teeth_smile.gif"&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;&lt;A href="http://imhoproject.org/"&gt;&lt;FONT face=Verdana size=1&gt;powered by IMHO 1.2 with Emoticon Formatter&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;!-- Powered by IMHO Instant Blogger Copyright (c) 2004 A.Boschin - http://www.elite.boschin.it --&gt;&lt;img src="http://blogs.ugidotnet.org/NetArt/aggbug/12701.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gabriele Gaggi</dc:creator>
            <guid>http://blogs.ugidotnet.org/NetArt/archive/2005/03/21/12701.aspx</guid>
            <pubDate>Mon, 21 Mar 2005 07:13:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/NetArt/archive/2005/03/21/12701.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/NetArt/comments/commentRss/12701.aspx</wfw:commentRss>
        </item>
        <item>
            <title>File di Trace in .Net</title>
            <link>http://blogs.ugidotnet.org/NetArt/archive/2005/02/25/11464.aspx</link>
            <description>&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;  Ieri mi sono scontrato con il problema di 
generare un file di trace di un'applicazione.&lt;/P&gt;
&lt;P&gt;Il mio pensiero è subito volato verso le &lt;A title="" href="http://msdn.microsoft.com/library/en-us/dnpag2/html/entlib.asp" target="" name=""&gt;Enterprise Library&lt;/A&gt;, finalmente l'occasione di 
utilizzare questo gioiello della scienza e della tecnica. Durante il workshop 
del 2 dicembre (&lt;A title="" href="http://www.ugidotnet.org/workshops/workshops_detail.aspx?ID=db538c59-1dc2-4d8b-ad95-9f7f8c1e949e" target="" name=""&gt;Architecture &amp;amp; Management&lt;/A&gt;) ero rimasto affascinato 
dagli Application Blocks, tanto (giustamente)&amp;nbsp;decantati dal nostro &lt;A title="" href="http://blogs.ugidotnet.org/lbarbieri/" target="" name=""&gt;&lt;a title="Lorenzo Barbieri @ UGIblogs!" href="http://blogs.ugidotnet.org/lbarbieri/" &gt;Lorenzo&lt;/a&gt;&lt;/A&gt;.&amp;nbsp;Dopo l'uscita della &lt;A title="" href="http://blogs.ugidotnet.org/lbarbieri/archive/2005/01/29/10062.aspx" target="" name=""&gt;versione 1.0&lt;/A&gt; delle&amp;nbsp;EL non vedevo l'ora di avere 
l'occasione per buttarmici sopra. Ma con il senno di poi mi rendo conto che 
l'occasione non era questa.&lt;/P&gt;
&lt;P&gt;Infatti,&amp;nbsp;man mano che&amp;nbsp;approfondivo 
l'argomento&amp;nbsp;mi rendevo sempre più conto che le EL sono eccezionali, ma nel 
mio caso era come utilizzare una bomba atomica per far fuori una mosca.&amp;nbsp;La 
maggior parte delle funzionalità offerte dal Logging Block erano superflue per 
il mio scopo. Dovevo solo scrivere un misero file di trace in locale in una 
posizione ben definita. Ripresomi dall'entusiasmo e&amp;nbsp;con fare 
sconsolato&amp;nbsp;(ancora una volta mi tocca rimandare l'uso delle EL &lt;IMG alt="Smile triste" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/netart/811/o_sad_smile.gif"&gt;     
            
 ) mi sono buttato sulla comodissima classe Trace del 
framework: &lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: black 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: black 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: gainsboro"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;Trace.Listeners.Add(&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;new&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;TextWriterTraceListener(&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;this&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;.mTraceFile));&lt;BR&gt;Trace.AutoFlush&amp;nbsp;=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;true&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;;&lt;BR&gt;...&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;if&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;(&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;this&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;.mWriteTrace)&amp;nbsp;Trace.WriteLine(message,&amp;nbsp;category);&lt;BR&gt;...&lt;BR&gt;~MiaClasse()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Trace.Close();&lt;BR&gt;}&lt;BR&gt;&lt;/DIV&gt;&lt;/SPAN&gt;
&lt;P&gt;
&lt;p&gt;Ho evitato volutamente l'uso dei TraceSwitch e del 
WriteLineIf dato che:&lt;/p&gt;
&lt;P&gt;&lt;EM&gt;You can minimize the performance penalty of instrumenting your 
application by using &lt;B&gt;If...Then&lt;/B&gt; statements instead of using 
&lt;B&gt;WriteLineIf&lt;/B&gt; statements. &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Fonte: &lt;A title="" href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdiagnosticstraceclasswritelineiftopic2.asp" target="" name=""&gt;Msdn - Trace.WriteLineIf Method &lt;/A&gt;     &lt;/P&gt;
&lt;P&gt;Che dire, la cosa nella sua banalità mi ha fatto riflettere. Spesso cadiamo 
nella trappola di dimenticare l'obiettivo e farci trascinare dal desiderio di 
utilizzare l'ultimo ritrovato perché ci incuriosisce, perché fa cool &lt;IMG alt="Smile a bocca aperta" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/netart/811/o_teeth_smile.gif"&gt; (La cosa vale anche nella vita di tutti i giorni, compriamo 
cellulari con più funzioni di un pc per poi usare il 10% di queste 
funzionalità). Altre volte vogliamo offrire di più di quanto il cliente ci ha 
chiesto, ed implementiamo di nostra iniziativa funzionalità che riteniamo 
utilissime (Ho cominciato ad essere cosciente di questa problematica dopo 
l'intervento dell'Agile &lt;A title="" href="http://blogs.ugidotnet.org/ABS/" target="" name=""&gt;Marco&lt;/A&gt; 
              
       al workshop di cui sopra).&lt;/P&gt;
&lt;P&gt;Quante volte, quindi, il nostro essere Tecno-Entusiasti ci allontana 
dall'obiettivo?&lt;/P&gt;
&lt;/FONT&gt;
&lt;FONT face=Verdana size=2&gt;&lt;A href="http://imhoproject.org"&gt;&lt;FONT face=Verdana size=1&gt;powered by IMHO 1.2 with Emoticon Formatter&lt;/FONT&gt;&lt;/A&gt;
&lt;P&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;!-- Powered by IMHO Instant Blogger Copyright (c) 2004 A.Boschin - http://www.elite.boschin.it --&gt;&lt;img src="http://blogs.ugidotnet.org/NetArt/aggbug/11464.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gabriele Gaggi</dc:creator>
            <guid>http://blogs.ugidotnet.org/NetArt/archive/2005/02/25/11464.aspx</guid>
            <pubDate>Fri, 25 Feb 2005 08:30:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/NetArt/archive/2005/02/25/11464.aspx#feedback</comments>
            <slash:comments>14</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/NetArt/comments/commentRss/11464.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Generare l'XSD dato l'XML</title>
            <link>http://blogs.ugidotnet.org/NetArt/archive/2005/02/11/10661.aspx</link>
            <description>&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;In caso di necessità di generare lo schema partendo da 
un'xml dato:&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: black 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: black 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: gainsboro"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;DataSet&amp;nbsp;ds&amp;nbsp;=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;new&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;DataSet();&lt;BR&gt;ds.ReadXml(@"c:\XmlOrigine.xml");&lt;BR&gt;ds.WriteXmlSchema(@"c:\Schema.xsd");&lt;BR&gt;&lt;/DIV&gt;&lt;/SPAN&gt;
&lt;p&gt;Molto banale. Ovviamente utilizzando i soliti memory 
stream è possibile fare il tutto in memoria senza passare per il file system. &lt;/p&gt;
&lt;/FONT&gt;

&lt;FONT face=Verdana size=2&gt;&lt;P&gt;&lt;A href="http://imhoproject.org"&gt;&lt;FONT face=Verdana size=1&gt;powered by IMHO 1.2 with Emoticon Formatter&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;!-- Powered by IMHO Instant Blogger Copyright (c) 2004 A.Boschin - http://www.elite.boschin.it --&gt;&lt;img src="http://blogs.ugidotnet.org/NetArt/aggbug/10661.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gabriele Gaggi</dc:creator>
            <guid>http://blogs.ugidotnet.org/NetArt/archive/2005/02/11/10661.aspx</guid>
            <pubDate>Fri, 11 Feb 2005 10:46:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/NetArt/archive/2005/02/11/10661.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/NetArt/comments/commentRss/10661.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Microsoft Win32 to Microsoft .NET Framework API Map</title>
            <link>http://blogs.ugidotnet.org/NetArt/archive/2005/02/08/10477.aspx</link>
            <description>&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;Per chi è abituato ad utilizzare le Api segnalo un &lt;A title="" href="http://msdn.microsoft.com/library/en-us/dndotnet/html/win32map.asp" target="" name=""&gt;interessante articolo&lt;/A&gt; che mappa le funzioni offerte dalle 
api alle corrispondenti&amp;nbsp;classi/metodi presenti nel framework (Se 
esistono).&lt;/P&gt;
&lt;P&gt;Fonte:&lt;A href="http://blogs.devleap.com/mauriziot/archive/2005/02/08/2643.aspx"&gt;Win32 
API&lt;/A&gt;&lt;/P&gt;
&lt;/FONT&gt;
&lt;FONT face=Verdana size=2&gt;&lt;P&gt;&lt;A href="http://imhoproject.org"&gt;&lt;FONT face=Verdana size=1&gt;powered by IMHO 1.2 with Emoticon Formatter&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;!-- Powered by IMHO Instant Blogger Copyright (c) 2004 A.Boschin - http://www.elite.boschin.it --&gt;&lt;img src="http://blogs.ugidotnet.org/NetArt/aggbug/10477.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gabriele Gaggi</dc:creator>
            <guid>http://blogs.ugidotnet.org/NetArt/archive/2005/02/08/10477.aspx</guid>
            <pubDate>Tue, 08 Feb 2005 12:48:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/NetArt/archive/2005/02/08/10477.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/NetArt/comments/commentRss/10477.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Stampare una pagina html</title>
            <link>http://blogs.ugidotnet.org/NetArt/archive/2005/02/03/10265.aspx</link>
            <description>&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;Come stampare una pagina html senza far apparire la finestra di selezione della stampante?&lt;/P&gt;
&lt;P&gt;La soluzione che ho adottato comporta l'inclusione dell'activeX di Internet Explorer nel codice (Componente COM Microsoft Web Browser). Altre soluzioni fanno sempre apparire quella dannata printer dialog. &lt;IMG alt="Smile triste" src="/images/blogs_ugidotnet_org/netart/811/o_sad_smile.gif"&gt;&lt;/P&gt;
&lt;P&gt;Siccome l'html viene generato dinamicamente navigo sull'about:blank:&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: black 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: black 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: gainsboro"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;Object&amp;nbsp;n&amp;nbsp;=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;System.Reflection.Missing.Value;&lt;BR&gt;axWebBrowser1.Navigate("about:blank",&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;ref&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;n,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;ref&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;n,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;ref&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;n,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;ref&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;n);&lt;BR&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;Sull'evento NavigateComplete2 vado ad iniettare l'html dentro l'oggetto:&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: black 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: black 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: gainsboro"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;private&amp;nbsp;void&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;axWebBrowser1_NavigateComplete2(&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;object&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;sender&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;,&amp;nbsp;AxSHDocVw.DWebBrowserEvents2_NavigateComplete2Event&amp;nbsp;e)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;object&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;[]&amp;nbsp;psa&amp;nbsp;=&amp;nbsp;{&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;this&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;.Html};&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//&amp;nbsp;Variabile&amp;nbsp;Stringa&amp;nbsp;che&amp;nbsp;contiene&amp;nbsp;l'html&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;mshtml.IHTMLDocument2&amp;nbsp;hDoc2&amp;nbsp;=&amp;nbsp;(mshtml.IHTMLDocument2)axWebBrowser1.Document;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hDoc2.clear();&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//&amp;nbsp;Pulisco&amp;nbsp;la&amp;nbsp;pagina&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;hDoc2.write(psa);&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//&amp;nbsp;Scrivo&amp;nbsp;il&amp;nbsp;contenuto&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;hDoc2.close();&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//&amp;nbsp;Chiudo&amp;nbsp;la&amp;nbsp;pagina&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;}&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;/SPAN&gt;
&lt;P&gt;A questo punto chiamo il seguente metodo per stampare la pagina senza richiesta di selezione da parte dell'utente (stampante di default). Il terzo parametro della ExecWB serve per far si che il thread resti in attesa fino a completamento della stampa, in questo modo siamo certi che all'uscita da questo metodo l'oggetto &amp;#232; eliminabile senza problemi perch&amp;#232; ha completato il suo lavoro:&lt;/P&gt;
&lt;DIV style="BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: black 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: black 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: gainsboro"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;public&amp;nbsp;void&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;Print()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Object&amp;nbsp;o&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;&lt;FONT color=#000000&gt;System.Reflection.Missing.Value&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;short&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;flag&amp;nbsp;=&amp;nbsp;0x02;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;object&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;printWait&amp;nbsp;=&amp;nbsp;(&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;object&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;)flag;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;int&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;stat&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;nbsp;0;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;int&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;enabled&amp;nbsp;=&amp;nbsp;0;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;enabled&amp;nbsp;=&amp;nbsp;((&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;int&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;)SHDocVw.OLECMDF.OLECMDF_ENABLED&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+&amp;nbsp;(&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;int&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;)SHDocVw.OLECMDF.OLECMDF_SUPPORTED);&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//&amp;nbsp;Attendo&amp;nbsp;che&amp;nbsp;il&amp;nbsp;servizio&amp;nbsp;richiesto&amp;nbsp;sia&amp;nbsp;disponibile&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;do&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Application.DoEvents();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stat&amp;nbsp;=&amp;nbsp;(&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;int&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;)axWebBrowser1.QueryStatusWB(SHDocVw.OLECMDID.OLECMDID_PRINT);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;while&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;(stat&amp;nbsp;!=&amp;nbsp;enabled);&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;axWebBrowser1.ExecWB(SHDocVw.OLECMDID.OLECMDID_PRINT&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;,&amp;nbsp;SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;ref&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;printWait&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;,&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;ref&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;o);&lt;BR&gt;}&lt;BR&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;/SPAN&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;that's all folks&lt;/P&gt;
&lt;P&gt;&lt;A href="http://imhoproject.org/"&gt;&lt;FONT face=Verdana size=1&gt;powered by IMHO 1.2 with Emoticon Formatter&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;!-- Powered by IMHO Instant Blogger Copyright (c) 2004 A.Boschin - http://www.elite.boschin.it --&gt;&lt;img src="http://blogs.ugidotnet.org/NetArt/aggbug/10265.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gabriele Gaggi</dc:creator>
            <guid>http://blogs.ugidotnet.org/NetArt/archive/2005/02/03/10265.aspx</guid>
            <pubDate>Thu, 03 Feb 2005 08:38:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/NetArt/archive/2005/02/03/10265.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/NetArt/comments/commentRss/10265.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Server COM Singleton... Allarme rientrato</title>
            <link>http://blogs.ugidotnet.org/NetArt/archive/2005/01/20/9775.aspx</link>
            <description>&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;Una dura giornata di lavoro basato su ricerca (grande 
&lt;a title="Google" href="http://www.google.com" target="_blank"&gt;Google&lt;/a&gt;) e test a manetta ha portato i suoi frutti. &lt;IMG alt="Pollice Su" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/netart/811/o_thumbs_up.gif"&gt;&lt;/P&gt;
&lt;P&gt;La soluzione (come sempre) non era poi così difficile come sembrava. Mi ha 
portato sulla buona strada il &lt;A href="http://blogs.msdn.com/adioltean/archive/2004/06/18/159479.aspx"&gt;post&lt;/A&gt; 
di un &lt;A href="http://blogs.msdn.com/adioltean/"&gt;blog&lt;/A&gt; (Modificando l'esempio 
riportato si riesce ad ottenere un server com singleton che non sia un 
servizio). Probabilmente non sarà l'unica soluzione, e forse nemmeno la 
migliore... ma intanto una soluzione esiste!! &lt;IMG alt="Smile a bocca aperta" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/netart/811/o_teeth_smile.gif"&gt;&lt;/P&gt;
&lt;P&gt;Prossimamente&amp;nbsp;seguirà un articolo sul tema (nonostante l'interesse per 
l'argomento non&amp;nbsp;appaia particolarmente sentito... 40 Web Views e 4 commenti 
off-topic &lt;IMG alt="Smile che strizza l'occhio" src="http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/netart/811/o_wink_smile.gif"&gt;&amp;nbsp;alla 
mia precedente disperata &lt;A href="http://blogs.ugidotnet.org/netart/posts/9703.aspx"&gt;richiesta di 
aiuto&lt;/A&gt;)&lt;/P&gt;
&lt;P&gt;&lt;A href="http://sourceforge.net/projects/imho10"&gt;&lt;FONT face=Verdana size=1&gt;powered by IMHO 1.1 with Emoticon Formatter&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/FONT&gt;&lt;!-- Powered by IMHO Instant Blogger Copyright (c) 2004 A.Boschin - http://www.elite.boschin.it --&gt;&lt;img src="http://blogs.ugidotnet.org/NetArt/aggbug/9775.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gabriele Gaggi</dc:creator>
            <guid>http://blogs.ugidotnet.org/NetArt/archive/2005/01/20/9775.aspx</guid>
            <pubDate>Thu, 20 Jan 2005 18:14:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/NetArt/archive/2005/01/20/9775.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/NetArt/comments/commentRss/9775.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Server COM Singleton... HELP!!</title>
            <link>http://blogs.ugidotnet.org/NetArt/archive/2005/01/19/9703.aspx</link>
            <description>&lt;FONT face=Verdana size=2&gt;
&lt;P&gt;Ok, cedo. &lt;IMG src="/images/blogs_ugidotnet_org/netart/811/o_sad_smile.gif"&gt;&lt;/P&gt;
&lt;P&gt;Ho capito come creare un buon server com in C#, eventi compresi. Ma come faccio a fare in modo che il server com sia singleton?&lt;/P&gt;
&lt;P&gt;Ogni minimo spiraglio di luce &amp;#232; gradito!! &lt;IMG src="/images/blogs_ugidotnet_org/netart/811/o_regular_smile.gif"&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://sourceforge.net/projects/imho10"&gt;&lt;FONT face=Verdana size=1&gt;powered by IMHO 1.1 with Emoticon Formatter&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt; &lt;/P&gt;&lt;/FONT&gt;&lt;!-- Powered by IMHO Instant Blogger Copyright (c) 2004 A.Boschin - http://www.elite.boschin.it --&gt;&lt;img src="http://blogs.ugidotnet.org/NetArt/aggbug/9703.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Gabriele Gaggi</dc:creator>
            <guid>http://blogs.ugidotnet.org/NetArt/archive/2005/01/19/9703.aspx</guid>
            <pubDate>Wed, 19 Jan 2005 17:48:00 GMT</pubDate>
            <comments>http://blogs.ugidotnet.org/NetArt/archive/2005/01/19/9703.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://blogs.ugidotnet.org/NetArt/comments/commentRss/9703.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>
