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!