For me the Apple platform has no appeal. It's market is too small and it has too many restrictions. So what we have is a few key players writing software for it and a whole lot of blank space wich nobody can fill.
Enter Microsoft. Anyone can develop anything on Windows. There are plenty of websites with documentation, plenty of developers willing to share their experiences, some guidance for Microsoft and plenty of 3rd party tools to help you along the way. The best
thing is; Microsoft is open for feedback. So when they start out to build something new, they release CTP's and betas. When they release a 1.0 into the community, they will gather the expierences from the field and point out a roadmap for 2.0.
You call it mediocre stuff. I call it developing with partners. Apple just dumps their software and runs.
I am a pretty hardcore .NET developer. I develop professionally with the platform and in my free time. Given that however, what you stated is pretty skewed. You can develop for the Mac natively using languages like python or ruby. Last time I checked,
Python is higher on the TIOBE index than even our precious C# (http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html). It is very widely used and well known. I am not saying that it is better than C#, just that it is a very viable language.
Learning to develop for the Mac is not difficult, at least not any more than .NET/Windows.
ASP.NET MVC imo is very important. The OP had some things blatantly wrong about the framework, but I don't have time to get into them specifically.