I want to add my humble opinion too.
First, it is a somewhat peculiar comparison that one, of PHP with .NET.The first, is a server scripting language and the second is a whole platform which contains desktop,enterprise and web application development. If someone wants to make a fair comparison between platforms, why not compare .NET to the giant named Java technologies?I do not underestimate .NET.It is a fact that it is more user friendly (though this is debatable), but what about its servers?Java has JBoss,Tomcat,OpenLaszlo(for perfect presentations) and many many others.What about .NET?When did C#, that many people think of as an innovation, came out?After Java was already well established and mature, a more or less imitation of Java.What is VB?A language that came out of a "spaghetti code" language like "Basic".What is .NET? A proprietary platform, which adds everyday support for open source technologies. So, I won't disagree that many small to enterprise applications have been developed in .NET and they are really excellent, but open source technologies have created equally excellent solutions in all aspects and not only for Windows.There are many hardware - software platforms out there, so this is more important: cross - platform projects. And the best of all is that open source is free as in free speech and in free beer.Everyone can contribute his efforts to do it better and more innovative.What about MS technologies?Apache server is, as we all know, open source.It has enjoyed a global acceptance for years now, and this has deep reasons.Open source community has made it fast, secure and reliable.So, one way or another, open source leads the market. What about Linux?It gains more and more acceptance, in a day by day basis, and has become user friendly, most distros have up-to-date hardware drivers and highly reliable.As for PHP itself, has already evolved so much, that has become the usual word when we talk about web development.So, the right question is: learn PHP for web development (although you can develop desktop applications too) or ASP.NET?Or if you want to take development some steps further, PHP,C++,Java,Apache,Java servers,Javascript,Ajax,Ruby On Rails,open source PHP,Java,Javascript,Ajax,Rails and so many other frameworks or .NET?That is a fair comparison.If you try to count how many different platforms exist and if you think that even for Windows, open source has a multitude of solutions, I think that the answer is quite obvious.OK, .NET is .NET and no one can underestimate it, it is a complete and very rich platform for Windows, it's worth while but for open source technologies Windows is just a paradigm of a platform, to develop whatever you need, at no cost and last but not least:What will happen when Windows lose its dominance for the average user?Nature teaches us that union is power.This is the cornerstone of open source.