Просто чтобы дать представление о том, на чем я основываю свои ответы, я профессионально занимался разработкой PHP более 6 лет, я играл с ASP.NET MVC в течение последних 3-4 месяцев, и я занимался C # программирование примерно столько же, сколько программирование на PHP.
Для меня это больше аргумент PHP против C #, чем аргумент PHP против ASP.NET.
Возможность / расширяемость
Я думаю, что ASP.NET выигрывает здесь, и это больше из-за способности использовать язык как C #. C # - намного лучший язык, чем PHP, с поддержкой OO. Я также человек, который предпочитает статически типизированный язык (даже подумав, что в C # 4.0 я считаю, что вы можете создавать динамически типизированные переменные). Единственное, что у PHP было над C # в том, что касается языковой функции, это необязательные параметры, но это еще одна вещь, которая была добавлена в C # 4.0 (не уверен, насколько хорошо это работает, поскольку я еще не пробовал).
Безопасность
Я бы, наверное, сказал, что это стирка между ними. Я думаю, что у них обоих есть функциональность, чтобы помочь с безопасностью, но в конечном счете программист должен убедиться, что их приложение безопасно.
Фреймворки
Ну, похоже, в PHP гораздо больше базовых фреймворков (CakePHP, Codeigniter, Symfony, Zend Framework) и множество других более мелких фреймворков, чем ASP.NET. ASP.NET имеет 2 основных фреймворка от Microsoft, WebForms (полная чушь) и ASP.NET MVC (причина, по которой я начал заниматься разработкой ASP.NET). Хотя PHP имеет больше фреймворков, я считаю, что фреймворк ASP.NET MVC 3 лучше, чем любой из фреймворков PHP.
Среднее время разработки
Я думаю, что для небольших проектов время разработки в PHP намного лучше, однако, поскольку ваш проект увеличивается в размерах, C # лучше масштабируется в этом отношении.
Стоимость
Некоторые, которые должны быть подняты, это стоимость. PHP победил на этом фронте. Хотя вы можете запускать ASP.NET в Mono в Linux, у него есть свои проблемы.
Если вы делаете небольшой или средний размер проекта и / или стоимость является фактором, PHP побеждает. Если вы делаете крупномасштабный проект, я бы выбрал ASP.NET w / C # и ASP.NET MVC.