Criando Add-ins Convertendo código C# (csharp) em Visual Basic.NET

Veremos neste artigo a criação de Add-ins para o IDE do Visual Studio.

Clique aqui para ler todos os artigos desta edição

 

Criando Add-ins

Convertendo código C# em Visual Basic.NET

Este artigo discute

Este artigo usa as seguintes tecnologias

·Criação de Add-ins para o IDE do Visual Studio;

·Conversão de código C# para Visual Basic.NET;

·Usando testes unitários;

·Adicionando itens de menu no Visual Studio.

·Visual Studio 2005, Visual Basic .NET;

Chapéu: Visual Studio

Download: PasteAs.exe

 

Scott Swigart

A funcionalidade Paste As (“Colar como” ou “Colar especial”) tipo a existente em aplicações Microsoft Word, tornou-se indispensável para mim. Freqüentemente, copio algo da Web e quero colar em um documento sem a formatação HTML. A opção Paste As é a mais indicada para essa tarefa.

Um dia desses, procurando um exemplo de código na Web, ocorreu-me que o Paste As também seria útil para o Visual Studio. Porém, em vez de simplesmente converter o texto formatado, poderíamos converter a linguagem do código de exemplo. É bastante comum codificarmos em C# e procurarmos um exemplo Visual Basic que faça exatamente o que desejamos (ou vice-versa). Para utilizarmos tal código, precisamos copiar o exemplo para a área de transferência, ir para um dos muitos bons sites da Web para conversão de código, colar o código, convertê-lo, copiar o novo código e finalmente colá-lo no Visual Studio.

Quando encontro um exemplo de código C# em um site da Web, o que realmente gostaria seria eliminar esses passos intermediários na conversão e apenas “colar” o código já convertido, direto no editor. Todos os pré-requisitos e funcionalidades necessárias para fazer esse trabalho já existem; apenas precisamos de algum código para juntá-las.

Criando o Add-in

Existem vários conversores de código disponíveis e que podem ser acessados a partir de um browser, porém preferi projetar o Paste As Visual Basic como um Add-in para o IDE, de forma que o usuário possa escolher o conversor que deseja utilizar. Quando estivermos trabalhando com soluções Web, não temos nenhuma garantia de que um determinado site permanecerá operacional indefinidamente, ou que não mudará sua implementação de modo a quebrar nosso código. Se utilizarmos mais de um serviço de conversão, tornamos mais provável a existência de um serviço válido e disponível para executar a conversão. Por outro lado, conversores de código diferentes utilizam algoritmos diferentes e podem trabalhar um melhor que o outro dependendo da situação. Finalmente, quis torná-lo fácil de usar como um Add-in, para suportar conversores adicionais no futuro.

Para abstrair a implementação do conversor do resto do código, fiz a interface IConvertCode. Isso descreve a operação de conversão em geral, mas deixa a implementação específica para outras classes. A interface IConvertCode é bem simples:

 

Public Interface IConvertCode

Function Convert(ByVal csCode As String) As String

ReadOnly Property ConverterName() As String

End Interface

 

O método Convert usa código C# como um argumento string e retorna código Visual Basic como um string. A propriedade ConverterName retorna o nome do conversor, de forma que o usuário possa escolher aquele que gostaria de utilizar.

A primeira implementação dessa interface utiliza o Web Service de conversão C# para VB, de Kamal Patel, atualmente disponível em " [...] continue lendo...

Artigos relacionados