Revista MSDN Magazine Edição 8
Clique aqui para ler todos os artigos desta edição

Habilitando as tecnologias .NET Framework com o My

Uma certa agitação cerca o Visual Basic 2005, com seu ambiente de desenvolvimento revitalizado e seu novo conjunto de recursos, projetados para alavancar a produtividade do desenvolvedor. Recursos como a implantação do Click Once, fragmentos de código, diversos aprimoramentos de linguagem e Edit-And-Continue dão aos desenvolvedores muitos motivos para tanta excitação! Um dos pilares da produtividade do Visual Basic 2005 é o My: uma inclusão na linguagem projetada para ajudar os desenvolvedores a navegar mais facilmente no framework e explorar as novidades tecnológicas de maneira mais eficaz.

O que é o My?

O My permite que os usuários localizem e ativem mais facilmente a funcionalidade do .NET Framework. Sua hierarquia intuitiva oferece um mecanismo que pode ser usado pelos desenvolvedores para navegar programaticamente no .NET Framework, identificar as classes necessárias para executar tarefas comuns e usar essas classes de forma eficiente. Por exemplo, suponha que você precise escrever uma mensagem de log em um arquivo. Você sabe que o suporte a logging de que necessita está disponível no .NET Framework, mas quais classes você deve usar? Como você deve usá-la? Como elas podem ser configuradas para escrever em um arquivo? Com o My, o trabalho extra de descobrir a classe correta para o trabalho e ativá-la para que faça a tarefa é tão fácil quanto esta linha:


        My.Application.Log.WriteEntry("The system is starting")
        

que fornece um único ponto de acesso aos recursos de logging do System.Diagnostics que são pré-configurados para escrever um arquivo.

O que contém o My?

As classes do My podem se divididas em duas áreas gerais: classes para auxiliar a navegação no .NET Framework e classes que fornecem acesso a itens do projeto VB atual. A primeira categoria é composta de My.Application, My.Computer e My.User; a última consiste em My.Resources, My.Settings, My.Forms e My.WebServices.

My.Application

My.Application é um agrupamento lógico de funcionalidades baseadas em tarefas relacionadas ao aplicativo atual. Informações comuns sobre o arquivo, tais como copyright, descrição, nome, coleção de forms abertos etc. são prontamente acessíveis por meio do My.Application.

My.Application também inclui eventos no nível do aplicativo, que permitem que a seqüência de execução do aplicativo seja orientada a evento. Por exemplo, talvez você precise criar algumas conexões de banco de dados quando o aplicativo for iniciado. Ou, talvez você precise fechar essas conexões quando o aplicativo for encerrado. O que você precisará fazer quando ocorrer uma exceção não tratada em um código? O modelo de evento My.Application habilita uma estrutura de código que pode lidar de forma efetiva com essas questões.


        Private Sub MyApplication_Shutdown(_

        ByVal sender As Object, _

        ByVal e As System.EventArgs) _

        Handles Me.Shutdown

        Me.DataLayer.CloseConnections()

        End Sub



        Private Sub MyApplication_Startup(_

        ByVal sender As Object, _

        ByVal e As System.Windows.Forms.StartupEventArgs)_

        Handles Me.Startup

        Me.DataLayer.OpenConnections()

        End Sub



        Private Sub MyApplication_UnhandledException( _

        ByVal sender As Object, _

        ByVal e As System.Windows.Forms.UnhandledExceptionEventArgs) _

        Handles Me.UnhandledException

        My.Application.Log.WriteException(e.Exception, True)

        End Sub
        

My.Computer

Quanto de memória virtual está disponível neste computador? Como posso enviar um documento para uma impressora conectada a este computador? Como faço para copiar um arquivo no sistema de arquivos? O .NET Framework oferece várias classes que respondem a essas questões, mas elas residem em diferentes namespaces e podem ser difíceis de localizar. Com o My, os pontos de acesso à funcionalidade relacionada ao computador estão localizados centralmente no My.Computer. Por exemplo, copiar um arquivo com uma caixa de diálogo do shell do Windows ® mostrando uma barra de progresso é tão fácil quanto:


        My.Computer.FileSystem.CopyFile( “c:\picture.gif”,

        SpecialDirectories.MyDocuments, true, true)
        

My.User

O .NET Framework oferece uma infra-estrutura extremamente avançada e extensível para manter as informações sobre o usuário conectado no momento. Mas como essa infra-estrutura pode ser configurada para obter o nome do usuário Windows®? Como usar a implementação de autenticação e autorização personalizadas? My.User não apenas fornece acesso a essa infra-estrutura em uma única linha de código como também faz o trabalho necessário para configurar as classes System.Security.Principal para que retornem, por padrão, as informações relacionadas ao usuário Windows®. E, caso seja implementado um mecanismo de autorização e autenticação personalizadas, My.User fornecerá pontos de acesso ao Principal do thread atual, permitindo que a implementação personalizada seja facilmente ativada.

My.Resources e My.Forms

O Visual Basic 2005 oferece uma melhoria dramática para o gerenciamento de configurações e recursos do aplicativo. O novo Resource Editor (Figura 1) permite que recursos de vários tipos — strings, imagens, ícones etc — sejam gerenciados facilmente em tempo de design. No runtime, os usuários VB podem usar My.Resources para acessar qualquer recurso adicionado ao projeto como propriedades strongly-typed.

Managed Resource Editor
Figura 1. Managed Resource Editor

Por exemplo, quando as imagens acima são adicionadas ao projeto por meio do Resource Editor, My.Resources é automaticamente atualizado de modo a incluir uma propriedade strongly-typed para a imagem adicionada, permitindo que cada recurso seja acessado com uma única linha de código:


        My.Forms.Form1.BackgroundImage = My.Resources.Sunset
        

O fragmento de código acima também exemplifica a coleção de forms do My. My.Forms fornece uma coleção de instâncias para todos os Forms no projeto atual.

My.Settings

Da mesma forma, o Settings Designer (Figura 2) permite gerenciar em tempo de design vários tipos de configurações de aplicativo. No exemplo abaixo, adicionei uma configuração de aplicativo para restaurar a URL da página de suporte ao aplicativo. Acessar este código é simples como isto:


        Me.Homepage = My.Settings.SupportAddress
        
Settings Designer
Figura 2. Settings Designer

Conclusão

O My do Visual Basic 2005 aumenta a facilidade com a qual os desenvolvedores podem descobrir e ativar as classes .NET Framework existentes. Juntamente com a produtividade de outros recursos como ClickOnce, Code Snippets, Edit-And-Continue, o Visual Basic 2005 é uma das versões mais esperadas do Visual Basic .NET. Separe um tempo para experimentar o My e conheça um nível de produtividade totalmente novo!