HI,
also du bringst nan paar Sachen durcheinander.
.Net ist nur das Framework und keine eigenständige Sprache. Das Framework selber kannst du mit C#,C++,Vba(was gibts noch ? J# (Gibts das noch?

)) programmieren. Die Sprachen selber sind Betriebssystem unabhängig. Das Framework .Net wie gesagt mit mono auch.
Die anderen Sprachen wie Ruby, Python, C, C++, D und Java sind auch Betriebssystem unabhängig. Möchtest du aber eine klicki bunti GUI erstellen benötigst du Zusatzbibiliotheken (vergleichbar mit dem .Net Framework), so dass du ein Fenster erstellen kannst.
Da gibt es Betriebssyste unabhängig GTK+ (java,python,ruby,c++...) , QT (c#,ruby,python,c++...), wxWidgets (c++), Swing (java) ... Problem ist, dass das Bib. sind, die man nicht in ein paar Wochen drauf hat.
Zu .Net und Mono kann ich nichts sagen, aber für dein vorhanden bleibt dir dann Java mit z.B Swing übrig, da wirst du dann am schnellsten mit Erfolg "gekrönt" sein, wenn du was Betriebssystem unabhängiges programmieren möchtest