<feed 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="http://www.w3.org/2005/Atom" xml:lang="it-IT">
    <title>Stefano Pranzo Blog</title>
    <link rel="self" type="application/atom+xml" href="http://blog.panatronic.it/Atom.aspx" />
    <subtitle type="html">il Blog personale di Stefano P.</subtitle>
    <id>http://blog.panatronic.it/Default.aspx</id>
    <author>
        <name>Stefano Pranzo</name>
        <uri>http://blog.panatronic.it/Default.aspx</uri>
    </author>
    <generator uri="http://subtextproject.com" version="Subtext Version 2.0.0.43">Subtext</generator>
    <updated>2011-09-27T11:46:38Z</updated>
    <entry>
        <title>Creare il setup con InnoSetup direttamente da Visual Studio</title>
        <link rel="alternate" type="text/html" href="http://blog.panatronic.it/archive/2011/09/26/creare-il-setup-con-innosetup-direttamente-da-visual-studio.aspx" />
        <id>http://blog.panatronic.it/archive/2011/09/26/creare-il-setup-con-innosetup-direttamente-da-visual-studio.aspx</id>
        <published>2011-09-26T20:02:01Z</published>
        <updated>2011-09-27T11:46:38Z</updated>
        <content type="html">&lt;p&gt;Buongiorno a tutti.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Per i miei progetti creati con Visual Studio, uso InnoSetup per creare i file d'installazione da distribuire.&lt;/p&gt;
&lt;p&gt;Dato che InnoSetup ha un ottimo sistema di CommandLine per i più disparati comandi, ho pensato di compilare il Setup direttamente da Visual Studio. Vi spiego come ho fatto:&lt;/p&gt;
&lt;p&gt;Innanzi tutto ho creato un file bat nella stessa cartella del progetto C# (va bene anche VB). Nel file Bat ho scritto semplicemente due righe di codice: una per cancellare il file Setup esistente, e l'altra per compilare quello nuovo:&lt;br /&gt;
&lt;font face="Consolas" size="2"&gt;&lt;font face="Consolas" size="2" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font face="Consolas" size="2"&gt; &lt;font face="Consolas" size="2"&gt; &lt;font face="Consolas" size="2"&gt;
&lt;p&gt;cd ..\..&lt;br /&gt;
call %windir%\system32\del C:SetupMioProgramma.exe&lt;br /&gt;
call "C:\Program Files (x86)\Inno Setup 5\compil32.exe" /cc "C:\IS_Setup\MioProgramma.iss"&lt;/p&gt;
&lt;p&gt;Come potete notare, la seconda riga non fa altro che eseguire il compilatore di InnoSetup passandogli il file di script InnoSetup che crea il file di Setup che serve a me.&lt;/p&gt;
&lt;p&gt;Andando in Visual Studio e precisamente nelle proprietà del progetto, basta aggiungere un richiamo al file di compilazione nel Post-build event command line. &lt;/p&gt;
&lt;p&gt;Dato che non voglio che mi crei il setup tutte le volte che testo il programma, ho messo la condizione che se il progetto è in Release crea il setup, altrimenti no:&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;if $(ConfigurationName) == Release call ..\..\compilaSetup.bat $(ConfigurationName)   $(TargetName).&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Arial"&gt;Spero che serva a qualcuno.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;img src="http://blog.panatronic.it/aggbug/15.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blog.panatronic.it/comments/15.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.panatronic.it/comments/commentRss/15.aspx</wfw:commentRss>
        <trackback:ping>http://blog.panatronic.it/services/trackbacks/15.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Disattivare il caricamento automatico dei Controlli in Toolbox in WPF</title>
        <link rel="alternate" type="text/html" href="http://blog.panatronic.it/archive/2011/09/24/disattivare-il-caricamento-automatico-dei-controlli-in-toolbox-in-wpf.aspx" />
        <id>http://blog.panatronic.it/archive/2011/09/24/disattivare-il-caricamento-automatico-dei-controlli-in-toolbox-in-wpf.aspx</id>
        <published>2011-09-24T01:27:56Z</published>
        <updated>2011-09-24T01:27:56Z</updated>
        <content type="html">&lt;p&gt;Tra le tante funzionalità di Visual Studio, c'è quella che aggiunge automaticamente nella ToolBox di Visual Studio, i vari Components creati nella soluzione.&lt;/p&gt;
&lt;p&gt;Questo "problema" (io lo chiamo problema perchè me ne inserisce moltissime) si aveva già ai tempi di WinForm e la simpatica Sabrina C. ci aveva svelato come risolvere questo "problema" in questo suo post:&lt;/p&gt;
&lt;p&gt;&lt;font face="Verdana"&gt;&lt;a href="http://community.dotnetwork.it/sabrina/archive/2009/03/30/disattivare-il-caricamento-automatico-dei-controlli-in-toolbox.aspx"&gt;http://community.dotnetwork.it/sabrina/archive/2009/03/30/disattivare-il-caricamento-automatico-dei-controlli-in-toolbox.aspx&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Purtroppo anche disattivando questa opzione, andando a lavorare in WPF, il problema rimane.&lt;/p&gt;
&lt;p&gt;Questa è la soluzione che lo risolve in WPF:&lt;/p&gt;
&lt;p&gt;Andate nelle opzioni di Visual Studio Tools/Options/Text Editor/XAML/Miscellaneous e disabilitate la voce "Automatically populate toolbox items"; riavviate Visual Studio ed il vostro ToolBox sarà nuovamente pulito.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Senza lavorare su questa opzione, è possibile scavalcarlo semplicemente &lt;span class="hps"&gt;decorando&lt;/span&gt; i vostri component &lt;span class="hps"&gt;con il&lt;/span&gt; &lt;span class="hps"&gt;System.ComponentModel.DesignTimeVisibleAttribute. In questo modo avrete la possiblità di specif&lt;/span&gt;&lt;span class="hps"&gt;icare&lt;/span&gt; se farlo apparire o no, &lt;span class="hps"&gt;nella finestra di progettazione&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blog.panatronic.it/aggbug/14.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blog.panatronic.it/comments/14.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.panatronic.it/comments/commentRss/14.aspx</wfw:commentRss>
        <trackback:ping>http://blog.panatronic.it/services/trackbacks/14.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Un buon giudizio su un prodotto gratuito di Mamma Microsoft.</title>
        <link rel="alternate" type="text/html" href="http://blog.panatronic.it/archive/2010/04/02/un-buon-giudizio-su-un-prodotto-gratuito-di-mamma-microsoft.aspx" />
        <id>http://blog.panatronic.it/archive/2010/04/02/un-buon-giudizio-su-un-prodotto-gratuito-di-mamma-microsoft.aspx</id>
        <published>2010-04-02T05:46:20Z</published>
        <updated>2010-04-02T05:46:20Z</updated>
        <content type="html">&lt;font face="Arial"&gt;Da quando Mamma Microsoft ha messo in rete il suo prodotto chiamato Windows Defender, l'ho preso subito come mio firewall preferito: in lingua Italiano, semplice da capire e poi ...visto che è un prodotto Microsoft penso che dia meno problemi di compatibilità tra vari programmi.....&lt;br /&gt;
Molte volte mi sono scontrato tra vari giudizi positivi e negativi su questo prodotto...&lt;br /&gt;
Da una settimana che un mio cliente mi assilla per un Virus (qualsiasi pagina visita gli esce una pagina con scritto: &lt;font face="Courier New"&gt;&lt;strong&gt;Warning! Visiting this site may harm your computer! ecc&lt;/strong&gt;&lt;/font&gt;.. ) entratogli nel PC. Il Cliente ha un Antivirus molto noto, ma è stato tanto inteligente da fare OK all'installazione del virus e "Consenti" all'avviso dell'Antivirus.&lt;br /&gt;
Dopo varie ricerche, scansioni con vari antivirus..ecc....ho tentato di mettergli Windows Defender..&lt;br /&gt;
dopo l'aggiornamento delle definizioni e la prima Analisi puf: WD trova l'intruso e provvedo subito a rimuoverlo...&lt;br /&gt;
Funziona alla grande...Problema Risolto..&lt;br /&gt;
Grazie Mamma Microsoft...&lt;/font&gt;&lt;img src="http://blog.panatronic.it/aggbug/13.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blog.panatronic.it/comments/13.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.panatronic.it/comments/commentRss/13.aspx</wfw:commentRss>
        <trackback:ping>http://blog.panatronic.it/services/trackbacks/13.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Huawei E1692 non si connette con Vista SP2</title>
        <link rel="alternate" type="text/html" href="http://blog.panatronic.it/archive/2010/01/18/huawei-e1692-non-si-connette-con-vista-sp2.aspx" />
        <id>http://blog.panatronic.it/archive/2010/01/18/huawei-e1692-non-si-connette-con-vista-sp2.aspx</id>
        <published>2010-01-18T06:08:33Z</published>
        <updated>2010-01-18T06:08:33Z</updated>
        <content type="html">&lt;p&gt;Installando il service pack 2 di Windows Vista, alice mobile con chiavetta usb non si connette più.&lt;br /&gt;
Lo stesso problema è riscontrabile in Windows 7.&lt;/p&gt;
&lt;p&gt;Il problema si risolve modificando un opzione del programma Alice Mobile.&lt;/p&gt;
&lt;p&gt;Nel menu Strumenti-&amp;gt; Opzioni-&amp;gt; Rete-&amp;gt; Tipo di connessione occorre selezionare RAS e non NDIS come di default e tutto si risolve.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img width="590" height="440" alt="" src="/images/blog_panatronic_it/alice mobile.png" /&gt;&lt;/p&gt;&lt;img src="http://blog.panatronic.it/aggbug/11.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blog.panatronic.it/comments/11.aspx</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://blog.panatronic.it/comments/commentRss/11.aspx</wfw:commentRss>
        <trackback:ping>http://blog.panatronic.it/services/trackbacks/11.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Mio primo articolo tecnico su DotNetRomaCeSta</title>
        <link rel="alternate" type="text/html" href="http://blog.panatronic.it/archive/2009/11/30/mio-primo-articolo-tecnico-su-dotnetromacesta.aspx" />
        <id>http://blog.panatronic.it/archive/2009/11/30/mio-primo-articolo-tecnico-su-dotnetromacesta.aspx</id>
        <published>2009-11-30T10:49:26Z</published>
        <updated>2009-11-30T10:51:05Z</updated>
        <content type="html">&lt;p&gt;Ebbene si. Ringraziando che m'ha dato fiducia, ho fatto un bell'articolo su &lt;a href="http://www.dotnetromacesta.org"&gt;www.dotnetromacesta.org&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;La mia MessageBox temporizzata&lt;br /&gt;
&lt;/u&gt;&lt;/strong&gt;&lt;font size="+0"&gt;&lt;font color="#000000" size="2"&gt;la trovate a questo indirizzo:&lt;/font&gt; &lt;a href="http://www.dotnetromacesta.org/common/articoli/windowsapp/varie/La_mia_MessageBox_temporizzata.aspx"&gt;http://www.dotnetromacesta.org/common/articoli/windowsapp/varie/La_mia_MessageBox_temporizzata.aspx&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="Title"&gt;&lt;font color="#000000" size="2"&gt;A voi i commenti..&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blog.panatronic.it/aggbug/10.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blog.panatronic.it/comments/10.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.panatronic.it/comments/commentRss/10.aspx</wfw:commentRss>
        <trackback:ping>http://blog.panatronic.it/services/trackbacks/10.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Aprire WPF Window da WinForms</title>
        <link rel="alternate" type="text/html" href="http://blog.panatronic.it/archive/2009/10/19/aprinre-wpf-window-da-winforms.aspx" />
        <id>http://blog.panatronic.it/archive/2009/10/19/aprinre-wpf-window-da-winforms.aspx</id>
        <published>2009-10-19T07:31:12Z</published>
        <updated>2009-10-19T07:37:46Z</updated>
        <content type="html">&lt;p&gt;Se vi capita, come è successo a me, di fare una Dll per un vostro programma ma volete inserire al posto del classico WinForm, una Window di WPF, potete facilmente farlo così:&lt;/p&gt;
&lt;p&gt;Al posto della classica DLL, create una “Libreia di Controlli Utente WPF”.&lt;/p&gt;
&lt;p&gt;al suo interno inserite una “Finestra WPF (Window)”.&lt;/p&gt;
&lt;p&gt;dopo aver compilato (nel mio pc registro la dll in GAC. andiamo nel progetto WinForm e dopo aver importato nei riferimenti la dll WPF  e la DLL PresentationFramework, importando lo spazio dei nomi “System.Windows.Forms.Integration” nella Form dove si trova il Button che aprirà la Window WPF..&lt;/p&gt;
&lt;p&gt;Andiamo nell’evento Click del Button che dovrà richiamare la nostra Window e scriviamo questo:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Dim wpfwindow As New WPFWindow.Window1 &lt;br /&gt;
ElementHost.EnableModelessKeyboardInterop(wpfwindow ) &lt;br /&gt;
wpfwindow .Show()&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Provate e vedrete la Window aprirsi nella vostra applicazione WinForm..&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Ottimo modo per entrare pin piano in questo fantastico mondo WPF.&lt;/p&gt;
&lt;p&gt;Un grazie a Alessandro Del Sole per la dritta sul “ElementHost”.&lt;/p&gt;&lt;img src="http://blog.panatronic.it/aggbug/9.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blog.panatronic.it/comments/9.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.panatronic.it/comments/commentRss/9.aspx</wfw:commentRss>
        <trackback:ping>http://blog.panatronic.it/services/trackbacks/9.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Configurare SQL Server 2005Express per consentire le connessioni remote</title>
        <link rel="alternate" type="text/html" href="http://blog.panatronic.it/archive/2009/10/12/configurare-sql-server-2005express-per-consentire-le-connessioni-remote.aspx" />
        <id>http://blog.panatronic.it/archive/2009/10/12/configurare-sql-server-2005express-per-consentire-le-connessioni-remote.aspx</id>
        <published>2009-10-12T05:20:45Z</published>
        <updated>2009-10-12T05:20:45Z</updated>
        <content type="html">&lt;p&gt;Dato che per me è stato un calvario capire come configurare SQLExpress per essere connesso da remoto, una volta riuscito ho deciso di scrivermi l'appunto. Poi ho pensato: perchè non renderlo pubblico a tutti?&lt;/p&gt;
&lt;p&gt;Ecco come ho fatto:&lt;/p&gt;
&lt;p&gt;Dopo aver installato SQL2005Express (d'ora in poi chiamerò SQLE) e il MANAGER di SQLExpress, ho provato se localmente si connetteva.&lt;/p&gt;
&lt;p&gt;A me s'è connesso subito senza preblemi.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Sono andato sulla macchina remota e ho inserito questi dati nel Manager di SQL:&lt;/p&gt;
&lt;p&gt;Tipo Server: &lt;em&gt;Motore di database&lt;/em&gt; &lt;br /&gt;
Nome Server: &lt;em&gt;Server\SQLEXPRESS&lt;/em&gt; &lt;br /&gt;
Autenticazione: &lt;em&gt;Autenticazione di SQL Server&lt;/em&gt; &lt;br /&gt;
Nome Account di access: &lt;em&gt;sa&lt;/em&gt; &lt;br /&gt;
Password: &lt;em&gt;mia pass&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Per chi non lo sapesse "sa" è l'utente principale di SQL (Così ho capito, ma forse sbaglio).&lt;/p&gt;
&lt;p&gt;Il nome "SERVER\SQLEXPRESS" è il server dove si trova SQL con il nome dell'istanza SQL. (forse sbaglio col nome "istanza").&lt;/p&gt;
&lt;p&gt;Faccio Connetti e nulla: un errore enorme lungo un km....&lt;/p&gt;
&lt;p&gt;Vado sul PC server e faccio partire il programma "SQL Server Configuration Manager".&lt;/p&gt;
&lt;p&gt;Vado nelle configurazione di rete SQL Server 2005 e attivo solo il Protocollo TCP/IP, imposto dalle proprietà l'attivazione dell'IP1.&lt;/p&gt;
&lt;p&gt;Per defaul dopo l'istallazione, SQL non avvia SQL Browser ma per le connessioni remote  bisogna attivarlo.&lt;br /&gt;
Per fare questo uso l'utiliti &lt;em&gt;"Configurazione superfice di attacco di SQL Server":&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Selezionare &lt;em&gt;"Configurazione superficie di attacco per servizi e connessioni"&lt;/em&gt; &lt;/li&gt;
    &lt;li&gt;Selezionare il componente &lt;em&gt;"SQL Server Browser"&lt;/em&gt; ed impostare "&lt;em&gt;tipo di avvio"&lt;/em&gt; su &lt;em&gt;"Automatico"&lt;/em&gt; &lt;/li&gt;
    &lt;li&gt;Riavviare il PC e vi troverete &lt;em&gt;SQL Server Browser&lt;/em&gt; avviato &lt;em&gt;(&lt;/em&gt;potete controllare da &lt;em&gt;"SQL Server Configuration Manager".&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Per ultimo vado nel Firewall di Windows e metto i due programmi nelle eccezioni, rispettivamente:&lt;/p&gt;
&lt;p&gt;C:\Program Files\Microsoft SQL Server\&lt;var&gt;MSSQL.1&lt;/var&gt;\MSSQL\Binn\sqlservr.exe&lt;/p&gt;
&lt;p&gt;C:\Program Files\Microsoft SQLServer\90\Shared\sqlbrowser.exe&lt;/p&gt;
&lt;p&gt;Vado dal PC Remoto e tutto funziona..&lt;/p&gt;
&lt;p&gt;Grazie a tutti.&lt;/p&gt;&lt;img src="http://blog.panatronic.it/aggbug/7.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blog.panatronic.it/comments/7.aspx</wfw:comment>
        <slash:comments>4</slash:comments>
        <wfw:commentRss>http://blog.panatronic.it/comments/commentRss/7.aspx</wfw:commentRss>
        <trackback:ping>http://blog.panatronic.it/services/trackbacks/7.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Attivare SilverLight su IIS</title>
        <link rel="alternate" type="text/html" href="http://blog.panatronic.it/archive/2009/10/12/attivare-silverlight-su-iis.aspx" />
        <id>http://blog.panatronic.it/archive/2009/10/12/attivare-silverlight-su-iis.aspx</id>
        <published>2009-10-12T05:20:13Z</published>
        <updated>2009-10-12T05:20:13Z</updated>
        <content type="html">&lt;p&gt;Dopo innumerevoli guide dall'amico &lt;a target="_blank" href="http://community.visual-basic.it/Alessandro/"&gt;Alessandro del Sole&lt;/a&gt; sul fantastisco mondo di SilverLight, mi sono messo a fare qualche scherzetto con il programma Deep Zoom Composer, sempre consigliato da Alessandro D. S. .&lt;/p&gt;
&lt;p&gt;Premetto che ho alcuni domini registrati su vari Server tra cuoi uno (il mio: panatronic.it) su un mio server con Win2003 e IIS.&lt;/p&gt;
&lt;p&gt;ho fatto una piccola gallery e l'ho uplodata sul mio stazio web del mio dominio. ho messo tutta la cartella che Deep Zoom Composer mi crea nell'esportazione e precisamente il contenuto della cartella "&lt;em&gt;DeepZoomProjectWeb&lt;/em&gt;".&lt;/p&gt;
&lt;p&gt;sui server di aziende importanti (non cito per non fare pubblicità) funziona tutto ok ma sul mio no.&lt;/p&gt;
&lt;p&gt;A questo punto decido di risolvere il problema sul server: prima cosa installo .Net 3.5 sul server. Per l'installazione nessun problema tranne che un avviso di protezione sull'aggiornamento di alcuni file che dal titolo dell'avviso (Library C++) ritengo sia un aggiornamento di librerie c++ di sistema; non potevo far altro che OK ed ho continuato.&lt;/p&gt;
&lt;p&gt;Dopo questa installazione ho provato ma nulla. Ancora non funzionava. Allora ho provato ad installare i runtime di SilverLight andando via web in quella pagina pubblicata della gallery direttamnte dal server e dato che non c'era ancora installato i runtime di SL, ho ricevuto l'avviso d'installazione. Faccio l'installazione ma nulla.&lt;/p&gt;
&lt;p&gt;A questo punto chiedo nel nostro forum "Argomenti Vari" e subito l'amico Alessandro D. S. mi suggerisce di installare il .Net 3.5 e i runtime di SilverLight che avevo precedentemente fatto.&lt;/p&gt;
&lt;p&gt;Effettivamente non pensavo fosse un problema di runtime e vado a vedere che errore mi da nella pagina: l'errore specificava che si trattava di settaggio del server Web, quindi IIS.&lt;/p&gt;
&lt;p&gt;Dato che tra le varie prove ho impostato la cartella contenente la gallery con tutti i permessi di tutto, sicuramente era un settaggio legato proprio tra IIS e SL.&lt;/p&gt;
&lt;p&gt;facendo un poco di ricerche sul web con l'amico google incappo in un documento di una nota azienda che da servizio hosting che parla di estensioni MIME abilitate sui suoi server win2003. Tra le estensioni elencate si trovava l'estensione .xap che si riferisce ad applicazioni SilverLight.&lt;/p&gt;
&lt;p&gt;A questo punto vado sulle proprietà del sito web in IIS e precisamente nel menù HTTPHeaders -&amp;gt; MIME types ed aggiungo questa types:&lt;br /&gt;
Estensione: .xap&lt;br /&gt;
Types: application/x-silverlight-app.&lt;/p&gt;
&lt;p&gt;Faccio la prova e funziona perfettamente.&lt;br /&gt;
Ora non so se installando solo il .Net 3.5 o solo il runtime di SL e poi impostando questa opzione sarebbe andato bene comunque.&lt;br /&gt;
Magari in un'altra situazione farò queste prove. Comunque su questo Server mi servirà prima o poi il .Net 3.5, quindi meglio così.&lt;/p&gt;
&lt;p&gt;è vero: volete vedere la gallery? è la gallery che vi ha già mostrato l'amico &lt;a target="_blank" href="http://community.visual-basic.it/kally/"&gt;Marco Chillemi&lt;/a&gt; della sua piccola vacanza nel Salento: &lt;a target="_blank" href="http://www.panatronic.it/chillemi"&gt;Gallery Salento&lt;/a&gt; . Attendo Voi per le prossime Gallery.&lt;/p&gt;&lt;img src="http://blog.panatronic.it/aggbug/6.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blog.panatronic.it/comments/6.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.panatronic.it/comments/commentRss/6.aspx</wfw:commentRss>
        <trackback:ping>http://blog.panatronic.it/services/trackbacks/6.aspx</trackback:ping>
    </entry>
    <entry>
        <title>I Parametri "Table-Valued" di SQLServer 2008</title>
        <link rel="alternate" type="text/html" href="http://blog.panatronic.it/archive/2009/10/12/i-parametri-table-valued-di-sqlserver-2008.aspx" />
        <id>http://blog.panatronic.it/archive/2009/10/12/i-parametri-table-valued-di-sqlserver-2008.aspx</id>
        <published>2009-10-12T05:19:25Z</published>
        <updated>2009-10-12T05:19:25Z</updated>
        <content type="html">&lt;p&gt;I Parametri "Table-Valued" sono stati introdotti con SQL Server 2008 (sotto sugerimento di &lt;a targhet="New" href="http://community.ugiss.org/blogs/lbianchi"&gt;Luca Bianchi&lt;/a&gt;) e ci permettono di inviare un intera DataTable ad una istruzione T-SQL o Routine senza creare nessuna tabella temporanea o altro del genere.&lt;/p&gt;
&lt;p&gt;Per poter inviare l'intera DataTable ho fatto una semplice SP che riceve da una Select i dati dal parametro Table-Value e lo inserisce "INSERT" nella tabella desiderata.&lt;/p&gt;
&lt;p&gt;Ecco come ho fatto:&lt;/p&gt;
&lt;p&gt;Partiamo da VB e dalla creazione della DataTable.&lt;/p&gt;
&lt;div class="VisualBasicFormat"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt; &lt;span class="kwrd"&gt;Dim&lt;/span&gt; dtTable &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; DataTable&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt; &lt;span class="kwrd"&gt;Dim&lt;/span&gt; col &lt;span class="kwrd"&gt;As&lt;/span&gt; DataColumn&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;col = &lt;span class="kwrd"&gt;New&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"ID"&lt;/span&gt;, &lt;span class="kwrd"&gt;GetType&lt;/span&gt;(Int32))&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;dtTable.Columns.Add(col)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;col = &lt;span class="kwrd"&gt;New&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"Descrizione"&lt;/span&gt;, &lt;span class="kwrd"&gt;GetType&lt;/span&gt;(&lt;span class="kwrd"&gt;String&lt;/span&gt;))&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;dtTable.Columns.Add(col)&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;ora inserieamo alcuni dati nella DataTable:&lt;/p&gt;
&lt;div class="VisualBasicFormat"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;Dim&lt;/span&gt; printRow &lt;span class="kwrd"&gt;As&lt;/span&gt; DataRow = dtTable.NewRow&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;printRow(&lt;span class="str"&gt;"ID"&lt;/span&gt;) = 1&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;printRow(&lt;span class="str"&gt;"Descrizione"&lt;/span&gt;) = &lt;span class="str"&gt;"Patate di stagione"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;dtTable.Rows.Add(printRow)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;printRow(&lt;span class="str"&gt;"ID"&lt;/span&gt;) = 2&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;printRow(&lt;span class="str"&gt;"Descrizione"&lt;/span&gt;) = &lt;span class="str"&gt;"Arance Siciliane"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;dtTable.Rows.Add(printRow)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;printRow(&lt;span class="str"&gt;"ID"&lt;/span&gt;) = 3&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;printRow(&lt;span class="str"&gt;"Descrizione"&lt;/span&gt;) = &lt;span class="str"&gt;"Mele di stagione"&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;dtTable.Rows.Add(printRow)&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Ora andiamo su SQL con il Manageri di SQL2008 e creamo un Type personalizzato di tipo Table-Value:&lt;/p&gt;
&lt;div class="TsqlFormat"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;CREATE&lt;/span&gt; TYPE dbo.TTableType &lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;span class="kwrd"&gt;TABLE&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    ( ID &lt;span class="kwrd"&gt;int&lt;/span&gt;, Descrizione nvarchar(&lt;span class="kwrd"&gt;Max&lt;/span&gt;) )&lt;/pre&gt;
&lt;pre&gt; &lt;/pre&gt;
&lt;pre&gt;Ora creamo la Stored Procedure con il parametro di tipo Table-Value appena creato:&lt;/pre&gt;
&lt;div class="TsqlFormat"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;create&lt;/span&gt; &lt;span class="kwrd"&gt;PROCEDURE&lt;/span&gt; [dbo].[SpInTable] &lt;/pre&gt;
&lt;/div&gt;
&lt;div class="TsqlFormat"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;(@Tab dbo.TTableType readonly ) &lt;/pre&gt;
&lt;/div&gt;
&lt;div class="TsqlFormat"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt; &lt;/pre&gt;
&lt;/div&gt;
&lt;div class="TsqlFormat"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;AS&lt;/span&gt; &lt;/pre&gt;
&lt;/div&gt;
&lt;div class="TsqlFormat"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt; &lt;/pre&gt;
&lt;/div&gt;
&lt;div class="TsqlFormat"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;BEGIN&lt;/span&gt; &lt;span class="kwrd"&gt;TRAN&lt;/span&gt; &lt;/pre&gt;
&lt;/div&gt;
&lt;div class="TsqlFormat"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;SET&lt;/span&gt; NOCOUNT &lt;span class="kwrd"&gt;OFF&lt;/span&gt;; &lt;/pre&gt;
&lt;/div&gt;
&lt;div class="TsqlFormat"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt; &lt;/pre&gt;
&lt;/div&gt;
&lt;div class="TsqlFormat"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&lt;span class="kwrd"&gt;INSERT&lt;/span&gt; &lt;span class="kwrd"&gt;INTO&lt;/span&gt; &lt;/pre&gt;
&lt;/div&gt;
&lt;div class="TsqlFormat"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;[intec].[dbo].[TabMia] (ID, Descrizione )&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="TsqlFormat"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;    &lt;span class="kwrd"&gt;SELECT&lt;/span&gt; ID, Descrizione &lt;span class="kwrd"&gt;FROM&lt;/span&gt; @Tab;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="TsqlFormat"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt; &lt;/pre&gt;
&lt;/div&gt;
&lt;div class="TsqlFormat"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&lt;span class="kwrd"&gt;COMMIT&lt;/span&gt; &lt;span class="kwrd"&gt;TRAN&lt;/span&gt; &lt;/pre&gt;
&lt;/div&gt;
&lt;div class="TsqlFormat"&gt;
&lt;pre&gt;Perfetto. Ora non ci rimane altro che trasmettere la DataTable alla Stored Procedure dal nostro progetto VB:&lt;/pre&gt;
&lt;/div&gt;
&lt;div class="TsqlFormat"&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;Dim insertSpInTable &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; SqlCommand("SpInTable", CnnS)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;insertSpInTable.CommandType = CommandType.StoredProcedure&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;Dim ParamT &lt;span class="kwrd"&gt;As&lt;/span&gt; SqlParameter = insertSpInTable.&lt;span class="kwrd"&gt;Parameters&lt;/span&gt;.AddWithValue("@Tab", SqlDbType.Structured)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;ParamT.SqlDbType = SqlDbType.Structured&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;ParamT.TypeName = "dbo.TTableType"&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;ParamT.&lt;span class="kwrd"&gt;Value&lt;/span&gt; = dtFR&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;insertSpInTable.ExecuteNonQuery()&lt;/pre&gt;
&lt;/div&gt;
&lt;font face="Courier New"&gt;
&lt;div class="TsqlFormat"&gt;&lt;br /&gt;
Eccolo qui. Abbiamo passato un intera DataTable in una tabella SQL senza fare nessun ciclo come per esempio facevamo con VB6 e Access. Veramente molto veloce e preciso con una transazione sola. Questo potrebbe essere comodo per inserire, ad esmpio, i dettagli di una fattura, DTT o altro.&lt;/div&gt;
&lt;div class="TsqlFormat"&gt;Spero che vi potrà essere utile nei vostri progetti altrimenti scusate per la noia arrecatovi. :-) :-)&lt;/div&gt;
&lt;/font&gt;&lt;/div&gt;&lt;img src="http://blog.panatronic.it/aggbug/5.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blog.panatronic.it/comments/5.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.panatronic.it/comments/commentRss/5.aspx</wfw:commentRss>
        <trackback:ping>http://blog.panatronic.it/services/trackbacks/5.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Scaricare file da Internet</title>
        <link rel="alternate" type="text/html" href="http://blog.panatronic.it/archive/2009/09/27/scaricare-file-da-internet.aspx" />
        <id>http://blog.panatronic.it/archive/2009/09/27/scaricare-file-da-internet.aspx</id>
        <published>2009-09-27T06:35:02Z</published>
        <updated>2009-09-28T00:46:24Z</updated>
        <content type="html">&lt;p&gt;leggendo una richiesta di un collega sulla maillist VBT&amp;amp;T ho pensato di risolvere questo mio problema che mi assilla da mesi. Anche io avevo bisogno di visualizzare una progressBar durante lo scaricamento di un file da internet.&lt;/p&gt;
&lt;p&gt;Il tutto è fattibile con la classe System.Net.WebClient che fornisce tutti i metodi necessari. Per cominciare, basta creare una nuova variabile globale di tipo System.Net.WebClient:&lt;br /&gt;
&lt;code&gt;Public Withevents TCP As New System.Net.WebClient&lt;/code&gt;&lt;br /&gt;
Abbiamo specificato la parola chiave Withevents per indicare al compilatore che di questa calsse useremo anche i suoi eventi: quindi potremo scrivere direttamente eseguite quando si generano eventi in TCP.&lt;br /&gt;
Per iniziare un download useremo il metodo DownloadFileAsync, che non solo ci permette di scaricare il file specificato nella locazione specificata (come vedremo tra breve), ma non blocca il form e consente di svolgere tutti gli eventi anche durante il download. La sintassi è la seguente:&lt;/p&gt;
&lt;font size="2"&gt;
&lt;p&gt; &lt;/p&gt;
&lt;font size="2"&gt;
&lt;p&gt;TCP.DownloadFileAsync(URL , "C:\miofile.exe")&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div class="snap_preview"&gt;
&lt;p&gt;Per la gestine di una ProgressBar durante il Download del file basta gestire questo evento, generato quando c' è un progresso nel download. Ipotizziamo di avere una ProgressBar di nome "MyProgressBar". Ecco la sintassi:&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;code&gt;Private Sub PrgChngd(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles TCP.DownloadProgressChanged&lt;br /&gt;
MyProgressBar.Value = e.ProgressPercentage 'restituisce la percentuale del download&lt;br /&gt;
Eventualmente potete visualizzare altri dati del donwload che ora commento perchè non servono&lt;br /&gt;
&lt;/code&gt;&lt;code&gt;'e.BytesReceived 'restituisce il numero di bytes ricevuti&lt;br /&gt;
'e.TotalBytesToReceive 'restituisce il numero dei byte da ricevere&lt;br /&gt;
End Sub&lt;/code&gt;&lt;br /&gt;
Poi c'è questo evento che si scatena quando un download viene completato ed utile ad esempio per segnalarlo.&lt;br /&gt;
Ecco la sintassi dell'evento:&lt;br /&gt;
&lt;code&gt;Private Sub PrgComplete(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles TCP.DownloadFileCompleted&lt;br /&gt;
If e.Cancelled = True Then&lt;br /&gt;
'il download è stato cancellato&lt;br /&gt;
Else&lt;br /&gt;
'il download è stato completato&lt;br /&gt;
End If&lt;br /&gt;
End Sub&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Spero vi serva per i vostri programmi...&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/font&gt;La classe Uri (System.Uri) indica univocamente un file sul web.&lt;br /&gt;
In questo modo inizierà il download. &lt;br /&gt;
Altri importanti metodi e proprietà di questa classe sono il "CancelAsync" che interrompe il download corrente e il "IsBusy" che restituisce vero se è in corso un download, altrimenti falso.&lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;Dim&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; URL &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;As&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font color="#0000ff" size="2"&gt;&lt;font color="#0000ff" size="2"&gt;New&lt;/font&gt;&lt;/font&gt;&lt;font size="2"&gt; Uri("&lt;a href="http://www.miosito/miofile.exe"&gt;http://www.miosito/miofile.exe&lt;/a&gt;"&lt;/font&gt;&lt;font color="#a31515" size="2"&gt;&lt;font color="#a31515" size="2" /&gt;&lt;font size="2"&gt;)&lt;/font&gt;&lt;/font&gt;&lt;img src="http://blog.panatronic.it/aggbug/4.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://blog.panatronic.it/comments/4.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://blog.panatronic.it/comments/commentRss/4.aspx</wfw:commentRss>
        <trackback:ping>http://blog.panatronic.it/services/trackbacks/4.aspx</trackback:ping>
    </entry>
</feed>
