Thứ Tư, 16 tháng 10, 2013

Học php | So sánh ASP.Net và PHP

Trong thời điểm tương tác thông qua internet phát triển rầm rộ như hiện nay, hàng loạt các ngôn ngữ và các giao thức giao tiếp, thiết kế web cũng ra đời để phục vụ cho những mục đích nhất định. Có thể nhắc đến nhiều ngôn ngữ đã phổ biến như: Perl, PHP, ColdFuson, ASP, ASP.Net… Tuy nhiên phổ biến nhất ở Việt Nam hiện nay là 2 ngôn ngữ PHP và ASP.Net. Cả 2 đều có những ưu nhược điểm riêng và chúng ta sẽ cùng phân tích để có một cái nhìn tổng quát về hai ngôn ngữ này.



Về mặt kỹ thuật

Theo đánh giá chung, các giải pháp của Microsoft rất tốt ở cấp Enterprise. Xin đừng nhầm lẫn giữa khái niệm Enterprise với website có nhiều người truy cập, ở đây nói về độ phức tạp của các dịch vụ, độ tin cậy, tính khả chuyển… những tiêu chuẩn mà chỉ khi thiết kế các ứng dụng phục vụ cho các tập đoàn lớn thì chúng ta mới đụng tới. Tuy nhiên đi kèm với nó cũng là sự phức tạp và tốn kém tài nguyên.

PHP rất thích hợp hơn cho những nhóm phát triển nhỏ, cho cách phát triển kiểu agile, nghĩa là có thời gian phát triển và đưa vào sử dụng nhanh. Nhưng điều này không có nghĩa là PHP dành cho những website có ít người sử dụng, rất nhiều website có hàng triệu người sử dụng hàng ngày làm trên PHP.


So sánh php và asp

Về mặt tốc độ

Có khá nhiều tranh cãi về tốc độ của LAMP hay của ASP.Net + SQL Server cao hơn. Cái này còn tùy vào cấu hình, đặc thù của ứng dụng. Nhìn chung về mặt web server, Linux "có tiếng" hơn Windows Server về tốc độ (Google, Yahoo đều dùng Linux server cho các dịch vụ của mình và tôi không dám phàn nàn gì về tốc độ cả!). Theo một số người, PHP script nhanh hơn ASP.Net script (như C#, VB.Net) trong các tác vụ thông thường và tốn ít bộ nhớ hơn, tuy nhiên điều này cũng còn nhiều tranh cãi!.

Về database server, MySQL có tốc độ rất tốt (đặc biệt là kiểu MyISAM) nhưng thiếu một số tính năng cao cấp như stored procedure, trigger (phiên bản MySQL 5 có hỗ trợ các tính năng này nhưng còn yếu và có bug). Bài viết này sẽ giúp bạn có so sánh nhiều mặt hơn giữa MySQL và SQL Server: "MySQL or SQL Server: Look beyond politics and hype when deciding which to use". Tất nhiên, PHP cũng có thể dùng với nhiều database khác, còn ASP.Net dùng với Oracle thì không có gì phải bàn về tốc độ cả.

Ý kiến riêng của tôi là bạn không cần phải băn khoăn gì về tốc độ của PHP + MySQL cho bất kỳ website nào dù lớn hay nhỏ. Vấn đề chi là thiết kế ứng dụng hiệu quả và tìm được dịch vụ hosting tốt. Điều này cũng đúng cả với ASP.Net.

Về vấn đề bảo mật

Khỏi cần phải nói, Linux luôn có tiếng tốt về bảo mật và cũng ít bị các loại virus nhắm vào. Nhưng để cho trang web của bạn thực sự bảo mật thì lại là vấn đề thiết kế và lập trình, cả PHP và ASP.Net đều có những lỗ hổng có thể khai thác.

Về chi phí

Rõ ràng là phát triển bằng ASP.Net tốn kém hơn nhiều so với PHP. Bạn phải trả cho SQL Server, Windows Server, Visual Studio, MSDN và hỗ trợ kỹ thuật cao hơn nhiều so với LAMP là của cộng đồng mã nguồn mở. Dù rằng ở Việt Nam chúng ta thường dùng phần mềm "chùa" nhưng nếu tạo một ứng dụng thương mại nghiêm túc thì chi phí bản quyền trả cho M$ là rất lớn.

Ngược lai, chi phí sở hữu tổng cộng (Total ownership cost) của LAMP lại có thể cao hơn nhất là khi bạn quản trị nhiều server Linux lớn do thiếu các chuyên gia giỏi về Linux. Đây là vấn đề gây tranh cãi, trong khi Microsoft khẳng định chi phí cho Windows rẻ hơn thì một số nghiên cứu lại cho kết quả ngược lại.


Về nhân lực

ASP.Net, nói chính xác hơn là C# hay VB.Net, là ngôn ngữ lập trình hướng đối tuợng được thiết kế tốt, thừa hưởng rất nhiều thế mạnh của Java. ASP.Net cũng có bộ công cụ phát triển hạng nhất: Visual Studio.Net. Nhưng giá phải trả là tài nguyên và thời gian học. Để tạo một trang web đơn giản bằng ASP.Net khá dễ, nhưng để hiều sâu sắc cho những vần đề phức tạp hơn lại là cả một quá trình
PHP là một ngôn ngữ được sinh ra với mục đích duy nhất là để dùng lập trình Web: giản dị và dễ hiểu. Mãi đến PHP 5, lập trình hướng đối tượng mới được đưa vào tương đối đầy đủ. Công cụ phát triển (IDE) cho PHP không có cái nào sánh được VS nhưng hiện nay nếu dùng Eclipse plug-in cũng có thể nói đạt 8/10.

Một vấn đề nữa là PHP thường nhúng mã logic chương trình vào trang web (embedded scripts) còn ASP.Net tách rời phần hiển thị và logic rất rõ ràng (chúng ta nói tới kiến trúc MVC: Modal –View - Controller). Thực tế, bạn hoàn toàn có thể thực hiện được MVC trong PHP (nhất là PHP 5) nếu thiết kế đúng bài bản hay dùng các framework như Smarty, PHPCake…

Vấn đề nhân lực, vì các lập trình viên ASP.Net thích hợp cho các nhóm phát triển lớn nên khó tìm ra nhân lực cho các dự án nhỏ.


Phát triển

Nói chung bạn có thể nhận đựơc nhiều mã nguồn và sự giúp đỡ từ cộng đồng mã nguồn mở như PHP miễn là bạn có kỹ năng tìm kiếm tốt

Ngược lại MSDN đựơc đầu tư công phu và rất hữu ích giúp cho việc tìm kiếm nhanh chóng hơn. Với một số trang web như codeproject.com cũng có những code ASP.net có giá trị. Bên cạnh đó, platform DNN(DotNetNuke) là một điều tuyệt vời cho ASP.NET.


Kết luận

Qua bài phân tích trên chúng ta sẽ có sự lựa chọn phù hợp với mục đích, dự án của mình.
Google Account Video Purchases Phú Đô, Mễ Trì, Từ Liêm, Hà Nội, Việt Nam

0 nhận xét:

Đăng nhận xét