Carlos recently listed some reasons why he thinks .Net is collapsing. I'd like to add my own inaccurate research.
What I did was to go to Amazon and look at the sales ranking of Java and C# books. It turns out that you can't search that easily for "C#" at Amazon, but I used "C", ".Net" and did my best. I excluded books purely about ASP, JSP and Struts (there are lots of well selling Struts books). By being nice I managed to find 8 C# books with a sales ranking of 10,000 or lower. I found 32 Java books. You would therefore assume that there are 4 times more Java books being sold than C# books, but the quota is probably much higher, since Java books has in general much better sales ranking within that span under 10,000.
So, what can Microsoft do to stop this bleeding? It would not surprise me much if they soon will start give away Visual Studio for free. I can't see really what else they can do. A serious consequence is that authors aren't likely to continue writing books about C#, since they can't live off a sales ranking of 100,000+. I visited the computer bookstore on Lawrence Expressway in Silicon Valley the other day, and the number of C#/.Net books on display was staggering. Apparently they don't sell well, so I think the publishers are going to think twice before trying another book in this area.