<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/"><channel><title>C# &amp; VB</title><link>http://community.visual-basic.it/rudy/category/341.aspx</link><description>Tutto ciò che riguarda C# e VB</description><managingEditor>Rudy Azzan</managingEditor><dc:language>it-IT</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>Rudy Azzan</dc:creator><title>Determinare se SqlServer &amp;egrave; installato</title><link>http://community.visual-basic.it/rudy/archive/2007/06/13/19604.aspx</link><pubDate>Wed, 13 Jun 2007 12:29:00 GMT</pubDate><guid>http://community.visual-basic.it/rudy/archive/2007/06/13/19604.aspx</guid><wfw:comment>http://community.visual-basic.it/rudy/comments/19604.aspx</wfw:comment><comments>http://community.visual-basic.it/rudy/archive/2007/06/13/19604.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://community.visual-basic.it/rudy/comments/commentRss/19604.aspx</wfw:commentRss><trackback:ping>http://community.visual-basic.it/rudy/services/trackbacks/19604.aspx</trackback:ping><description>&lt;p&gt;&lt;span class="prima"&gt;P&lt;/span&gt;er determinare via codice se sul vostro computer sia installato SqlServer, basta controllare la seguente chiave di registro:&lt;/p&gt;&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;//C#&lt;/span&gt;
&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; IsSqlServerInstalled()
{
    &lt;span class="kwrd"&gt;bool&lt;/span&gt; isInstalled = &lt;span class="kwrd"&gt;false&lt;/span&gt;;
    RegistryKey regSql = Registry.LocalMachine.OpenSubKey(&lt;span class="str"&gt;@"SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion"&lt;/span&gt;);
    &lt;span class="kwrd"&gt;if&lt;/span&gt; (regSql.GetValue(&lt;span class="str"&gt;"CurrentVersion"&lt;/span&gt;) != &lt;span class="kwrd"&gt;null&lt;/span&gt;)
    {
        isInstalled = &lt;span class="kwrd"&gt;true&lt;/span&gt;;
    }
    &lt;span class="kwrd"&gt;return&lt;/span&gt; isInstalled;
}&lt;/pre&gt;&lt;br&gt;&lt;br&gt;&lt;pre class="csharpcode"&gt;&lt;span class="rem"&gt;'VB&lt;/span&gt;
&lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Shared&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; IsSqlServerInstalled() &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Boolean&lt;/span&gt;
    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; isInstalled &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Boolean&lt;/span&gt; = &lt;span class="kwrd"&gt;False&lt;/span&gt;

    &lt;span class="kwrd"&gt;Dim&lt;/span&gt; regSql &lt;span class="kwrd"&gt;As&lt;/span&gt; RegistryKey = Registry.LocalMachine.OpenSubKey(&lt;span class="str"&gt;"SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion"&lt;/span&gt;)

    &lt;span class="kwrd"&gt;If&lt;/span&gt; regSql.GetValue(&lt;span class="str"&gt;"CurrentVersion"&lt;/span&gt;) IsNot &lt;span class="kwrd"&gt;Nothing&lt;/span&gt; &lt;span class="kwrd"&gt;Then&lt;/span&gt;
        isInstalled = &lt;span class="kwrd"&gt;True&lt;/span&gt;
    &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt;

    &lt;span class="kwrd"&gt;Return&lt;/span&gt; isInstalled
&lt;span class="kwrd"&gt;End&lt;/span&gt; Function&lt;/pre&gt;&lt;img src ="http://community.visual-basic.it/rudy/aggbug/19604.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Rudy Azzan</dc:creator><title>DXCore - Plugin Central: Un mix di semplici add-ins</title><link>http://community.visual-basic.it/rudy/archive/2007/05/09/19235.aspx</link><pubDate>Wed, 09 May 2007 00:20:00 GMT</pubDate><guid>http://community.visual-basic.it/rudy/archive/2007/05/09/19235.aspx</guid><wfw:comment>http://community.visual-basic.it/rudy/comments/19235.aspx</wfw:comment><comments>http://community.visual-basic.it/rudy/archive/2007/05/09/19235.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://community.visual-basic.it/rudy/comments/commentRss/19235.aspx</wfw:commentRss><trackback:ping>http://community.visual-basic.it/rudy/services/trackbacks/19235.aspx</trackback:ping><description>&lt;p&gt;&lt;span class="prima"&gt;C&lt;/span&gt;ontinuo a parlare di DXCore, presentando questa collezione di add-ins 
che potete trovare qui:
&lt;a href="http://sourceforge.net/project/showfiles.php?group_id=129849" target="_blank"&gt;"DXCore Plugin Central"&lt;/a&gt;&lt;br /&gt;
Questi add-ins sono scritti in VB.NET ed essendo molto semplici e dotati di sorgenti, sono un ottimo punto di partenza per chi 
voglia imparare come funziona il framework DXCore.&lt;/p&gt;
&lt;p&gt;Nel file zip che scaricherete trovate i seguenti progetti:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CR_ClipboardRing&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Questo add-ins vi permette (dopo che avete associato le action: 
CycleClipboardForward e CycleClipboardBackward ad uno shortcut) di ciclare in 
avanti o indietro le ultime stringe da voi copiate in memoria (facendo copia o 
Ctrl+C) e inserirle nel punto in cui &amp;#232; posizionato il cursore in quel momento, 
sull&amp;#39;editor di testo di Visual-Studio.&lt;/p&gt;
&lt;p&gt;&lt;span class="style1"&gt;ERRORE :&lt;/span&gt;&lt;br /&gt;
File: ClipboardRingPlugIn.vb&lt;br /&gt;
Riga: 149 - l_Start = NativeMethods.ClientToScreen(CType(New 
DevExpress.CodeRush.Win32.HWND(l_TextView.Handle), IWin32Window), l_Start)&lt;br /&gt;
Motivo: Quando compilo da il seguente errore: Error 4 'ClientToScreen' is ambiguous because multiple kinds of members with this name exist 
in class &amp;#39;DevExpress.CodeRush.Win32.NativeMethods&amp;#39; C:\...\ClipboardRingPlugIn.vb 154 23 
CR_ClipboardRing.&lt;br /&gt;
Correzione: &lt;/p&gt;
&lt;p&gt;Deve esserci un errore a livello di librerie DevExpress.CodeRush.Common che ho corretto con 
il seguente workaround:&lt;/p&gt;
&lt;pre&gt;Dim obj As DevExpress.CodeRush.Win32.NativeMethods
Dim params() As Object = {CType(New DevExpress.CodeRush.Win32.HWND(l_TextView.Handle), _
 IWin32Window), l_Start}
l_Start = GetType(DevExpress.CodeRush.Win32.NativeMethods).InvokeMember(&amp;quot;ClientToScreen&amp;quot;, _
 Reflection.BindingFlags.InvokeMethod, Nothing, obj, params)&lt;/pre&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CR_HighlightTodo&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Questo add-ins, aggiunge una sezione al menu di configurazione delle opzioni 
di DevExpress: &amp;quot;Options...&amp;quot; &amp;gt; &amp;quot;Editor&amp;quot; &amp;gt; &amp;quot;Painting&amp;quot; &amp;gt; &amp;quot;HighLight Comments&amp;quot;. Qui potete inserire 
una stringa (o pi&amp;#249;) nella textbox &amp;quot;Comment Qualifier&amp;quot; (&amp;quot;ES.: &amp;quot;TODO:&amp;quot;) e un 
colore nella texbox in &amp;quot;Color comment&amp;quot; (ES.: &amp;quot;Red&amp;quot;). A questo punto per ogni 
riga di commento nel vostro codice in cui compare la parola inserita in &amp;quot;Comment 
Qualifier&amp;quot;, le successive parole saranno del colore indicato in &amp;quot;Color comment&amp;quot;. 
Tutto ci&amp;#242; &amp;#232; utile per evidenziare l&amp;#39;intero commento o delle vostre sezioni 
personalizzate.&lt;/p&gt;
&lt;img alt="Esempio con HighlightTodo" longdesc="Esempio con HighlightTodo" src="/images/community_visual-basic_it/rudy/338/o_CR_TODO_Sample.gif" width="295" height="35" /&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CR_Metrics&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Questo add-ins aggiunge una voce al menu DevExpress: &amp;quot;Tool Windows&amp;quot; &amp;gt; &amp;quot;Metrics&amp;quot; 
che selezionata apre una finestra. Se aprite un progetto e premete il bottone &amp;quot;Refresh&amp;quot; 
delle finestra di Metrics, saranno caricati e elaborati i dati delle varie 
classi. A questo punto si possono vedere classificati, funzione per funzione il numero di righe, la 
complessit&amp;#224; del codice, e della sua manutenzione. E&amp;#39;un add-ins utile e interessante 
per far saltare subito agli occhi funzioni troppo lunghe o complesse.&lt;/p&gt;
&lt;img alt="Esempio con Metrix" longdesc="Esempio con Metrix" src="/images/community_visual-basic_it/rudy/338/o_CR_Metrix_Sample.gif" width="592" height="258" /&gt;
&lt;p&gt;N.B.: Purtroppo Metrics funziona solo per C#.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CR_ShowColor&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;E&amp;#39;uno dei miei add-ins preferiti. Permette di vedere la parola &amp;quot;Color&amp;quot; nel 
editor di testo di Visual Studio, sottolineata da un linea dello stesso colore, 
il cui nome segue la suddeta parola dopo un punto. Es.: in &amp;quot;Color.Red&amp;quot;, &amp;quot;Color&amp;quot; 
&amp;#232; sottolineato in rosso. E&amp;#39;molto utile quando usate System.Drawing.&lt;/p&gt;
&lt;img alt="Esempio con ShowColor" longdesc="Esempio con ShowColor" src="/images/community_visual-basic_it/rudy/338/o_CR_ShowColor_Sample.gif" width="649" height="66" /&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CR_TrimTrailingSpaces&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Per ogni riga di un file modificato che chiudete da Visual Studio, viene controllato se ci 
sono degli spazi alla fine e vengono rimossi.&lt;/p&gt;
&lt;p&gt;&lt;span class="style1"&gt;ERRORE :&lt;/span&gt;&lt;br /&gt;
File: TrimTrailingSpacesPlugIn.vb&lt;br /&gt;
Riga: 81 - File.Delete(l_Filename &amp;amp; l_Filename &amp;amp; &amp;quot;.BeforeProcessing&amp;quot;)&lt;br /&gt;
Motivo: Non elimina il file corretto perch&amp;#232; c&amp;#39;&amp;#232; un errore di scrittura, l_Filename 
&amp;#232; ripeturo 2 volte.&lt;br /&gt;
Correzione: &lt;/p&gt;
&lt;p&gt;Al posto della 79 scrivo:&lt;/p&gt;
&lt;pre&gt;Dim newFile As String = l_Filename &amp;amp; &amp;quot;.BeforeProcessing&amp;quot;
If File.Exists(newFile) Then
 File.Delete(newFile)
End If&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Al posto della 81 scrivo:&lt;/p&gt;
&lt;pre&gt;File.Delete(newFile)&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Per tutti i progetti&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Per compilare i sorgenti, basta lanciare il file .sln del relativo progetto con Visual Studio, poi copiare la dll generata nella cartella dei plugins 
di DXCore che solitamente si trova in &amp;quot;C:\Programmi\Developer Express Inc\DXCore 
for Visual Studio .NET\2.0\Bin\Plugins&amp;quot;.&lt;/p&gt;
&lt;p&gt;Per approfondimenti sul framework DXCore leggete il mio articolo qui: &lt;A href="http://community.visual-basic.it/rudy/articles/18868.aspx" target="_self"&gt;"Introduzione a DXCore"&lt;/a&gt;.&lt;/p&gt;&lt;img src ="http://community.visual-basic.it/rudy/aggbug/19235.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Rudy Azzan</dc:creator><title>DXCore - UnusedVariables: Per non dimenticare niente in giro!</title><link>http://community.visual-basic.it/rudy/archive/2007/04/12/19044.aspx</link><pubDate>Thu, 12 Apr 2007 23:35:00 GMT</pubDate><guid>http://community.visual-basic.it/rudy/archive/2007/04/12/19044.aspx</guid><wfw:comment>http://community.visual-basic.it/rudy/comments/19044.aspx</wfw:comment><comments>http://community.visual-basic.it/rudy/archive/2007/04/12/19044.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://community.visual-basic.it/rudy/comments/commentRss/19044.aspx</wfw:commentRss><trackback:ping>http://community.visual-basic.it/rudy/services/trackbacks/19044.aspx</trackback:ping><description>&lt;p&gt;&lt;span class="prima"&gt;V&lt;/span&gt;i capita mai di dimenticare in giro per il codice delle variabili inutilizzate? Noo?!? Anche io lo pensavo ma questo add-in mi ha aperto gli occhi, infatti il  suo scopo principale è evidenziare le variabili nel codice delle nostre classi&amp;nbsp; che  non usiamo, e che quindi rimangono dimenticate, il tutto all&amp;#39;interno dell&amp;#39;editor  di testo dell&amp;#39;IDE. Usandolo ho notato anche che è comodo perchè permette di seguire un certo ordine  mentre si scrive il codice. Ti mette sempre in evidenza la variabile  che ti servirà per continuare a scrivere la funzione.&lt;/p&gt; &lt;p&gt;Questo add-in per Visual Studio è realizzato col framework di DXCore si chiama UnusedVariables e lo  potete trovare qui: &lt;a href="http://www.rorybecker.me.uk/UnusedVars.html" target="_blank"&gt;"UnusedVariables"&lt;/a&gt;&lt;br /&gt; Potete scaricarvi i file compilati oppure i sorgenti, per i quali basta lanciare il file .sln e ricompilare  il progetto con Visual Studio, poi copiare la dll generata nella cartella dei plugins  di DXCore che solitamente si trova in &amp;quot;C:\Programmi\Developer Express Inc\DXCore  for Visual Studio .NET\2.0\Bin\Plugins&amp;quot;.&lt;br /&gt; Inoltre vi occorre una libreria di supporto che si chiama&amp;nbsp;DX_Contrib e  potete trovarla qui &lt;a href="http://www.rorybecker.me.uk/DX_Contrib.html" target="_blank"&gt;"DX_Contrib"&lt;/a&gt;.  Questa libreria è interessante perchè è una collezione di funzioni e controlli  per lo sviluppo con DXCore. Anche essa va copiata nella cartella dei plugins  di DXCore.&lt;/p&gt; &lt;p&gt;UnusedVariables funziona abbastanza bene, avvolte il refresh sull&amp;#39;editor non è corretto e ci  sono alcuni bug gestiti da Visual Studio in background che rallentano l&amp;#39;IDE, ma  avendo un buon PC il tutto è sopportabile, altrimenti ci sono i sorgenti  scaricabili per modificare il tutto.&lt;/p&gt; &lt;p&gt;Per approfondimenti sul framework DXCore leggete il mio articolo qui: &lt;a href="http://community.visual-basic.it/rudy/articles/18868.aspx" target="_self"&gt;"Introduzione a DXCore"&lt;/a&gt;.&lt;/p&gt;&lt;img src ="http://community.visual-basic.it/rudy/aggbug/19044.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Rudy Azzan</dc:creator><title>DXCore - ClassCleaner: Mai più codice disordinato!</title><link>http://community.visual-basic.it/rudy/archive/2007/03/21/18871.aspx</link><pubDate>Wed, 21 Mar 2007 23:24:00 GMT</pubDate><guid>http://community.visual-basic.it/rudy/archive/2007/03/21/18871.aspx</guid><wfw:comment>http://community.visual-basic.it/rudy/comments/18871.aspx</wfw:comment><comments>http://community.visual-basic.it/rudy/archive/2007/03/21/18871.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://community.visual-basic.it/rudy/comments/commentRss/18871.aspx</wfw:commentRss><trackback:ping>http://community.visual-basic.it/rudy/services/trackbacks/18871.aspx</trackback:ping><description>&lt;p&gt;&lt;span class="prima"&gt;V&lt;/span&gt;i piacerebbe essere in grado di scrivere il vostro codice in maniera logica e ordinata?&lt;br /&gt;
Si? Allora non dovete far altro che premere un bottone! Questo magico add-in di 
Visual Studio realizzato col framework di DXCore si chiama ClassCleaner e lo 
potete trovare qui:
&lt;a href="http://www.codeplex.com/CRClassCleaner" target="_blank"&gt;"ClassCleaner"&lt;/a&gt;&lt;br /&gt;
Una volta scaricato i sorgenti basta lanciare il file .sln e ricompilare il 
progetto con Visual Studio. Dopo copiate la dll generata nella cartella dei plugins 
di DXCore che solitamente si trova in &amp;quot;C:\Programmi\Developer Express Inc\DXCore 
for Visual Studio .NET\2.0\Bin\Plugins&amp;quot;. Successivamente bisogna associare gli 
shortcuts alle action di ClassCleaner per fare ci&amp;#242; date un occhiata ai files .doc 
contenuti del file zip di ClassCleaner che avete scaricato.&lt;/p&gt;
&lt;p&gt;N.B.: Funziona bene solo per C#. Se lo provate in VB.NET riordina 
correttamente la classe ma mette le region in stile C#.&lt;/p&gt;
&lt;p&gt;Per approfondimenti sul framework DXCore leggete il mio articolo qui: &lt;A href="http://community.visual-basic.it/rudy/articles/18868.aspx" target="_self"&gt;"Introduzione a DXCore"&lt;/a&gt;.&lt;/p&gt;&lt;img src ="http://community.visual-basic.it/rudy/aggbug/18871.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Rudy Azzan</dc:creator><title>DXCore - Introduzione al framework</title><link>http://community.visual-basic.it/rudy/archive/2007/03/21/18869.aspx</link><pubDate>Wed, 21 Mar 2007 23:13:00 GMT</pubDate><guid>http://community.visual-basic.it/rudy/archive/2007/03/21/18869.aspx</guid><wfw:comment>http://community.visual-basic.it/rudy/comments/18869.aspx</wfw:comment><comments>http://community.visual-basic.it/rudy/archive/2007/03/21/18869.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://community.visual-basic.it/rudy/comments/commentRss/18869.aspx</wfw:commentRss><trackback:ping>http://community.visual-basic.it/rudy/services/trackbacks/18869.aspx</trackback:ping><description>&lt;P&gt;&lt;SPAN class=prima&gt;H&lt;/SPAN&gt;o pubblicato un articolo sul mio blog nel quale parlo del framework DXCore per l'automazione di Visual Studio.&lt;BR&gt;Lo potete trovare qui:&amp;nbsp;&lt;A href="http://community.visual-basic.it/rudy/articles/18868.aspx"&gt;"Introduzione a DXCore"&lt;/A&gt;&lt;/P&gt;&lt;p&gt;In futuro far&amp;#242; una serie di post che parleranno degli add-ins sviluppati da terzi che ho trovato sul web e testato, noch&amp;#232; degli add-ins sviluppati da me.&lt;/p&gt;&lt;img src ="http://community.visual-basic.it/rudy/aggbug/18869.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Rudy Azzan</dc:creator><title>Estendiamo il Class Designer</title><link>http://community.visual-basic.it/rudy/archive/2007/03/14/18843.aspx</link><pubDate>Wed, 14 Mar 2007 11:00:00 GMT</pubDate><guid>http://community.visual-basic.it/rudy/archive/2007/03/14/18843.aspx</guid><wfw:comment>http://community.visual-basic.it/rudy/comments/18843.aspx</wfw:comment><comments>http://community.visual-basic.it/rudy/archive/2007/03/14/18843.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://community.visual-basic.it/rudy/comments/commentRss/18843.aspx</wfw:commentRss><trackback:ping>http://community.visual-basic.it/rudy/services/trackbacks/18843.aspx</trackback:ping><description>&lt;P&gt;&lt;SPAN class=prima&gt;Q&lt;/SPAN&gt;ualche giorno fa sul forum di Visual-Basic &amp;#232; stato fatto notare che la costruzione dei diagrammi delle classi in Visual Studio &amp;#232; un po'povera come aspetto e funzionalit&amp;#224;.&lt;BR&gt;
Allora mi sono ricordato che tempo fa ho trovato un add-ins che la estendeva: &lt;A href="http://www.gotdotnet.com/workspaces/workspace.aspx?id=fe72608b-2b28-4cc1-9866-ea6f805f45f3" target=_blank&gt;"ModelingPowerToys"&lt;/A&gt;.&lt;/P&gt;&lt;img src ="http://community.visual-basic.it/rudy/aggbug/18843.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Rudy Azzan</dc:creator><title>Installare DNN (DotNetNuke) </title><link>http://community.visual-basic.it/rudy/archive/2007/02/14/18599.aspx</link><pubDate>Wed, 14 Feb 2007 10:54:00 GMT</pubDate><guid>http://community.visual-basic.it/rudy/archive/2007/02/14/18599.aspx</guid><wfw:comment>http://community.visual-basic.it/rudy/comments/18599.aspx</wfw:comment><comments>http://community.visual-basic.it/rudy/archive/2007/02/14/18599.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://community.visual-basic.it/rudy/comments/commentRss/18599.aspx</wfw:commentRss><trackback:ping>http://community.visual-basic.it/rudy/services/trackbacks/18599.aspx</trackback:ping><description>&lt;P&gt;&lt;SPAN class=prima&gt;E&lt;/SPAN&gt;cco come installare DNN per sviluppare i sui moduli: &lt;A href="http://www.codeproject.com/useritems/DNNOnUltiDevCassiniWebSrv.asp" target=_blank&gt;"Running DotNetNuke 4.0.2 on Windows XP Home or on any other system lacking IIS"&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://community.visual-basic.it/rudy/aggbug/18599.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Rudy Azzan</dc:creator><title>Tools per risparmiare tempo</title><link>http://community.visual-basic.it/rudy/archive/2007/02/02/18521.aspx</link><pubDate>Fri, 02 Feb 2007 12:24:00 GMT</pubDate><guid>http://community.visual-basic.it/rudy/archive/2007/02/02/18521.aspx</guid><wfw:comment>http://community.visual-basic.it/rudy/comments/18521.aspx</wfw:comment><comments>http://community.visual-basic.it/rudy/archive/2007/02/02/18521.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://community.visual-basic.it/rudy/comments/commentRss/18521.aspx</wfw:commentRss><trackback:ping>http://community.visual-basic.it/rudy/services/trackbacks/18521.aspx</trackback:ping><description>&lt;P&gt;&lt;SPAN class=prima&gt;V&lt;/SPAN&gt;olevo segnalarvi questo bellissimo tool che &amp;#232; un pezzo di Visual Studio completo di compilatore e intellisence da soli 600K&lt;BR&gt;Pu&amp;#242; essere utile per fare delle cosette al volo senza aspettare 10 min che il VS si apra e creare un nuovo progetto di test.&lt;BR&gt;Lo potete trovare qui:&amp;nbsp;&lt;A href="http://www.sliver.com/dotnet/SnippetCompiler/" target=_blank&gt;"Snippet compiler"&lt;/A&gt;&lt;/P&gt;&lt;img src ="http://community.visual-basic.it/rudy/aggbug/18521.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Rudy Azzan</dc:creator><title>Comprimere e decomprimere con .Net 2.0</title><link>http://community.visual-basic.it/rudy/archive/2007/01/28/18475.aspx</link><pubDate>Sun, 28 Jan 2007 16:52:00 GMT</pubDate><guid>http://community.visual-basic.it/rudy/archive/2007/01/28/18475.aspx</guid><wfw:comment>http://community.visual-basic.it/rudy/comments/18475.aspx</wfw:comment><comments>http://community.visual-basic.it/rudy/archive/2007/01/28/18475.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://community.visual-basic.it/rudy/comments/commentRss/18475.aspx</wfw:commentRss><trackback:ping>http://community.visual-basic.it/rudy/services/trackbacks/18475.aspx</trackback:ping><description>&lt;p&gt;&lt;span class="prima"&gt;E&lt;/span&gt;cco come usare gli oggetti per la compressione messi a disposizione dal Framework .NET 2.0&lt;/p&gt;
&lt;pre&gt;&lt;span class="commento"&gt;//C#&lt;/span&gt;
&lt;span class="dichiarazione"&gt;using&lt;/span&gt; System.IO;
&lt;span class="dichiarazione"&gt;using&lt;/span&gt; System.IO.Compression;
&lt;br /&gt;
&lt;span class="dichiarazione"&gt;public static class&lt;/span&gt; &lt;span class="tipi"&gt;Compressor&lt;/span&gt;
{
 &lt;span class="dichiarazione"&gt;public static byte&lt;/span&gt;[] Compress(&lt;span class="dichiarazione"&gt;byte&lt;/span&gt;[] data)
 {
  &lt;span class="tipi"&gt;MemoryStream&lt;/span&gt; output = &lt;span class="dichiarazione"&gt;new&lt;/span&gt; &lt;span class="tipi"&gt;MemoryStream&lt;/span&gt;();
  &lt;span class="tipi"&gt;GZipStream&lt;/span&gt; gzip = &lt;span class="dichiarazione"&gt;new&lt;/span&gt; &lt;span class="tipi"&gt;GZipStream&lt;/span&gt;(output, &lt;span class="tipi"&gt;CompressionMode&lt;/span&gt;.Compress, &lt;span class="dichiarazione"&gt;true&lt;/span&gt;);
  gzip.Write(data, 0, data.Length);
  gzip.Close();
  &lt;span class="dichiarazione"&gt;return&lt;/span&gt; output.ToArray();
 }
&lt;br /&gt;
 &lt;span class="dichiarazione"&gt;public static byte&lt;/span&gt;[] Decompress(&lt;span class="dichiarazione"&gt;byte&lt;/span&gt;[] data)
 {
  &lt;span class="tipi"&gt;MemoryStream&lt;/span&gt; input = &lt;span class="dichiarazione"&gt;new&lt;/span&gt; &lt;span class="tipi"&gt;MemoryStream&lt;/span&gt;();
  input.Write(data, 0, data.Length);
  input.Position = 0;
  &lt;span class="tipi"&gt;GZipStream&lt;/span&gt; gzip = &lt;span class="dichiarazione"&gt;new&lt;/span&gt; &lt;span class="tipi"&gt;GZipStream&lt;/span&gt;(input, &lt;span class="tipi"&gt;CompressionMode&lt;/span&gt;.Decompress, &lt;span class="dichiarazione"&gt;true&lt;/span&gt;);
  &lt;span class="tipi"&gt;MemoryStream&lt;/span&gt; output = &lt;span class="dichiarazione"&gt;new&lt;/span&gt; &lt;span class="tipi"&gt;MemoryStream&lt;/span&gt;();
  &lt;span class="dichiarazione"&gt;byte&lt;/span&gt;[] buff = &lt;span class="dichiarazione"&gt;new byte&lt;/span&gt;[64];
  &lt;span class="dichiarazione"&gt;int&lt;/span&gt; read = -1;
  read = gzip.Read(buff, 0, buff.Length);
  &lt;br /&gt;
  &lt;span class="dichiarazione"&gt;while&lt;/span&gt; (read &amp;gt; 0)
  {
   output.Write(buff, 0, read);
   read = gzip.Read(buff, 0, buff.Length);
  }
  &lt;br /&gt;
  gzip.Close();
  &lt;span class="dichiarazione"&gt;return&lt;/span&gt; output.ToArray();
 }
}&lt;/pre&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span class="commento"&gt;'VB&lt;/span&gt;
&lt;span class="dichiarazione"&gt;Imports&lt;/span&gt; System.IO
&lt;span class="dichiarazione"&gt;Imports&lt;/span&gt; System.IO.Compression
&lt;br /&gt;
&lt;span class="dichiarazione"&gt;Public Class&lt;/span&gt; Compressor
&lt;br /&gt;
 &lt;span class="dichiarazione"&gt;Public Shared Function&lt;/span&gt; Compress(&lt;span class="dichiarazione"&gt;ByVal&lt;/span&gt; data &lt;span class="dichiarazione"&gt;As Byte&lt;/span&gt;()) &lt;span class="dichiarazione"&gt;As Byte&lt;/span&gt;()
  &lt;span class="dichiarazione"&gt;Dim&lt;/span&gt; output &lt;span class="dichiarazione"&gt;As&lt;/span&gt; MemoryStream = &lt;span class="dichiarazione"&gt;New&lt;/span&gt; MemoryStream
  &lt;span class="dichiarazione"&gt;Dim&lt;/span&gt; gzip &lt;span class="dichiarazione"&gt;As&lt;/span&gt; GZipStream = &lt;span class="dichiarazione"&gt;New&lt;/span&gt; GZipStream(output, CompressionMode.Compress, &lt;span class="dichiarazione"&gt;True&lt;/span&gt;)
  gzip.Write(data, 0, data.Length)
  gzip.Close()
  &lt;span class="dichiarazione"&gt;Return&lt;/span&gt; output.ToArray
 &lt;span class="dichiarazione"&gt;End Function&lt;/span&gt;
&lt;br /&gt;
 &lt;span class="dichiarazione"&gt;Public Shared Function&lt;/span&gt; Decompress(&lt;span class="dichiarazione"&gt;ByVal&lt;/span&gt; data &lt;span class="dichiarazione"&gt;As Byte&lt;/span&gt;()) &lt;span class="dichiarazione"&gt;As Byte&lt;/span&gt;()
  &lt;span class="dichiarazione"&gt;Dim&lt;/span&gt; input &lt;span class="dichiarazione"&gt;As&lt;/span&gt; MemoryStream = &lt;span class="dichiarazione"&gt;New&lt;/span&gt; MemoryStream
  input.Write(data, 0, data.Length)
  input.Position = 0
  &lt;span class="dichiarazione"&gt;Dim&lt;/span&gt; gzip &lt;span class="dichiarazione"&gt;As&lt;/span&gt; GZipStream = &lt;span class="dichiarazione"&gt;New&lt;/span&gt; GZipStream(input, CompressionMode.Decompress, &lt;span class="dichiarazione"&gt;True&lt;/span&gt;)
  &lt;span class="dichiarazione"&gt;Dim&lt;/span&gt; output &lt;span class="dichiarazione"&gt;As&lt;/span&gt; MemoryStream = &lt;span class="dichiarazione"&gt;New&lt;/span&gt; MemoryStream
  &lt;span class="dichiarazione"&gt;Dim&lt;/span&gt; buff(64) &lt;span class="dichiarazione"&gt;As Byte&lt;/span&gt;
  &lt;span class="dichiarazione"&gt;Dim&lt;/span&gt; read &lt;span class="dichiarazione"&gt;As Integer&lt;/span&gt; = -1
  read = gzip.Read(buff, 0, buff.Length)
&lt;br /&gt;
  &lt;span class="dichiarazione"&gt;While&lt;/span&gt; read &amp;gt; 0
   output.Write(buff, 0, read)
   read = gzip.Read(buff, 0, buff.Length)
  &lt;span class="dichiarazione"&gt;End While&lt;/span&gt;
&lt;br /&gt;
  gzip.Close()
  &lt;span class="dichiarazione"&gt;Return&lt;/span&gt; output.ToArray
 &lt;span class="dichiarazione"&gt;End Function&lt;/span&gt;
&lt;br /&gt;
&lt;span class="dichiarazione"&gt;End Class&lt;/span&gt;
&lt;/pre&gt;&lt;img src ="http://community.visual-basic.it/rudy/aggbug/18475.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>Rudy Azzan</dc:creator><title>Icone dei componenti nella Toolbox</title><link>http://community.visual-basic.it/rudy/archive/2007/01/02/18357.aspx</link><pubDate>Tue, 02 Jan 2007 22:58:00 GMT</pubDate><guid>http://community.visual-basic.it/rudy/archive/2007/01/02/18357.aspx</guid><wfw:comment>http://community.visual-basic.it/rudy/comments/18357.aspx</wfw:comment><comments>http://community.visual-basic.it/rudy/archive/2007/01/02/18357.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://community.visual-basic.it/rudy/comments/commentRss/18357.aspx</wfw:commentRss><trackback:ping>http://community.visual-basic.it/rudy/services/trackbacks/18357.aspx</trackback:ping><description>&lt;p&gt;&lt;span class="prima"&gt;P&lt;/span&gt;er aggiungere un icona ad un nuovo componente creato con Visual Studio in modo che si veda nella toolbox si pu&amp;#242; 
usare uno dei seguenti metodi:&lt;/p&gt;
&lt;pre&gt;&lt;span class="commento"&gt;//C#&lt;/span&gt;
&lt;span class="commento"&gt;//Specifica la bitmap associata al tipo Button.&lt;/span&gt;
[&lt;span class="tipi"&gt;ToolboxBitmap&lt;/span&gt;(&lt;span class="dichiarazione"&gt;typeof&lt;/span&gt;(&lt;span class="tipi"&gt;Button&lt;/span&gt;))]
&lt;span class="dichiarazione"&gt;class&lt;/span&gt; &lt;span class="tipi"&gt;MyControl1&lt;/span&gt; : &lt;span class="tipi"&gt;UserControl&lt;/span&gt;
{
}
&lt;br /&gt;
&lt;span class="commento"&gt;//Specifica un bitmap file.&lt;/span&gt;
[&lt;span class="tipi"&gt;ToolboxBitmap&lt;/span&gt;(&lt;span class="stringhe"&gt;@&amp;quot;C:\Documents and Settings\Rudy\Documenti\Immagini\myImage.bmp&amp;quot;&lt;/span&gt;)]
&lt;span class="dichiarazione"&gt;class&lt;/span&gt; &lt;span class="tipi"&gt;MyControl2&lt;/span&gt; : &lt;span class="tipi"&gt;UserControl&lt;/span&gt;
{
}
&lt;br /&gt;
&lt;span class="commento"&gt;//Specifica un tipo che indica l&amp;#39;assembly in cui cercare e il nome del immagine nelle risorse.&lt;/span&gt;
[&lt;span class="tipi"&gt;ToolboxBitmap&lt;/span&gt;(&lt;span class="dichiarazione"&gt;typeof&lt;/span&gt;(&lt;span class="tipi"&gt;MyControl&lt;/span&gt;), &lt;span class="stringhe"&gt;&amp;quot;MioControlloBitmap&amp;quot;&lt;/span&gt;)]
&lt;span class="dichiarazione"&gt;class&lt;/span&gt; &lt;span class="tipi"&gt;MyControl&lt;/span&gt; : &lt;span class="tipi"&gt;UserControl&lt;/span&gt;
{
}&lt;/pre&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;span class="commento"&gt;&amp;#39;VB&lt;/span&gt;
&lt;span class="commento"&gt;&amp;#39;Specifica la bitmap associata al tipo Button.&lt;/span&gt;
&amp;lt;ToolboxBitmap(&lt;span class="dichiarazione"&gt;GetType&lt;/span&gt;(Button))&amp;gt; _
&lt;span class="dichiarazione"&gt;Class&lt;/span&gt; MyControl1
    &lt;span class="dichiarazione"&gt;Inherits&lt;/span&gt; UserControl
&lt;span class="dichiarazione"&gt;End Class&lt;/span&gt;
&lt;br /&gt;
&lt;span class="commento"&gt;&amp;#39;Specifica un bitmap file.&lt;/span&gt;
&amp;lt;ToolboxBitmap(&lt;span class="stringhe"&gt;&amp;quot;C:\Documents and Settings\Rudy\Documenti\Immagini\myImage.bmp&amp;quot;&lt;/span&gt;)&amp;gt; _
&lt;span class="dichiarazione"&gt;Class&lt;/span&gt; MyControl2
    &lt;span class="dichiarazione"&gt;Inherits&lt;/span&gt; UserControl
&lt;span class="dichiarazione"&gt;End Class&lt;/span&gt;
&lt;br /&gt;
&lt;span class="commento"&gt;&amp;#39;Specifica un tipo che indica l&amp;#39;assembly in cui cercare e il nome del immagine nelle risorse.&lt;/span&gt;
&amp;lt;ToolboxBitmap(&lt;span class="dichiarazione"&gt;GetType&lt;/span&gt;(MyControl), &lt;span class="stringhe"&gt;&amp;quot;MioControlloBitmap&amp;quot;&lt;/span&gt;)&amp;gt; _
&lt;span class="dichiarazione"&gt;Class&lt;/span&gt; MyControl
    &lt;span class="dichiarazione"&gt;Inherits&lt;/span&gt; UserControl
&lt;span class="dichiarazione"&gt;End Class&lt;/span&gt;&lt;/pre&gt;
&lt;br /&gt;
&lt;p&gt;Va ricordato che l&amp;#39;immagine deve essere una bitmap a 16x16 o 32x32, inoltre 
se usate il primo metodo l&amp;#39;immagine nelle risorse deve chiamarsi &amp;quot;Namespace.NomeClasse.bmp&amp;quot; 
mentre se usate l&amp;#39;ultimo &amp;quot;Namespace.MioControlloBitmap&amp;quot;&lt;/p&gt;&lt;img src ="http://community.visual-basic.it/rudy/aggbug/18357.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>