Meu primeiro contato com o Visual Basic 2005


 

Estamos praticamente deixando o ano de 2005 e adentrando em 2006, e, eu não podia deixar de dar uma 'olhada' na nova versão do Visual Basic: o Visual Basic 2005 , ou , VB8.  Andei tão atarefado com minha monografia neste últimos 6 meses e creio que esta será um boa desculpa por esta falha. Antes tarde do nunca... não é mesmo. ?

 

Bem, para começar baixei a versão Express Edition no link : http://msdn.microsoft.com/vstudio/express/vb/default.aspx e já vou avisando: você vai precisar de uma conexão rápida pois é oferecido um kit mínimo para instalação que inclui o download do NET Framework 2.0, do Visual Basic 2005  e do SQL Server 2005. Na verdade, primeiro é feito um download de um arquivo de instalação que em seguida irá instalar os componentes selecionados. (Por falta de espaço em disco, baixei somente o Visual Basic 2005 e o NET Framework 2.0)

 

Obs: A versão VB 2005 Express é gratuita por um ano , até novembro de 2006. Basta se registrar e pronto...

 

Se possuir o Windows 98 , esqueça pois na lista de requerimentos consta que ele pode ser instalado no : Windows XP, Windows 2000, Windows Server e Windows Vista requerendo, para a configuração de download indicada, meros 1.3 GB. (Outra coisa que para mim foi sensível: quanto mais memória você tiver melhor será o desempenho )

 

Existe uma recomendação expressa para que versões betas do SQL Server 2005, Visual Studio 2005 e NET Framework 2.0 sejam removidas antes de proceder a instalação do Kit.

 

Antes de prosseguir vou falar um pouco sobre a origem da família de produtos Express. Na verdade é uma estratégia da Microsoft para difundir a estratégia .NET oferecendo ferramentas com recursos poderosos , de fácil aprendizagem e a um custo acessível a entusiastas, aprendizes, hobistas e quem deseja começar sem ter que fazer um alto investimento inicial. Nas palavras da Microsoft:

 

"O Visual Basic 2005 Express Edition, que foi criado com um foco na produtividade, é ideal para os programadores novatos ou casuais, estudantes ou qualquer pessoa com experiência anterior em programação Visual Basic"

 

Na verdade a Microsoft dividiu suas ferramentas de desenvolvimento da seguinte forma:

 

Visual Studio Team Suite Arquitetos, Testers, Analistas, Gerentes
Visual Studio Professional Edition Profissionais, Consultores, Programadores
Visual Studio Academic Edition /  Visual Studio Tools for Office Estudantes e professores
Visual Studio Express ( C#  VB C++  J#  Web) Aprendizes , entusiastas , hobistas

 

Os produtos Express são compostos pelas seguintes ferramentas:

Após a instalação fui logo abrindo o VB 2005 e criando uma aplicação do tipo Windows Application clicando na opção : Create  Project na página Inicial - Start Page. A janela New Project esta mais arrumada e intuitiva, e, você pode ver todos os tipos de projetos oferecidos.

 

 

 O tradicional formulário padrão - form1 , a janela Solution Explorer e a janela de Properties foram exibidas. Até aqui , nada de novo.

 

 

Mas espere, dando uma olhada melhor na janela Solution Explorer podemos ver que além do formulário padrão foi criado o item My Project. Clicando no item temos as configurações do projeto conforme podemos ver na figura abaixo.

 

 

Não resisti e solicitei a exibição da ToolBox ,e, surpresa !! Uma barra de ferramentas finalmente com controles agrupados por categoria. Clique em uma categoria e os seus componentes estarão à vista. (Já notei que existem novos componentes como o DataGridView)

 

 

A esta altura resolvi verificar se o meu VS.NET 2003 estaria ainda funcionando. Abrir o VS.NET 2003 e estava tudo lá como dantes.

 

 

Voltando a aplicação, abri a categoria Common Controls, e os velhos componentes: Label, Button, TextBox, ListBox, ListView, ComboBox, PictureBox, TreeView, ProgressBar, para citar só os mais usados, estavam todos lá em ordem alfabética.

 

Inclui um controle Button e ao incluir um componente TextBox notei outra novidade: as SnapLines.

As SnapLines são linhas que surgem quando você arrasta um controle em um formulário. Elas são exibidas para funcionar como guias para alinhamento dos controles. Se já era fácil criar formulários ficou mais fácil ainda...


Ao arrastar o controle TextBox para o formulário, percebi que ele apresenta uma pequena seta no canto superior direito. Clique na seta e... surpresa !!! Apareceram as SmartTags.

 

As SmartTags estão presente em quase todos os controles e apresentam opções de métodos  e propriedades dos mesmos que podem ser usadas.

Notou a aparência estilo Windows XP dos controles |||||


Os Componentes da categoria Common Controls

 

 

Criando Menus Incrementados com MenuStrip
 



Criar menus agora ficou muito mais fácil : você pode incluir ícones, alterar a cor de fundo e a fonte, incluir componentes como TextBox e Combobox no menu. O controle MenuStrip permite todas estas funcionalidades:

 

 

 

 

 

 

 


                           MenuStrip

 

Lembra do controle MaskedTextBox ???

 

Pois ele voltou e melhorado... trazendo uma relação de sugestões para máscaras que você pode definir...

 

 

Criando layout através de tabelas com o TableLayoutPanel

 

Se você já criou algum site sabe a importância das tabelas. O Controle TableLayoutPanel permite a criação de formulários mais organizados com muito facilidade.

 

 

Para não me alongar demais vou falar agora de um dos muitos recursos interessantes e que aumentam muito a produtividade do programador que é o My Namespace.

 

Imagine-se  :

Pode se beliscar, você não esta sonhando... Com o namespace My tudo isto esta a seu alcance. Como ?

 

As classes do namespace My fornecem atalhos para as funcionalidades mais comumente usadas no .NET Framework. Além disto ele inclui funcionalidades que antes eram difíceis de encontrar, complicadas de usar ou simplesmente não estavam disponíveis sem você ter que apelar para as chamadas, com código não gerenciado, às APIs.

 

O Namespace My inclui as seguintes classes e cada uma delas inclui um número determinado de membros :

 

  • Application
  • Computer
  • Forms
  • Resources
  • Settings
  • User

 

Abaixo um pequeno resumo de cada uma dos objetos disponíveis:

 

Objeto Descrição
My.Application Permite o acesso a informação sobre a aplicação e seus serviços.
My.Computer Permite o acesso ao computador host e seus recursos e serviços.
My.Forms Permite o acesso a todos os formulário do projeto atual.
My.Log Permite o acesso ao log da aplicação
My.Request Permite o acesso a requisição web atual
My.Resources Permite o acesso aos recursos
My.Response Permite o acesso a resposta atual da web.
My.Settings Permite o acesso a configurações a nível de aplicação e usuário.
My.User Permite o acesso ao contexto de segurança do usuário logado.
My.WebServices Permite o acesso aos Web Services XML referenciados pelo projeto atual.

 

Agora vamos aos exemplos:

 

Como exemplo, cliquei no botão de comando - Button1 - e no evento Click digitei a palavra My seguida de um ponto: My. As figuras acima mostram como ficou fácil localizar recursos.

 

No exemplo, se desejamos tocar um arquivo de som com caminho e nome informado na caixa de texto TextBox1 teríamos o código :

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

     My.Computer.Audio.Play(TextBox1.Text)

End Sub

 

Informei um nome de arquivo inexistente de propósito e o VB 2005 disparou uma exceção exibindo uma janela com as possíveis causas e ajuda para contornar o problema.

 

 


Outro recurso interessante são as dicas para erro de sintaxe enquanto você esta digitando o código.

Ao lado eu estou usando um laço for/next mas não fechei o laço. A linha é imediatamente sublinha e um ícone de exclamação vermelho aparece no fim da linha. Basta clicar no ícone para qaue a dica seja exibida indicando o que esta errado.

 

È muita novidade para eu dar conta em apenas um artigo, por isso prometo continuar mostrando as novidades do VB 2005 no próximo artigo.

 

Mas vejamos mas alguns recursos do namespace My:

 

a-) Se desejar tocar um som do sistema basta usar:   My.Computer.Audio.PlaySystemSound(Media.SystemSounds.Asterisk)

 

b-) Precisando dar um ping em uma máquina ? É simples, primeiro verificamos se a rede esta disponível, em seguida damos o ping na URL desejada, e, em caso positivo exibimos a mensagem.
      

     If My.Computer.Network.IsAvailable Then
            Try
                If My.Computer.Network.Ping("Http://www.macoratti.net") Then
                    MsgBox(" O site Macoratti.net esta ativo !")
                Else
                    MsgBox("O site Macoratti.net esta forma do ar")
                End If
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        Else
            MsgBox(" a rede não esta disponível")
        End If

 

 

ou ainda fazer um download , assim :

 

If My.Computer.Network.IsAvailable Then     
    My.Computer.Network.DownloadFile( "http://www.macoratti.com/log.txt", "c:\archives\serverlog.txt")
End If


c-) Quer criar um log para auditoria e segurança do seu sistema ? Use o My.Application.Log:

 

Private Sub MyApplication_UnhandledException(ByVal sender As Object, ByVal e As UnhandledExceptionEventArgs) _
        Handles Me.UnhandledException

    My.Application.Log.WriteException(e, TraceEventType.Critical, "Ocorreu um erro não tratado na aplicação.")

End Sub

 

d-) A classe My.User fornece informação sobre o usuário atual, incluindo o nome e a propriedade IsInRole. Abaixo um exemplo para exibir informações sobre o usuário(Nome) atual e verificar se o usuário é o administrador da máquina :

 

      If My.User.IsAuthenticated Then
            MsgBox("Usuário autenticado !")
            If My.User.IsInRole("Administrators") Then
                MsgBox(My.User.Name & " é o administrador do sistema")
            Else
                MsgBox(My.User.Name & " Não é o administrador do sistema")
            End If
        Else
            MsgBox("Usuário Não autenticado !")
        End If

 

e-) Podemos usar o namespace My para criar uma instância de um formulário ou referenciar um Web Service no projeto sem ter que criar uma instância da classe. Os objetos My.Forms e My.WebServices fornecem  acesso aos formulários , fonte de dados, e Web Services XML usados pela sua aplicação. Sem ter que declarar e instanciar classes. A seguir um exemplo de como podemos exibir um formulário comparado com versões anteriores do VB:

 

Antes VB 2005
Dim testForm As New Form1
testForm.Show
My.Forms.Form1.Show

 

f-) O objeto My.Resource fornece acesso aos recursos da aplicação e permite retornar dinamicamente os recursos da aplicação. Você pode acessar o os arquivos do recurso da cultura especifica da aplicação. O código a seguir define o ícone do formulário como o ícone chamado TextIcone armazenado no arquivo de recurso da mesma:

Me.Icon = My.Resources.TesteIcone

g-)  My.Application retorna dados associados somente com a aplicação ou assembly atual. Abaixo um exemplo retorna as informações do nome do assembly, caminho do diretório e cultura da aplicação exibindo-as em um ListBox

        ListBox1.Items.Add("Nome do Assembly : " & My.Application.Info.AssemblyName)
        ListBox1.Items.Add("Caminho do diretório : " & My.Application.Info.DirectoryPath)
        ListBox1.Items.Add("Cultura : " & My.Application.Culture.ToString())

 

Gostou ? Quer cursos grátis sobre o VB 2005 ? Então acesse o link abaixo :

Além destes recursos nos próximos artigos pretendo falar um pouco sobre os seguintes tópicos:

Parece que 2006 vai ser um ano de novidades , e que novidades...

Um feliz 2006 para todos os meus leitores, que o ano vindouro traga realização profissional, paz e felicidade...

 


José Carlos Macoratti