Ich habe lange mit PHP gearbeitet und seitdem ich das erste mal mit ASP.NET in Berührung gekommen bin will ich nicht mehr mit PHP arbeiten. Dafür gibts mehrere Gründe:
1.) Debugger: PHP zu debuggen ist nahezu ein Ding der Unmöglichkeit (wobei ich mir habe sagen lassen, dass der Debugger im RadPHP tatsächlich der erste ist, der einigermassen taugt).
2.) Vorhandene Libraries: Das .NET Framework ist mächtig. Für alles, was man in PHP in mühevoller Kleinarbeit selber schreiben muss, gibt es allein im .NET Framework schon fertige Klassen. Klassische Aufgaben sind hier z.B. Tracing und Logging, die man mit einem sauberen Einzeiler hinbekommt.
3.) 3rd Party support: Du bekommst keine RadPHP Komponenten. Für ASP.NET gibt es u.A. Telerik, DevExpress, Infragistics, die man verwenden kann. Versuch mal, ein gutes AJAX-Fähiges Treeview-Control in PHP zu schreiben.
4.) Performance: PHP ist immernoch interpretiert, .NET ist ein fertiges Kompilat das ausgeführt wird. Zum anderen kann der .NET Jitter das noch auf die Platform optimieren.
5.) Plattformunabhängig: Linux, Apache, mod_mono, PostgreSQL ist ein sehr guter alternativer Stack zum klassischen LAMP
Oder andersrum: PHP auf Windows ist ekelhaft (die meisten Libraries zur Bildgenerierung gehen z.B. nicht). ASP.NET auf Linux ist im Gegenzug ne ganz saubere Geschichte.
Imho ist ASP.NET Plattformunabhängiger als PHP.