Visual Basic (clássico) - Visual Basic (classic)

Visual básico
Visual Basic 6.0 logo.png
Visual Basic 6.0 no Windows XP.png
IDE do Visual Basic 6.0 no Windows XP
Paradigma Baseado em objetos e orientado por eventos
Desenvolvedor Microsoft
Apareceu pela primeira vez Maio de 1991 ; 30 anos atrás ( 1991-05 )
Versão estável
6.0 / 1998 ; 23 anos atrás ( 1998 )
Disciplina de digitação Estático , forte
SO Microsoft Windows e MS-DOS
Local na rede Internet msdn .microsoft .com / en-us / library / windows / desktop / ms788229 .aspx
Implementações principais
Microsoft Visual Studio
Influenciado por
BASIC
Influenciado
Visual Basic .NET , Windows Forms , Gambas , Xojo , Basic4ppc , Basic4android e NS Basic

O Visual Basic original (também conhecido como Visual Basic Clássico ) é uma linguagem de programação orientada a eventos de terceira geração da Microsoft, conhecida por seu modelo de programação Component Object Model (COM) lançado pela primeira vez em 1991 e declarado legado em 2008. A Microsoft pretendia o Visual Basic para ser relativamente fácil de aprender e usar. Visual Basic foi derivado do BASIC e permite o desenvolvimento rápido de aplicativos (RAD) de aplicativos de interface gráfica do usuário (GUI) , acesso a bancos de dados usando Data Access Objects , Remote Data Objects ou ActiveX Data Objects e criação de controles e objetos ActiveX .

Um programador pode criar um aplicativo usando os componentes fornecidos pelo próprio programa Visual Basic. Com o tempo, a comunidade de programadores desenvolveu componentes de terceiros. Os programas escritos em Visual Basic também podem usar a API do Windows , que requer declarações de funções externas.

O lançamento final foi a versão 6 em 1998. Em 8 de abril de 2008, a Microsoft parou de oferecer suporte ao IDE do Visual Basic 6.0 . A equipe do Microsoft Visual Basic ainda mantém a compatibilidade para aplicativos Visual Basic 6.0 por meio de seu programa "It Just Works" em sistemas operacionais Windows com suporte.

Em 2014, alguns desenvolvedores de software ainda preferiam o Visual Basic 6.0 em vez de seu sucessor, o Visual Basic .NET . Visual Basic 6.0 foi selecionado como a linguagem de programação mais temida pelos entrevistados da pesquisa anual de desenvolvedores Stack Overflow em 2016, 2017 e 2018.

Um dialeto do Visual Basic, Visual Basic for Applications (VBA), é usado como macro ou linguagem de script em vários aplicativos da Microsoft e ISV , incluindo o Microsoft Office .

Características da linguagem

Assim como a linguagem de programação BASIC , o Visual Basic foi projetado para ter uma curva de aprendizado fácil . Os programadores podem criar aplicativos GUI simples e complexos . A programação em VB é uma combinação de organizar visualmente componentes ou controles em um formulário , especificando atributos e ações para esses componentes e escrevendo linhas de código adicionais para obter mais funcionalidade. Como o VB define atributos e ações padrão para os componentes, um programador pode desenvolver um programa simples sem escrever muito código. Os programas construídos com versões anteriores sofreram problemas de desempenho, mas os computadores mais rápidos e a compilação de código nativo tornaram isso menos problemático. Embora os programas VB possam ser compilados em executáveis ​​de código nativo a partir da versão 5 , eles ainda exigem a presença de cerca de 1 MB de bibliotecas de tempo de execução. Bibliotecas de tempo de execução principais são incluídas por padrão no Windows 2000 e posterior, mas os componentes de tempo de execução estendido ainda precisam ser instalados. As versões anteriores do Windows (95/98 / NT) exigem que as bibliotecas de tempo de execução sejam distribuídas com o executável.

Um formulário vazio em Visual Basic 6

Os formulários são criados usando técnicas de arrastar e soltar . Uma ferramenta é usada para colocar controles (por exemplo, caixas de texto, botões, etc.) no formulário (janela). Os controles têm atributos e manipuladores de eventos associados a eles. Os valores padrão são fornecidos quando o controle é criado, mas podem ser alterados pelo programador. Muitos valores de atributo podem ser modificados durante o tempo de execução com base nas ações do usuário ou mudanças no ambiente, fornecendo um aplicativo dinâmico. Por exemplo, o código pode ser inserido no manipulador de eventos de redimensionamento do formulário para reposicionar um controle de modo que permaneça centralizado no formulário, expanda para preencher o formulário, etc. Ao inserir o código no manipulador de eventos para um pressionamento de tecla em uma caixa de texto, o programa pode traduzir automaticamente o caso do texto que está sendo inserido, ou até mesmo impedir que certos caracteres sejam inseridos.

O Visual Basic pode criar executáveis ​​(arquivos EXE), controles ActiveX ou arquivos DLL, mas é usado principalmente para desenvolver aplicativos do Windows e para fazer interface com sistemas de banco de dados. Caixas de diálogo com menos funcionalidade podem ser usadas para fornecer recursos pop-up. Os controles fornecem a funcionalidade básica do aplicativo, enquanto os programadores podem inserir lógica adicional nos manipuladores de eventos apropriados. Por exemplo, uma caixa de combinação suspensa exibe automaticamente uma lista. Quando o usuário seleciona um elemento, um manipulador de eventos é chamado e executa o código que o programador criou para realizar a ação para aquele item da lista. Como alternativa, um componente do Visual Basic pode não ter interface de usuário e, em vez disso, fornecer objetos ActiveX a outros programas por meio do Component Object Model (COM). Isso permite o processamento do lado do servidor ou um módulo add-in.

O runtime recupera a memória não utilizada usando a contagem de referência , que depende de variáveis ​​que saem do escopo ou sendo definidas como Nothing , evitando o problema de vazamentos de memória que são possíveis em outras linguagens. Há uma grande biblioteca de objetos utilitários e a linguagem fornece suporte básico para programação orientada a objetos . Ao contrário de muitas outras linguagens de programação, o Visual Basic geralmente não faz distinção entre maiúsculas e minúsculas - embora transforme palavras - chave em uma configuração de maiúsculas e minúsculas padrão e force a capitalização dos nomes de variáveis ​​para se adequar à capitalização da entrada na tabela de símbolos. As comparações de string diferenciam maiúsculas de minúsculas por padrão. O compilador Visual Basic é compartilhado com outras linguagens Visual Studio (C, C ++). No entanto, por padrão, as restrições no IDE não permitem a criação de alguns destinos (DLLs de modelo do Windows) e modelos de threading, mas com o passar dos anos, os desenvolvedores contornaram essas restrições.

Características

As janelas de código no Visual Basic, mostrando uma função usando as instruções If, Then, Else e Dim

O Visual Basic se baseia nas características do BASIC.

  • Em vez de ser identificado apenas pelo número da linha, o código pode ser agrupado em sub-rotinas ou métodos nomeados: Sub ... End Sub . Visual Basic oferece suporte a números de linha adicionados pelo usuário até a versão 6 ou posterior.
  • As declarações de código não têm caractere de terminação diferente de um final de linha (retorno de carro / alimentação de linha). As versões desde pelo menos o VB 3.0 permitiam que as instruções pudessem ser implicitamente multilinhas com concatenação de strings ou usando explicitamente o caractere de sublinhado (_) no final das linhas.
  • Os comentários de código são feitos com um único caractere apóstrofo ('), como: ' This is a comment.
  • Os blocos de instrução de loop começam e terminam com palavras-chave: Do ... Loop, While ... End While, For ... Next .
  • A atribuição de múltiplas variáveis ​​não é possível. A = B = C não significa que os valores de A, B e C sejam iguais. O resultado booleano de "Is B = C?" é armazenado em A. O resultado armazenado em A seria, portanto, falso ou verdadeiro.
  • A constante booleanaTrue possui valor numérico -1. Isso ocorre porque o tipo de dados booleano é armazenado como um inteiro com sinal de complemento de dois . Nesta construção, −1 é avaliado como todos-1s em binário (o valor booleano True) e 0 como todos-0s (o valor booleano False). Isso é aparente ao realizar uma operação (bit a bit) Notno valor de complemento de dois 0, que retorna o valor de complemento de dois -1, em outras palavras True = Not False. Esta funcionalidade inerente torna-se particularmente útil quando a realização de operações lógicas sobre os pedaços individuais de um número inteiro, tais como And, Or, Xore Not. Essa definição de Truetambém é consistente com o BASIC desde a implementação do Microsoft BASIC no início dos anos 1970 e também está relacionada às características das instruções da CPU na época.
  • Operadores lógicos e bit a bit são unificados. Isso é diferente de algumas linguagens derivadas de C (como Perl ), que têm operadores lógicos e bit a bit separados. Novamente, este é um recurso tradicional do BASIC.
  • Base de matriz variável . As matrizes são declaradas especificando-se os limites superior e inferior de maneira semelhante a Pascal e Fortran . Também é possível usar a instrução Option Base para definir o limite inferior padrão. O uso da instrução Option Base pode causar confusão ao ler o código do Visual Basic e é melhor evitar sempre especificando explicitamente o limite inferior da matriz. Este limite inferior não é limitado a 0 ou 1, porque também pode ser definido por declaração. Dessa forma, os limites inferior e superior são programáveis. Em linguagens mais limitadas ao subscrito, o limite inferior da matriz não é variável. Essa característica incomum existe no Visual Basic .NET, mas não no VBScript .
OPTION BASE foi introduzido pela ANSI, com o padrão para ANSI Minimal BASIC no final dos anos 1970.
  • Integração relativamente forte com o sistema operacional Windows e o Component Object Model . Os tipos nativos para strings e arrays são os tipos COM dedicados, BSTR e SAFEARRAY.
  • O arredondamento do banqueiro é o comportamento padrão ao converter números reais em inteiros com a Roundfunção. ? Round(2.5, 0)dá 2, ? Round(3.5, 0)dá 4.
  • Os inteiros são automaticamente promovidos a reais em expressões que envolvem o operador de divisão normal ( /) para que a divisão de um inteiro por outro produza o resultado intuitivamente correto. VB fornece um operador de divisão de inteiro específico ( \) que trunca.
  • Por padrão, se uma variável não foi declarada ou se nenhum caractere de declaração de tipo for especificado, a variável é do tipo Variant. No entanto, este pode ser alterado com as declarações DefType tais como DefInt, DefBool, DefVar, DefObj, DefStr. Existem 12 Deftypeinstruções no total oferecidas pelo Visual Basic 6.0. O tipo padrão pode ser substituído por uma declaração específica usando um caractere de sufixo especial no nome da variável ( #para Double, !para Single, &para Long, %para Integer, $para String e @para Currency) ou usando a frase-chave As (type). O VB também pode ser definido em um modo que apenas variáveis ​​declaradas explicitamente podem ser usadas com o comando Option Explicit.

História

Alan Cooper criou o design de arrastar e soltar para a interface do usuário do Visual Basic.

O Visual Basic 1.0 foi introduzido em 1991. O design de arrastar e soltar para criar a interface do usuário é derivado de um gerador de formulário de protótipo desenvolvido por Alan Cooper e sua empresa, chamado Tripod . A Microsoft contratou Cooper e seus associados para desenvolver o Tripod em um sistema de formato programável para Windows 3.0 , sob o codinome Ruby (sem relação com a linguagem de programação Ruby posterior ). O tripé não incluiu uma linguagem de programação. A Microsoft decidiu combinar Ruby com a linguagem Basic para criar Visual Basic. O gerador de interface Ruby fornecia a parte "visual" do Visual Basic, e isso era combinado com o mecanismo "EB" Embedded BASIC projetado para o sistema de banco de dados "Omega" abandonado da Microsoft. Ruby também forneceu a capacidade de carregar bibliotecas de vínculo dinâmico contendo controles adicionais (então chamados de "gizmos"), que mais tarde se tornou a interface VBX .

Linha do tempo

Visual Basic para MS-DOS
Ícone VB DOS

Década de 1990

  • O projeto 'basic Thunder' foi iniciado em 1990. O Thunder persistiu até a última versão do Visual Basic em nome da função interna primária, "ThunderRTMain".
  • Visual Basic 1.0 (maio de 1991) foi lançado para Windows na feira comercial Comdex / Windows World em Atlanta, Geórgia.
  • O Visual Basic 1.0 para DOS foi lançado em setembro de 1992. A linguagem em si não era totalmente compatível com o Visual Basic para Windows, pois era a próxima versão dos compiladores BASIC da Microsoft baseados em DOS, QuickBASIC e BASIC Professional Development System. A interface usava uma interface de usuário baseada em texto , usando caracteres ASCII estendidos para simular a aparência de uma GUI .
  • O Visual Basic 2.0 foi lançado em novembro de 1992. O ambiente de programação era mais fácil de usar e sua velocidade foi aprimorada. Notavelmente, os formulários se tornaram objetos instanciados, estabelecendo assim os conceitos básicos dos módulos de classe que foram posteriormente oferecidos no VB4.
  • Visual Basic 3.0 foi lançado no verão de 1993 e veio nas versões Standard e Professional. O VB3 incluía a versão 1.1 do Microsoft Jet Database Engine que podia ler e gravar bancos de dados Jet (ou Access) 1.x.
  • Visual Basic 4.0 (agosto de 1995) foi a primeira versão capaz de criar programas para Windows de 32 e 16 bits . Possui três edições; Standard, Professional e Enterprise. Ele também introduziu a capacidade de escrever classes não-GUI no Visual Basic. Com o VB4, a linguagem foi separada da biblioteca GUI e disponibilizada como VBA, forma em que foi incorporada ao pacote Office 95. Para facilitar a migração de macros e scripts do Office, recursos do WordBasic, Excel Basic e Access Basic foram incorporados à linguagem. Incompatibilidades entre diferentes versões do VB4 causaram problemas de instalação e operação. Enquanto as versões anteriores do Visual Basic usavam controles VBX, o Visual Basic agora usava controles OLE (com nomes de arquivos terminando em .OCX). Posteriormente, eles foram chamados de controles ActiveX.
  • Com a versão 5.0 (fevereiro de 1997), a Microsoft lançou o Visual Basic exclusivamente para versões de 32 bits do Windows. Os programadores que preferiram escrever programas de 16 bits foram capazes de importar programas escritos em Visual Basic 4.0 para Visual Basic 5.0, e programas Visual Basic 5.0 podem ser facilmente convertidos para Visual Basic 4.0. O Visual Basic 5.0 também introduziu a capacidade de criar controles de usuário personalizados, bem como a capacidade de compilar para código executável do Windows nativo, acelerando a execução de código com muitos cálculos. Um Control Creation Edition gratuito, disponível para download, também foi lançado para a criação de controles ActiveX . Ele também foi usado como uma forma introdutória do Visual Basic: um projeto .exe regular pode ser criado e executado no IDE, mas não compilado.
  • O Visual Basic 6.0 (meados de 1998) foi aprimorado em várias áreas, incluindo a capacidade de criar aplicativos baseados na web.

Anos 2000

  • O suporte estendido do Visual Basic 6.0 foi encerrado em março de 2008; no entanto, os componentes principais do ambiente de desenvolvimento do Visual Basic 6 são executados em todas as versões de 32 bits do Windows até e incluindo o Windows 10.
  • O suporte básico para Microsoft Visual Basic 6.0 foi encerrado em 31 de março de 2005. O suporte estendido foi encerrado em março de 2008.

Linguagens derivadas

A Microsoft desenvolveu derivados do Visual Basic para uso em scripts . O próprio Visual Basic é derivado fortemente do BASIC e, subsequentemente, foi substituído por uma versão da plataforma .NET .

Algumas das linguagens derivadas são:

  • O Visual Basic for Applications (VBA) está incluído em muitos aplicativos da Microsoft ( Microsoft Office ) e também em muitos produtos de terceiros, como SolidWorks , AutoCAD , WordPerfect Office 2002 , ArcGIS , Sage 300 ERP e Business Objects Desktop Intelligence. Existem pequenas inconsistências na maneira como o VBA é implementado em diferentes aplicativos, mas é basicamente a mesma linguagem do Visual Basic 6.0 e usa a mesma biblioteca de tempo de execução. O desenvolvimento do Visual Basic terminou com 6.0, mas em 2010 a Microsoft introduziu o VBA 7 para fornecer recursos estendidos e adicionar suporte de 64 bits.
  • VBScript é a linguagem padrão para Active Server Pages . Ele pode ser usado em scripts do Windows e scripts de páginas da Web do lado do cliente . Ele se assemelha ao VB na sintaxe , mas é uma linguagem separada - executada por vbscript.dll em vez do tempo de execução VB. ASP e VBScript não devem ser confundidos com ASP.NET , que usa o .NET Framework para páginas da web compiladas.
  • O Visual Basic .NET é o sucessor designado da Microsoft para o Visual Basic 6.0 e faz parte da plataforma .NET da Microsoft . O Visual Basic .NET é compilado e executado usando o .NET Framework. Não é compatível com versões anteriores do Visual Basic 6.0. Existe uma ferramenta de conversão automatizada, mas a conversão totalmente automatizada para a maioria dos projetos é impossível.
  • OpenOffice Basic é um intérprete compatível com Visual Basic que se originou no StarOffice office suite.
  • Gambas é uma linguagem de programação de software livre inspirada no Visual Basic para o sistema operacional Linux. Não é um clone do Visual Basic, mas tem a capacidade de converter programas Visual Basic em Gambas.
  • O WinWrap Basic é uma variante do VBA de terceiros usada com vários softwares e disponível para os programadores usarem para criar um recurso de macro em seus programas.
  • O LotusScript é uma variante do VBA disponível no Lotus SmartSuite e no Lotus Notes .
  • As versões posteriores do Corel WordPerfect Office implementam o acesso ao VBA como uma das linguagens de macro / script, sendo as outras principais o CorelScript e o PerfectScript .
  • Versões anteriores do Microsoft Word usam uma variante do Visual Basic chamada WordBasic .

Desempenho e outros problemas

Versões anteriores do Visual Basic (anteriores à versão 5) compilavam o código somente para P-Code . O P-Code é interpretado pelo tempo de execução da linguagem. Os benefícios do P-Code incluem portabilidade e tamanhos menores de arquivos binários, mas geralmente retarda a execução, já que ter um tempo de execução adiciona uma camada adicional de interpretação. Os aplicativos Visual Basic requerem o tempo de execução MSVBVMxx.DLL do Microsoft Visual Basic, onde xx é o número da versão relevante, 50 ou 60. MSVBVM60.dll vem como padrão com o Windows em todas as edições do Windows 98 ao Windows 10 (algumas edições do Windows 7 não incluí-lo). Uma máquina Windows 95, entretanto, exigiria a inclusão com o instalador de qualquer DLL que fosse necessária para o programa. Visual Basic 5 e 6 podem compilar o código nativo ou P-Code, mas em ambos os casos o tempo de execução ainda é necessário para funções internas e gerenciamento de formulários.

As críticas feitas às edições do Visual Basic anteriores ao VB.NET incluem:

Desenvolvimento e suporte legado

Todas as versões do ambiente de desenvolvimento Visual Basic de 1.0 a 6.0 foram retiradas pela Microsoft em 2008 e, portanto, não são mais suportadas. Os ambientes de tempo de execução associados também não são suportados, exceto para o ambiente de tempo de execução do núcleo do Visual Basic 6, que a Microsoft oferece suporte oficial durante toda a vida útil do Windows 8 e do Windows 10 . Os componentes de terceiros fornecidos com o Visual Studio 6.0 não estão incluídos nesta declaração de suporte. Alguns componentes legados do Visual Basic ainda podem funcionar em plataformas mais novas, apesar de não serem suportados pela Microsoft e outros fornecedores. A documentação do Visual Basic 6.0, sua interface de programação de aplicativo e ferramentas são melhor abordadas na última versão do MSDN antes do Visual Studio.NET 2002. Versões posteriores do MSDN focaram no desenvolvimento .NET e tiveram partes significativas da documentação de programação do Visual Basic 6.0 removidas como o a linguagem evoluiu e o suporte para códigos mais antigos terminou. Embora o suporte do fornecedor para Visual Basic 6 tenha terminado e o produto nunca tenha sido compatível com as versões mais recentes do Windows, partes importantes do ambiente ainda funcionam em plataformas mais recentes. É possível obter um subconjunto do ambiente de desenvolvimento funcionando em versões de 32 e 64 bits do Windows Vista, Windows 7, Windows 8 e Windows 10.

Código de exemplo

O trecho de código a seguir exibe uma caixa de mensagem dizendo "Hello, World!" conforme a janela carrega:

Private Sub Form_Load()
    ' Execute a simple message box that says "Hello, World!"
    MsgBox "Hello, World!"
End Sub

Este snippet faz um contador que sobe 1 a cada segundo (um rótulo e um controle de cronômetro precisam ser adicionados ao formulário para que isso funcione) até que o formulário seja fechado ou ocorra um estouro de número inteiro :

Option Explicit
Dim Count As Integer
Private Sub Form_Load()
    Count = 0
    Timer1.Interval = 1000 ' units of milliseconds
End Sub
Private Sub Timer1_Timer()
    Count = Count + 1
    Label1.Caption = Count
End Sub

Veja também

Referências

links externos