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.
I can give you the perspective of someone who has developed an open source application found in Ubuntu (widemargin) using C# and Mono. Mono is very mature and its core libraries are complete.
For developing I would recommend MonoDevelop which is a free and open source IDE like Visual Studio.
There are a few Microsoft libraries that don't work on Ubuntu. These are mainly GUI libraries (winforms works but not well, WPF does not work at all). This is by design. These are native windows GUI libraries and so would look horrible on Ubuntu anyway.
If you are developing a desktop app I would recommend that you use Gtk# which is C# bindings to the native GTK+ framework on Ubuntu. This will give you a completely native looking application on Ubuntu.
If you are interested in cross platform applications then C# is the only language you can use on Windows, Linux, OS X, iOS, Android and WP7. The Mono people recommend that you write a new GUI for each platform using bindings to Native APIs (like Gtk# on Ubuntu), and share the code for your back end. This means your application will look and feel native on each platform.
Learning C# will also allow you to:
- develop for the new PlayStation Suite, which is C# only,
- make games with unity3d (in game scripting is C#),
- make games like Bastion which use monogame,
- develop websites using ASP.net MVC (what this site runs on).
Best Answer
I just checked my installation of 13.04, and Mono is not installed.
To install Mono, this will install Mono Run-time, just press Ctrl+Alt+T on your keyboard to open Terminal. When it opens, run the command(s) below:
If mono Develop is what you're after, then
Mono focuses on compilers and run-time libraries and does not directly provide an IDE. MonoDevelop is a cross platform IDE mostly aimed at Mono/.NET developers. For more info see MonoDevelop, and Mono