Desenvolvimento - Visual Basic .NET
VB.NET: Estudo da linguagem - Parte 1
Estude a linguagem Visual Basic .NET através desta série de artigos que iremos publicar.
por Paulo Cesar MacedoEsse estudo foi uma compilação dos seguintes textos feita pelo autor:
MSDN Visual Studio 2002/2003 (tradução da fonte original do site da Microsoft)
Livro: Programando em Visual Basic de Michael J. Young.
Livro: Visual Basic for Windows de Steven Holzner.
Livro: Visualização e realidade virtual de Lee Adams.
1 - Estudo da Linguagem Visual Basic .NET
1.0 – Arquivos gerados pelo Visual Basic .NET
Quando iniciado um projeto em VB, o sistema cria os arquivos com extensão .vb, além de outros que podem ser incluídos no projeto tais como arquivos ASP que tem a extensão .aspx; arquivos XML com extensão .xml; arquivos HTML com extensão .html e outros. Assim não há distinção de arquivos de classes, janelas, controles e etc, pois todos terão a partir de agora a extensão .vb.
Item do projeto |
Extensão |
Descrição |
Janela |
.vb |
Janela para aplicativos Desktop. |
Classe |
.vb |
Arquivo de código para classes |
Modulo (Visual Basic) |
.vb |
Arquivo que agrupa funções |
Component Class |
.vb |
Uma classe de componentes. |
User Control |
.vb |
Controle para aplicativos |
Data Form Wizard |
.vb (.aspx para projetos WEB.) |
Uma janela de dados |
DataSet |
.xsd |
Arquivo DataSet para criar esquemas XML |
Arquivo XML |
.xml |
Arquivo XML |
Esquema XML |
.xsd |
Arquivo para criar Esquemas de documentos XML. |
Code File |
.vb |
Arquivo de código |
Custom Control |
.vb |
Classe para criar controles para aplicativos Windows. |
Página HTML |
.htm |
Página HTML que inclui código. |
Inherited Form |
.vb |
Janela baseada em outra janela existente. |
Web Custom Control |
.vb |
Classe para criar um controle servidor ASP.NET. |
Inherited User Control |
.vb |
Novo controle baseado em um controle existente. |
Windows Service |
.vb |
Classe para criar Serviços Windows. |
COM Class |
.vb |
Classe baseada em componente COM |
Transactional Component |
.vb |
Classe para usar componentes transacionais. |
Arquivo texto |
.txt |
Arquivo de texto |
Frameset |
.htm |
Arquivo HTML que possui várias páginas HTML. |
Arquivo XSLT |
.xslt |
Arquivo usado para transformar documentos XML |
StyleSheet |
.css |
Arquivo estilo planilha para definições HTML |
Installer Class |
.vb |
Classe para ser chamada em processos de instalação. |
Crystal Report |
.rpt |
Um relatório Crystal Report |
Arquivo Bitmap |
.bmp |
Arquivo bitmap. |
Arquivo de Cursor |
.cur |
Cursor padrão |
Icone |
.ico |
Ícone padrão |
Arquivo Assembly Resource |
.resx |
Arquivo usado para armazenar recursos para o aplicativo |
Arquivo Assembly Information |
.vb |
Arquivo que contém informações do Assembly. |
Arquivo Application Configuration |
.config |
Arquivo usado para configurações do aplicativo. |
Arquivo JScript |
.js |
Arquivo contendo código JScript |
Arquivo VBScript |
.vbs |
Arquivo contendo código VBScript |
Windows Script Host |
.wsf |
Arquivo que contém Script que é executado como um aplicativo Windows. |
Arquivos de um projeto WEB
Arquivos |
Extensão |
Descrição |
Janela Web |
2 arquivos: .aspx .vb |
Uma janela WEB. |
Web Service |
2 arquivos: .asmx .vb |
Componente que troca mensagens usando os protocolos padrões HTTP, XML, XSD, SOAP e WSDL. |
Class |
.vb |
Arquivo de classe. |
Modulo (Visual Basic) |
.vb |
Arquivo que agrupa funções |
Component Class |
.vb |
Classe de componentes |
Data Form Wizard |
.aspx (.vb para projetos locais) |
Uma janela de dados para aplicativos WEB. |
DataSet |
.xsd |
Arquivo para esquemas XML usando DAtaSet |
Web User Control |
.ascx |
Controle servidor ASP.NET |
Página HTML |
.htm |
Página HTML que inclui código |
Frameset |
.htm |
Um pagina HTMP que inclui várias páginas HTML. |
Style Sheet |
.css |
Arquivo estilo planilha usado para definições HTML |
Arquivo XML |
.xml |
Arquivo XML . |
Esquema XML |
.xsd |
Arquivo esquema para documentos XML. |
Arquivo XSLT |
.xslt |
Arquivo usado para transformar documetnos XML |
Web Custom Control |
.vb |
Controle ASP.NET server. |
Arquivo de código |
.vb |
Arquivo de código |
Dynamic Discovery Document |
.vsdisco |
Arquivo baseado em XML usado para descobrir o caminho do servidor WEB. |
Static Discovery |
.disco |
Arquivo de mecanismo de procura para servidores XML WEB. |
Global Application Class |
.asax |
Arquivo para manipular eventos ASP.NET |
Web Configuration |
.config |
Arquivo de configuração para aplicativos WEB |
Texto |
.txt |
Arquivo de texto |
Installer Class |
.vb |
Classe chamada em processos de instalação.. |
Crystal Report |
.rpt |
Arquivo Crystal Report |
Bitmap |
.bmp |
Imagem Bitmap |
Cursor |
.cur |
Cursor Padrão |
Icon File |
.ico |
Ícone padrão |
Assembly Resource File |
.resx |
Arquivo de recursos utilizado pelo aplicativo |
Assembly Information File |
.vb |
Informações gerais do assembly |
JScript File |
.js |
Código JScript |
VBScript File |
.vbs |
Código VBScript |
Windows Script Host |
.wsf |
Arquivo para Windows scripting.. |
Em versões anteriores do VB, as janelas tinham extensões .frm, os controles tinham extensões .ctr, as classes tinham a extensão .cls.
Ainda hoje, os arquivos do Vb podem ser abertos por qualquer programa de texto e podem ser alterados diretamente sem usar o Ambiente de Desenvolvimento do Visual Studio.
1.1 - Nova Estrutura do programa escrito em VB .Net
A nova estrutura do programa deve seguir essas etapas:
- Utilize os comandos Option para verificar os erros de lógica e de sintaxe.
- Utilize o comando Imports para acessar os recursos da tecnologia .NET Framework.
- O procedimento Main ( ) será o ponto inicial do programa, ou seja o código que será executado em primeiro lugar.
- Utilize os comandos Class, Module ou NameSpace se for criar objetos para o programa.
- Utilize comandos de compilação condicional #if .. #else... se necessário.
Exemplo 1 :
" Programa escrito em Visual Basic .
Option Explicit
Module Olá
Sub Main( )
MsgBox("Olá Mundo!") " Exibe a Mensagem na tela.
End Sub
End Module
A primeira linha funciona como comentário. O Comando Option obriga declarar todas as variáveis antes de utilizá-las no programa.
No exemplo acima, no módulo “Olá” está o procedimento Sub Main ( ) que vai controlar a execução do processo e exibir a mensagem “Olá Mundo” na tela do computador.
Quando criamos um programa em VB escolhendo Windows Application na janela de opções, o Visual Studio .NET cria um projeto contendo referências e uma classe chamada sempre de form1.vb.
Exemplo 2 :
Public Class Form1
Inherits System.Windows.Forms.Form
‘ O código abaixo foi criado automaticamente pelo Visual Basic
#Region " Windows Forms Designer generated code "
Public Sub New()
MyBase.New()
" This call is required by the Windows Forms Designer.
InitializeComponent()
" Add any initialization after the InitializeComponent() call.
End Sub
" Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
No exemplo acima, O VS .net criou o protótipo central para ser modificado, contendo uma janela Form1 que possui o código inicial da janela Sub New que é o construtor da janela onde é colocado o código de inicialização da janela que substitui o antigo evento Initialize do VB 6.0.
Resumindo, quando a janela é carregada na tela, o primeiro procedimento a ser executado será o código dentro de Sub New, também conhecido como Construtor (proveniente da linguagem C++).
InitializeComponent( ) é criado automaticamente pelo VStudio e substitui o antigo arquivo .frm que era criado pelo VB 6, onde continha todo as propriedades e códigos fonte da janela em formato de Texto.
Resumindo, InitializeComponent( ) grava todas os controles, textos, figuras e outras coisas que forem feitas na janela.
O comando inherits na primeira linha do exemplo acima herda todas as características de uma janela normal. Assim pode-se alterar suas propriedades na janela de propriedades do VB.
Resumindo, para criar uma janela é preciso acionar a classe Windows Form da tecnologia .NET Framework.
1.2 – Atribuir nomes aos elementos do seu programa
Quando for nomear (dar nome as variáveis, objetos ou classes) os elementos do seu programa a Microsoft recomenda usar as seguintes técnicas.
- Começar cada Nome com letra maiúscula , Exemplo : ConvertaPrimeiraLetra.
- Quando nomear uma função ou método inicie com a ação que ela executa. Exemplo : CarregarFiltro; IniciarProcura; FecharJanela.
- Quando nomear uma Classe ou uma propriedade da classe inicie com o nome a que se refere a classe . Exemplo : CarroAcessórios; EmpregadosSalário; ArquivosNome.
- Quando nomear uma Interface (Interface) no seu programa, inicie com a letra I maiúscula seguida da ação ou comportamento dessa interface. Exemplo : IPersistente; IAleatório.
- Quando nomear eventos para sua classe, inicie com a palavra “Event” ou “Evento”. Exemplo: EventoFechar; EventoAbrir.
- Se for usar um evento que foi disparado no momento da ação ou depois da ação, utilize os verbos no presente ou passado. Exemplo : EventoFechar; EventoFechou; EventoAbrir; EventoAbriu.
- Para nomes muito grandes utilize abreviações. Exemplo : HTML (abreviação de Hyper Text Marquet Language).
- Não use nomes idênticos no mesmo módulo ou procedimento, o ideal é utilizar nomes completamente diferentes em todo o programa.
1.3 – Utilizando quebra de linha e combinação de código
No momento da codificação os comandos estiverem extensos demais, pode-se quebrar a linha em diversas partes sem gerar erros de execução. Utilize o “Caracter de continuação de Linha” ( _ ) após um espaço simples, em seguida continuar a escrever o código em outra linha.. Exemplo :
Data1.RecordSource = _
"SELECT * FROM Titles, Publishers" _
& "WHERE Publishers.PubId = Titles.PubID" _
& "AND Publishers.State = "CA""
Assim, a linha de código fica mais fácil de ler na tela do seu computador, entretanto existe uma limitação para o número de linhas.
Para combinar muitas linhas de código em uma única linha utilize dois pontos ( : ). Exemplo :
Text1.Text = "Olá" : Vermelho = 255 : Text1.BackColor = Vermelho
1.4 – Caracteres especiais no VB .Net
Alguns caracteres possuem significados diferentes na linguagem, veja a seguir :
-
Parênteses
: Use parênteses para criar um procedimento ou função. Exemplo :
Sub Main ( ).
-
Separadores
( : ) : Os dois pontos ( : ) são usados para separar blocos de código na mesma linha. Exemplo : Text1.Text = "Olá"
: Vermelho = 255 : Text1.BackColor = Vermelho
- Concatenação : Para combinar duas variáveis Strings, utilize o operador de concatenação &. Exemplo :
Var1 = "10.01"
Var2 = 11
Result = Var1 + Var2 " Result = 21.01
Result = Var1 & Var2 " Result = 10.0111
Não use o operador “ + “ para concatenar duas string, pois pode gerar erros. Observe
os resultados do exemplo acima.
-
Operador de acesso ( . )
: O ponto é utilizado para acessar funções, métodos ou propriedades de uma classe
ou objeto. Exemplo :
MyForm.Text = "This is my form"
- Operador de acesso (
! ) : A exclamação também é utilizada para acessar métodos ou propriedades
somente de algumas classes ou estruturas. Exemplo :
RS.Fields!CustomerID.Value = txtCustomerID.Text
- Caracter de declaração de tipos de dados ( ! ) : O ponto de exclamação também pode ser utilizado para declarar variáveis do tipo Single. Exemplo : Var = 1234578!
1.5 – Criar comentários no Código
Para cada linha de código, pode-se criar um comentário explicando o significado do procedimento, este tipo de linha é ignorado pelo compilador. Utilize o símbolo de comentário ( ‘ ) para ativar o comentário. Exemplo :
" Este é um comentário no início do código
Text1.Text = "Hi!" " Este é um comentário na mesma linha do código
A Microsoft recomenda criar comentários para cada seção de código dessa forma :
- Propósito : Inclua esse tópico no comentário, para identificar qual a descrição ou tarefa do código em questão.
- Requisitos : Inclua esse tópico no comentário, para identificar quais variáveis, objetos, classes e outros elementos utilizados no código em questão.
- Efeito : Inclua esse tópico para identificar quais variáveis, objetos, classes e outros elementos que serão afetados pelo código em questão.
- Argumentos : Inc.ua esse tópico para explicar os argumentos exigidos pelo código em questão.
- Retorno : Inclua esse tópico para identificar o valor de retorno desse código em questão.
Não se pode quebrar linhas em comentário, utilizando o caracter ( _ ). Pode-se utilizar o comando REM para ativar comentários, entretanto esse procedimento requer mais espaço em memória que o símbolo ( ‘ ), portanto utilize o símbolo somente.
1.6 – Limitações do Visual Basic .NET
As versões anteriores do VB tinham várias limitações no código, veja abaixo :
- Número de variáveis usadas no mesmo código.
- Número de funções usadas no mesmo código.
- Número de arquivos abertos no mesmo código.
- Número 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.
1.7 - Compilação Condicional
Quando se executa um programa, o compilador inicia a leitura do código fonte indistintamente até o final. Entretanto esse comportamento pode ser alterado utilizando a Compilação Condicional.
A compilação condicional faz com que o compilador execute certos blocos de código enquanto outros são ignorados. É útil quando se deseja usar comandos para certos tipos de Sistemas operacionais em uso, ou utilizar dicionários para uma língua de um país, etc..
Para aplicar esse recurso use o comando de diretiva # if ... #Then ... # Else . Além disso pode-se criar uma constante a nível de compilação usando o comando de diretiva #Const . Exemplo :
‘Cria uma compilação para a versão de um programa de língua Francesa ou Alemã, note
‘que FrenchVersion e GermanVersion são constantes predefinidas pelo VB.
#If FrenchVersion Then
" <código para a lingua francesa>.
#ElseIf GermanVersion Then
" <código para a lingua alemã>.
#Else
" <código para outras versões>.
#End If
1.7.1 – Criando Constantes de declaração Condicional
Constantes são variáveis que não podem ser alteradas. As constantes de declaração condicional são variáveis que não podem ser alteradas e também não podem ser acessadas pelo código geral.
Pode-se criar constantes com caixa de diálogos de propriedades, por linha de comando ou por comandos em código. Para criar constantes condicionais por comandos em código, utilize #Const. Exemplo :
#Const MeuPaís = "BRASIL"
#Const Versão = "8.0.0012"
#Const NúmeroPadrão = 36
1.7.2 – Ocultando ou expandindo o código
No VB .NET há um recurso que permite ocultar ou expandir o código escrito no Editor de Códigos, é semelhante ao Windows Explorer ao visualizar os diretórios e subdiretórios do sistema. Quando um diretório possui subdiretórios, o sistema exibe um sinal de mais ( + ) ao lado do nome do diretório corrente, informando que há outros elementos nele. Basta clicar sobre o ( + ) para visualizar os outros elementos.
Assim funciona esse recurso, que pode ser aplicado usando a diretiva #Region. Exemplo :
#Region "O código dentro de Region é ocultado clicando sobre #Region"
Private components As System.ComponentModel.Container
Dim WithEvents Form1 As System.Windows.Forms.Form
Private Sub InitializeComponent()
components = New System.ComponentModel.Container
Me.Text = "Form1"
End Sub
#End Region
Esse recurso torna fácil ler e administrar o código fonte do desenvolvedor. Note que não é possível usar esse recurso quando criar Funções, e qualquer código ocultado ou expandido é lido normalmente pelo compilador.
- Entity Framework 4: Repositório GenéricoVisual Basic .NET
- As edições 14 da Easy .net Magazine e 88 da .net Magazine já estão disponíveis.ADO.NET
- Postando no Twiiter com .NET e Migre.meC#
- Setup ApplicationsVisual Basic .NET
- Problemas na manipulação de arquivos do MS Excel com .NETVisual Basic .NET