Web Analytics
Privacy Policy Cookie Policy Terms and Conditions Visual Basic - Wikipedia

Visual Basic

Da Wikipedia, l'enciclopedia libera.

In informatica, il Visual Basic (VB abbreviato) è un linguaggio di programmazione derivato dal BASIC; si tratta di un linguaggio di sviluppo orientato agli eventi.

Sviluppato dalla Microsoft, Visual Basic è noto per la sua semplicità d'uso (che deriva dal suo predecessore), per la potenza nel disegnare in breve tempo (ambiente di lavoro RAD, Rapid Application Development) l'interfaccia utente (GUI - graphical user interface) di un programma, anche se abbastanza complessa, per il semplice accesso alle basi dati e la semplice creazione di controlli ActiveX.

Tramite l'uso dei controlli VBX (nelle versioni a 16 bit) e dei controlli OCX (presenti nelle versioni a 32 bit e basati su OLE) è possibile ampliare notevolmente le potenzialità di questo linguaggio integrando nei propri progetti componenti sviluppati da altri programmatori.

Visual Basic è stato (ed è adesso, anche se sta venendo lentamente soppiantato da Visual Basic .NET) uno dei linguaggi più utilizzati al mondo, grazie alla sua grande semplicità ma allo stesso tempo grande versatilità.

Indice

[modifica] Linguaggi derivati

Microsoft ha derivato diverse versioni di Visual Basic per personalizzare le applicazioni:

  • Visual Basic for Applications (VBA) è incluso in molte applicazioni Microsoft (ad esempio Microsoft Office) ed anche in diversi prodotti di terze parti (ad esempio WordPerfect Office 2002). Ci sono alcune differenze su come VBA è implementato nelle differenti applicazioni, ma fondamentalmente si tratta di un linguaggio molto simile a VB6
  • VBScript è un linguaggio di scripting che ricorda la sintassi VB, ma che viene eseguito dal sottosistema Windows Script Host di Windows invece che dal runtime VB. Queste differenze possono aver effetto sulle performance. Gli usi di questo linguaggio sono molteplici:
    • linguaggio predefinito per le pagine ASP
    • automazione del Sistema Operativo Windows, scrivendo direttamente script per il sottosistema Windows Script Host
    • codice lato client nel browser Internet Explorer. Questa possibilità però è utilizzata praticamente solo dalle applicazioni e dai siti di Microsoft. Nella quasi totalità delle applicazioni internet si fa uso di Javascript.

Quando Microsoft cominciò a pensare alla creazione di un nuovo linguaggio di programmazione, dovette scegliere se modificare il popolare Visual Basic 6.0 o creare qualcosa di completamente nuovo e più potente. Con la produzione del .NET Framework Microsoft cominciò a produrre un nuovo linguaggio specifico per questa piattaforma il C#, ma contemporaneamente, per sfruttare al meglio la grande quantità di programmatori esistenti in Visual Basic, sviluppò Visual Basic .NET. Sebbene Visual Basic .Net sia architetturalmente molto diverso dal suo predecessore e renda quindi impossibile passare programmatori VB6 su .NET senza un'adeguata formazione, mantiene una sintassi molto simile al classico Visual Basic rendendo quindi questo passaggio più semplice di quanto sarebbe stato riconvertire i programmatori VB6 in C#.

[modifica] Caratteristiche del linguaggio

Visual Basic è stato disegnato per essere utilizzabile da tutte le categorie di programmatori, sia principianti che esperti. Le Finestre sono create utilizzando la tecniche del "drag and drop" (trascina e lascia); una barra di strumenti permette di posizionare i controlli (caselle di testo, bottoni, immagini, etc.) nella finestra. I controlli hanno degli attributi e dei gestori di eventi associati. Nel momento in cui un controllo viene creato sono associati dei valori predefiniti a questi attributi, ma molti valori sono poi cambiati dal programmatore. Molti attributi possono essere cambiati durante l'esecuzione del programma (run time) in base alle azioni dell'utente o all'ambiente di lavoro, creando così un'interfaccia dinamica.

Un'applicazione Visual Basic può essere formata da una o più finestre, o da una singola finestra che ne contiene altre (applicazione MDI). I controlli forniscono le funzionalità di base per l'applicazione, mentre il programmatore può inserire logica addizionale negli appropriati gestori di eventi. Per esempio una ComboBox automaticamente visualizza la sua lista e permette all'utente di selezionare un elemento; un gestore di evento è chiamato quando un elemento viene selezionato e qui il programmatore può scrivere il codice da eseguire sulla base dell'elemento selezionato.

In alternativa, un componente Visual Basic può non avere un'interfaccia utente, ma interagire con altri programmi implementando una serie di funzionalità. In questo caso parliamo di un processo lato "server" o di un modello "add-in".

Visual Basic ha creato il primo mercato commerciale di componenti riutilizzabili; esistono migliaia di componenti di terze parti disponibili per gli sviluppatori. Visual Basic rende semplice sviluppare e riutilizzare componenti, comunque non è semplice riutilizzare finestre create per un'applicazione all'interno di un'altra per la natura stessa del linguaggio.

[modifica] Controversie

Molti programmatori hanno un rapporto difficile con Visual Basic in quanto è stato disegnato per essere un linguaggio semplice e molte caratteristiche che sono presenti in linguaggi come C++ e Java non sono disponibili in Visual Basic. Nell'interesse della convenienza e del rapido sviluppo alcune funzionalità come la verifica del "cast" dei dati e la dichiarazione obbligatoria delle variabili sono disabilitate. Questo rende Visual Basic molto semplice da utilizzare, ma i programmi così realizzati possono essere distribuiti con errori nascosti dovuti a questa mancanza di controlli.

Molti critici di Visual Basic spiegano che la sua natura semplice è dannosa nel lungo periodo. Innanzitutto è spesso utilizzato per insegnare la programmazione proprio a causa della sua semplicità, ma imparare a programmare in Visual Basic non introduce i programmatori a molte delle tecniche e dei costrutti fondamentali della programmazione. In secondo luogo, come già detto in precedenza, la possibilità di disabilitare errori ed avvertimenti in fase di compilazione, può rendere difficoltosa la ricerca degli errori. I programmatori esperti in Visual Basic tendono comunque ad abilitare questi controlli.

Molti dei suoi sostenitori insistono invece sul fatto che la sua semplice natura è il suo punto di forza, in quanto permette un rapido sviluppo di applicazioni da parte di programmatori esperti ed una curva di apprendimento piuttosto breve per i programmatori che provengono da altri linguaggi. Inoltre le applicazioni Visual Basic possono essere integrate con la basi dati in maniera molto semplice.

Visual Basic è inoltre un'agglomerato di funzionalità e sintassi diverse con meno consistenza, ma con più tolleranza, degli altri moderni linguaggi di programmazione. Alcune istruzioni come "gosub", "on error" e la dichiarazione del tipo di variabile con l'ultimo carattere del nome (ad esempio miaStringa$ per le stringhe), sono retaggi delle origini del Basic che sono state incluse per mantenere una compatibilità verso il basso del codice.

Il linguaggio continua ad attirare molti apprezzamenti e molte critiche, ma continua ad avere una grande diffusione di utenti e sviluppatori nonostante l'uscita del "successore" Visual Basic .Net. Infatti molti pensano che Visual Basic .Net sia l'evoluzione di VB6, mentre è esattamente un altro linguaggio.

[modifica] Funzionalità non supportate

  • Programmazione orientata agli oggetti. Visual Basic, fino alla versione 6, ha un supporto limitato per la programmazione orientata agli oggetti poiché non supporta l'ereditarietà di implementazione. E' però possibile (a partire dalla versione 5.0) implementare interfacce, avvalendosi quindi del polimorfismo.
  • Multithreading. Nelle versioni "pre .NET", non esiste un supporto diretto per la programmazione multithread.
  • Operatori "bitwise". Non sono supportati nativamente gli operatori "bitwise" per le operazioni sui singoli bit.
  • Puntatori. Non esiste una gestione dei puntatori come avviene in C.
  • Numerici senza segno. I tipi di dati numerici supportati da Visual Basic sono esclusivamente quelli con il segno (da 8 a 64 bit), mentre molti altri linguaggi supportano nativamente i numerici senza segno.

[modifica] Peculiarità

  • Indice di base degli array. Il primo elemento di un array può essere referenziato con l'indice 0 o con l'indice 1 (in base al settaggio del parametro "option base"); questo può causare una certa confusione quando si legge del codice di Visual Basic. L'indice inferiore inoltre non è limitato al valore di 0 od 1 in quanto può essere definito diversamente al momento della dichiarazione dell'array. In questo modo sia il limite inferiore dell'array che quello superiore sono personalizzabili.
  • Possibilità di eseguire un'applicazione senza effettuare una compilazione completa; in questo modo è possibile cambiare il codice e continuare l'esecuzione direttamente in fase di debug.

[modifica] Visual Basic e Visual Basic.Net

Con l'uscita del .NET Framework, Microsoft ha introdotto una nuova versione del suo più famoso linguaggio di sviluppo. Più di un aggiornamento del vecchio VB6 si tratta in realtà di un nuovo linguaggio che integra tutte le classi di base del framework .NET mantenendo però una sintassi simile a quella conosciutissima di Visual Basic. Questo cambiamento ha interrotto la compatibilità verso il basso di Visual Basic ma ha colmato tutte quelle carenze tipiche del VB6 descritte in precedenza. Sono inoltre state introdotte tutta una serie di funzionalità tipiche del .NET Framework come "remoting", "Web Service", "Servizi Windows", ADO.NET, etc. Anche se esiste un tools per la migrazione delle applicazioni, alcune funzionalità non possono essere convertite automaticamente richiedendo quindi uno sforzo successivo per completare la migrazione.

Molte delle originali carenze sono state colmate, ma questo ha reso Visual Basic .Net un linguaggio più complesso del suo predecessore, ma al tempo stesso estremamente più potente e versatile. Alcuni ritengono che il supporto per Visual Basic .NET diminuirà nel tempo a favore del C#, che diventerà il linguaggio più utilizzato in ambito .NET; tuttavia per il momento Microsoft fornisce il pieno supporto a Visual Basic .Net tanto che anche nella versione 2.0 del .NET Framework, le differenze nelle potenzialità dei due linguaggi sono talmente minime da rendere la scelta nell'utilizzo dell'uno o dell'altro, una cosa influenzata più dalla cultura degli sviluppatori che non dalle necessità tecniche.

[modifica] Storia di Visual Basic

  • Visual Basic 1.0 per Windows (Maggio 1991). L'approccio per collegare il linguaggio di programmazione con l'interfaccia grafica è derivato da un sistema chiamato Tripod, sviluppato in origine da Alan Cooper.
  • Visual Basic 1.0 per DOS (Settembre 1992). Il linguaggio in sé stesso non era molto compatibile con quello di Visual Basic per Windows. L'interfaccia utilizzava i caratteri ASCII estesi per simulare l'apparenza di una interfaccia grafica.
  • Visual Basic 2.0 (Novembre 1992). L'ambiente di sviluppo era stato semplificato e la velocità aumentata.
  • Visual Basic 3.0 (Estate 1993). Venne rilasciato nelle versioni Standard e Professional. Includeva un motore di database che poteva leggere e scrivere basi dati Access.
  • Visual Basic 4.0 (Agosto 1995). È stata la prima versione che permetteva di creare applicazioni a 16 bit o 32 bit. È stata inoltre introdotta la possibilità di scrivere classi in Visual Basic.
  • Visual Basic 5.0 (Febbraio 1997). Viene rilasciata una versione esclusivamente per lo sviluppo a 32 bit. Visual Basic 5.0 offriva anche la possibilità di compilare in eseguibili Windows nativi, in modo da migliorare la velocità rispetto agli eseguibili compilati in P-Code.
  • Visual Basic 6.0 (Estate 1998). Sono state aggiunte numerose funzionalità, fra cui la possibilità di creare applicazioni web. VB6 smetterà di essere supportato da Microsoft nel Marzo 2008. Sono stati rilasciati diversi Service pack per correggere od aggiungere funzionalità. L'ultimo service pack installabile è il 6. Visual Basic muore con questa versione, in quanto non verranno sviluppate nuove versioni.
  • Visual Basic .NET (2001). La versatilità di questo nuovo linguaggio (Si ricorda che visual basic .net NON è Visual Basic 7) è estremamente maggiore del vecchio VisualBasic.
  • Visual Basic .NET 2003 (2003). Adeguate le funzionalità con l'uscita del .NET framework 1.1; introdotta la possibilità di sviluppare applicazioni per PDA PocketPC e sistemi WindowsCE.
  • Visual Basic 2005 (2005). Non si usa più la keyword .Net nel nome in quanto ora sarà sottointeso che Visual Basic è basato su .NET framework. Adeguate le funzionalità con l'uscita del .NET framework 2.0. Aggiunta di nuove classi e keyword per facilitare il porting dalla versione 6.

[modifica] Programma di esempio

[modifica] Hello, world!

Il seguente esempio, inserito nell'evento Form_Load() (l'evento che scatta al caricamento del form) fa apparire un popup (con il solo bottone OK, per chiuderlo) e la scritta "Hello world".

MsgBox "Hello World"

Se si vuole scrivere "Hello world" in un campo di testo del proprio progetto, al caricamento del main form, occorrerà trascinare un controllo TextBox sul form, e nell'evento Form_load() scrivere il seguente codice:

[NOMEOGGETTO].text = "Hello World!"

Oppure si puo' stampare il testo nella finestra stessa con il seguente codice :

Print "Hello World!"

[modifica] Voci correlate

[modifica] Collegamenti esterni

Visual Basic su DMoz (Segnala su DMoz un link pertinente all'argomento Visual Basic)
Principali linguaggi di programmazione (tutti)

Ada | ALGOL | APL | Awk | BASIC | C | C++ | C# | COBOL | Delphi | Eiffel | Fortran | Haskell | IDL | Java | JavaScript | J# | Lisp | LOGO | ML | Objective C | O'Caml | Pascal | Perl | PHP | PL/I | PLaSM | Prolog | Python | Ruby | SAS | Scheme | sh | Simula | Smalltalk | SQL | Visual Basic

THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu