Aby wyjaśnić, na czym opieram swoje odpowiedzi, od ponad 6 lat zajmuję się programowaniem w PHP, gram w ASP.NET MVC przez ostatnie 3-4 miesiące i pracuję w C # programowanie mniej więcej tak długo, jak programowanie PHP.
Dla mnie jest to bardziej argument PHP vs C # niż argument PHP vs ASP.NET.
Funkcja /
rozszerzalność Myślę, że ASP.NET wygrywa tutaj, a to bardziej ze względu na możliwość używania języka takiego jak C #. C # jest znacznie lepszym językiem niż PHP, ponieważ obsługuje OO. Jestem także osobą, która preferuje język o typie statycznym (nawet myślałem w C # 4.0, uważam, że można robić zmienne o typie dynamicznym). Jedyną rzeczą, którą PHP miał ponad C # pod względem funkcji języka, były parametry opcjonalne, ale to kolejna rzecz, która została dodana w C # 4.0 (nie jestem pewien, jak dobrze działa, ponieważ jeszcze tego nie próbowałem).
Bezpieczeństwo
Prawdopodobnie powiedziałbym, że jest to zmywanie między nimi. Myślę, że oba mają funkcjonalność zapewniającą bezpieczeństwo, ale ostatecznie zadaniem programisty jest upewnienie się, że ich aplikacja jest bezpieczna.
Frameworki
Cóż, PHP wydaje się mieć znacznie więcej frameworków (CakePHP, Codeigniter, Symfony, Zend Framework) i wiele innych mniejszych frameworków niż ASP.NET. ASP.NET ma 2 główne frameworki Microsoft, WebForms (kompletna bzdura) i ASP.NET MVC (powód, dla którego zacząłem zajmować się programowaniem ASP.NET). Podczas gdy PHP ma więcej frameworków, uważam, że framework ASP.NET MVC 3 jest lepszy niż którykolwiek z frameworków PHP.
Średni czas
programowania Myślę, że w przypadku mniejszych projektów czas programowania jest znacznie lepszy w PHP, jednak wraz ze wzrostem wielkości projektu C # lepiej się pod tym względem skaluje.
Koszt
Niektóre kwestie, które należy poruszyć, to koszty. PHP wygrywa na tym froncie. Chociaż możesz uruchomić ASP.NET na Mono w Linuksie, ma swoje własne problemy.
Jeśli wykonujesz mały lub średni projekt i / lub istotny jest koszt, PHP wygrywa. Jeśli wykonujesz projekt na dużą skalę, wybrałbym ASP.NET w / C # i ASP.NET MVC.