ASP.NET更快,ASP.NET开发更快。如果您做严肃的商业Web应用程序,购买快速计算机并享受它。
相比于PHP,在发布模式下构建、优化、缓存等方面,ASP.NET代码执行更快。但是,对于网站(除了像Facebook这样的大型玩家),这就不那么重要了——页面呈现时间的大部分时间用于访问和查询数据库。
在连接数据库方面,ASP.NET要好得多——在ASP.NET中,我们通常使用LINQ将对象查询转换为SQL Server数据库中的存储过程。此外,与数据库的连接是持久的,一个网站只有一个连接,无需重新连接。
相比之下,PHP无法在请求之间保持SQL Server连接,它连接,获取来自数据库的数据,然后销毁,当重新连接时,数据库通常占页面呈现时间的20-30%。
此外,整个Web应用程序配置在php上的每个请求都会重新加载,而在ASP.NET中,则会持久保存在内存中。这可以很容易地在像Symfony/Symfony2这样的大型企业框架中看到,很多渲染时间都是Symfony的内部进程,而ASP.NET仅加载一次,不会浪费您的服务器进行无用的工作。
ASP.NET可以在应用程序内存中缓存对象,而在PHP中,则必须将其写入文件或使用像memcache这样的黑客工具。使用memcache需要处理并发和危险问题(在文件中存储缓存也会有自己的并发问题——每个请求都启动Apache服务器的新线程,并且许多请求可以同时工作——您必须考虑这些线程之间的并发性,这需要大量的开发时间,并且并不总是有效,因为php语言中没有任何互斥机制,因此无法以任何方式创建关键部分)。
现在来谈谈开发速度:
ASP.NET有两个主要的框架(Webforms和MVC),与环境一起安装,而在PHP中,您必须获取开源框架。PHP中没有像ASP.NET那样的标准框架。
ASP.NET语言非常丰富,标准库中拥有解决很多常见问题的解决方案,而PHP标准库则......空荡荡的......他们无法保持统一的命名约定。
.NET拥有类型,而PHP是动态的,这意味着在运行或编写单元测试之前没有对源代码的控制。
.NET拥有出色的IDE,而PHP IDE的水平一般或者一般好(PHPStorm甚至不如VS+resharper或不使用它)
Symfony的PHP脚手架从命令行启动,而ASP.NET脚手架则集成到环境中。
如果你像我一样电脑慢(单核2.2ghz),开发asp.net页面可能会很痛苦,因为每次更改源代码都需要重新编译项目,而PHP代码会立即刷新。
与C#语法相比,PHP语言语法不完整、不稳定和裸露。 C#强类型和许多灵活的语言特性可以加速你的开发并使你的代码更少出错。