MONO is an open community platform; that brings the power of C# specification defined by ECMA and Microsoft to all POSIX platforms as well as Windows. When it was released, it only allowed for Console and Web application development. Since GDI based forms implementation would not work on other Operating systems, Desktop application development was not present in earlier versions of MONO. However, recently the community created GTK# (GUI Took Kit Sharp) which is a C# implementation of GTK+ (in C++). So now, MONO developers are equally capable of creating Console, Desktop and Client-Server applications.
Nowadays MONO is also capable of creating application that work on Android & iPhone; something .NET framework will never support. Also, MONO removes the limitation of .NET of being a closed system. I can implement my own modules to the core framework or the application server like Apache. I can even make use of existing Apache framework modules for my Client/Server application. So the question is what’s wrong with this platform? Mono is relatively new. It is still not a credible platform to work on. There are number of situations where you will find your console application hung for no reason. Your ASP.NET page breaks and your code is not the culprit; it’s the framework which is at fault. It is an open source initiative from Novell Inc and has not completely matured yet.
However, it should be pointed out that MONO is”surprisingly fast”. If you try to compare a Client-Server application developed in JAVA & an exact implementation in C# on MONO you will be surprised to find that MONO is fast. However until the time it becomes more mature & stable, it is strictly recommended not to develop application in C# on MONO.