Mario De Ghetto

Microsoft MVP – Visual Basic (VB.NET: Programmare che passione!)

Segreteria telefonica di Mario. Non sono in casa. Lasciate ogni speranza o voi che mi cercate…

Pubblicato da Mario De Ghetto su 2 Luglio 2009

Ebbene sì, anche per me è venuto il momento di andare in vacanza!

Partirò sabato mattina con la mia famiglia in direzione Rimini e tornerò due settimane dopo.

Sarà (temo) una vacanza piovosa, ma sicuramente riposante e rilassante. Sarò totalmente impossibilitato a utilizzare PC, quindi niente e-mail, niente forum, niente newsgroup, niente libri, niente articoli, niente di niente.

Riprenderò in pieno le mie attività da lunedì 20 Luglio, rinnovato nel corpo e nello spirito.

Un saluto a chi va in vacanza come me, a chi ci è già andato e a chi ci andrà!

A presto.

Pubblicato su Novità | Lascia un commento

Libro su SQL Server 2008 + esempi in VB 2008

Pubblicato da Mario De Ghetto su 30 Giugno 2009

Come già preannunciato da tempo, sono ormai in dirittura d’arrivo con il nuovo libro, dedicato a “SQL Server 2008 – Guida all’uso”. Infatti oggi ho ricevuto il file PDF integrale da rileggere e revisionare, così da poter essere pronti per la stampa e la pubblicazione verso il mese di Settembre 2009.

Nel frattempo, visto comunque che la mia principale “vocazione” è per Visual Basic, vi anticipo che l’undicesimo capitolo è interamente dedicato a Visual Basic 2008 alle modalità di accesso a un database di SQL Server 2008 e alle modalità di visualizzazione e aggiornamento dei dati: con i wizard e con comandi diretti, utilizzando un controllo DataGridView o controlli Windows Form, in data binding. Inoltre, nel decimo capitolo ci sono anche due esempi di creazione di stored procedure da Visual Studio 2008, in linguaggio VB.

Nell’attesa del libro stampato, ho il piacere di pubblicare gli esempi VB che potete scaricare liberamente e gratuitamente da questo link.

Sono certo che non ci saranno obiezioni da parte dell’editore anche nell’anticipazione del Capitolo 11 in PDF. Sappiate comunque che è ancora in bozza (diciamo una “Release Candidate”!) e che la versione definitiva sarà quella che verrà stampata prossimamente.

Questi esempi dovrebbero quanto meno soddisfare le necessità di chi ha difficoltà a “ingranare” con ADO.NET 2.0 per creare applicazioni in grado di leggere e modificare dati memorizzati in database di SQL Server 2008.

Pubblicato su Libro SQL Server 2008, SQL Server, VB 2008 | Lascia un commento

Sincronizzare progetti di Visual Studio (o altri file e cartelle)

Pubblicato da Mario De Ghetto su 25 Giugno 2009

Utilizzo due computer per scrivere i miei libri: un PC fisso e un portatile. Inoltre scarico da Internet una infinità di cose: software, articoli, immagini, documenti e così via. Infine, creo indifferentemente sui due PC anche i progetti che sviluppo per esplorare le funzionalità di Visual Basic e di Visual Studio.

Tutti questi file e cartelle, che possono avere una dimensione anche piuttosto rilevante, devo poi spostarli da un PC all’altro per mantenere sincronizzate le due versioni. Per esempio, se sto scrivendo un capitolo di un libro sul PC portatile, poi devo trasferire il file e le relative immagini sul PC fisso, altrimenti le modifiche possono andare perse.

Finora ho svolto tutte queste attività, abbastanza fastidiose e anche “pericolose” (per la sempre possibile perdita del lavoro fatto), manualmente, cioè ricordandomi di copiare i file e confrontando le due cartelle per vedere se c’erano dei file non aggiornati.

Per migliorare questa gestione difficoltosa e fastidiosa (avete mai provato a sincronizzare a mano due cartelle, ogni santo giorno?), mi sono finalmente deciso a provare Microsoft SyncToy 2.0, scaricabile gratuitamente da qui: http://www.microsoft.com/DownLoads/details.aspx?familyid=C26EFA36-98E0-4EE9-A7C5-98D0592D8C52&displaylang=en

La pagina permette di scaricare sia la versione a 32 bit sia la versione a 64 bit. Entrambi i file di installazione sono piccoli: poco più di 4 MB ciascuno.

Per prima cosa si definisce quali sono le due cartelle da sincronizzare (naturalmente possono essere definite più coppie di cartelle). Ecco un esempio:

image

Una volta che abbiamo creato un’accoppiamento di cartelle, possiamo visualizzare un’anteprima (preview) per vedere cosa è cambiato in una o nell’altra cartella. Se siamo soddisfatti di quanto evidenziato, possiamo far partire la sincronizzazione (Run) per vedere immediatamente applicate le modifiche da una all’altra cartella e viceversa.

Nell’help del programma viene anche spiegata la modalità da seguire per impostare un’avvio della sincronizzazione schedulato. Per esempio possiamo eseguire la sincronizzazione ogni giorno a un’ora prefissata oppure possiamo decidere di farlo automaticamente ogni mezz’ora.

Uno strumento comodo, pratico ed efficace!

 

Pubblicato su Novità | Lascia un commento

[VB.NET] Inserire o estrarre un file da un campo BLOB

Pubblicato da Mario De Ghetto su 17 Giugno 2009

Per chi dovesse avere la necessità di inserire un file in un campo BLOB o, viceversa, estrarre un file da un campo BLOB utilizzando VB.NET e ADO.NET, con i provider OleDb e SqlClient, potrà farlo seguendo le indicazioni di questo articolo:

http://support.microsoft.com/kb/316887

L’articolo è un po’ vecchiotto (2004) ma sempre utile.

Personalmente, però, preferisco sempre la scelta di mantenere i file nel filesystem e di inserire nel database il solo riferimento alla posizione nel filesystem.

Pubblicato su Novità | Lascia un commento

[Software] CIS – CyberInstaller Suite 2009

Pubblicato da Mario De Ghetto su 11 Giugno 2009

Vi segnalo che è stato aggiornato l’ormai famosissimo prodotto software per produrre pacchetti di installazione con vari linguaggi e completamente compatibile con Windows Vista. La compatibilità è stata ora estesa anche alle piattaforme x64 (a 64 bit), anche con più di 4 GB di RAM.

CISLogoCool

Maggiori dettagli sulla nuova versione li potete trovare qui: http://www.silvercybertech.com/italian/index.html.

In questa pagina trovate anche il link alla pagina dalla quale potete scaricare il prodotto anche in versione free.

Se poi siete degli sviluppatori professionisti non potete fare a meno delle funzionalità avanzate della versione Professional.

Il prodotto è pienamente supportato dall’autore, membro dello staff di Visual Basic Tips & Tricks (www.visual-basic.it).

Pubblicato su Novità | Lascia un commento

[VB.NET] Identificazione del sistema operativo

Pubblicato da Mario De Ghetto su 10 Giugno 2009

In un mio post di qualche tempo fa (#17 Identificare il sistema operativo) suggerivo come identificare il sistema operativo che gira sulla macchina che stiamo utilizzando.

Il suggerimento ha un limite: non contiene il test per Windows Vista e, tanto meno, per Windows 7.

Ora ho aggiunto un commento in coda al post con il quale ho spiegato come si fa ad aggiornare il codice per aggiungere il test anche per Vista (versione 6), mentre per Windows 7 non ho ancora potuto provare, ma la versione dovrebbe essere la 7 (ci avreste scommesso?)    :-)

Pubblicato su Novità | Lascia un commento

#54: [VB 2008] Apertura documento Word o creazione da modello

Pubblicato da Mario De Ghetto su 9 Giugno 2009

Se avete la necessità di aprire da Visual Studio 2008 un documento Word esistente oppure se volete creare un nuovo documento basato su un modello di Word, è necessario seguire una procedura ben precisa.

Innanzi tutto, è necessario scaricare e installare il prodotto “2007 Microsoft Office System Update: Redistributable Primary Interop Assemblies” da questa pagina: http://www.microsoft.com/downloads/details.aspx?FamilyID=59daebaa-bed4-4282-a28c-b864d8bfa513&displaylang=en. Esistono versioni di questo pacchetto anche per Office 2003 e XP. Infatti, l’interoperabilità con Office non fa parte di Visual Studio 2008 e bisogna installare le librerie a parte.

Una volta che avete estratto i file di installazione e licenza e avete installato le librerie (avviando il file .msi), dovreste trovarle nella cartella C:\Windows\assembly. Le riconoscete facilmente, perché iniziano tutte per Microsoft.Office.Interop.*. Al posto dell’asterisco trovate Word, Excel e così via.

La versione 12.0.0.0 delle librerie si riferisce a Office 2007, mentre la versione 11.0.0.0 si riferisce alla versione 2003.

Create un modello di Word 2007 (va bene anche il formato .doc di Word 2003) di nome “MioModello.dot” e posizionatelo nella vostra cartella Documenti predefinita.

Ora create un nuovo progetto in Visual Basic 2008, un normale progetto Applicazione Windows Form.

Aprite le proprietà del progetto e aggiungete il riferimento alle librerie appena installate (Microsoft.Office.Interop.*).

Terminata questa fase “preparatoria”, aggiungete un pulsante al form e, nel codice del gestore dell’evento Click del pulsante stesso, inserite quanto segue:

      Dim oWord As Word.Application = CreateObject("Word.Application")
      Dim oDoc As Word.Document
      Dim strDocumentName As String = ""
      oWord.Visible = True

      strDocumentName = "C:\Users\Mario\Documents\MioDocumento.doc"

      If Dir(strDocumentName) = "" Then
         oWord.Documents.Add(My.Computer.FileSystem.SpecialDirectories.MyDocuments & _
            "\MioModello.dot").SaveAs(FileName:=strDocumentName)
      Else
         oDoc = oWord.Documents.Open(strDocumentName)
      End If

      oWord.Activate()

      oDoc = Nothing
      oWord = Nothing

Dopo aver avviato il programma, premete il pulsante: se il documento MioDocumento.doc esiste già, verrà aperto in una finestra di Word. Se non esiste (come al primo avvio), verrà aperto un nuovo documento, con il nome MioDocumento.doc, con i contenuti del modello MioModello.dot.

Naturalmente se premete nuovamente il pulsante, dopo aver modificato e salvato il documento Word, verrà aperto questo nuovo documento.

A questo punto diventa estremamente semplice passare delle variabili al metodo per aprire qualsiasi documento Word si voglia o per creare qualsiasi documento basato su un modello di Word. 

 

Pubblicato su VB 2008 | Lascia un commento

Programmare in Visual Studio con Speech Recognition

Pubblicato da Mario De Ghetto su 8 Giugno 2009

Non è una nuova tecnologia, né una nuova funzionalità di Visual Studio 2010, ma è un tipo di applicazione della tecnologia Speech Recognition (riconoscimento vocale).

Ammirate come si programma in Visual Studio semplicemente parlando:

Immaginate per esempio le opportunità che si possono mettere a disposizione a persone affette da qualche tipo di disabilità o di invalidità!

Se invece siete un po’ … esibizionisti, potreste andare in spiaggia e programmare semplicemente parlando al vostro portatile, stando distesi sul lettino a prendere il sole ed evitando di riempire la tastiera di crema per la protezione solare.   ;-)

Pubblicato su Novità | Lascia un commento

#53: Sostituzione case-insensitive di una stringa all’interno di altra stringa

Pubblicato da Mario De Ghetto su 7 Giugno 2009

Il metodo Replace di un oggetto stringa è case-sensitive, cioè tiene conto delle lettere maiuscole-minuscole. Per esempio, provate a eseguire questo codice:

      Dim str As String = "Testo da Sostituire"
      str = str.Replace("sostituire", "cancellare")
      MessageBox.Show(str)
      str = str.Replace("Sostituire", "cancellare")
      MessageBox.Show(str)

Il risultato visualizzato dalla prima MessageBox sarà uguale alla stringa originale, perché “Sostituire” è diverso da “sostituire”, mentre con la seconda MessageBox otterremo effettivamente la sostituzione desiderata, perché abbiamo specificato esattamente la stringa così come appare nel testo originale.

Da questo esempio desumiamo che il metodo Replace è “case sensitive”, cioè tiene conto dei caratteri maiuscoli-minuscoli.

Come fare, quindi, a sostituire una stringa all’interno di un’altra stringa senza tenere conto della differenza maiuscole-minuscole, cioè quello che in inglese è definito “case insensitive”?

Possiamo per una volta scomodare le espressioni regolari: intendiamoci, non dobbiamo utilizzare strane sequenze di caratteri che a prima vista sembrano geroglifici. Basta utilizzare il metodo … Replace! Più facile di così… Il codice per ottenere questo risultato è il seguente:

      Dim str As String = _
         "trova PaRoLa e sostituisci con parola"
      Dim strReplace As String = "parola"
      str = Regex.Replace(str, "parola", _
         strReplace, RegexOptions.IgnoreCase)
      MessageBox.Show(str)

Attenzione che per utilizzare le espressioni regolari, dobbiamo anche importare il relativo namespace:

Imports System.Text.RegularExpressions

In questo caso vedremo che il risultato è perfettamente adatto al nostro scopo.

Pubblicato su Novità | Lascia un commento

Microsoft Translator

Pubblicato da Mario De Ghetto su 1 Giugno 2009

Tempo fa avevo commentato nei miei blog sul fatto che anche MSDN Magazine era “caduto nella rete” del traduttore automatico di Microsoft, rendendo traduzioni in italiano poco leggibili e mettendo a disposizione degli utenti la possibilità di intervenire con opportune correzioni (vedi post QUI).

Il mese scorso c’è stato un fatto nuovo: sono stato contattato, insieme ad altri, per una valutazione sul nuovo motore di traduzione dall’inglese all’italiano (e molte altre lingue, compreso da queste lingue all’inglese). Ho subito aderito all’iniziativa e ho inviato la mia valutazione.

Pochi giorni fa ho ricevuto da Microsoft un messaggio con le istruzioni per inserire nei miei siti/blog un opportuno script per aggiungere un widget che consente già da ora di far utilizzare il nuovo motore di traduzione anche ai miei visitatori.

Il nuovo motore è incluso in Microsoft Translator e trovate dei riferimenti qui: http://www.microsofttranslator.com/. Questa pagina permette di tradurre al volo del testo libero da una delle 14 lingue disponibili a un’altra delle stesse lingue. Inoltre ci sono dei collegamenti che permettono anche di prelevare uno script per inserire nel vostro sito o blog un widget simile al mio per tradurre intere pagine web.

La qualità delle traduzioni mi sembra piuttosto buona, ora, anche se ovviamente spazio per miglioramenti ce n’è ancora. Diciamo che la traduzione è un buon punto di partenza per comprendere effettivamente il contenuto di un testo scritto in un’altra lingua e potrebbe aiutarci anche nel creare una bozza di traduzione dall’italiano all’inglese (o in una delle altre lingue disponibili).

Vi consiglio di dare un’occhiata anche al nuovo link “ESL (English as a Second Language)” che fornisce uno strumento per aiutarci a scrivere meglio in inglese. Adatto ai principianti e agli studenti di inglese, anche perché ci permette di trovare direttamente su Internet traduzioni alternative, cioè “come altri utenti hanno tradotto lo stesso concetto in inglese”.

Forte, no?    :-)

Pubblicato su Novità | Lascia un commento

[VS 2010 Beta 1] Una precisazione sulle versioni del Framework .NET e la versione 4.0

Pubblicato da Mario De Ghetto su 26 Maggio 2009

Dato che è una domanda che ricorre abbastanza frequentemente su alcuni newsgroup e anche in alcune e-mail che ho ricevuto, è doverosa una precisazione in merito alle varie versioni del Framework .NET.

Quando installate la versione 3.5 del Framework .NET, in realtà installate un’estensione della versione 3.0 che, a sua volta, è un’estensione della versione 2.0. Di conseguenza, se sviluppate con la versione 3.5, dovete avere necessariamente anche le versioni 2.0 e 3.0 (e naturalmente le avete anche installate o le installate insieme alla 3.5).

La versione 4.0 del Framework .NET non è un’estensione: è un Framework .NET completo che non richiede l’installazione o la presenza delle versioni precedenti.

Ciò non toglie che sulla stessa macchina possono (e devono poter) coesistere diversi programmi che fanno uso di versioni del Framework .NET. Inutile, quindi, chiedersi come disinstallare le versioni precedenti del Framework .NET: a meno che non abbiate veramente dei grossi problemi di spazio su disco (e non potete comprare un nuovo hard disk più capiente), potete anche lasciare tutte le versioni “storiche” lì dove sono!

Pubblicato su VS 2010 | Lascia un commento

[ADO.NET 2.0] Screencast “Primo Contatto” parte 2

Pubblicato da Mario De Ghetto su 23 Maggio 2009

Ho ricevuto molte richieste via e-mail e anche attraverso i commenti alla prima parte dello screencast “Primo contatto” su “ADO.NET 2.0”. Così tante che ho deciso di terminare l’argomento anche se devo lasciare da parte la ultimazione del mio libro su SQL Server 2008.

Nello screencast che potete vedere o scaricare in locale ho mostrato come si fa ad aggiornare i dati visualizzati attraverso una DataGridView. Ho cercato di spiegare anche perché funziona con una semplice istruzione che richiama il metodo Update del TableAdapter.

MDG002_ADONET20_2

Il video può anche essere scaricato tramite il seguente link:

http://www.deghetto.it/blog/download/screencast/MDG002_ADONET20_2.wmv

Spero che anche questo breve video (circa 11 minuti) sia di vostro gradimento.

Pubblicato su ADO.NET | 2 Commenti »

[VS 2010 BETA 1] Conversione di una soluzione/progetto da VS 2008 a VS 2010 e viceversa

Pubblicato da Mario De Ghetto su 20 Maggio 2009

In questo post facciamo un piccolo esperimento di conversione tra le versioni 2008 e 2010: dopo aver creato un’applicazione Windows Form in Visual Basic, sia con Visual Studio 2008, sia con Visual Studio 2010 Beta 1, proviamo a scambiarle e vediamo l’effetto che fa!

Iniziamo con l’operazione che spesso è quella più semplice (tra versioni .NET immediatamente successive): da VS 2008 a VS 2010 Beta 1.

L’applicazione è semplicissima (un pulsante e una textbox, senza codice), giusto per vedere le funzionalità di conversione della soluzione e del progetto, più che del contenuto.

All’apertura della soluzione VS 2008 in VS 2010 Beta 1, parte l’utilità di conversione automatica:

image

Dopo un clic su Next, prima di tutto ci chiede se vogliamo fare una copia di backup del progetto:

image

Rispondiamogli con Yes, già selezionato per default.

Subito dopo si presenterà una schermata finale e non possiamo fare altro che premere il pulsante Finish (o tornare indietro):

image

 

VS 2010 Beta 1, gentilmente, ci informa che la soluzione non è sicura e chiede se deve proseguire lo stesso:

image

 

Infine ci informa che tutti i progetti sono stati convertiti con successo e ci offre la possibilità di vedere il log delle operazioni di conversione (inserito in un file XML di nome UpgradeLog.xml):

image

Ed ecco il risultato finale:

image

Il file ProgettoVB2008.sln, cioè il file principale della soluzione VB2008, conteneva quanto segue:

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ProgettoVB2008", "ProgettoVB2008.vbproj", "{30266C2B-CCE8-4DC7-8DC0-50E3B56E3577}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Release|Any CPU = Release|Any CPU
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {30266C2B-CCE8-4DC7-8DC0-50E3B56E3577}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {30266C2B-CCE8-4DC7-8DC0-50E3B56E3577}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {30266C2B-CCE8-4DC7-8DC0-50E3B56E3577}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {30266C2B-CCE8-4DC7-8DC0-50E3B56E3577}.Release|Any CPU.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
EndGlobal

Dopo la conversione è diventato così:

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 10
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "ProgettoVB2008", "ProgettoVB2008.vbproj", "{30266C2B-CCE8-4DC7-8DC0-50E3B56E3577}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Release|Any CPU = Release|Any CPU
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {30266C2B-CCE8-4DC7-8DC0-50E3B56E3577}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {30266C2B-CCE8-4DC7-8DC0-50E3B56E3577}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {30266C2B-CCE8-4DC7-8DC0-50E3B56E3577}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {30266C2B-CCE8-4DC7-8DC0-50E3B56E3577}.Release|Any CPU.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
EndGlobal

Di fatto sono cambiate solamente le prime due righe, il numero del formato del file di soluzione e il riferimento alla versione di Visual Studio.

Allo stesso modo è cambiato il file di progetto, ProgettoVB2008.vbproj: cambia la versione del progetto da 3.5 a 4.0, ma la versione del Framework .NET rimane 3.5. In più ci sono varie voci aggiunte al file XML di progetto che fanno riferimento più che altro alla conversione.

Proviamo ora ad aprire con VS 2008 un progetto creato in VS 2010 Beta 1: come previsto otteniamo un errore, come già avveniva tra le versioni 2005 e 2008.

image

Poco male, apriamo il file della soluzione (VB2010Beta1.sln) con un editor di testo come NotePad e modifichiamo la prima riga, cambiando la versione da 11 a 10.

Proviamo ora ad aprire la soluzione: perfetto, questo trucchetto funziona ancora!    :-)

Attenzione: la prova che abbiamo fatto è estremamente semplice e non è detto che funzioni sempre, soprattutto se la soluzione è molto complessa. In ogni caso abbiamo dimostrato che non si può partire già dando per scontato che è un’operazione che non si può fare.

Pubblicato su VS 2010 | Lascia un commento

[VS 2010 Beta 1] Controlli visuali per progetti WPF in Visual Basic

Pubblicato da Mario De Ghetto su 20 Maggio 2009

Mentre nelle applicazioni per Windows Form non ci sono grosse novità a riguardo di nuovi controlli visuali, c’è qualche miglioramento per quanto riguarda le applicazioni WPF.

I nuovi controlli visuali che ora sono a disposizione degli sviluppatori, nella Beta 1 di VS 2010 rispetto ai precedenti di VS 2008, sono:

Calendar

DataGrid

DatePicker

Qualcosa sembra invece essersi “perso per strada” visto che nella Beta 1 non trovo più il controllo UniformGrid. Probabilmente è stato eliminato a favore del nuovo controllo DataGrid. In ogni caso è sempre possibile recuperarlo e disporlo nella casella degli strumenti, con la voce del menu contestuale Choose Toolbox Items, sezione WPF Components. Troverete che ci sono moltissimi altri componenti che non sono inseriti nella casella degli strumenti…

Come piccolo appunto, ritengo opportuno segnalare che la tecnologia Windows Form è probabilmente al capolinea. Naturalmente resterà a disposizione, perché è molto radicata e la stanno ancora utilizzando quasi tutti, ma non credo che ci saranno nuovi sviluppi o estensioni di questa tecnologia.

La tendenza, ormai, è quella di favorire lo sviluppo di WPF, una tecnologia che ci ha già fatto vedere cose strabilianti e che ora è perfino la tecnologia con la quale è stata sviluppata l’interfaccia grafica di Visual Studio 2010.

Pubblicato su VS 2010 | Lascia un commento

[VS 2010 Beta 1] Download per tutti!

Pubblicato da Mario De Ghetto su 20 Maggio 2009

Dopo la pubblicazione della Beta 1 di Visual Studio 2010 per i sottoscrittori di MSDN, avvenuta due giorni fa, ecco finalmente che oggi diventerà possibile scaricare la Beta gratuitamente, anche da parte di chi non è iscritto. I seguenti link permetteranno di scaricare le varie versioni o il Framework .NET:

Visual Studio 2010 Professional (Beta 1)

Visual Studio 2010 Team System (Beta 1)

.NET Framework 4.0 (comunque già incluso nei due prodotti indicati prima)

Per maggiori dettagli, potete consultare il post originale di Jason Zander: http://blogs.msdn.com/jasonz/archive/2009/05/20/general-download-of-vs2010-net-framework-4-0-beta-1.aspx

Pubblicato su VS 2010 | Lascia un commento

[VS 2010 Beta 1] Esplorazione della Start Page

Pubblicato da Mario De Ghetto su 20 Maggio 2009

Continuiamo la nostra esplorazione del nuovo IDE di Visual Studio 2008 Beta 1, segnalando prima di tutto un paio di informazioni sull’installazione:

  • la Beta 1 permette di installare il prodotto su un sistema Windows e quindi è svincolata da un’immagine per Virtual PC, come invece era avvenuto con la prima CTP di Agosto 2008;
  • non è prevista l’installazione offline della documentazione (MSDN Library locale) e pertanto bisogna fare riferimento alla documentazione online.

Avviando la Beta 1 di Visual Studio 2010 vediamo che è confermata la nuova interfaccia grafica dell’ambiente di sviluppo (interamente progettata in WPF), con alcuni miglioramenti rispetto alla Start Page della versione 2008:

image

Aprendo il menu “Help > About Microsoft Visual Studio” vediamo che la Beta 1 è contrassegnata dal numero 10.0.20506.1. La Build 20506.1 è il riferimento che dovremo tenere presente d’ora in poi, fino alla prossima eventuale versione Beta.

Sempre nella finestra “About …” vediamo che ci sono già parecchi elementi presenti e qualcuno se n’è aggiunto rispetto al passato. Per cominciare c’è il nuovo linguaggio F#, ma possiamo lavorare anche con i progetti Silverlight.

La nuova Start Page prevede tre link sulla sinistra: Welcome, Projects e Visual Studio.

Il link Welcome permette di:

Il link Projects permette di gestire i progetti in modo molto, ma molto più efficace ed efficiente rispetto alla gestione dei progetti presente nella Start Page della versione 2008.

In particolare, ora è possibile “fissare” un progetto a cui si sta lavorando per non vederlo “scappare via” quando vengono aperti altri progetti. Inoltre è possibile cancellare il riferimento a un progetto che non ci interessa più, magari perché era solamente un progetto per una prova estemporanea.

image

L’apertura di un nuovo progetto è stata rinnovata graficamente. Permette di scegliere a priori il Framework .NET di destinazione (2.0, 3.0, 3.5 o 4.0) e di visualizzare i progetti che sono coerenti con la versione scelta.

I progetti basati su documenti di Office (l’equivalente di VSTO = Visual Studio Tools for Office), sono ora indirizzati alla sola versione 2007, mentre sono spariti i progetti per la versione 2003.

I progetti database, invece, hanno come target le versioni di SQL Server 2000, 2005, 2008 e CLR.

Per i nuovi progetti è ancora necessario indicare il nome della soluzione e la cartella di destinazione, dato che la soluzione viene salvata subito su disco, già al momento della creazione. E’ comunque possibile modificare questo comportamento, come già avveniva nella versione 2008, disattivando l’opzione “Save new projects when created” nel menu “Tools > Options > Projects and Solutions > General”. In questo modo verrà chiesto solo il nome della soluzione, permettendoci di creare soluzioni “usa e getta” per i nostri esperimenti estemporanei.

L’ultimo link, Visual Studio, permette di accedere ai collegamenti per:

mentre l’ultimo collegamento (Settings) permette di aprire direttamente la finestra delle impostazioni, senza dover accedere tramite il menu “Tools > Options”.

image

Per quanto riguarda la Start Page chiudiamo qui.

Fatemi sapere se questi post vi interessano, magari aggiungendo un vostro commento ai post stessi.

Pubblicato su VS 2010 | Lascia un commento

[VS 2010 Beta 1] Installazione

Pubblicato da Mario De Ghetto su 20 Maggio 2009

VS2010Beta1

Avendo già scaricato da MSDN la ISO di Visual Studio 2010 Beta 1 (nelle edizioni Professional e Team System Team Suite), ho iniziato a installare l’edizione Professional sotto Virtual PC con Windows XP e quindi colgo l’occasione per un breve commento.

Innanzi tutto, una precisazione: sto installando su un portatile “vecchio” di 2 anni e mezzo con Windows Vista e 2 Gb di RAM, dei quali una porzione è dedicata alla scheda grafica. Di conseguenza non mi è possibile installare Vista sotto Virtual PC in questa macchina, perché Vista richiede 1 Gb di RAM e quindi, avendo poco meno di 2 Gb di RAM fisica complessiva (tolta la porzione riservata alla scheda grafica), a quanto pare non posso avere due copie di Vista contemporaneamente installate. Poco male: Windows XP per queste prove andrà benissimo.

AVVERTENZA: evitate di installare la Beta 1 di VS 2010 (come qualsiasi altra versione Beta) sul vostro sistema che usate tutti i giorni. In caso di problemi, potreste avere la necessità di reinstallare tutto, dal sistema operativo in poi. Inoltre, in seguito, potreste avere la necessità di installare la Beta 2 e/o la versione finale (CTP, RTM…) e sareste costretti a disinstallare la versione Beta 1, il Framework .NET 4.0 ecc..

L’installazione della versione Professional sta procedendo abbastanza velocemente, considerando che è una Beta e che sta lavorando sotto Virtual PC, senza avere peraltro una quantità di RAM esagerata.

Rispetto all’installazione di Visual Studio 2008 si nota già una differenza: l’installazione è essenziale, senza troppa grafica e senza le fotografie di dipendenti o clienti di Microsoft sorridenti che cambiano ogni pochi secondi. Forse già questo aiuta a velocizzare l’installazione. Bisognerà verificare, in seguito, se è solo una caratteristica “limitativa” della Beta: magari nella versione finale ci riproporranno la galleria di fotografie a scorrimento (speriamo di no!).

Andiamo avanti, il lavoro da fare è ancora molto …   :-)

Pubblicato su VS 2010 | Lascia un commento

Libro su SQL Server 2008

Pubblicato da Mario De Ghetto su 19 Maggio 2009

Ormai mi manca veramente poco per terminare il mio nuovo libro dedicato a SQL Server 2008.

Per il momento pubblico i link per scaricare alcuni database di esempio. Uno di questi, in particolare (molto semplice e banale), l’ho utilizzato in molte parti del libro. Lo trovate qui:

Questi sono invece dei database prodotti e distribuiti gratuitamente da Microsoft:

I database di esempio di Microsoft, naturalmente, li potete trovare anche liberamente scaricabili dal sito Microsoft.

Nell’attesa di potervi dare ulteriori informazioni su libro, come già ho fatto con i precedenti libri, approfitto di questo post per ringraziare pubblicamente Luca Bianchi, Microsoft MVP su SQL Server e membro della community UGISS (www.ugiss.org) per il suo prezioso aiuto nella revisione tecnica del libro. Infatti, soprattutto nei primi capitoli, mi ha segnalato vari “strafalcioni” che avevo commesso, permettendomi di correggerli in tempo, prima di fare qualche brutta figuraccia!   ;-)

Naturalmente non poteva mancare un capitolo su Visual Basic e l’accesso ai dati di SQL Server 2008. Tra i progetti di esempio ho inserito la visualizzazione e il salvataggio delle modifiche con una DataGridView e anche mediante il binding di controlli visuali. Gli esempi sono realizzati con i wizard ma anche con il codice.

Pubblicherò i progetti di esempio in formato sorgente, liberamente scaricabile, appena sarà possibile. Inoltre chiederò all’editore l’autorizzazione a pubblicare il capitolo sull’accesso ai dati di SQL Server 2008 con Visual Basic 2008, così che tutti i lettori di questo blog possano fruirne liberamente.

A presto!

Pubblicato su Libro SQL Server 2008 | Lascia un commento

Comunicazione di servizio

Pubblicato da Mario De Ghetto su 26 Aprile 2009

Da qualche tempo avrete visto che ho ridotto drasticamente il numero di post in questo e nell’altro blog (http://community.visual-basic.it/mario).

Questa riduzione è dovuta al fatto che devo completare la redazione del mio prossimo libro su SQL Server 2008. Peraltro devo anche sfruttare tutto il tempo libero disponibile, perché ho iniziato a fare il trasloco di casa e tra breve potrei essere nelle condizioni di non poter utilizzare il computer per alcuni giorni.

Spero di finire tutto questo nel più breve tempo possibile.   :-(

Pubblicato su Novità | 1 Commento »

Raccolta fondi per terremoto in Abruzzo

Pubblicato da Mario De Ghetto su 8 Aprile 2009

Questa volta esco dal tema informatico per fornire un’informazione che ritengo utile a quanti vogliono esprimere la propria solidarietà alle persone che abitano nelle zone colpite dal terremoto in Abruzzo.

All’indirizzo http://www.tomshw.it/news.php?newsid=17659 trovate un elenco di iniziative tese a raccogliere fondi e le indicazioni per poter inviare donazioni alimentari e per fornire ospitalità.

Il mio consiglio, per le raccolte fondi, è quello di affidarsi a istituzioni ampiamente riconosciute (Caritas, Croce Rossa Italiana, Protezione Civile e così via) e di non fidarsi di raccolte di fondi da associazioni o persone sconosciuti.

Pubblicato su Novità | Lascia un commento

Nuova community .NET

Pubblicato da Mario De Ghetto su 4 Aprile 2009

Sono appena stato informato che è stata avviata una nuova Community per gli utenti .NET di Roma, un vero e proprio User Group di Roma.

Il nome è simpatico e accattivante: dotNetRomaCestà!

Lo trovate a questo indirizzo: http://www.dotnetromacesta.org/.

Io non sono di Roma ma mi sembra giusto dare un’adeguata visibilità alle Community territoriali nascenti.

Auguro ai fondatori e agli iscritti di dotNetRomaCestà di poter crescere fino a diventare una grande Community di appassionati romani e, soprattutto, di divertirsi il più possibile, perché (anche se chi non programma non lo sa) “programmare è bello”.     :-)

Pubblicato su Novità | Lascia un commento

<Joke> La vera natura di JAVA

Pubblicato da Mario De Ghetto su 25 Marzo 2009

Quando all’università mi hanno obbligato a studiare JAVA, l’ho subito come un grave torto, visto che potevamo solamente utilizzare l’editor di testo (il NotePad o simili, per intenderci).

Una sofferenza per chi, come me, era abituato a usare il comodo IDE di Visual Basic 6.0!

Però alla fine la Giustizia regna sovrana: ho finalmente scoperto cos’è veramente JAVA!

JAVA

Pubblicato su Novità | Lascia un commento

Aruba.it supporta ASP.NET 3.5!

Pubblicato da Mario De Ghetto su 10 Marzo 2009

Ho appena ricevuto una newsletter da Aruba.it, la società presso la quale ho il servizio di hosting per il mio dominio deghetto.it, e quasi stavo per fare un triplo salto mortale con sedia, PC e tutto quanto!

Ecco il testo:

“Gentile Cliente, la presente per informarLa che, a partire da Lunedì 23 Marzo 2009 provvederemo all’implementazione del supporto Asp.Net 3.5 sui server windows.
La versione Asp.Net 3.5, oltre al consolidamento dei perfezionamenti già apportati al framework 2.0, offre ed aggiunge nuove caratteristiche, ma quello che indiscutibilmente viene migliorato sono le performance e la gestione delle risorse, come, ad esempio, ASP.NET AJAX che permette di usare nuove librerie comuni integrate o altri nuovi controlli come DataPager, LinqDataSource e il supporto Silverlight.
Riferimenti utili
http://it.wikipedia.org/wiki/LINQ
http://it.wikipedia.org/wiki/Silverlight
N.B. La nuova versione del framework mantiene la compatibilità con la versione precedente 2.0.
Non sono state inoltre rilevate anomalie sul funzionamento delle applicazioni e dei siti web a seguito del passaggio alla versione Asp.Net 3.5.”

Be’… che anomalie pensavano di trovare su ASP.NET 3.5?    ;-P

Erano mesi che chiedevo al supporto di Aruba.it quando avrebbero fatto questo aggiornamento e la risposta era sempre quella: “Per il momento, Gentile Cliente, non abbiamo intenzione di farlo. Però lei può sempre scegliere di sottoscrivere un contratto per un server dedicato dove potrà fare tutto ciò che vuole …” (non era proprio così, ma il senso era più o meno questo).

E’ quindi comprensibile la mia felicità per questa novità aspettata e inaspettata allo stesso tempo!

EVVAIIIIIIIIII !!!!   :-) ))))

P.S. aggiungo anche un piccolo commento “acido”: se finalmente cominciassero a dare la possibilità di gestire in modo serio anche l’istanza di SQL Server, invece di proporre quell’impossibile pannello di controllo …

Pubblicato su Novità | Lascia un commento

[ScreenCast] ADO.NET 2.0 Primo contatto … e seconda versione!

Pubblicato da Mario De Ghetto su 7 Marzo 2009

La prima versione dello screencast “ADO.NET 2.0 Primo Contatto” l’avevo creata con un prodotto free (CommunityClips). Purtroppo la versione free ha probabilmente qualche limitazione e/o richiede un codec specifico, per cui alcuni iscritti mi avevano informato che non si riusciva a vedere.

Cogliendo la palla al balzo (un balzo un po’ lento …) della nuova area di ScreenCast del portale Visual Basic Tips & Tricks (www.visual-basic.it) e grazie anche alla mia licenza CamTasia 6.01 “full”, ottenuta grazie alla nomina MVP (Thank you very much, TechSmith – http://www.techsmith.com/ !!), ho provveduto a rifare la registrazione con questo ottimo prodotto.

La registrazione risultante è un po’ più lunga di circa 3-4 minuti rispetto alla prima versione (in tutto sono circa 10 minuti), perché ho aggiunto anche qualche informazione in più, seppur restando nell’ambito di quanto illustrato nella prima versione.

La nuova versione si trova allo stesso indirizzo della precedente e cioè http://deghetto.wordpress.com/2008/10/25/screencast-adonet-20-primo-contatto/ per quanto riguarda il mio blog WordPress, mentre la versione sul portale VBT&T arriverà appena potrà essere sostituita quella precedente (ho appena richiesto la sostituzione, quindi … abbiate pazienza!).

Mi farete un grosso piacere a farmi sapere se questa versione funziona meglio, se ci sono dei difetti di registrazione e se la qualità della registrazione in generale è valida.

Per quanto riguarda i contenuti, spero che vi possano interessare, soprattutto a chi si approccia per la prima volta a questa tecnologia. Abbiate pietà per la qualità dell’esposizione, visto che questi sono i miei primi timidi passi verso gli ScreenCast (al momento trovo ancora abbastanza innaturale a parlare al computer, se non per indirizzargli insolenze e vituperi vari!).

Come dice un nostro amico: “Che dire? Buona visione!”    :-)

Pubblicato su Novità | 5 Commenti »

Visual Studio 2010: il nuovo look

Pubblicato da Mario De Ghetto su 2 Marzo 2009

Mi riallaccio al post di Renato Marzaro proprio su questo argomento (http://community.visual-basic.it/renato/archive/2009/02/25/24984.aspx) per aggiungere qualche informazione che è possibile estrapolare dall’articolo segnalato e dai alcuni dei numerosi commenti che i lettori gli hanno inviato.

Jason Zander, General Manager di Microsoft per Visual Studio – Developer Division, ha pubblicato nel suo blog un articolo sulla nuova interfaccia visuale del futuro Visual Studio 2010 (http://blogs.msdn.com/jasonz/archive/2009/02/20/a-new-look-for-visual-studio-2010.aspx).

Potete vedere alcuni screenshot all’indirizzo che ho riportato qui sopra.

La cosa tra tutte più impressionante è il fatto che l’IDE di Visual Studio 2010 è stato riscritto interamente in WPF!

Un’altra caratteristica interessante che ha trovato parecchi consensi è la possibilità di sganciare la finestra di un documento e di spostarla su un altro monitor, qualora dovessimo avere la disponibilità di più monitor.

Nella barra a sinistra dell’editor di codice (quella dove clicchiamo per attivare dei breakpoint, per intenderci), avremo alcuni nuovi segnalini:

  • un triangolino nero, per indicare sezioni di codice che possono essere fatte collassare (come le Region)
  • un triangolino bianco, per indicare sezioni di codice collassate che possono essere ripristinate
  • delle barrette colorate per indicare quali righe di codice sono state modificate.

La finestra di dialogo New Project è stata ridisegnata con migliori funzionalità di ricerca, anteprima di template online e una navigazione più facile. Visual Studio mantiene la caratteristica multi-target, cioè la capacità di utilizzare versioni diverse del Framework .NET cioè 2.0, 3.0 e 3.5, con in più l’aggiunta della versione 4.0.

Ora c’è anche il nuovo Extension Manager per trovare e gestire più facilmente le estensioni a Visual Studio prodotte da terze parti (partner o anche appassionati).

Non è previsto in questo momento di estendere il supporto del Framework .NET 4.0 per Visual Studio 2008. Comunque, Visual Studio 2010, potrà essere installato senza problemi anche su Windows XP.

Al momento non è ancora stata fissata una data di rilascio della Beta 1 di Visual Studio 2010, ma il Team ci sta lavorando ed è probabile che sentiremo presto notizie in merito!

Pubblicato su Novità | Lascia un commento

#52: Aprire Expression Web da Visual Studio 2008

Pubblicato da Mario De Ghetto su 25 Febbraio 2009

Nel mio post precedente (tip #50) ho spiegato come si configura un nuovo strumento esterno da Visual Studio 2008 per aprire direttamente Expression Blend sul progetto corrente. Expression Blend lavora su progetti WPF e quindi non può essere avviato con un progetto web o Windows Forms.

Per utilizzare Microsoft Expression con (pressappoco) gli stessi strumenti, anche su un progetto web, possiamo utilizzare Expression Web.

La configurazione è molto simile a quella che ho illustrato per Expression Blend, con qualche piccola variante. Anzi, a parte il titolo dello strumento esterno (Expression Web anziché Expression Blend), cambia solo il Comando:

  • C:\Program Files\Microsoft Expression\Web 2\WebDesigner\EXPRWD.EXE (per la versione a 32 bit)
  • C:\Program Files (x86)\Microsoft Expression\Web 2\WebDesigner\EXPRWD.EXE (per la versione a 64 bit).

Ecco qui la finestra di dialogo:

image

Pubblicato su Novità | Lascia un commento

#51: VB.NET – identificare modalità debug o release

Pubblicato da Mario De Ghetto su 21 Febbraio 2009

Molti di voi sapranno che è possibile compilare un progetto o una soluzione di Visual Basic 2008 in due modalità distinte: DEBUG e RELEASE.

Nella modalità DEBUG vengono mantenuti i simboli interni, al fine di poter disporre di un riferimento di supporto alla verifica del codice inserito. Nella modalità RELEASE, invece, vengono eliminati tutti questi simboli e l’applicazione compilata è pronta alla distribuzione.

Distribuire un’applicazione in modalità DEBUG non solo è inutile ma è anche dannoso: infatti le informazioni possono essere utilizzate per un’operazione di reverse engineering per recuperare il nostro codice VB.NET, ma anche le prestazioni dell’applicazione ne possono risentire in senso negativo. E’ quindi importante, prima di distribuire un’applicazione, passare alla modalità RELEASE e ricompilare il progetto o la soluzione.

Premesso questo, talvolta è importante sapere se un assembly sia stato compilato in modalità DEBUG o RELEASE, per evitare di distribuire l’applicazione dimenticando il passaggio dalla modalità DEBUG alla modalità RELEASE.

Possiamo ottenere questo in modo estremamente semplice, con questi semplici passi:

  1. nella finestra Esplora Soluzioni, attivare il pulsante “Mostra tutti i file”;
  2. nel livello inferiore contenuto nel nodo “My Project” troveremo così il file AssemblyInfo.vb; aprire questo file per visualizzare il codice;
  3. in tale file troveremo una “istruzione” simile alla seguente:
    <Assembly: AssemblyTitle(”WindowsApplication2″)>
  4. commentare tale istruzione con il simbolo di apice oppure eliminare l’intera riga;
  5. inserire il seguente codice:
#If DEBUG Then
<Assembly: AssemblyTitle("MyApplication *** Debug ***")>
#Else
<Assembly: AssemblyTitle("MyApplication *** Release ***")>
#End If

A questo punto possiamo compilare in entrambe le modalità per ottenere gli eseguibili (exe) in entrambe le sottocartelle del progetto (debug e release).

Per verificare se un eseguibile (assembly) sia stato compilato in modalità DEBUG o RELEASE, possiamo semplicemente passare con il puntatore del mouse sopra al nome del file eseguibile nella finestra di Esplora risorse, come mostrato nella seguente figura:

Debug-Release

Pubblicato su Novità | Lascia un commento

#50: Aprire Expression Blend da Visual Studio 2008

Pubblicato da Mario De Ghetto su 3 Febbraio 2009

Quando si lavora con un progetto di tipo WPF Application in Visual Studio 2008, potrebbe essere interessante passare a Microsoft Expression Blend (se installato sul nostro PC) per gestire in modo più flessibile la parte grafica dell’applicazione stessa.

Per chi non dovesse saperlo, Visual Studio 2008 permette di personalizzare il menu Strumenti, aggiungendo gli strumenti esterni che si preferiscono. Procederemo quindi alla personalizzazione dell’IDE di Visual Studio 2008 per aggiungere una voce Expression Blend.

Nota: per questo compito ho utilizzato Visual Studio 2008 Team System e Expression Blend 2, entrambi installati in Windows Vista Ultimate a 64 bit.

I passi da seguire sono questi:

  1. dal menu Strumenti, cliccare su Strumenti esterni
  2. nella finestra di dialogo che apparirà, fare clic sul pulsante Aggiungi
  3. nella casella Titolo inserire Expression Blend
  4. nella casella Comando inserire il percorso e il nome dell’eseguibile di Expression Blend (nel mio caso è C:\Program Files (x86)\Microsoft Expression\Blend 2\Blend.exe)
  5. nella casella Argomenti inserire $(SolutionDir)$(SolutionFileName)
  6. lasciare vuota la casella Directory iniziale
  7. fare clic sul pulsante Applica.

Questa procedura non solo permette di aprire Expression Blend ma, dopo aver aperto questa applicazione, apre il file XAML su cui stavamo lavorando in Visual Studio 2008.

La prima volta che utilizzeremo questa procedura, Expression Blend ci avvertirà che c’è un problema di sicurezza. Per evitare questo messaggio, possiamo spuntare la casellina che permette di non ricevere più il messaggio e confermare l’apertura del file.

Pubblicato su Novità | 3 Commenti »

[WPF] Un tutorial video di Corrado Cavalli su MSDN

Pubblicato da Mario De Ghetto su 30 Gennaio 2009

Sul blog del Team di MSDN Italia è stata annunciata la pubblicazione di alcuni video di Corrado Cavalli sulla nuova piattaforma video MSDN.

Questa serie di video forma un tutorial su WPF (Windows Presentation Foundation). Ovviamente il tutorial è estremamente consigliato a cui volesse avvicinarsi a questa tecnologia, come anche a chi si è già avvicinato ma vuole imparare qualcosa di più, perché non c’è niente di meglio che poter vedere in pratica cosa si può fare e sentire la spiegazione dalla viva voce di uno dei più esperti italiani in materia.

I primi video pubblicati sono i seguenti, ma vi consiglio di dare sempre un’occhiata alla piattaforma video MSDN, perché ci saranno molte altre novità:

  • Introduzione a WPF
  • Nuovi concetti per lo sviluppatore Windows Forms (prima parte)
  • Nuovi concetti per lo sviluppatore Windows Forms (seconda parte)
  • Databinding
  • WPF nel mondo reale: architettura e pattern Model-View-ViewModel

     

     

  • Pubblicato su Novità | Lascia un commento

    Conversione di file CSV con VB 2008

    Pubblicato da Mario De Ghetto su 23 Gennaio 2009

    Spesso mi è capitato, e ancora oggi mi capita, di avere a che fare con file CSV (file di testo con “Campi Separati da Virgola”) che, aperti con Excel, vengono caricati senza separare i vari campi. In pratica, ogni riga (record) viene inserito nella corrisponte cella della prima colonna.

    Il motivo è semplice: questi file CSV sono stati creati con sistemi le cui impostazioni internazionali sono impostate secondo il sistema americano, con la virgola per la separazione del campo e il punto per separare i valori interi dai decimali. Nelle impostazioni italiane, invece, ovviamente è diverso: la virgola è il separatore dei decimali, mentre il punto e virgola è il separatore dei campi.

    Come risolvere questo problema per poter caricare i dati in un foglio Excel?

    Una prima soluzione che ho tentato è quella di sostituire tutti i separatori direttamente in Excel, salvando poi nuovamente in file CSV. Il risultato è deludente, in quanto Excel registra, sì, le modifiche, ma circonda ciascuna riga da doppi apici, rendendo ugualmente impossibile la lettura campo per campo.

    Una seconda soluzione è quella di aprire NotePad e fare la sostituzione manuale, prima da virgola a punto e virgola e poi da punto a virgola. Questa soluzione risolve il problema ma è macchinosa, un po’ difficile da ricordare e poi straordinariamente LENTA.

    Da qui mi è venuto in mente che tutto questo lavoro può essere fatto in modo più efficace con un programmino di utilità, naturalmente in VB 2008 (anche la versione 2.0 del Framework .NET va bene, quindi si può fare anche in VB 2005).

    Ho creato un nuovo progetto di tipo Applicazione Windows Form e ho inserito due controlli Label (il nome non ha importanza) e quattro caselle di testo: txtCartella e txtFile per caricare rispettivamente il nome della cartella (per aprire sempre la stessa cartella se i file da convertire sono più di uno) e il nome del file, nonché txtTestoDaConvertire e txtTestoConvertito, più grandi e multilinea, con ovvio significato.

    Poi ho creato un menu per gestire le varie azioni da eseguire. Il menu ha la seguente struttura:

    • File
      … Apri
      …… Cartella
      …… File
      … Salva
      … Chiudi file
      … Esci
    • Conversione
      … CSV inglese –> CSV italiano
      … CSV italiano –> CSV inglese

    Infine ho inserito i seguenti controlli, per gestire tutte le operazioni su file e nel menu: MenuStrip, StatusStrip, ToolStrip, FolderBrowserDialog, OpenFileDialog e SaveFileDialog.

    Il form ha quindi il seguente aspetto finale:

    CSVconverterForm

    Infine, il codice che ho inserito è il seguente:

    Public Class Form1
       Private Sub CartellaToolStripMenuItem_Click(ByVal sender _
               As System.Object, ByVal e As System.EventArgs) _
               Handles CartellaToolStripMenuItem.Click
          Dim nomeCartella As String = ""
          If FolderBrowserDialog1.ShowDialog = _
                 Windows.Forms.DialogResult.OK Then
             nomeCartella = FolderBrowserDialog1.SelectedPath
          End If
          Me.txtCartella.Text = nomeCartella
       End Sub
    
       Private Sub FileToolStripMenuItem1_Click(ByVal sender _
               As System.Object, ByVal e As System.EventArgs) _
               Handles FileToolStripMenuItem1.Click
          Dim nomeFile As String = ""
          OpenFileDialog1.InitialDirectory = Me.txtCartella.Text
          If OpenFileDialog1.ShowDialog = _
                 Windows.Forms.DialogResult.OK Then
             nomeFile = OpenFileDialog1.FileName
          End If
          Me.txtFile.Text = nomeFile
          Me.txtTestoDaConvertire.Text = _
               My.Computer.FileSystem.ReadAllText(Me.txtFile.Text)
       End Sub
    
       Private Sub ToolStripMenuItem2_Click(ByVal sender _
               As System.Object, ByVal e As System.EventArgs) _
                    Handles ToolStripMenuItem2.Click
          Dim nomeFile As String = Me.txtFile.Text
          Dim nomeCompleto As String = ""
          SaveFileDialog1.FileName = nomeFile
          If SaveFileDialog1.ShowDialog = _
                  Windows.Forms.DialogResult.OK Then
             nomeCompleto = SaveFileDialog1.FileName
             My.Computer.FileSystem.WriteAllText( _
                  nomeCompleto, Me.txtTestoConvertito.Text, False)
          Else
             MessageBox.Show("Operazione annullata")
          End If
       End Sub
    
       Private Sub Label2_Click(ByVal sender As System.Object, _
               ByVal e As System.EventArgs) Handles Label2.Click
          If Me.txtFile.Enabled = True Then
             Me.txtFile.Enabled = False
          Else
             Me.txtFile.Enabled = True
          End If
       End Sub
    
       Private Sub Label1_Click(ByVal sender As System.Object, _
               ByVal e As System.EventArgs) Handles Label1.Click
          If Me.txtCartella.Enabled = True Then
             Me.txtCartella.Enabled = False
          Else
             Me.txtCartella.Enabled = True
          End If
       End Sub
    
       Private Sub CSVIngleseCSVItalianoToolStripMenuItem_Click( _
               ByVal sender As System.Object, ByVal e As System.EventArgs) _
               Handles CSVIngleseCSVItalianoToolStripMenuItem.Click
          Me.txtTestoConvertito.Text = Me.txtTestoDaConvertire.Text
          Me.txtTestoConvertito.Text = Me.txtTestoConvertito.Text.Replace(",", ";")
          Me.txtTestoConvertito.Text = Me.txtTestoConvertito.Text.Replace(".", ",")
          Me.txtTestoConvertito.Text = Me.txtTestoConvertito.Text.Replace( _
               System.Environment.NewLine, System.Environment.NewLine)
       End Sub
    
       Private Sub CSVItalianoCSVIngleseToolStripMenuItem_Click( _
               ByVal sender As System.Object, ByVal e As System.EventArgs) _
               Handles CSVItalianoCSVIngleseToolStripMenuItem.Click
          Me.txtTestoConvertito.Text = Me.txtTestoDaConvertire.Text
          Me.txtTestoConvertito.Text = Me.txtTestoConvertito.Text.Replace(",", ".")
          Me.txtTestoConvertito.Text = Me.txtTestoConvertito.Text.Replace(";", ",")
       End Sub
    
        Private Sub EsciToolStripMenuItem_Click(ByVal sender _
                 As System.Object, ByVal e As System.EventArgs) _
                 Handles EsciToolStripMenuItem.Click
            Me.Close()
        End Sub
    
        Private Sub ChiudiFileToolStripMenuItem_Click(ByVal sender _
                 As System.Object, ByVal e As System.EventArgs) _
                 Handles ChiudiFileToolStripMenuItem.Click
            Me.txtTestoDaConvertire.Text = ""
            Me.txtTestoConvertito.Text = ""
        End Sub
    End Class
    

    Il punto chiave, è nei metodi CSVIngleseCSVItalianoToolstripMenuItem e nell’opposto CSVItalianoCSVIngleseToolStripMenuItem.

    In questi metodi emerge chiaramente che la conversione “inversa” avviene non solo sostituendo i due valori da sostituire, nell’ambito della stessa istruzione di conversione, ma anche scambiando le due istruzioni che utilizzano il metodo Replace. Solo così, infatti, è possibile effettuare una conversione corretta ed eventualmente ripetere la conversione per ripristinare la situazione precedente.

    Pubblicato su Novità | Lascia un commento