Premessa
Pur programmando da diversi anni con VB e con VBA (soprattutto con Access) riesco comunque a cogliere le opportunità che si prospettano con i nuovi linguaggi che implementano il paradigma della programmazione orientata agli oggetti (OOP). Nei miei studi universitari ho avuto anche a che fare con JAVA e quindi anche in questo caso con la programmazione ad oggetti (nota: C# ha una sintassi molto simile a quella di JAVA). Ho studiato, ho sperimentato e mi sono impegnato parecchio anche nelle mailing list nel cercare di capire questo nuovo modo di programmare.
Nonostante tutto l’interesse, tutta la passione e tutto l’impegno profuso per padroneggiare questo nuovo mondo, non sono ancora riuscito ad avere la “situazione in pugno”. Mi sento ancora come una vecchia locomotiva che non riesce ad andare in pressione e quindi ad iniziare il suo viaggio lungo i binari sicuri della programmazione ad oggetti.
A questo punto non resta che esplorare altre possibilità e cioè utilizzare degli strumenti che almeno mi permettano di capire quali sono le parti di codice che fanno parte del “passato” VB6 e che non hanno una corrispondenza diretta nel nuovo VB.NET.
VB6 Code Advisor: download e installazione
Prima di tutto è necessario scaricare dal sito Microsoft questo “add-in” per l’IDE di VB6. L’indirizzo esatto da cui è possibile scaricarlo è il seguente:
http://www.microsoft.com/downloads/details.aspx?displaylang=it&FamilyID=a656371a-b5c0-4d40-b015-0caa02634fae
Una volta scaricato il file “Code Advisor for Visual Basic 6_ITA.msi” è possibile avviarlo per far partire l’installazione. Le prime opzioni potranno essere tutte confermate così come sono.
Appena comparirà la seguente schermata, invece, consiglio di scegliere l’opzione “Completa“, perché così installerete anche la documentazione e gli altri componenti necessari per estendere “Code Advisor“.
Infatti “Code Advisor” è un prodotto estendibile con nuove regole per avere ulteriori consigli sul codice che non erano previsti nella versione iniziale del prodotto. Alcune di queste nuove regole sono pubblicate anche su articoli MSDN.
Dopo un altro paio di click di conferma, avrete l’add-in installato. A questo punto facciamo partire VB6.
Nell’IDE di VB6 troviamo già un paio di differenze: nel menu “Aggiunte” c’è il nuovo menu “Code Advisor” e tra le barre strumenti ce ne sarà una nuova di nome “Code Advisor per Visual Basic 6“. Entrambe presentano alcune voci identiche e quindi siamo liberi di utilizzare l’una o l’altra modalità, a nostra preferenza.
Le voci sono:
- Aggiungi FixIt
- Rimuovi FixIt
- Trova FixIt successivo
- Filtra regole FixIt
- Definizione ambito (con le scelte “Ambito: progetto attivo” oppure “Ambito: file attivo“)
Nel menu, poi, c’è anche la voce “Visualizza report FixIt” che però al momento è disattivata, non avendo ancora utilizzato le funzionalità di questo add-in.
Gettiamo carbone nella caldaia della locomotiva…
A questo punto apriamo un progetto VB6, uno qualsiasi, per fare una prima prova “al volo” delle funzionalità offerte dall’add-in.
Per iniziare l’analisi del nostro progetto, scegliamo la voce “Aggiungi FixIt“. Diventerà subito visibile una barra di avanzamento per farci capire a che punto è l’analisi del codice. Al termine dell’analisi, nel lato destro della barra degli strumenti di “Code Advisor” comparirà un pulsantino con l’unica funzione di indicarci quanti sono i “FixIt“, cioè i suggerimenti inseriti nel codice (nel mio caso sono stati 13, molti dei quali dello stesso tipo).
I suggerimenti (FixIt) sono inseriti come commenti nel codice, secondo il seguente schema:
'FIXIT: questo è un suggerimento
Premendo il pulsante “Rimuovi FixIt“, tutti i suggerimenti saranno rimossi dal codice come se non fossero mai stati inseriti.
Il pulsante “Trova FixIt successivo” serve a spostarsi “in avanti”, da un suggerimento all’altro. Questa funzionalità permette di trovare subito i suggerimenti senza dover guardare tutto il codice.
Il pulsante “Filtri FixIt” svolge un’importante funzione: apre una finestra di dialogo dalla quale è possibile selezionare sia la versione VB.NET alla quale vogliamo migrare, sia i singoli suggerimenti, uno per uno, che vogliamo attivare o disattivare. Riporto qui di seguito un’immagine che può chiarire il concetto.
Il pulsante “Visualizza Report FixIt“, che è diventato attivo dopo l’aggiunta dei suggerimenti, apre il browser Internet per mostrare un report piuttosto dettagliato e contenente:
- alcune statistiche del progetto (numero regole, numero componenti, numero problemi, ecc.);
- tutti i “problemi” riscontrati, con il nome del modulo che contiene il codice, la relativa sezione e la riga dove si trova il “problema”;
- l’elenco dei componenti che hanno riportato almeno un problema;
- l’elenco delle regole applicate con il conteggio delle occorrenze di ognuna.
Il report si presenta in questa forma:
Il pulsante “Guida in linea di Code Advisor” apre appunto la guida in linea, mentre l’ultimo pulsante “Definizione ambito“, che può assimere due diversi valori (“Ambito: progetto attivo” oppure “Ambito: file attivo“) specifica appunto se le regole vanno applicate all’intero progetto o al solo file attivo. In quest’ultimo caso, i suggerimenti vengono applicati solo al file attivo e anche il “Report” viene prodotto solo sulla base dei risultati ottenuti dall’analisi del file attivo.
Una nota a margine: utilizzando questo add-in, improvvisamente mi è comparsa questa finestra di avviso di Norton AntiVirus:
IMMAGINE 4
Norton AntiVirus ha interpretato le azioni di questo script come quelle di uno “script maligno”. Ritenendo che non ci fossero particolari dubbi sul fatto che fosse il NAV ad aver avuto un “abbaglio”, ho scelto la voce “Autorizza questo script“, ho confermato e ho quindi potuto continuare il lavoro 😉
Come ultima parte di questo articolo e ad esemplificazione dei suggerimenti che questo add-in produce, ne riporto uno auto-esplicativo:
Utilizzare Option Explicit per impedire la creazione implicita di variabili di tipo Variant.
Conclusione
Non è tra gli obiettivi di questo articolo elencare e spiegare per filo e per segno tutti i “problemi” riscontrati nell’esperimento. L’obiettivo, infatti, era quello di fornire uno sprone all’uso di uno strumento che può aiutarci nel capire meglio come migliorare il nostro codice e i nostri progetti per prepararli adeguatamente nell’ottica di una migrazione a VB.NET / VB 2005.