深度解析PHP和ASP之间的优劣

手册/FAQ (700) 2015-11-26 13:41:42

平台和服务器

平台和服务器绝对是两者之间的主要的差异所在,这一点是必须要意识到的。PHP是一种跨平台的服务器端的嵌入式脚本语言,完全可以自由的运行在Linux、UNIX、Mac OS或Windows上。另一方面,ASP.NET是一个面向对象,编译性的语言。你不能让PHP在一个Windows程序中运行,但是你可以拷贝ASP.NET的代码并把它放到WINFORM程序里面,而不用太大的修改。而且,ASP.NET受限于Windows平台。因此,它在这里实际上已经失去了开源的优势——低成本和高度支持的技术社区。

速度和性能

大多数程序员认为PHP和ASP.NET之间没有任何真正意义上的性能和速度之别。不过这是真的,只要你在较小的或更少的复杂项目上使用PHP和ASP.NET,就会发现它们之间的不同之处了。然而,如果是较大的Web App需要运行更多的大型程序的时候,在某种程度上编程语言是会影响速度的。其次,PHP和ASP.NET两者的选择还要考虑到任务的多样性。

以下举例说明:

  • 从最简单的任务开始,App需要访问数据库,处理一个查询任务,并且通过服务器将处理结果传输到浏览器上。在这个过程里编程语言几乎没有对速度产生什么太大的影响/区别,但数据库服务器和查询程序可能会有一定的影响。
  • 在Linux或UNIX上运行一个App能给你带来节省宝贵资源的优势,这些资源都是被GUI和额外的程序包消耗的,尤其是运行在Windows上的情况下。
  • 当谈到通过访问文件系统来找到并发送图片到服务器的时候,PHP的表现效果可能会更好一些,但这都归功于Linux和ext4文件系统比Windows OS和NTFS优越。

开发、安装和部署

大多数用过这两种语言的有经验的程序员都会认同:在ASP.NET基础上开发项目需要花费更多的时间。原因在于它需要的代码行很多,其次在于,每一个代码在修饰过后还需要进行编译。

在安装和部署方面,由于ASP.NET在Windows OS里有很多特性,所以ASP.NET也提供了更多的缓存。然而,Linux已经跟上了ASP.NET的最新版本,在可用性方面做出了更合理的简化。

可扩展性

从上面的论述看来貌似是在提倡使用PHP,但是在可扩展性方面,ASP.NET才是真正的赢家。ASP.NET使用C#,因此可以提供更强大的面向对象的支持。

THE END