VB.NET Programming on Ubuntu – A Comprehensive Guide

cmonoprogramming

I have just started at sixth form college, and I'm going to take a Computing A-level. I have been informed all the programming in the first year is in VB.NET on Windows (I believe you are allowed more freedom in the second year…)

I do have a Windows XP partition and you can download Visual Basic Express Edition for free, however I would like to know to what extent am I likely to be able to use Ubuntu (Mono or anything else) for my studies? Can anyone give me any pointers of where to start?

Realistically if this is to work I need to be able to use the same files/projects/whatever on both Ubuntu and Windows – so I can work from Windows machines at college, and more importantly so teachers can look at and mark my work! (I don't really want to make a point of asking my teacher about my Ubuntu use, I'd prefer to blend in and be a normal student…)

Best Answer

Use MonoDevelop but beware of the quirks of X-platform .NET development

First, install mono by either finding it in the Software Centre or typing

sudo apt-get install monodevelop mono-vbnc

MonoDevelop is pretty equivalent to Visual Studio Express the major differences being:

  • MonoDevelop doesn't support WPF (Windows Presentation Foundation) but that shouldn't matter much as Microsoft has plans to kill WPF with the arrival of Windows 8.

  • Verify that the correct .NET framework target is being used. After creating a solution, right click on the project and goto Options->Build->General. Not much different from targeting a specific version of .NET on Windows.

Aside from those issues, I haven't really found anything missing that I can't live without.

The only other issue (non mono related) that may come back to bite you is the classic line ending problem. *nix still uses LF and Windows still uses CRLF for line endings so, when you transfer your source files back and fourth between Windows/*nix. AFIAK, MonoDevelop saves source files in UTF-8 by default but VS saves source files in Windows ASCII (with windows-1252 latin ASCII with windows specific line endings). If you receive source files that were created using Visual Studio you may need to convert the format to get it to work in *nix.

As you can see, x-platform .NET development can be a little challenging at first but IMHO, it's worth it. I like MonoDevelop's non-cluttered interface (the visual effects in VS just get in the way most of the time), it loads in a fraction of the time that VS does (useful if you don't typically leave your IDE open all the time), it takes up a fraction of the space with no extra unnecessary addons (VS is really obnoxious about this).

Installing it was easy as sudo apt-get install monodevelop. Also, popular tools like NUnit (for unit testing) have been ported over to and work flawlessly in *nix. The Windows version of MonoDevelop kinda sucks (or at least it did last time I tried it).

Update:

To get VB code to compile you'll also need to install the VB compiler module:

sudo apt-get install mono-vbnc

I also updated this answer to remove some of the problems that are no longer relevant.

Related Question