Cerca Totem's Lair su Facebook



< Precedente
IDE - Alcune semplici funzioni da usare sempre
Successivo >



I capitoli nella sezione G non riguardano strettamente il codice o le tecniche da usare, ma si occupano di descrivere l'ambiente di sviluppo, in particolare il compilatore Visual Basic Express 2005/2008/2010. Ecco uno screenshot del mio schermo con aperto il progetto che uso per scrivere gli esempi della guida:


Panoramia dell'IDE

Nel capitolo prenderò in esame quegli strumenti che possono essere utili nello sveltire le operazioni e aiutare il programmatore nella stesura del codice.


Solution Explorer
Nella finestra del Solution Explorer vengono visualizzati tutti i file che compongono il progetto corrente, o, in caso si tratti di una soluzione, anche tutti i suoi progetti. Da qui è possibile accedere in modo rapido ad ogni risorsa possibile. Tutti i sorgenti (quindi tutti i file con estensione *.vb) riportati sono raggiungibili mediante un doppio click e, per i form, con il menù contestuale. Sul lato superiore della finestra sono visibili cinque pulsanti, nell'ordine:

Proprietà di progetto
Questa sezione permette di impostare tutte le specifiche possibili e immaginabili riguardanti il progetto corrente, dallo splash screen iniziale, agli aggiornamenti, alle informazioni dell'assembly. Ecco una panoramica di tutte le schede non ancora esaminate:


Proprietà - Application

La scheda "Application" permette di selezionare i comportamenti dell'applicazione. Ecco una lista dei campi con annessa spiegazione:


Proprietà - Compile

La finestra compile permette di impostare alcuni settaggi riguardanti la compilazione. La prima casella di testo in alto specifica dove salvare l'assembly compilato. Le tre combobox appena sotto, invece, impostano le opzioni di compilazione, già esposte nel capitolo relativo. Il DataGridView centrale, invece, fa stabiliare all'utente come comportarsi in alcuni casi particolari: definisce se una certa situazione debba essere segnalata oppure no, e se sì in forma di errore o di semplice warning. Queste azioni sono, nell'ordine, dall'alto in basso: Le due checkbox in fondo, invece, permettono o di sopprimere ogni warning, oppure di trattare ogni warning come se fosse un errore.

La scheda Debug ha pochissime funzionalità. La prima textbox permette di inserire dei parametri da riga di comando direttamente all'avvio per testare l'applicazione, mentre la seconda stabilisce la directory in cui lavora il programma.


Proprietà - References

La schermata dei riferimenti consente al programmatore di importare velocementi componenti COM o assembly .NET. La listview centrale visualizza tutti i riferimenti attualmente presenti nel progetto, mentre la CheckedListBox in basso è una scorciatoia per aggiungere velocemente assembly .NET provenienti dalla Global Assembly Cache. Il pulsante Refrence Paths aggiunge un'intera cartella, dalla quale si inseriranno tutti i componenti ivi contenuti. Il pulsante di fianco, invece, "Unused refrences", trova nei sorgenti i riferimenti inutilizzati e permette di rimuoverli.

La scheda Security stabilisce se il programma debba essere considerato una Full Trust Application ("Applicazione completamente affidabile") o una Partial Trust Application ("Application non completamente affidabile"): la prima garantisce una sicurezza massima, non interferisce in meccanismi delicati e perciò ottiene dal sistema operativo tutti i permessi necessari a operare sulla macchina; la seconda agisce su parti sensibili del sistema e potrebbe causare errori, perciò Windows non gli concede tutti i permessi. La DataGridView appena sotto definisce quali permessi siano richiesti e quali no, mentre il pulsante Properties apre una finestra in cui si possono definire i permessi R-W delle variabili d'ambiente.


Proprietà - Publish

La scheda Publish consente di pubblicare il programma come setup eseguibile: questo viene costruito dal compilatore sulla base delle informazioni immesse. Una volta avviato, installa il programma in una locazione sconosciuta e non modifica il menù Installazione Applicazioni. In questo modo l'utente non può disinstallarlo e se si verificano problemi, non può ricorrere a nessun supporto poiché i file necessari sono nascosti chissà dove. Per tutti i motivi appena esposti, sconsiglio vivamente la creazione del setup con l'editor predefinito: maggiori informazioni saranno fornite nel capitolo sui pacchetti d'installazione. Ecco una lista dei campi:

Object Browser
L'Object browser è una versione molto (ma molto!) più sofisticata e dettagliata del nostro Browser per Assembly, scritto nell'ultimo capitolo sulla Reflection. Permette di navigare tra gli assembly del progetto, sia quelli creati dall'utente (controlli utente, form, moduli, classi, namespace), sia quelli generati dal compilatore (namespace My e relative sottoclassi) sia quelli depositati nella GAC (ad esempio System.Data o System.Xml). Visualizza tutte le proprietà, i metodi, i campi, gli enumeratori, le strutture, le interfacce, le classi, i costruttori, i distruttori e gli operatori creati, ossia ogni possibile informazione su un dato tipo. Il riquadro in basso mostra anche la dichiarazione del membro e, se si tratta di una procedura o di una funzione, anche la signature, la descrizione del funzionamento e di ogni singolo parametro.


Object Browser

Dopo aver navigato un pò per i tipi, si sarà notato che queste informazioni non sono disponibili per gli oggetti creati dal programmatore, ma la spiegazione è semplice: non si è creata una documentazione adatta per quei membri. Consultare il capitolo relativo per maggiori dettagli.Si può osservare che:

IntelliSense
C'è un altro modo per raggiungere velocemente la documentazione di un membro, ed è usare l'IntelliSense. Questa tecnologia legge quello che il programmatore ha digitato nel codice e, in corrispondenza di certi simboli (come lo spazio o il punto), fornisce dei suggerimenti tramite un menù a cascata. Ecco un esempio:


IntelliSense in azione!

Oltre a visualizzare informazioni sulla classe selezionata, permette di scorrere velocemente tutti i membri con le frecce direzionali: per attivare l'autocompletamento, basta digitare il carattere punto (se ci si deve addentrare più all'interno nella gerarchia), spazio (se si deve continuare l'espressione) o invio (se una volta completato, si termina l'espressione). Così facendo, dichiaro un nuovo StringBuilder digitando questi tasti:
dim Str as new sys.te.s[Invio] 
E ottengo lo stesso risultato in un tempo notevolmente inferiore. Usando questa tecnica si possono indagare anche i parametri dei metodi aprendo le parentesi:


IntelliSense in azione!

Oltre ad ottenere la descrizione del parametro e il tipo richiesto, è possibile vedere anche tutte le versioni modificate con overloading scorrendole con le freccette direzioni indicate (anche da tastiera).
Un altro pregio dell'IntelliSense consiste nel poter rilevare la dichiarazione di una variabile quando il mouse ci passa sopra.


Altri strumenti utili
In questo paragrafetto cito due strumenti di minor importanza, ma molto utili. Il primo è il Code Snippet, che permette di inserire all'interno del sorgente frammenti di codice già scritti. Per inserire un frammento esistente, basta selezionare "INSERT IGNORE Snippet" dal menù contestuale dell'editor di codice. Dopodiché apparirà una lista contenente delle cartelle con nomi in inglese: sono le categorie di codice disponibili. Ad esempio, per creare in modo veloce una proprietà, si seleziona questo:


Code Snippet

Il compilatore genererà un codice in cui sono evidenziate delle parti in verde: se se ne modifica una, quelle corrispondenti vengono modificate a loro volta con lo stesso valore.
L'altro strumento è un tool di rinominazione. Se si clicca col destro su un indentificatore e si sceglie "Rename", lo si può rinominare e il compilatore rinomina anche tutti i suoi riferimenti altrove.



< Precedente
Successivo >