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