Luckily, i see others 'defending' .NET here too. Cause just because it's from Microsoft 'it must be bad' is a very invalid statement. That it isn't portable is simply a troll too, that just depends on the libraries you use, very much like any other language. There's .NET, there's mono. If portability is a key, use mono (or make sure it compiles on mono), and you'r pretty much set.
I rejected .NET for long time too, just for the same invalid reasons, until i actually gave it a shot.. Let me state a few conclusions:
* The language itself is a beauty. Really. It's the best and most beautiful programming language i ever met. It's powerful, it has very nice language constructs, it has about everything a programmer could wish for - and more. From the beauty stance of view, C# is Claudia Shiffer whereas Java would be the average south european, Python the average german, Ruby the average american, pearl the average russian geek and c++ just a plain troll from the tundra.
* It is very portable. I developed some standalone specialiced servers. To deploy it on my linux server, i just copy the frikking binaries. No more. No less. It _just_ _works_. Yes, there are some details. 32 vs 64 bit, for example. Or platform-dependant assemblies. It is hardly an issue. Of course, integrating IE in your app would be windows only. Or take winforms, it is what it sais: forms for windows. Use GTK if you need cross-platform UI's, for example, as mono defaults too.
* It's versatile. From UI's, stand alone server apps, http integration (ASP). Actually, a lot of ASP solutions run on apache + mono. Stating that C# has only use for a few niches is simply false. Of course, take the right tool for the job, up to you to decide, but there's not much that could be excluded by definition.
Now, the cons:
* It's managed code, rendering it a bit slower than strictly needed. However, this has the advantage of easifying cross-platform binaries. The same as Java does. So, this con as a pre same time.
* Microsoft refrained from creating (and thus supporting) a cross platform implementation themselves. They rely on (cooperation with) the mono project for this. Having said they, MS clearly stated they embrace the mono project.
* Microsoft created it. The name alone blinds zealots. Please, spend a few weeks or months learning the language, then come back and say what you think.