ahhh...why are these types of discussions so alluring?
I don't have ANY experience with ASP.NET, but we do have a ASP.NET/C# developer in our office. He's also a php programmer, but his heart isn't in it.
From my discussions with him, I have concluded that it is a very capable platform.. And you should consider learning it if you work requires you to build significant web applications. It should be compared to java more so to php IMHO...
Here's why I will never use it. There is absolutely no choice in the microsoft web stack. Everyone of the "super" cool features are tightly coupled with other microsoft software products. This strategy complete turns me off.
I code in php and java. Both give me complete freedom to use the best tools for the job. I can choose Spring for my framework, Hibernate for my persistance layer, deploy to Jboss or Websphere running on linux or AIX or solaris....even windows if i'm off my rocker...There are loads of vendors that supply libraries so i can shop for i like the most and for the best deal. That type of freedom is important to me, and I know i can deploy my product on any infrastructure that supports php or a JVM. I don't have to tell my clients...you're going to have to run Windows with IIS. I've always thought of it as a selling feature when you're dealing with clients that understand technology.
I can't say...ya know i could do some really cool stuff if you guys ported all of you data over to MS SQL Server...oh yeah. that AIX machine....that will have to be replaced by an INTEL machine running windows 2003. hmmm...your cold fusion website...i can't work with that either...we'll have to rebuild it in ASP.NET. oh...you web servers run on red hat? well...we need windows licences for all those too..
In fact in my discussions with clients and their IT staff, I think more companies in the US are standardizing on J2EE than .NET. Especially those that do business on top of DB2 and/or Oracle, and have already invested heavily in expensive software that runs or major big iron. J2EE is a standard developed under the JCP (java community process). That's comforting to a business. No one company has them by the balls. The majority of them feel like .NET (or php) wasn't even an option. That's just my experience though...it's hardly scientific.
ON the filp side if you ask or ASP.NET developer this lack of choice is a feature of .NET. The java landscape was too overwhelming for him, which i totaly understand.
php is great. It's far from perfect, but it's our utility knife. There are quite a bit of large companies in the US hiring php developers. Yahoo! being the largest right off hand. My company has built several systems with php/mysql for large and midsize food companies and advertising agencies although major components are being moved to java in the upcoming releases.
php in large "enterprise" projects can get messy fast because it's so easy to do so. ASP.NET (from what i've heard) and java frameworks like struts and spring make it much easier for code maintenance to scale, which is extremely important as was pointed out. PHP sucks for this as one undiciplined developer can make future development next to impossible on a budget. There are several frameworks i have yet to try that may make this problem less significant such as Mojavi and Prado.
That's why ruby on rails is so interesting to me. It has the framework, and it's fast to develop in like php. Best of both worlds...maybe