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