Если есть в задаче GUI, то mono нисколько не кроссплатформенное. Там делается упор на Gtk# и Cocoa#.
Лично я бы выбирал между C++ (Qt) и Java (Swing).
Б>цель: выбор среды разработки и языка программирования
Б>задача: определить целесообразность их использования
Б>требования: кросплатформенность, и желательно бесплатно
Подойдет обычный текстовый редактор. Например, мне нравится jEdit. Система сборки — msbuild. Но при желании можно make или nant. Но msbuild нравится больше. В каком-то виде mono реализует msbuild.
Б>2) взгляд пал на .net FrameWork и с#. какую среду разработки под него выбрать? т.к. кросплатформенность зависит от развития mono(т.к. .NET далеко впереди), то использовать MonoDevelop, а не Visual studio и .NET чтобы не накодить того, что нет ещё в моно. Eclipse здесь не в теме?
Никто не обещал, что WPF и WCF будут в mono. Возможно, что никогда не будут. А WinForms там так себе реализован...
Б>3) моно достиг уже приемлимого уровня чтобы делать серьёзные проекты на нём? на сколько я понял, то сейчас mono уже достиг уровня .net 2.0 и сейчас движется к 3.5. из роадмэпа на сайте я не понял какая версия моно будет соответствоать .net 3.5 ?
Основной GUI тулкит для mono — это Gtk#. Увы.
Б>4) Много ли существует GUI кросплатформенных контролов ? например DevExpress на сколько я понял, он будет работать только под виндовс..
Можно любую. Это никак не связано с программированием. В линуксе большой выбор.
Б>5) какую систему групповой разработки выбрать для этого всего? (SVN etc.)
Кроссплатформенным является сам язык C#. Но библиотеки — нет. Хотя у меня бывало и так, что mono'вский компилятор генерил код с ошибками.
Б>в заключении прошу полезные ссылки по этой теме, касающиеся .net, mono, кросплатформенных контролов и вообще про кросплатформенность.
Перекомпилировать не надо. Но библиотеки нужны, а их может и не быть вовсе. Особенно, если это GUI контролы, которые используют внутри себя Win32.
Б>и вообще на сколько я понял, то моно позволяет запускать exe в в линуксе, а так же можно сразу под линукс откомпилировать??