.NET - Diferenças entre o Visual Basic 6.0 e o VB .NET (resumo)


Embora existam muitas diferenças entre o Visual Basic 6.0 e o Visual Basic .NET temos na tabela abaixo uma compilação resumida das principais diferenças entre as linguagens:

Recurso/Característica Visual Basic 6.0 Visual Basic .NET
Controle Line Disponível Não Disponível
Controle OLE container Disponível Não Disponível
Dynamic data exchange(DDE) Disponível Não Disponível
Controle Shape Disponível Não Disponível
Data Access Objects (DAO) Suportado Não Suportado
Remote Data Objects (RDO) Suportado Não Suportado
instrução Option base Disponível Não Disponível
Fixed-length strings Suportado Não Suportado
Fixed-size array Suportado Suportado
instrução ReDim Declaração Array Redimensionamento Array
Universal Data Type Variant Object
Currency Data Type Suportado Não Suportado
Data Type para armazenar datas Double DateTime
instrução DefType Suportado Não Suportado
operador Eqv Suportado Não Suportado
operador Imp Suportado Não Suportado
Propriedades Default para objects Suportado Não Suportado
Declaração de estruturas Type...End Type Structure...End Structure
Escopo de uma variável declarada
em um bloco
Escopo do procedimento Escopo do bloco de código
no procedimento
Valores para argumentos opcionais Não requerido Requerido
Declaração de procedimentos como
estáticos
Suportado Não Suportado
instrução GoSub Disponível Não Disponível
Mecanismo padrão para passar
argumentos
ByRef ByVal
Sintaxe do laço While While...End While ... End While
Palavra-Chave Null Suportado Não Suportado
Palavra-Chave Empty Suportado Não Suportado
Função IsEmpty Suportado Não Suportado
instrução Option Private Module Suportado Não Suportado
evento Class_Initialize Suportado Não Suportado
evento Class_Terminate Suportado Não Suportado

Além das diferenças da tabela acima, o Visual Basic .NET não suporta várias aplicações suportadas pelo Visual Basic 6.0.

Por exemplo, o Visual Basic.NET não suporta documentos ActiveX, não suporta aplicações DHTML e classes da Web que o Visual Basic 6.0 suporta.

O Visual Basic.NET também é incompatível com os Windows Common Controls e os controles de grid vinculados a dados disponíveis no Visual Basic 6.0.

Da mesma forma, a propriedade usada para especificar o titulo(legenda) de um controle de Label no Visual Basic 6.0 é Caption no Visual Basic.NET usamos Text : Exemplo:

LblResult.Caption = "Macoratti"             ->Visual Basic 6.0
LblResult.Text = "Macoratti"                  ->Visual Basic.NET

No Visual Basic 6.0 a propriedade usada para definir o foco em um controle (TextBox) era SetFocus no VB .NET usamos o método Focus:

Text1.SetFocus Visual Basic 6.0
TextBox1.Focus VB .NET

No Visual Basic 6.0 a propriedade Password do controle TextBox é do tipo String ; no VB .NET é do tipo Char.

Atualização usando o Assistente

Além disso quando da atualização de uma aplicação Visual Basic 6.0 para VB .NET, o Assistente faz várias outras alterações no código durante o processo de upgrade.Vejamos algumas delas relacionadas com :

Arrays

Ao contrário do Visual Basic 6.0, no Visual Basic.NET, você não pode especificar o limite inferior para um array (uma matriz). No Visual Basic 6.0, o limite inferior padrão para uma matriz é 0, mas você pode mudar isso usando a instrução Option Base.

Em contraste, o Visual Basic.NET faz não suporta a instrução Option Base. Portanto, você não pode modificar o limite inferior para um array no Visual Basic.NET.

Considere a seguinte declaração, que é parte de um projeto no Visual Basic 6.0:

Dim MyArray (11 a 22) As String

Quando você atualizar o projeto Visual Basic 6.0 que contém a instrução de código anterior para Visual Basic.NET, o Assistente de atualização do Visual Basic atualiza com sucesso o projeto.

No entanto, o relatório de atualização para o projeto gerado pelo assistente exibe o seguinte aviso em tempo de execução: "Limite inferior de MyArray série foi mudado de 11 para 0."

Procedimentos de Propriedade

A sintaxe para definir propriedades em Visual Basic 6.0 e no VB .NET é diferente.

No VB 6.0, você pode usar as declarações Property Get e Property Let para definir propriedades. O Visual Basic.NET não suporta a declaração Property Let.

Considere o seguinte código declarado em um projeto Visual Basic 6.0:

Public Property Get MyProperty() As Integer
    MyProperty = MyProp
End Property

Public Property Let MyProperty(ByVal MyValue As Integer)
   MyProp = MyValue
End Property

Quando você atualizar o projeto, o Assistente de atualização do Visual Basic modifica o código que é alterado para:

Dim MyProp As Short
Public Property MyProperty() As Short
  Get
     MyProperty = MyProp
  End Get

  Set(ByVal Value As Short)
     MyProp = Value
  End Set
End Property

Objetos de ligação tardia (Late-Bound)

Da mesma forma que o Visual Basic 6.0 o Visual Basic.NET suporta objetos de ligação tardia. Quando você atualiza seus projetos para o Visual Basic.NET, no entanto, os objetos de ligação tardia pode apresentar problemas.

Ao atualizar um projeto, o Assistente de atualização do Visual Basic pode não ser capaz de resolver ou converter as propriedades de um objeto de ligação tardia. Isso ocorre porque atualização do Assistente não pode determinar o tipo de um objeto de ligação tardia.

Vejamos um exemplo para entender isso. Considere o seguinte código que é parte de um Projeto Visual Basic 6.0. O código a seguir é executado quando você clicar no botão Command1:

Private Sub Command1_Click()

Dim MyInt As Integer
Dim MyObject As Object
MyInt = InputBox("Informe o valor 1 ou 2")

Select Case (MyInt)
Case "1"
   Set MyObject = Label1
   MyObject.Caption = "Primeira Label"
Case "2"
   Set MyObject = Label2
   MyObject.Caption = "Segunda Label"
End Select
End Sub

Quando você atualizar o projeto para o VB .NET, o relatório de atualização exibe o seguinte aviso: "Não foi possível resolver a propriedade padrão do objeto MyObject.Caption objeto."

Como a ligação tardia é usada para alterar as legendas dos controles Labels a atualização do Assistente Visual Basic não pode identificar o tipo de objeto MyObject. Portanto, o assistente gera um aviso em tempo de execução.

No Visual Basic 6.0, você define a legenda de um controle Label, usando a propriedade Caption do Label. No VB .NET, no entanto, a propriedade Caption é substituído pela propriedade Text. A seguir está o código atualizado para o evento Click do botão Command1.

Private Sub Command1_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles Command1.Click

Dim MyInt As Short
Dim MyObject As Object
MyInt = CShort(InputBox("Informe o valor 1 ou 2"))
Select Case (MyInt)

Case CInt("1")
   MyObject = Label1
   'UPGRADE_WARNING: Couldn't resolve default property of object MyObject.Caption.
   MyObject.Caption = "Primeira Label"
Case CInt("2")
   MyObject = Label2
   'UPGRADE_WARNING: Couldn't resolve default property of object MyObject.Caption.
   MyObject.Caption = "Segunda Label"
End Select

End Sub

Variáveis numéricas

No Visual Basic 6.0:

Em contraste, o Visual Basic.NET oferece três tipos de dados numéricos:

Portanto, quando você atualizar um projeto Visual Basic 6.0, na atualização do Visual Basic o Assistente converte todas as variáveis do tipo de dados Long para o tipo de dados Integer.

Veja os Destaques e novidades do SUPER DVD Visual Basic 2013 (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Rom 12:1 Rogo-vos pois, irmãos, pela compaixão de Deus, que apresenteis os vossos corpos como um sacrifício vivo, santo e agradável a Deus, que é o vosso culto racional.

Rom 12:2 E não vos conformeis a este mundo, mas transformai-vos pela renovação da vossa mente, para que experimenteis qual seja a boa, agradável, e perfeita vontade de Deus.

        Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti