Solo per dare una base su quello su cui sto basando le mie risposte, ho fatto lo sviluppo PHP professionalmente per 6+ anni, ho giocato con ASP.NET MVC per circa 3-4 mesi, e ho ho fatto programmazione in C # per circa il tempo di programmazione PHP.
Per me è più un argomento PHP vs C # che uno PHP vs ASP.NET.
Feature / Estensibilità
Penso che ASP.NET vinca qui e questo è più dovuto alla possibilità di usare un linguaggio come C #. C # è un linguaggio molto migliore di PHP con il supporto OO. Sono anche una persona che preferisce un linguaggio tipizzato staticamente (anche se si pensa con C # 4.0, credo che si possano fare variabili digitate dinamicamente). L'unica cosa che PHP aveva su C # per quanto riguarda la funzione di un linguaggio erano i parametri facoltativi, ma questa è un'altra cosa che è stata aggiunta in C # 4.0 (non sono sicuro di quanto funzioni bene, dato che non l'ho ancora provato).
Sicurezza
Probabilmente direi che è un lavaggio tra i due. Penso che entrambi abbiano funzionalità per aiutare con la sicurezza, ma in definitiva è compito del programmatore assicurarsi che la loro applicazione sia sicura.
Strutture
Bene, PHP sembra avere molti framework mainstream (CakePHP, Codeigniter, Symfony, Zend Framework) e molti altri framework più piccoli di ASP.NET. ASP.NET ha 2 framework principali di Microsoft, WebForms (un pezzo di merda totale) e ASP.NET MVC (il motivo per cui ho iniziato ad entrare nello sviluppo di ASP.NET). Mentre PHP ha più framework, trovo che il framework ASP.NET MVC 3 sia migliore di qualsiasi framework PHP.
Tempo di sviluppo medio
Penso che per i progetti più piccoli il tempo di sviluppo sia molto meglio in PHP, tuttavia, dato che il tuo progetto cresce di dimensioni, C # si adatta meglio a questo proposito.
Costo
Alcuni che dovrebbero essere allevati sono i costi. PHP hand down vince su questo fronte. Mentre è possibile eseguire ASP.NET su Mono in Linux, viene fornito con i propri problemi.
Se stai facendo un progetto di dimensioni medio-piccole e / o il costo è un fattore, PHP vince. Se stai facendo un progetto su larga scala, sceglierei ASP.NET w / C # & ASP.NET MVC.