Chỉ để đưa ra một nền tảng về những gì tôi đang dựa trên câu trả lời của mình, tôi đã thực hiện phát triển PHP một cách chuyên nghiệp trong hơn 6 năm, tôi đã chơi xung quanh với ASP.NET MVC trong khoảng 3-4 tháng qua và tôi đã làm C # lập trình cho chừng nào lập trình PHP.
Đối với tôi đây là một cuộc tranh luận giữa PHP và C # hơn là cuộc tranh luận giữa PHP và ASP.NET.
Tính năng /
Khả năng mở rộng Tôi nghĩ rằng ASP.NET thắng ở đây và điều này còn hơn vì khả năng sử dụng ngôn ngữ như C #. C # là một ngôn ngữ tốt hơn nhiều so với PHP với hỗ trợ OO. Tôi cũng là một người thích một ngôn ngữ gõ tĩnh (thậm chí đã nghĩ với C # 4.0, tôi tin rằng bạn có thể thực hiện các biến được gõ động). Điều duy nhất mà PHP có trên C # về tính năng ngôn ngữ là các tham số tùy chọn nhưng đó là một điều khác đã được thêm vào trong C # 4.0 (không chắc nó hoạt động tốt như thế nào khi tôi chưa thử nó).
An ninh
có lẽ tôi sẽ nói rằng đó là một sự tẩy rửa giữa hai người. Tôi nghĩ rằng cả hai đều có chức năng giúp bảo mật nhưng cuối cùng công việc của lập trình viên là đảm bảo ứng dụng của họ an toàn.
Các khung
tốt PHP dường như có nhiều khung chính hơn (CakePHP, Codeigniter, Symfony, Zend Framework) và rất nhiều khung nhỏ hơn khác so với ASP.NET. ASP.NET có 2 khung chính từ Microsoft, WebForms (một phần hoàn toàn tào lao) và ASP.NET MVC (lý do tôi bắt đầu tham gia phát triển ASP.NET). Trong khi PHP có nhiều khung công tác hơn, tôi thấy rằng khung công tác ASP.NET MVC 3 tốt hơn bất kỳ khung công tác PHP nào.
Thời gian phát triển trung bình
Tôi nghĩ rằng đối với các dự án nhỏ hơn, thời gian phát triển tốt hơn nhiều trong PHP tuy nhiên khi dự án của bạn tăng kích thước, C # có quy mô tốt hơn trong vấn đề này.
Chi phí
Một số nên được đưa lên là chi phí. PHP chiến thắng trên mặt trận này. Mặc dù bạn có thể chạy ASP.NET trên Mono trong Linux, nhưng nó có vấn đề riêng.
Nếu bạn đang thực hiện một dự án quy mô nhỏ đến trung bình và / hoặc chi phí là một yếu tố, PHP sẽ thắng. Nếu bạn đang làm một dự án quy mô lớn, tôi sẽ chọn ASP.NET w / C # & ASP.NET MVC.