Click here to Skip to main content
Click here to Skip to main content
Go to top

Code Convert Visual Studio Add-in for C# and VB.NET

, 20 Nov 2007
Rate this:
Please Sign up or sign in to vote.
Adds a convert from C# to VB.NET and from VB.NET to C# button to the tools menu

Introduction

This solution contains an add-in project for Visual Studio.

The add-in adds a button to the tools menu for converting VB.NET code from and to C#.

The solution also contains a set up project for the add-in.

Background

I created this project as part of my efforts to study add-in programming. I chose code conversion because I couldn't find one that enables conversion from C# to VB.NET and from VB.NET to C# easily enough.

The add-in uses an external service which can be found here.

Screenshot - ctovb.jpg

You can easily change the provider or use local code (if you have it - I couldn't find a good example for a local converter and that is why I used the external service).

Note: You must be connected to the Internet in order to use the add-in while it's using the external service.

Using the Code

This is the Exec method which runs whenever the user hits the button:

//
public void Exec(string commandName, vsCommandExecOption executeOption, 
		ref object varIn, ref object varOut, ref bool handled)
    {
        try
        {
            handled = false;
            if (executeOption == vsCommandExecOption.vsCommandExecOptionDoDefault)
            {
                if (commandName == "CodeConvert.Connect.CodeConvert")
                {
                    handled = true;
                    string url = 
		       "http://www.carlosag.net/Tools/CodeTranslator/Translate.ashx";
                    string parameters = String.Empty;
                    string remark = String.Empty;
                    string code = Clipboard.GetData(DataFormats.Text).ToString();
                    if (_applicationObject.ActiveDocument.Name.EndsWith("cs"))
                    {
                        remark = "//C# converted code, conversion by: 
                        	http://www.carlosag.net/Tools/CodeTranslator/ " + 
			                Environment.NewLine;
                        parameters = "Code=" + System.Web.HttpUtility.UrlEncode(code) + 
				"&Language=VB&DestinationLanguage=C#";
                    }
                    else if (_applicationObject.ActiveDocument.Name.EndsWith("vb"))
                    {
                        remark = "'VB.NET converted code, conversion by: 
			            http://www.carlosag.net/Tools/CodeTranslator/" + 
			            Environment.NewLine;
                        parameters = "Code=" + System.Web.HttpUtility.UrlEncode(code) + 
				"&Language=C#&DestinationLanguage=VB";
                    }
                    if (remark != String.Empty)
                    {
                        string result = HttpWebRequestHttpPost(url, parameters);
                        ((TextSelection)_applicationObject.ActiveDocument.Selection)
                               .Text = remark + result + Environment.NewLine; ;
                    }
                    else
                    {
                        MessageBox.Show
			("CodeConvert can be used for .vb or .cs files only");
                    }
                    return;
                }
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error:" + ex.Message);
            return;
        }    
    }
// 

The add-in knows what to convert to by the current file extension - so when you want to convert VB.NET to C#, you need to be in a *.cs file pasting VB.NET code and when trying to convert C# to VB.NET, you need to be in a *.vb file pasting C# code (pasting -> hitting the button with the original code in your clipboard).

Example

Screenshot - vb.jpg

Figure 1: Original VB.NET Code (Copy).

Screenshot - csbefore.jpg

Figure 2: Tools Menu.

Screenshot - csafter.jpg

Figure 3: C# code is pasted in the target file.

Enjoy!

History

  • 20th November, 2007: Initial post

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Doron Goldberg
Architect
Israel Israel
Working for the last 10 years as a developer / team leader.
 
Getting more and more into automated unit tests & architecture design.
 
Now days working with various Microsoft products - BizTalk, Share Point, MCMS and C# in general.
Follow on   Twitter

Comments and Discussions

 
AnswerHey Check out this add-in PinmembervCillusion4-Sep-14 19:04 
Generalsir can you Convert code to vb.net PinmemberRoome9998-Sep-09 16:00 
QuestionHow do I install? Pinmembergthune12-May-09 17:28 
QuestionHow do I install it? PinmemberMember 321339522-Jun-08 21:28 
AnswerRe: How do I install it? Pinmemberloid grey manuel25-Oct-10 19:58 
Generala good local source for convertor between c# to vb Pinmemberpita200020-Nov-07 7:26 
GeneralRe: a good local source for convertor between c# to vb PinmemberDoron Goldberg20-Nov-07 8:31 
GeneralCool! Pinmemberrippo20-Nov-07 5:30