Archivio per Febbraio, 2008
Pubblicato da Mario De Ghetto su 27 Febbraio 2008
Per convertire un dato di tipo DateTime in stringa formattata, possiamo utilizzare una delle forme del metodo ToString. Il seguente esempio mostra come è possibile ricavare la data e ora corrente, solo la data corrente e solo l’ora corrente:
Dim dt As DateTimedt = DateTime.Now
‘ data e ora:
Dim dataOra As String = dt.ToString
‘ solo data in formato GG/MM/AAAA:
Dim data As String = dt.ToString(“dd/MM/yyyy”)
‘ solo ora in formato HH.MM.SS (ore da 0 a 23):
Dim ora As String = dt.ToString(“T”)
‘ stampa i tre valori:
Dim s As String = dataOra & Environment.NewLine & _
data & Environment.NewLine & ora
MessageBox.Show(s)
Il risultato sarà simile al seguente:
27/02/2008 20.36.23
27/02/2008
20.36.23
Pubblicato su Tips | Contrassegnato da tag: VB 2005, VB 2008, VB.NET | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 26 Febbraio 2008
Per trovare i limiti superiore e inferiore di un array monodimensionale (vettore), in VB6 avevamo le funzioni UBound() e LBound().
Con VB.NET dobbiamo invece utilizzare due metodi messi a disposizione dall’array, cioè GetUpperBound e GetLowerBound, come nel seguente esempio:
Dim a() As Integer = {1, 2, 3}
Dim limiteSuperiore As Integer = a.GetUpperBound(0)
Dim limiteInferiore As Integer = a.GetLowerBound(0)
Pubblicato su Tips | Contrassegnato da tag: VB 2005, VB 2008, VB.NET | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 25 Febbraio 2008
Per cancellare tutti i file contenuti in una cartella, possiamo utilizzare una semplice routine come questa:
Public Sub SvuotaDir(ByVal cartella As String)
Dim di As IO.DirectoryInfo = _
New IO.DirectoryInfo(cartella)
For Each oFile As IO.FileInfo In di.GetFiles()
oFile.Delete()
Next
End Sub
E’ necessario passare alla Sub una stringa contenente il percorso della cartella da svuotare (compreso l’identificativo del drive). Ecco un esempio di utilizzo, con un pulsante nel form per avviare la cancellazione dei file:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim cartella As String = “”
cartella = “C:prova”
SvuotaDir(cartella)
MessageBox.Show(“Fatto!”)
End Sub
Public Sub SvuotaDir(ByVal cartella As String)
Dim di As IO.DirectoryInfo = _
New IO.DirectoryInfo(cartella)
For Each oFile As IO.FileInfo In di.GetFiles()
oFile.Delete()
Next
End Sub
End Class
Pubblicato su Tips | Contrassegnato da tag: VB 2005, VB 2008, VB.NET | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 22 Febbraio 2008
Nell’attesa di completare il mio libro su Visual Basic 2008 (ormai mancano solo un paio di capitoli) pubblico il progetto di esempio del capitolo 10.
Il progetto consiste in un semplice editor di file di testo che ho utilizzato per mostrare l’uso di tutte le finestre comuni di dialogo. Nell’esempio sono inclusi tutti i seguenti controlli:
OpenFileDialog
SaveFileDialog
FolderBrowserDialog
FontDialog
ColorDialog
PageSetupDialog
PrintPreviewDialog
PrintDialog
PrintDocument
PrintPreviewControl
MenuStrip
StatusStrip (StatusLabel e ProgressBar)
Ovviamente la spiegazione dettagliata della creazione del progetto passo-passo la troverete nel libro che sarà pubblicato prossimamente (probabilmente verso fine marzo 2008).
Premesso che il progetto è solamente dimostrativo, è comunque perfettamente funzionante ed è possibile estenderlo con altre funzionalità non previste da questo esempio (per esempio ricerca e sostituzione di testo).
Pubblicato su Articoli vari, Novità | Contrassegnato da tag: Libro, VB 2008, Visual Basic 2008 | 3 Commenti »
Pubblicato da Mario De Ghetto su 18 Febbraio 2008
Per implementare in un nostro programma il salvataggio su file del contenuto dello schermo possiamo utilizzare una tecnica come quella seguente che non fa uso di API di sistema ma utilizza la clipboard.
In sostanza:
- mettiamo un controllo Image e un pulsante in un form
- inseriamo il seguente codice:
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Me.PictureBox1.Image = My.Computer.Clipboard.GetImage()
Dim frmImage As System.Drawing.Imaging.ImageFormat
frmImage = System.Drawing.Imaging.ImageFormat.Jpeg
Me.PictureBox1.Image.Save("C:\immagine.jpg", frmImage)
End Sub
Dopo aver avviato il programma, se vogliamo salvare il contenuto dello schermo:
- premiamo il tasto “Stamp”
- premiamo il pulsante Button1
… e automaticamente il controllo Image visualizzerà il contenuto della clipboard, salvando il tutto nel file C:\immagine.jpg.
Se dovesse servire un altro formato di file immagine non serve fare altro che cambiare la definizione
frmImage = System.Drawing.Imaging.ImageFormat.Jpeg
con un altro formato, per esempio
frmImage = System.Drawing.Imaging.ImageFormat.Bmp
Pubblicato su Tips | Contrassegnato da tag: Tips, VB.NET | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 15 Febbraio 2008
Pubblicato su Articoli vari | Contrassegnato da tag: Controlli, VB, VB 2005, VB 2008 | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 15 Febbraio 2008
Per il mio lavoro, spesso ho la necessità di gestire l’importazione e l’esportazione di file di dati (tipicamente file di testo con record a lunghezza fissa) da Microsoft Access. Per queste attività ho sempre utilizzato la gestione delle specifiche di importazione/esportazione nativa di Access, ma è una funzionalità che non mi ha mai soddisfatto completamente.
Per esempio ci sono stati dei casi in cui non sono riuscito a modificare una specifica già esistente e ho dovuto ricrearla da zero, senza contare il problema di inserire un campo all’interno di una specifica già esistente: in questo caso è necessario ricalcolare manualmente il carattere di partenza di ciascun campo successivo. Anche lo spostamento di un campo in una diversa posizione è un’attività che può diventare un’atroce perdita di tempo.
Ecco quindi che, diverso tempo fa, ho pensato di creare un progetto in Visual Basic 6.0 (download di 153 kb). Anzi, i progetti sono più di uno:
-
un progetto che comprende l’interfaccia principale (ImportExport.vbp)
-
un progetto che comprende l’interfaccia per la gestione delle specifiche (Specifiche.vbp)
-
un progetto per gestire le attività di importazione (Import.vbp)
-
un progetto per gestire le attività di esportazione (Export.vbp).
Con il link sopra riportato potete scaricare tutti questi progetti, con anche gli eseguibili già compilati, un database di prova e alcuni file di testo, con qualche specifica di importazione/esportazione già caricata.
Le specifiche, infatti, vengono caricate in una tabella di Access. E’ possibile estrarre anche le specifiche da un database già esistente e salvarle in questa tabella speciale, così da centralizzare tutte le attività di importazione/esportazione.
Non è tutto: considerato che potrebbe essere necessario eseguire un’importazione/esportazione anche direttamente da un programma VBA scritto all’interno di Access (o di un altro prodotto Office) o perfino in un proprio programma scritto in qualsiasi altro linguaggio (perfino VB.NET), ho pensato di gestire i parametri della riga di comando utilizzati per avviare i programmi Import.exe e Export.exe.
In questo modo è possibile avviare, per esempio, Import.exe passandogli già i parametri necessari per eseguire l’importazione senza nemmeno aprire la sua interfaccia grafica! Il trucco sta tutto nell’evento Load del form Import.frm:
Private Sub Form_Load()
ReDim argv(5) As String
Dim i As Integer
Dim sNomeFile
Dim sNomeSpecifica
Dim sNomeDB
Dim sNomeTabella
' legge la riga di comando:
argv = GetCommandLine(argv)
If argv(1) <> "" Then
' i parametri vengono passati secondo quest'ordine:
sNomeFile = argv(1)
sNomeSpecifica = argv(2)
sNomeDB = argv(3)
sNomeTabella = argv(4)
sFlagDelete = argv(5)
If argv(5) = 1 Then
Call DeleteTable(sNomeDB, sNomeTabella)
End If
If argv(1) <> "" Then
Call ImportaFile(sNomeFile, sNomeSpecifica, sNomeDB, sNomeTabella)
End If
' annulla il caricamento del form:
Unload Me
Exit Sub
End If
ReDim arraySpecifiche(1)
arraySpecifiche = ElencaSpecifiche()
Me.txtNomeSpecifica.Clear
For i = 1 To arraySpecifiche(0)
Me.txtNomeSpecifica.AddItem arraySpecifiche(i)
Next i
End Sub
Per ultima, una piccola precisazione: questo programma l’ho scritto qualche anno fa, ma non l’avevo mai pubblicato prima, quindi è una soluzione assolutamente inedita.
Può sembrare anacronistico un progetto scritto in VB6 come nuova soluzione, visto che ormai .NET è diventata la piattaforma di sviluppo prevalente, ma c’è una considerazione da tenere presente: tra i file forniti con il file compresso c’è anche un report dell’analisi eseguita con Code Advisor per verificare la compatibilità dei progetti con VB.NET. L’esito è assolutamente confortante, dato che viene segnalato solo un piccolo problema relativo a Option Explicit, facilmente eliminabile.
Ovviamente questo progetto può essere utilizzato come prototipo per realizzare una soluzione analoga e più orientata agli oggetti, utilizzando codice VB.NET puro.
In ogni caso spero che possa essere utile a chi, come me, ha avuto problemi nell’utilizzo delle funzionalità native di Access per la gestione delle specifiche di importazione/esportazione.
Pubblicato su Articoli vari, Office | Contrassegnato da tag: Access, VB6 | 1 Commento »
Pubblicato da Mario De Ghetto su 12 Febbraio 2008
Con questo post vorrei aprire una sperimentazione un po’ al di fuori dell’uso normale di un blog: ho visto nelle statistiche di WordPress.com (che ospita questo blog) che molti visitatori cercano in questo blog argomenti ai quali potrei rispondere in modo agevole, altri probabilmente meno (o addirittura, in alcuni casi, non c’entrano nulla).
Mi piacerebbe quindi aprire un dialogo con voi per verificare se posso aiutarvi meglio, ma naturalmente voi dovete aiutarmi ad aiutarvi!
Vi chiedo quindi di inserire dei commenti a questa pagina con delle richieste di suggerimenti di programmazione, chiarimenti, segnalazioni di articoli, avvisi e quant’altro potrebbe aiutarmi a preparare del materiale da mettere a disposizione di tutti i visitatori. Non garantisco, al momento, di poter rispondere a tutti i quesiti, ma conoscendo le vostre necessità posso cercare di organizzarmi in tal senso.
Non è una proposta di una nuova Community: ce ne sono tante che trattano argomenti di Visual Basic (per esempio le principali sono Visual Basic Tips&Tricks e ASP Italia) e quindi non avrebbe senso. L’obiettivo è invece quello di rendere questo blog più interessante e utile per chi viene a visitarlo.
Proviamo a crescere insieme… Happy coding! 
Pubblicato su ADO.NET, Articoli vari, LINQ, Novità, Tips, WCF, WPF, WF | Contrassegnato da tag: VB, VB.NET, codice, Visual Basic, tip, proposta, collaborazione, argomenti, suggerimenti, articoli, commenti, Community | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 11 Febbraio 2008
Segnalo un articolo postato oggi nel blog del Team di MSDN Italia con il quale si annuncia la possibilità di scaricare una hot-fix per Visual Studio 2008 e per Visual Web Developer 2008 per problemi di performance.
E’ possibile scaricare la hot fix da questa pagina.
Consultate la pagina del Team di MSDN Italia per alcune precauzioni nella installazione. Potete verificare che quest’ultima è avvenuta con successo se, avviando Visual Studio 2008, trovate la dicitura “Hotfix for Microsoft Visual Studio Team System 2008 Team Suite – ENU (KB946581)” nel menu Help > About.
Pubblicato su Novità | Contrassegnato da tag: VS 2008, VWD | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 11 Febbraio 2008
Ecco un’altra funzionalità che potrà essere utile in molti casi: l’articolo “Find And Replace Method For RichTextBox” spiega come è possibile estendere il controllo RichTextBox (RTB) per aggiungergli le funzioni di ricerca e sostituzione all’interno del testo.
Come nel mio post precedente, anche in questo caso viene creato un controllo che poi verrà posizionato nella toolbox, per l’inserimento in un nostro progetto Visual Basic.
Vista la semplicità di questa seconda estensione, non sarà difficile unire questo codice con quello presentato nel post precedente. In questo modo potremo estendere il controllo RichTextBox per ottenere un controllo in grado di effettuare ricerche e sostituzioni, nonché di stampare il proprio contenuto. Un RichTextBox veramente “Rich”, insomma!
Pubblicato su Tips | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 11 Febbraio 2008
La stampa è una delle attività più frequenti delle applicazioni, ma spesso è anche quella che pone i maggiori interrogativi.
Nell’articolo “How to print the content of a RichTextBox control by using Visual Basic .NET or Visual Basic 2005” della KB di Microsoft viene spiegato come estendere il controllo RichTextBox (RTB) per aggiungere la funzione di stampa del suo contenuto.
Nel caso specifico viene creato un controllo vero e proprio, incluso in una DLL il cui riferimento sarà poi inserito nella toolbox di un progetto Visual Basic.
Pubblicato su Tips | 1 Commento »
Pubblicato da Mario De Ghetto su 11 Febbraio 2008
Talvolta è necessario gestire con un unico metodo l’evento Click di più controlli: ad esempio potremmo avere un form con numerosi pulsanti e voler distinguere con un’unico metodo il pulsante che è stato premuto.
La tecnica che presento in questo esempio è particolarmente semplice, tanto da risultare disarmante:
Public Class Form1
Private Sub Button_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles Button1.Click, Button2.Click, Button3.Click
Dim messaggio As String = ("Premuto il pulsante n. ")
If sender Is Button1 Then
messaggio &= "1"
ElseIf sender Is Button2 Then
messaggio &= "2"
ElseIf sender Is Button3 Then
messaggio &= "3"
End If
MessageBox.Show(messaggio)
End Sub
End Class
Il trucco sta tutto nella seguente parte della definizione del metodo generale Button.Click, in quanto quest’ultimo viene istruito a rimanere in ascolto degli eventi Click di tutti e tre i pulsanti presenti sul form:
Handles Button1.Click, Button2.Click, Button3.Click
Pubblicato su Tips | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 10 Febbraio 2008
Pubblicato su Novità | Contrassegnato da tag: VB 2008, versione italiana, VS 2008 | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 10 Febbraio 2008
Nelle mie esplorazioni su CodeProject ho trovato un altro progetto interessante: un valutatore di espressioni a runtime per Visual Basic.NET.
Anche se questo è un articolo piuttosto vecchio, ho letto in qualche richiesta inviata a varie Community tecniche che talvolta esiste l’esigenza di valutare espressioni a runtime. Questo articolo risolve il problema con un’ampia gamma di operatori riconosciuti.
Pubblicato su Articoli vari | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 10 Febbraio 2008
In alcuni articoli che ho pubblicato in questo blog ho spiegato come sia possibile utilizzare una stringa per connettersi a un database e come sia possibile e doveroso salvarla in un file di configurazione dell’applicazione.
Qualche lettore mi ha chiesto come sia possibile modificare a runtime la stringa di connessione memorizzata nel file di configurazione, visto che con My.Settings non è possibile farlo, dato che è a sola lettura.
Cercando su CodeProject ho trovato questo articolo interessante che risolve proprio questo problema: “How to persist changes to My.Settings.ConnectionStrings“.
Le tecniche illustrate non sono particolarmente complesse e quindi possono essere agevolmente utilizzate da chiunque, senza particolari problemi.
Alla fine dell’articolo, l’autore si raccomanda di verificare che nelle proprietà dell’applicazione sia impostata la proprietà “Salva My.Settings alla chiusura“.
Pubblicato su ADO.NET | Contrassegnato da tag: database, VB.NET, ADO.NET 2.0 | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 10 Febbraio 2008
Microsoft ha reso disponibile al download il Code snippet editor per Visual Basic 2008, analogamente al prodotto che era disponibile per la versione 2005.
Molto interessante è l’organizzazione dei frammenti di codice in cartelle che, come si può vedere dallo screenshot, permette di inserire frammenti di codice scritti anche per altri linguaggi.
Il link “download” inserito nella pagina citata permette di accedere alla pagina di download vera e propria, nella quale troviamo (oltre a una simpatica immagine di un messaggio in bottiglia):
Tutte le versioni scaricabili necessitano di Framework .NET 3.5, quindi Visual Basic 2008 Express (almeno) è d’obbligo.
Ricordo che in Visual Basic e Visual Studio 2008 è possibile inserire un frammento di codice selezionando il menu Modifica > IntelliSense > Inserisci frammento di codice…
A questo punto viene visualizzato un elenco di cartelle che rappresenta le varie categorie secondo le quali sono raggruppati i vari frammenti di codice. Con un doppio click sulla cartella che ci interessa, verrà presentato un elenco di ulteriori cartelle e di frammenti di codice. Con un doppio click sullo snippet che desideriamo, verrà inserito il frammento di codice direttamente nella nostra finestra di codice, nel punto dove si trova il cursore.
Quella degli snippet è una funzionalità molto interessante e utile e quindi vi consiglio di dare un’occhiata a tutti gli snippet disponibili perché prima o poi vi serviranno.
Se volete creare i vostri snippet e distribuirli in file .vsi, vi segnalo che Alessandro Del Sole ha creato un tool gratuito, VSI Builder, che serve proprio a questo scopo.
Pubblicato su Articoli vari, Novità | Contrassegnato da tag: code snippet, VB 2008, VSI Builder | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 9 Febbraio 2008
Pubblicato su Novità | Contrassegnato da tag: Controlli, VB.NET | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 7 Febbraio 2008
Per convertire un numero intero in numero binario possiamo utilizzare la classe BitArray che converte un array di numeri in un array di bit. Per rappresentare la sequenza di bit, poi, utilizziamo una stringa e, per separare visivamente ogni byte, aggiungiamo anche uno spazio separatore:
Dim numero As Integer = 32767
Dim numDecimale() As Integer = {numero}
Dim numBinario As New BitArray(numDecimale)
Dim str As String = ""
Dim contaBit As Integer = 0
For i As Integer = (numBinario.Count - 1) To 0 Step -1
If contaBit = 8 Then
str &= " "
contaBit = 0
End If
If numBinario.Item(i) = False Then
str &= "0"
Else
str &= "1"
End If
contaBit += 1
Next
MessageBox.Show(str)
Con il numero intero 32767 otteniamo la stringa seguente:
00000000 00000000 01111111 11111111
Pubblicato su Articoli vari, Tips | Contrassegnato da tag: VB.NET | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 7 Febbraio 2008
Spesso si verifica la necessità di interrogare dei dati provenienti da fonti eterogenee, per esempio alcuni presenti in un database di Microsoft Access e altri in un database di SQL Server.
L’articolo “LINQtoSQL: Query multiple databases in one LINQ expression and more…” pubblicato su CodeProject permette di comprendere le tecniche che stanno alla base dell’estrazione di dati provenienti da fonti diverse. Corredato da esempio in VB.NET.
Pubblicato su LINQ | Contrassegnato da tag: VB.NET, LINQ | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 7 Febbraio 2008
Segnalo l’articolo pubblicato su CodeProject intitolato “Custom TextBox that Delays the TextChanged Event” che è molto interessante, soprattutto per la sua utilità.
Il problema consiste nel fatto che l’evento TextChanged viene scatenato ogni volta che digitiamo un nuovo carattere nella TextBox, anche se l’inserimento del dato non è completato. Per esempio, in una pagina ASP.NET, possiamo avere una TextBox che utilizziamo per inserire la pagina dei dati a cui vogliamo accedere. Se la pagina è 100, prima inseriamo “1″ (e viene scatenato l’evento TextChanged e quindi eseguita la query al database), poi digitiamo lo “0″ di “10″ (e viene ulteriormente scatenato l’evento con una seconda query al database) e infine digitiamo lo zero finale per ottenere “100″ (scatenando per una terza volta evento e query). Questo non è desiderabile sia per l’effetto visuale pessimo, sia per l’inefficienza e le prestazioni dell’applicazione.
Ecco quindi che l’autore ha creato un controllo custom derivato da TextBox per ritardare l’evento di un certo numero di millisecondi.
L’articolo, dotato di sorgente e di esempio in C#, è piuttosto semplice da seguire e non è particolarmente difficile da convertire in VB.NET.
Pubblicato su Articoli vari | Contrassegnato da tag: C#, Custom control | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 6 Febbraio 2008
Da qualche tempo è stato rilasciato “Virtual PC 2007″ con il supporto a Windows Vista, scaricabile in versione “free” da questa pagina.
Alcune applicazioni dove conviene utilizzare Virtual PC:
- sviluppo e test di software su diversi sistemi operativi per verificarne la piena compatibilità
- didattica: può essere creata una copia della macchina virtuale per ripristinare la stessa dopo una o più sessioni di laboratorio, senza dover formattare e reinstallare il PC
- installazioni di software di prova senza rischiare di compromettere il sistema operativo di “produzione” installato sul PC
- “isolamento” della macchina virtuale dal resto del PC per non compromettere il sistema con software di dubbia provenienza (rischio spyware, virus ecc.)
- possibilità di spostare una macchina virtuale da un hard disk all’altro e anche ad un diverso PC, senza dover reinstallare nulla
- predisposizione di una rete locale simulata con un server in macchina virtuale per test sistemistici e applicativi
- preparazione di istruzioni di installazione di un sistema operativo da zero, avviando l’installazione dalla macchina virtuale e prendendo gli “screenshot” della stessa
- … e molte altre!
Attenzione però che ogni istanza di Virtual PC deve avere in ogni caso la sua licenza d’uso e quindi non possono essere utilizzate installazioni multiple del sistema operativo, anche se presenti nello stesso PC.
Pubblicato su Articoli vari, Software HW e Windows | Contrassegnato da tag: Virtual PC, Windows Vista | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 6 Febbraio 2008
Per chi non conoscesse l’add-in gratuito “Interop Forms Toolkit 2.0“, voglio sottolineare una sua caratteristica fondamentale: permette di estendere un progetto VB6, permettendo di utilizzare dei form di Visual Basic.NET direttamente da un’applicazione VB6.
Questo agevola sicuramente chi ha sviluppato un’applicazione “enorme” in VB6 e non si può permettere di perdere molto tempo nell’effettuare la migrazione dell’intero progetto sotto .NET. In questo modo viene garantita la produttività, almeno a breve termine, con una facile estensione del progetto iniziale con nuove funzionalità che VB.NET offre nativamente.
Pubblicato su Articoli vari, VB6-VBA | Contrassegnato da tag: VB 2005, VB 2008, conversione, VB6, VB.NET, interoperabilità | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 6 Febbraio 2008
Con la pubblicazione di un’applicazione web ci si pone il problema di proteggere il codice sorgente dell’applicazione stessa, dato che l’applicazione è interamente accessibile all’amministratore del sito Internet.
Infatti, per un’applicazione commerciale non è auspicabile che chi ha accesso alle cartelle dell’applicazione possa in qualche modo modificare l’applicazione (soprattutto nella parte relativa al sorgente, più che nella parte relativa alla presentazione delle pagine) o, peggio, utilizzare direttamente il codice sorgente per costruire un’applicazione commerciale analoga.
Con Visual Studio 2005 e ASP.NET 2.0 questo obiettivo è facilmente raggiungibile, come evidenziato dalle seguenti istruzioni:
-
dal menu “Genera” scegliere la voce “Pubblica sito web”; comparirà una maschera per la scelta della destinazione di pubblicazione e di altre informazioni;
-
è possibile pubblicare il sito in una cartella locale (ad esempio per test, prima della pubblicazione definitiva), semplicemente cambiando il percorso di destinazione. Si consiglia di creare una cartella vuota appositamente per lo scopo di depositare i file destinati alla pubblicazione;
-
in alternativa è possibile fare click sul pulsante “…” e scegliere se pubblicare in una cartella locale (scegliendo la cartella stessa), su IIS locale, in FTP o su un sito remoto (richiede le estensioni del server di FrontPage);
-
dopo aver inserito le informazioni sulla destinazione, attivare la casella relativa a “Attiva nome sicuro su assembly precompilati”, poi selezionare “Utilizza un contenitore di chiavi” e inserire un nome a scelta (es. “chiavi”), poi confermare con OK.
Nella finestra di output verranno visualizzate le varie fasi di pubblicazione. Nel caso in cui i file siano già presenti nella cartella di destinazione, comparirà una richiesta di conferma di eliminazione dei file già presenti.
Verificando i risultati, si troverà che tutti i file con estensione “.vb” (destinati a mantenere “in chiaro” il codice sorgente in Visual Basic delle pagine) sono spariti, così come è sparita la cartella App_Code, preposta a contenere tutte le classi generali (analoghe ai moduli globali di VB6).
Al loro posto è comparsa invece una cartella “bin” contenente le DLL che sono il risultato della compilazione dei file di codice sorgente di Visual Basic di tutte le pagine del sito.
Ovviamente non è possibile compilare le pagine “.aspx” il cui sorgente, costituito da tag HTML, rimane visibile.
Certamente, però, la compilazione del codice VB permette di nascondere all’utente e all’amministratore del sito tutte quelle funzionalità più importanti che caratterizzano il comportamento dell’applicazione web.
Oltre alle tecniche finora spiegate, native di Visual Studio, mi è stato segnalato da Antonio Catucci (aka “tdj”) un suo post relativo a un add-in per Visual Studio, scaricabile gratuitamente: Visual Studio 2005 Web Deployment Project. Per approfondimenti, inoltre, è possibile consultare l’articolo MSDN “Using Web Deployment Projects with Visual Studio 2005“.
Pubblicato su ASP.NET, Sicurezza | Contrassegnato da tag: ASP.NET 2.0, Protezione codice, Sicurezza | 2 Commenti »
Pubblicato da Mario De Ghetto su 6 Febbraio 2008
Microsoft Italia ha lanciato una nuova iniziativa per avvicinare ancora di più i propri dipendenti ai professionisti, agli utenti e alle community tecniche: una piattaforma per i blog che raccoglierà appunto i blog di alcuni dipendenti Microsoft.
L’indirizzo è il seguente: http://mclips.it/.
E’ possibile registrarsi per poter commentare liberamente i post dei già numerosi blogger Microsoft (in questo momento sono 34).
E’ un modo come un altro per condividere le esperienze e per poter avere un confronto diretto con chi vive le nuove tecnologie tutti i giorni. Assolutamente da sperimentare.
Pubblicato su Novità | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 5 Febbraio 2008
Dopo quasi 2 anni che è stato pubblicato il mio primo libro su Visual Basic 2005 (Editore Future Media Italy), ricevo ancora richieste in e-mail per sapere dove è possibile reperire tale libro.
A tale proposito, quindi, nell’attesa di completare e pubblicare il nuovo libro su Visual Basic 2008, metto a disposizione i link per scaricare alcuni materiali relativi al primo libro:
-
-
-
capitolo 12 inedito con un esempio di semplice applicazione in VB 2005 (una calcolatrice a nastro).
Pubblicato su Novità | Contrassegnato da tag: Libro, VB 2005, Visual Basic 2005 | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 5 Febbraio 2008
Trovate l’annuncio del rilascio della Service Pack 1 (SP1) di Windows Vista in questo articolo di MS TechNet. Potete anche consultare la pagina delle FAQ su questo rilascio, con alcune specifiche utili per capire la portata dell’aggiornamento e l’annuncio del team di sviluppo.
Per il momento è stato rilasciato il prodotto in versione inglese (come era ovvio), ma anche in spagnolo, francese, tedesco e giapponese. Il prossimo rilascio comprenderà anche l’italiano.
Pubblicato su Novità, Software HW e Windows | Contrassegnato da tag: Windows Vista SP1 | 1 Commento »
Pubblicato da Mario De Ghetto su 4 Febbraio 2008
Pubblicato su Sicurezza | Contrassegnato da tag: Sicurezza | Non ci sono Commenti »
Pubblicato da Mario De Ghetto su 4 Febbraio 2008
Sul blog di Emanuele Mattei è stato pubblicato un articolo sulla gestione di un task panel in Office: http://blog.shareoffice.it/emanuele/articles/9240.aspx.
Anche in questo caso, la tecnologia trattata è VSTO, cioè Visual Studio Tools for Office che ora, nella nuova versione di Visual Studio 2008 (in particolare nella versione Professional), è incluso del prodotto stesso e non è più necessario installarlo come add-in separato.
Pubblicato su Office | Contrassegnato da tag: Office, VSTO | 1 Commento »
Pubblicato da Mario De Ghetto su 4 Febbraio 2008
Sul sito www.iprogrammatori.it è stato pubblicato un articolo che spiega la procedura per creare uno smart tag in Word, utilizzando Visual Tools for Office (VSTO).
Articolo completo QUI. Nella pagina è possibile anche trovare un link per scaricare l’esempio.
Pubblicato su Office | Contrassegnato da tag: Office, VSTO | Non ci sono Commenti »