The above statement makes it clear that you do not really follow Mono closely and your opinions are based on rumors rather than real life experience.
Let me explain:
I have not seen you post ever on our Mono mailing lists requesting the specific feature that is keeping your code from running on Mono.
I am having a hard time coming up with a feature of .NET 1.1 that you need to have on Mono (the stuff we do not implement does not make any sense on Linux, like support for WMI).
Mono implements quite happily all the core functionality up to .NET 3.5 with gaps on Windows Workflow (not there), WCF (Partial) and WPF (we are not going to implement it).
People that are adopting Mono (many of them) use our Migration Analysis tool to identify the spots that require rewriting (to remove Windows dependencies, and provide the Linux equivalent for example) and get moving on with their life.
From the statistics that we have colleced with the Moma Tool 1,592 application work out of the box; 1,823 require between 1 and 3 source code changes another 1,200 require from 4 to 10 changes. Now if you are even a remotely competent programmer, yous should be able to find work around for up to 10 changes in say, an afternoon?
The rest are more complicated, the next 3,000 or so reports will likely take from a week worth of work to a full scale reimplementation effort (the ones that have up to say 300 P/Invoke calls).
As for innovation in Mono: nothing anywhere says that we should stop at working on compatibility with .NET. We created Mono to create better applications for Linux, which is why we created bindings to Gtk# as well as some other couple hundred libraries: because we want to improve our ecosystem.
Perhaps they just want to be able to program in a decent statically-typed language with a GC and a JIT compiler and Gtk bindings?
Mono needs to get a direction and follow it. At the moment, they're heading in a bunch of directions at once. If they don't want to be "A .NET Runtime That Works Anywhere", then they should say as much and stand aside so that somebody else can do it.
Uh, people are giving their time to create what they need / want. Welcome to open source, right? I don't think it's possible to "hijack" an open source project. As said above: patches are probably welcome.
In the end it just sounds like you want free support from a company like Microsoft/Novell without paying a dollar.
It has been quite good in my experience, obviously if you are doing windows specific things like registry or security it won't work, but that is to be expected.
This could possibly be fixed by now, but last I tried, the C# sample code to interact with Amazon S3 didn't run under Mono.
It is certainly possible to use SSL with mono, many people do it.
Perhaps a little Googling is in order?
Stop confusing your desires ("Simply make my C# code work there, and I'll be happy") with the only sane direction for them to go.
I certainly wouldn't thank them for slavishly copying .net 1.1 or any such thing. If you want that so badly, feel free to submit patches, I'm sure they'll gladly accept.
We're historically a microsoft shop but recently (in the last 18 months or so) have started running linux backend servers for many of our services running on EC2. If I wanted to be buzzword compliant I'm sure I could come up with some string of cloud nonsense to describe it.
We have something that looks kinda like Hadoop crossed with an app server that we can deploy components in.
I'd be happier with a solid final version of Mono.Simd rather than slavishly filling in any missing parts of older .net.
That's the stuff I'd expect to be there and it's not.
And if you do not know what is missing, download our tool, and it will do the work for you:
www.mono-project.com/Moma
After a few weeks running into issues like that, I just quietly exited myself. Windows EC2 boxes are only 25% more expensive than Linux ones, and they run .NET natively and correctly, so my particular problem is solved.
If it's you who are developing, it's easy to code around the holes, but if you need a closed-source application designed to run on .NET (and I don't know why people want these things, but they do) you have little to no choice but going Microsoft.
And that's a dealbreaker for Mono more often than you imagine.
Guys, you're killing me.
I really want to embrace Mono, but there is this fundamental disconnect between what the Mono team think they are building and what the real world needs them to be building.
Mono team, your ONLY goal should be to provide a 100% compatible .NET implementation that runs on Linux. That's it. Simply make my C# code work there, and I'll be happy.
Unfortunately, the Mono team is trying to do something else entirely. They're adding new language features and trying to extend it into their own thing. And nobody outside the Mono team can understand even for a minute why they would want to do that.
So here we are, 4 years into this project, and it still has pieces of .NET 1.1 that are not implemented. That means we can't use it yet. And while we're waiting patiently for a usable framework, the Mono team is off pursuing shiny .NET 3.5 functionality and inventing new functionality of their own. I mean sure, it sounds like fun and all, but us developers are still out in the cold waiting for a framework that the Mono team doesn't seem inclined to actually finish.
So guys, please, I'm begging you. Quit adding new stuff. Go back and finish what you started. Get .NET working on Linux like you promised. We'll all thank you for it!