Some people asked me what are the best tools to develop on Mono and .Net, or at least which ones do I use.
For those who develop on MS .Net, you must know that the only OS you have is MS Windows. SharpDevelop is an IDE for Windows which is open source and is pretty nice. I think that you don’t need MS Visual Studio although it is one of the best IDE I’ve ever seen. SharpDevelop can be useful also to develop on Mono but I don’t think that it is a good idea.
If you want to port your .Net application to Mono on POSIX platforms (let’s say Linux), you can use MoMa to check how portable your code is. That tool will tell you if your code is well supported on Mono. It could not be portable because you are using not ECMA standard code but Microsoft Libraries or becuase the functionality is not implemented yet. If it is 100% portable you would not have problems to run it on Mono without effort.
To port your existing Mono application to .Net is easier since all the code is standard or multiplatform, as for example the Gtk+ library, which run on MS Windows. You can use the .Net runtime to run your mono application without problems, or you can install Mono on Windows (the is a nice installer to do so).
To develop on Mono and Linux, first of all you must choose a distribution. I wrote a post on distributions and Mono some time ago so you can search and read it. Then my advise is to use the last version of MonoDevelop IDE, which is the Mono version of SharpDevelop and is being improved everyday. The GUI designer for desktop applications using Gtk# is the best I’ve ever seen, even better than MS Visual Studio or NetBeans. However, you don’t have support for Web controls desing at the moment.
If you use CastleProject for your projects, you can develop on .Net or Mono, using all the IDEs above, just by adding the references to the libraries. You can use IIS or Apache + mod_mono as servers.
Is quite simple. Please if you have any questions post a comment.