Visual Basic .NET: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Passaggio da VB6 a VB.NET: Qualche piccola semplificazione e abbassamento della "tragicità" dell'argomento
m Corretta una parola mal scritta e aggiunto link ipertestuale
 
(96 versioni intermedie di 49 utenti non mostrate)
Riga 1:
{{Linguaggio di programmazione
'''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 [[Microsoft .NET|Framework .NET]] sono che è basato su oggetti e che è compilato.
|nome = Visual Basic .NET
|immagine =
|didascalia =
|autore = [[Microsoft]]
|data = [[2003]]<ref>{{cita web|url=http://www.max-visual-basic.com/history-of-visual-basic.html|titolo=History of Visual Basic|editore=Copyright © 2009-2010 Max Visual Basic|accesso=21 gennaio 2014|urlarchivio=https://web.archive.org/web/20140115091036/http://www.max-visual-basic.com/history-of-visual-basic.html|dataarchivio=15 gennaio 2014|urlmorto=sì}}</ref>
|utilizzo = Generico
|paradigmi = Multi-paradigma: [[Programmazione strutturata|Strutturata]], [[Programmazione imperativa|Imperativa]], [[Programmazione orientata agli oggetti|Object-Oriented]], [[Programmazione funzionale|Funzionale]], [[Programmazione a eventi|a eventi]]
|tipizzazione = [[Tipizzazione forte|forte]]
|specifiche =
|estensione = vb, resx, vbproj, sln
|influenzato_da = [[Visual Basic]]
|ha_influenzato =
|implementazione_riferimento = debugger e compilatore
|sistema_operativo = Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10, Linux, [[macOS]]
|lingua =
|sito_web = https://msdn.microsoft.com/it-it/vstudio/hh388573
}}
 
'''Visual Basic .NET''', è la nuova versione di [[Visual Basic]]. Le principali novità di questo nuovo linguaggio di sviluppo del [[Microsoft .NET|Framework .NET]] sono che è basato su oggetti e che è compilato.
Il Visual Basic, e il suo corrispondente [[C sharp|C#]], è un punto di congiunzione di tante iniziative e tecnologie di sviluppo Microsoft del passato come ad esempio: il [[Component Object Model|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''.
 
Il Visual Basic, come il suo corrispondente [[C sharp|C#]], è un punto di congiunzione di tante iniziative e tecnologie di sviluppo Microsoft del passato come ad esempio: il [[Component Object Model|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 mobili 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.
 
Microsoft ha annunciato che non ci saranno più importanti aggiornamenti per Visual Basic .NET.
 
Visual Basic è uno dei linguaggi principali di [[Microsoft Visual Studio|Visual Studio]], la suite per programmatori di Microsoft, basata interamente sul Framework .NET.
 
==Storia==
===Visual Basic .NET (VB 7)===
'''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''.
Line 48 ⟶ 69:
* [[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 [[IntegratedAmbiente developmentdi sviluppo environmentintegrato|IDE]] di sviluppo ''Visual Studio 2008'', per realizzare applicazioni con la tecnologia [[Silverlight]] basata su [[Windows_Presentation_FoundationWindows Presentation Foundation|WPF]].
 
=== Visual Basic 2010 (VB 10)===
Nell'aprile 2010, Microsoft ha rilasciato Visual Basic 2010.
Visual Basic 2010 è attualmente l'ultima versione disponibile del linguaggio ed è stato rilasciato nel mese di aprile 2010 insieme al Framework .NET 4.0 e al Visual Studio 2010.
 
Questa versione del linguaggio non ha introdotto l'atteso supporto a [[Dynamic Language Runtime (DLR)]] perché non ancora pronto in C#. Tuttavia, introduce ulteriori caratteristiche sintattiche che lo rendono più ''pulito'', come la possibilità di spezzare le linee di codice su più righe senza dover specificare il carattere underscore (anche se con alcune limitazioni) e aggiunge importanti modifiche ai generics (varianza e covarianza) e le Parallel Extensions per lo sviluppo multi-threading.
===Visual Basic 2012 (VB 11)===
Visual Basic 2012 è stato rilasciato insieme .NET Framework 4.5.
 
===Visual Basic 2015 (VB 14)===
Visual Basic 2015 (nome in codice VB "14.0") è stato rilasciato contemporaneamente all'uscita di Visual Studio 2015.
 
===Visual Basic 2017 (VB 15)===
Visual Basic 2017 (nome in codice VB "15.0") è stato rilasciato contemporaneamente all'uscita di Visual Studio 2017 (15.33, 15.5, 15.8). Introduce nuove tecniche di [[refactoring]] che consentono di organizzare il codice sorgente con una sola azione.<ref>{{Cita web|url=https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-relnotes|titolo=Visual Studio 2017 15.9 Release Notes|autore=jawiddis|sito=docs.microsoft.com|lingua=en|accesso=2020-02-14}}</ref><ref name="docs.microsoft.com">{{Cita web|url=https://docs.microsoft.com/en-us/dotnet/visual-basic/getting-started/whats-new|titolo=What's new for Visual Basic - Visual Basic|autore=KathleenDollard|sito=docs.microsoft.com|lingua=en|accesso=2020-02-14}}</ref>
 
===Visual Basic 2019 (VB 16)===
Visual Basic 2019 (nome in codice VB "16.0") è stato rilasciato contemporaneamente all'uscita di Visual Studio 2019. È la prima versione di Visual Basic focalizzata sul nuovo framework di Microsoft [[.NET Core]].<ref name="docs.microsoft.com" />
 
== Esempi ==
=== [[Hello world|Hello, World]] ===
 
Esempio in Visual Basic classico (6.0 e precedenti):
 
<sourcesyntaxhighlight lang="vb">
Private Sub Command1_Click()
MsgBox "Hello, world!"
End Sub
</syntaxhighlight>
</source>
 
Esempio in Visual Basic .NET con la nuova classe MessageBox:
 
<sourcesyntaxhighlight lang="vbnet">
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
</syntaxhighlight>
</source>
 
Esempio in Visual Basic .NET con la vecchia funzione Msgbox:
 
<sourcesyntaxhighlight lang="vbnet">
Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click
Msgbox("Hello, world")
End Sub
</syntaxhighlight>
</source>
 
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'[[Oggetto (informatica)|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 (informatica)|oggetto]] del tipo definito dalla classe.
 
La compatibilità tra la versione classica (VB 6) e le nuove versioni VB.NET è garantita dalla libreria '''''Microsoft.VisualBasic'''''. Tale libreria è stata pensata per garantire un graduale passaggio dalla vecchia modalità di programmazione verso le nuove componenti del linguaggio VB.NET e del framework .NET. È pertanto sconsigliato l'uso di tale libreria nella realizzazione di nuovi progetti.
Comunque è spesso preferibile usare il metodo Msgbox, in quanto più comodo e intuitivo.
 
=== Delegate ===
I ''delegate'' sono puntatori a funzioni utilizzabili nella gestione degli eventi, utili nella programmazione asincrona.
 
<sourcesyntaxhighlight lang="vbnet">
Module Module1
Public Delegate Sub dTest
Line 113 ⟶ 145:
End Sub
End Module
</syntaxhighlight>
</source>
 
== Caratteristiche del linguaggio ==
Come per il suo corrispondente C#, i codici sorgenti scritti in VB.NET sono normalmente compilati secondo i criteri [[Compilatore just-in-time|JIT]]: la trasformazione in codice macchina (ovvero eseguito direttamente dalla CPU) avviene su richiesta solo all'atto di caricamento ed esecuzione del programma. In prima istanza il codice sorgente viene convertito dal framework in un codice intermedio detto [[Common Intermediate Language|CIL]] e solo all'esecuzione del programma il [[Common Language Runtime|CLR]] converte il CIL in codice macchina, man mano che viene eseguito. Una seconda possibilità è la cosiddetta ''compilazione Ngen'', che permette di convertire tutto il codice CIL in codice macchina in una volta sola.
 
== Funzionalità di Visual Basic .NET non presenti in C# ==
* 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;<ref>{{Cita web | url = http://www.infoq.com/news/2007/03/CSharp-XML | titolo = Does C# Need VB9's XML Literals? | autore = Jonathan Allen | accesso=13 gennaio 2009}}</ref>
* Dichiarazione diretta delle date usando la sintassi #1/1/2000#;
* Moduli (analoghi a classi statiche);
* Accesso diretto ai membri di un Modulo (Vedi [https://msdn.microsoft.com/en-us/library/microsoft.visualbasic.dateandtime.now.aspx Now] come esempio)
* Il namespace <code>My.*</code>;<ref>[https://msdn.microsoft.com/en-us/library/5btzf5yk.aspx]</ref>
* I componenti COM e l'interoperabilità sono più performanti su oggetti a runtime,<ref name="early-binding">{{Cita web | url =http://visualbasic.about.com/od/usingvbnet/a/earlybind.htm | titolo =Early vs. Late Binding | urlmorto =sì | urlarchivio =https://web.archive.org/web/20150225004949/http://visualbasic.about.com/od/usingvbnet/a/earlybind.htm | dataarchivio =25 febbraio 2015 }}</ref>
* I Namespaces possono essere incorporati nel progetto in modo da non doverli richiamare ogni volta nei vari file;
* Eccezioni in-line filtrati da un'[[espressione booleana]], usando il blocco "When expression".<ref>MSDN: [https://msdn.microsoft.com/en-us/library/fk6t46tz.aspx Try...Catch...Finally Statement (Visual Basic)]</ref>;
* 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 ==
Line 120 ⟶ 170:
 
== Per usare VB.NET ==
VB.NET è un linguaggio di libero utilizzo. Ile il relativo [[compilatore]] è scaricabile dall'area download deidel sito [[Microsoft]]. ÈInoltre, altresìè scaricabiledisponibile anche una versione completamente gratuita di [[Visual Studio]] detta ''Express''. dellInoltre dalla versione Visual Studio 2013 esiste anche l'[[Integratededizione developmentgratuita environment|IDE]]denominata "Community" la quale presenta alcune limitazioni in ambito commerciale, ma per il resto identica alla versione "Professional". La scrittura di sviluppocodice [[Visual Studio]]Basic completamentepuò gratuitaessere fatta anche semplicemente utilizzando un qualsiasi editor di testo.
 
Esiste inoltre un compilatore [[opensourceopen source]] e multipiattaforma, che, grazie al progetto [[Mono (progetto)|Mono]], è in grado di compilare anche su piattaforme ancheambienti diversediversi da [[Microsoft Windows|Windows]], come [[Mac OS XmacOS]] oe [[Linux]].
 
== Open SourceNote ==
<references />
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 (informatica)|plugin]] per l'IDE stesso, applicazioni [[Mono (progetto)|Mono]], creazione di applicazione con [[.NET Compact Framework]] e le classiche applicazioni [[Console (software)|Console]] e [[Windows Form]]
== Bibliografia ==
* [http://books.aspitalia.com/VisualBasic-2010/ ''Visual Basic 2010''] (2010) ISBN 978-88-203-4469-6 - D. Bochicchio, C. Civera, M. De Sanctis, R. Golia, A.Leoncini, M. Leoncini, S. Mostarda
*Visual Basic 2019 D. Bochicchio, C. Civera M. Leoncini, S. Mostarda, M. Tumiati ISBN 978-88-203-8466-1
 
== Voci correlate ==
* [[Microsoft .NET|MicrosoftASP.NET]]
* [[ASP.NETGambas]]
* [[VisualMicrosoft Basic.NET]]
* [[Visual Basic]]
 
== Altri progetti ==
{{interprogetto|b=Visual basic.net|commons=Category:Visual Basic}}
 
== Bibliografia ==
* [http://books.aspitalia.com/VisualBasic-2010/ ''Visual Basic 2010''] (2010) ISBN 978-88-203-4469-6 - D. Bochicchio, C. Civera, M. De Sanctis, R. Golia, A.Leoncini, M. Leoncini, S. Mostarda
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* [http://www.microsoft.com/italy/msdn/prodotti/vbasic/ Sito Microsoft su VB.NET]
* {{en}}cita [httpweb|https://msdnwww.microsoft.com/italy/msdn/prodotti/vbasic/ |Sito Microsoft su VB.NET]}}
* {{cita web|https://msdn.microsoft.com/vbasic/|Sito Microsoft su VB.NET|lingua=en}}
* [http://www.ugidotnet.org User Group Italiano dot NET]
* {{en}}cita [web|http://www.go-monougidotnet.org/mbas.html|User ImplementazioneGroup diItaliano dot VB.NET su Mono]}}
* {{cita web|1=http://www.go-mono.org/mbas.html|2=Implementazione di VB.NET su Mono|lingua=en|accesso=4 maggio 2005|urlarchivio=https://web.archive.org/web/20051023172239/http://www.go-mono.org/mbas.html|dataarchivio=23 ottobre 2005|urlmorto=sì}}
 
{{Principali linguaggi di programmazione}}
{{portale|informatica|Microsoft}}
 
[[Categoria:.NET]]
[[Categoria:Linguaggi derivati dal Visual Basic]]
[[Categoria:Linguaggi di programmazione orientati agli oggetti]]
 
[[ar:فيجوال بيزك دوت نت]]
[[arz:الفجوال بيسك دوت نت]]
[[cs:Visual Basic .NET]]
[[da:Visual Basic .NET]]
[[de:Visual Basic .NET]]
[[en:Visual Basic .NET]]
[[es:Visual Basic .NET]]
[[fa:ویژوال بیسیک دات‌نت]]
[[fr:Visual Basic .NET]]
[[he:Visual Basic .NET]]
[[id:Visual Basic .NET]]
[[is:Visual Basic .NET]]
[[ja:Microsoft Visual Basic .NET]]
[[ko:비주얼 베이직 닷넷]]
[[ms:Visual Basic .NET]]
[[no:Visual Basic .NET]]
[[pl:Visual Basic .NET]]
[[pt:Visual Basic .NET]]
[[ru:Visual Basic .NET]]
[[si:විෂුවල් බේසික් .නෙට්]]
[[simple:Visual Basic .NET]]
[[sv:Visual Basic .NET]]
[[ta:விசுவல் பேசிக் நெட்]]
[[tg:Visual Basic.NET]]
[[th:วิชวลเบสิกดอตเน็ต]]
[[uk:Visual Basic .NET]]
[[uz:Visual Basic .NET]]
[[vi:Visual Basic 2005]]
[[yi:Visual Basic .NET]]
[[zh:Visual Basic .NET]]