在某些方面,将 PHP 与 .Net 进行比较并不是一个真正有效的比较,因为 PHP 是一种编程语言,而 .Net 是一种开发框架。
PHP的优势
开源
自由
低成本托管
代码方向的自由——PHP 没有规定的界限,许多开发人员认为这很有吸引力(这也是一种风险,见下文)。
您可以在 Linux/Windows/Unix/Apache 上托管。
您可以将 MySQL、Oracle、Sybase、MS SQL Server 用于数据库。
PHP的责任
它是一种较旧的技术,也是一种解释性语言——因此,它由 Web 服务器逐行呈现。容易犯编码错误,导致性能不佳、安全风险等。
没有人“拥有”它,所以没有人会在问题出现时立即解决。
学习曲线、开发时间——PHP 允许您做任何 .Net 可以做的事情,但您必须自己编写所有代码(不像 .Net,框架为您做了很多事情)。
如果开发人员不知道他们在做什么,安全性就会有风险。
调试很困难。PHP 工具不如 .Net 调试器丰富,无法在启动站点之前发现错误/问题。
.Net 的优势:
框架提供了许多您需要构建的功能,例如用于发送邮件、加密、数据库交互、表单安全等的类。使用 PHP,您需要自己创建所有这些或借用别人的代码,因为没有单一的批准要使用的框架/库。
安全性——.Net 框架内置了许多安全功能,不允许您犯下威胁性能或安全性的编码错误。
编译的代码。.Net 代码在执行前编译,而 PHP 在运行时解释。这使 .Net 具有发现问题并让您在每次要检查时都无需实际运行代码/页面的情况下进行故障排除/修复的优势。
调试很容易。.Net 调试器允许您在代码在本地运行时逐行逐行调试问题,然后再将代码放在服务器上。
即使在同一个项目(C++、C#、VB、F#、J#)中,您也可以使用多种不同的语言进行编码。
.Net 的责任
托管/基础设施和开发工具可能很昂贵——Windows 服务器、Visual Studio、SQL Server 是很棒的工具/平台,但购买和升级的成本很高。
没有那么多的社区参与——PHP 拥有丰富的用户群,是开源的,开发人员共享代码。.Net 有类似的社区,但这一切都建立在微软决定做的事情的基础上,所以这些社区可能有点“戴上手铐”。
您必须托管在 Windows Server 上。
几乎必须将 SQL Server 用于数据库。