Visual Basic .NET

Da Wikipedia, l'enciclopedia libera.
(Reindirizzamento da Visual Basic (2002-2010))
Visual Studio
VisualStudio2008.jpg
Logo di Visual Studio 9.0
Autore Microsoft
Data di origine 2003[1]
Ultima versione 13.0 (2013)
Utilizzo Applicazioni stand-alone e client-server
Paradigmi Programmazione a oggetti
Tipizzazione forte
Estensioni comuni vb, resx, vbproj, sln
Influenzato da Visual Basic
Implementazione di riferimento
Implementazione debugger e compilatore
Sistema operativo Windows Vista, Windows 7, Windows 8
Lingua inglese
Licenza Proprietaria

Visual Basic, prima Visual Basic .NET, è il successore del vecchio Visual Basic, arrivato fino alla versione 6. Le principali novità di questo nuovo linguaggio di sviluppo del Framework .NET sono che è basato su oggetti e che è compilato.

Il Visual Basic, e il suo corrispondente C#, è un punto di congiunzione di tante iniziative e tecnologie di sviluppo Microsoft del passato come ad esempio: il COM e gli ActiveX, sostituiti con assembly e classi di oggetti completamente gestiti: per gestiti (dall'inglese managed) si intende che la gestione della memoria è gestita autonomamente dal garbage collector. Con Visual Basic è possibile realizzare applicazioni windows forms, web, servizi, componenti COM, MQ, Web service ed anche destinate a dispositivi mobile tramite l'uso delle librerie del Compact framework.

Visual Basic è uno dei linguaggi principali di Visual Studio, la suite per programmatori di Microsoft, basata interamente sul Framework .NET.

Storia[modifica | modifica sorgente]

Visual Basic .NET (VB 7)[modifica | modifica sorgente]

Visual Basic .NET (internamente la versione 7.0), è nato nel 2002. È stato il primo Visual Basic sviluppato sul Framework .NET 1.0. Benché commercialmente sia il successore del VB6, in realtà l'unico punto in comune è la sintassi VB like.

Questa versione supportava il paradigma di programmazione ad oggetti con caratteristiche quali l'ereditarietà, il polimorfismo e l'incapsulamento. Si aggiunge una gestione avanzata della memoria (grazie al garbage collector) e dei puntatori, tutto in un ambiente completamente gestito e a tipizzazione forte.

Oltre tipi e librerie più classiche ritrovabili in ogni linguaggio come IO, formattazione di stringhe, calcoli matematici e statistici e quant'altro, questa versione del linguaggio supportava già il threading, la reflection, gli attributi customizzabili, la programmazione distribuita tramite remoting e la programmazione di oggetti COM.

Visual Basic .NET 2003 (VB 7.1)[modifica | modifica sorgente]

Con la versione del Framework 1.1, Microsoft ha rilasciato una nuova versione di Visual Studio (Visual Studio 2003) e con esso le nuove versioni dei linguaggi inclusi, fra cui Visual Basic .NET 2003 (internamente la versione 7.1). Oltre ad aver migliorato alcune librerie in termini di performance, come il compilatore in background, in questa versione è stato aggiunto il supporto per il .NET Compact Framework permettendo ai programmatori di sviluppare applicazioni per i dispositivi mobile.

Visual Basic 2005 (VB 8)[modifica | modifica sorgente]

Nel 2005, con la versione 2.0 del Framework, venne rilasciata la nuova versione di Visual Basic, con il nome commerciale di Visual Basic 2005 che per la prima volta abbandona il suffisso .NET. In questa versione si aggiungono moltissime nuove caratteristiche di programmazione, tra le quali:

  • i generics
  • gli eventi custom
  • nuovi oggetti kernel per la sincronizzazione dei threads
  • le classi parziali, con l'istruzione Partial Class
  • lo pseudo-namespace My che semplifica l'accesso a molti metodi di uso comune
  • il qualificatore globale di namespace (global)
  • i commenti XML per commentare i propri metodi
  • l'overload degli operatori
  • la definizione di nuovi tipi fra cui gli unsigned e i nullable.

In più, sono comparse nuove parole chiave:

  • Continue
  • IsNot
  • My
  • TryCast
  • Using

Inoltre, centinaia di aggiornamenti sono stati eseguiti sui metodi del framework distribuiti nei vari namespace come IO, Security, Cryptography, Threading e altri.

Visual Basic 2008 (VB 9)[modifica | modifica sorgente]

Visual Basic 2008 è uscito in anticipo il 19 novembre 2007 ed è stato implementato sul Framework .NET 3.5 con il rilascio di Visual Studio 2008. Questa versione del linguaggio aggiunge caratteristiche innovative come i letterali XML e LINQ. Proprio per il supporto a LINQ sono state introdotte moltissime novità, fra le quali i tipi anonimi, l'inferenza dei tipi, le espressioni lambda e i metodi di estensione. Inoltre è stato integrato l'utilizzo dei nuovi Framework implementati dalla versione 3.0 di .NET fra cui:

  • Entity Framework, che permette di lavorare con un modello a oggetti anche sui database;
  • Windows Presentation Foundation, un nuovo namespace contenente classi per il disegno di interfacce utente windows o web;
  • Windows Communication Foundation, un nuovo namespace che rende più semplice utilizzare le tecniche di programmazione distribuita;
  • Workflow Foundation, per realizzare applicazioni o assembly di workflow, poi implementabili in ogni applicazione .NET;
  • Card space, una nuova tecnologia per la centralizzazione dei login su sistemi web.

Inoltre, è stato esteso l'utilizzo del linguaggio tramite l'uso del nuovo IDE di sviluppo Visual Studio 2008, per realizzare applicazioni con la tecnologia Silverlight basata su WPF.

Esempi[modifica | modifica sorgente]

Hello, World[modifica | modifica sorgente]

Esempio in Visual Basic classico (6.0 e precedenti):

Private Sub Command1_Click()
   MsgBox "Hello, world!"
End Sub

Esempio in Visual Basic .NET con la nuova classe MessageBox:

Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
   MessageBox.Show("Hello, world!", "Titolo esempio", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub

Esempio in Visual Basic .NET con la vecchia funzione Msgbox:

Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
   Msgbox("Hello, world")
End Sub

Nell'esempio sopra riportato è indicata la nuova sintassi che sostituisce il classico MsgBox. La visualizzazione del messaggio è effettuata dal metodo Show della classe MessageBox. Notare che normalmente per invocare un metodo è necessario creare un'istanza di una classe. In questo caso, tuttavia, il metodo, essendo di tipo Shared (cioè condiviso), può essere chiamato anche senza istanziare la classe. La vecchia sintassi MsgBox è, comunque, supportata anche dalla nuova piattaforma di sviluppo. Per istanziare una classe si intende creare un oggetto del tipo definito dalla classe.

Comunque è spesso preferibile usare il metodo Msgbox, in quanto più comodo e intuitivo.

Delegate[modifica | modifica sorgente]

I delegate sono puntatori a funzioni utilizzabili nella gestione degli eventi, utili nella programmazione asincrona.

Module Module1
   Public Delegate Sub dTest
 
   Sub Main()
      Dim temp as new dTest(AddressOf Test)
 
      'invocazione sincrona
      temp.invoke
 
      'invocazione asincrona
      temp.BeginInvoke(New AsyncCallback(AddressOf EndTest), temp)
      Console.WriteLine("OK")
      Console.ReadLine
   End Sub
 
   Sub Test()
      'Qui c'è un'elaborazione lunga
   End Sub
 
   Sub EndTest(ByVal ar As iAsyncResult)
      ar.AsyncState.EndInvoke(ar)
      Console.Writeline("EndTest")
   End Sub
End Module

Funzionalità di Visual Basic .NET non presenti in C#[modifica | modifica sorgente]

  • Le variabili possono essere dichiarate con il costrutto WithEvents;
  • Auto-wireup degli eventi: VB.NET usa il comando Handles per gestirli;
  • Uso della struttura With ... End With per l'accesso diretto alle funzionalità di un oggetto;
  • Metodo IsNumeric per verificare se una stringa può essere convertita (casting) in un numero;
  • XML Literals; Jonathan Allen, Does C# Need VB9's XML Literals?. URL consultato il 13 gennaio 2009.
  • Dichiarazione diretta delle date usando la sintassi #1/1/2000#;
  • Moduli (analoghi a classi statiche);
  • Accesso diretto ai membri di un Modulo (Vedi Now come esempio)
  • Il namespace My
  • I componenti COM e l'interoperabilità sono più performanti su oggetti a runtime,[2]
  • I Namespaces possono essere incorporati nel progetto in modo da non doverli richiamare ogni volta nei vari files;
  • Eccezioni in-line filtrati da un'espressione booleana, usando il blocco "When expression".[3];
  • Sintassi differente su Linq To Objects dove, fra l'altro, è possibile omettere l'istruzione "select" finale per ottenere la lista di oggetti direttamente.

Passaggio da VB6 a VB.NET[modifica | modifica sorgente]

Benché molti programmatori abbiano creduto a un aggiornamento del linguaggio, in realtà VB.NET e VB non sono compatibili. Nell'IDE di sviluppo è integrato un convertitore che, però, garantisce una conversione parziale del codice. Nella maggior parte dei casi, è necessaria una totale revisione dello stesso dal momento che la tecnica di programmazione è passata da essere imperativa (anche se basata su eventi) a essere orientata agli oggetti.

Per usare VB.NET[modifica | modifica sorgente]

VB.NET è un linguaggio di libero utilizzo e il relativo compilatore è scaricabile dall'area download del sito Microsoft. Inoltre, è disponibile anche una versione completamente gratuita di Visual Studio detta Express.

Esiste inoltre un compilatore opensource e multipiattaforma che, grazie al progetto Mono, è in grado di compilare su ambienti diversi da Windows come Mac OS X e Linux.

Open Source[modifica | modifica sorgente]

Oltre alle versioni di Visual Studio, esiste anche un IDE (Integrated Development Environment) open source, SharpDevelop, che permette di creare applicazioni in modo veloce e semplice. SharpDevelop permette lo sviluppo di plugin per l'IDE stesso, applicazioni Mono, creazione di applicazione con .NET Compact Framework e le classiche applicazioni Console e Windows Form

Note[modifica | modifica sorgente]

  1. ^ History of Visual Basic, Copyright © 2009-2010 Max Visual Basic. URL consultato il 21 gennaio 2014.
  2. ^ Early vs. Late Binding.
  3. ^ MSDN: Try...Catch...Finally Statement (Visual Basic)

Bibliografia[modifica | modifica sorgente]

Voci correlate[modifica | modifica sorgente]

Altri progetti[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]