Visual Basic.NET é uma linguagem de programação totalmente orientada a objetos e com suporte total a UML, criada pela Microsoft e distribuída com o Visual Studio.NET.
O Visual Basic.NET é um produto extremamente diferente do antigo Visual Basic 6.0, não podendo ser considerada uma versão seguinte. Não apenas a maneira de programar foi alterada, mas todo conceito de orientação a objetos trouxe poder para a linguagem. A Microsoft simplesmente descontinuou o antigo Visual Basic 6.0 tornando o produto parecido com as demais linguagens do Visual Studio, parecido em questões de recursos e portabilidade pois o Visual Basic.NET ainda é muito diferente de linguagens como o Visual C++, C#, etc. Porém esta nova versão aproximou o Visual Basic.NET das grandes linguagens de programação, aumentando a aceitação dos programadores Java e até mesmo C++, embora os programadores Java que migram para a plataforma .NET da Microsoft prefiram o C#.[carece de fontes]?
Apesar da linguagem ser parecida com o antigo Visual Basic 6.0 a migração para a nova plataforma e utilização do Visual Basic.NET é mais fácil para programadores que utilizam linguagens orientada a objeto. Os programadores do antigo Visual Basic 6.0 acostumados com a orientação a eventos encontram algumas dificuldades na utilização do Visual Basic.NET.
Os desenvolvedores podem criar uma ampla gama de aplicativos Web, móveis, do Windows e do Office, com a mesma base.Net Framework, que tem atualmente a versão 4.0.
Versões do Visual Basic .NET
Desde novembro de 2007, existem quatro versões do Visual Basic.NET implementadas por The Visual Basic Team.
Visual Basic.NET (VB 7)
O Visual Basic.NET original foi lançado em 2002 juntamente com Visual C# e ASP.NET. Alterações muito significativas quebraram a compatibilidade com versões anteriores e criaram alguma tensão na comunidade de programadores.
Visual Basic.NET 2003 (VB 7.1)
Esta versão do Visual Basic foi lançada com a versão 1.1 da Framework.NET. Novos recursos incluíam o suporte para o .NET Compact Framework e um upgrade ao wizard do VB. Foi melhorada a performance e fiabilidade do IDE. Adicionalmente, Visual Basic.NET 2003 tinha uma versão acadêmica (Visual Studio.NET 2003 Academic Edition - VS03AE).
Visual Basic 2005 (VB 8.0)
A partir do VB 8.0, a Microsoft largou o termo .NET na designação do produto. Nesta versão, foram adicionadas bastantes novos recursos, incluindo:
- Editar e Continuar
- Avaliação de expressões quando no Design;
- Melhoria no conversor VB-para-VB.NET;
- Palavra-chave Using, simplificando a utilização de objetos que necessitam do padrão Dispose para libertar recursos;
- Suporte para o tipo de dados inteiro sem sinal, muito utilizado em outras linguagens;
- Programação genérica;
- Operator overloading;
- Comentários em XML que podem ser processados por utilitários tais NDoc para produzir documentação "automática";
- Operador
IsNotque funciona desta forma:'If X IsNot Y', que é equivalente a:'If Not X Is Y'. Ganhou fama quando se descobriu que fora patenteado pela Microsoft.
Visual Basic 2005 Express
Como parte da linha de produtos Visual Studio, a Microsoft criou um conjunto de ambientes de desenvolvimento gratuitos para aprendizes: a série Visual Studio 2005 Express. Visual Basic 2005 Express Edition é uma das edições dessa série de aplicações, que foi depois substituído pelo Visual Basic 2008 Express Edition do Visual Studio Express
Visual Basic 2008 (VB 9.0)
O Visual Basic 9.0 foi lançado juntamente com o Microsoft.NET Framework 3.5, a 19 de novembro de 2007. Nesta versão, a Microsoft adicionou bastantes novos recursos, tais como:
- O operador condicionante
If(boolean, value, value), para substituir a funçãoIIf. - Tipos anónimos.
- Suporte para LINQ.
- expressões Lambda.
- literais XML.
Visual Basic 2010 (VB 10.0)
Em 2007, a Microsoft planejou a utilização de DLR para o Visual Basic 10, conhecido como VBx. Contudo, a partir de Agosto de 2009, não houve mais notícias sobre o desenvolvimento do VBx com DLR. Como o C#, o Visual Basic poderá aceder a objetos de linguagens dinâmicas construídas no DLR tais como IronPython e IronRuby.
Para uma lista completa das características do Visual basic 10.0, ver o documento em "What's New in Visual Basic 2010" publicado pela Microsoft.
Juntamente com o Visual Basic 2010 obtemos o .NET Framework 4.
Sintaxe VB.NET e VB
O seguinte exemplo simples demonstra a similaridade entre sintaxe VB.NET e VB. Ambos os exemplos aparecem numa caixa de mensagem dizendo "Olá, Mundo" com um botão OK.
Exemplo VB Clássico:
Private Sub Command1_Click ()
MsgBox("Olá, Mundo")
End Sub
Exemplo VB.NET:
Private Sub Button1_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox("Olá, Mundo")
End Sub
Note que todas as chamadas de procedimento devem ser feitas com parênteses em VB.NET, enquanto no VB6 houve diferentes convenções para funções (parênteses necessários) e subcategorias (sem parênteses permitida, a não ser chamada utilizando a palavra-chave Call). Além disso, note que os nomes comando1 e Button1 não são obrigatórios. No entanto, esses são nomes padrão para um botão de comando VB6 e VB.NET, respectivamente. Existe uma função chamada MsgBox no namespace Microsoft.VisualBasic, que pode ser usado do mesmo modo que a função correspondente no VB6. Existe uma controvérsia sobre qual função para usar como uma melhor prática (não apenas restrito a mensagem mostrando caixas, mas também a outras características do namespace Microsoft.VisualBasic). Alguns programadores preferem e defendem que linguagens de código com características específicas se tornam mais legíveis (por exemplo, utilizando int (C #) ou Integer (VB.NET) em vez de System.Int32). O exemplo a seguir mostra uma diferença entre VB6 e VB.NET. Ambos os exemplos descarregam a janela ativa.
Exemplo VB Clássico:
Private Sub cmdClose_Click ()
Esvaziar Me
End Sub
Exemplo VB.NET:
Private Sub btnClose_Click (ByVal remetente As System.Object, ByVal e As System.EventArgs) Handles btnClose
Clique em mim. Close ()
End Sub
Note o "cmd" sendo substituído com o prefixo 'btn', conforme a nova convenção anteriormente mencionada. Os seguintes são equivalentes:
Exemplo VB 6:
Private Sub Timer1_Timer () mim. Altura = Me. Altura - 1 End Sub
Exemplo VB.NET:
Private Sub Timer1_Tick (ByVal remetente Como System. Object, ByVal e Como System.
EventArgs) _ Handles Timer1. Tick mim. Altura -= 1 End Sub
Críticas
Os muitos utilizadores do Visual Basic queixaram-se do fato das versões iniciais do Visual Basic.NET abandonarem um grande número de características da linguagem disponíveis no VB6 (não mais vendido pelo Microsoft), e pelas alterações na semântica das características que se mantiveram; por exemplo, no VB.NET os parâmetros são passados (por default) por valor, não por referência. Detratores referem-se pejorativamente ao VB.NET como Visual Fred ou DOTNOT. A 8 de Março de 2005, uma petição foi criada em resposta à recusa da parte da Microsoft em estender o suporte ao VB6.
Limitações
As versões anteriores do VB tinham várias limitações no código:
- Nº de variáveis usadas no mesmo código.
- Nº de arquivos abertos no mesmo código.
- Nº de janelas abertas no mesmo código, dentre outras.
No VB.NET existem limitações físicas, segundo a Microsoft, mas são tão altas que não há chances de serem atingidas pelo desenvolvedor, a ponto de não serem nem documentadas oficialmente.[carece de fontes]?
Arquivos Gerados
Arquivos com extensão.vb e outros que podem ser incluídos no projeto, tais como ASP (extensão.aspx), XML (extensão.xml), arquivos HTML (extensão.html), etc. Não há distinção de arquivos de classes, janelas, controles e outros, pois todos terão a extensão.vb.[carece de fontes]?