在网上论坛,总有几百篇文章和帖子讨论PHP和ASP.NET。谁是更好的平台?遗憾的是,大多数人的观点总是带有偏见,人们总是有意无意地宣传自己喜欢的语言。
此外,如果你注意这些议论文和文章的日期,你会发现大部分信息都已经过时了。不幸的是,这些文章在考试前提供的信息不再有效。我们还应该考虑PHP和ASP.NET都是定期升级和优化的。
个人认为,这两种编程语言可以成功应用在非常大的Web应用和网站中,因此它们处理大规模网络应用的能力是毋庸置疑的。
执行摘要:
关于性能:作者将解释影响性能的各种因素,结果将证明,在大多数情况下,因为速度而选择编程语言是没有意义的。关于可扩展性:我会解释影响可扩展性的因素,但其实只要编程方法正确,两种语言的可扩展性都很强。关于成本和技术支持:因为PHP是开源的,所以通常在开源平台LAMP (Linux、Apache、MYSQL和PHP)上运行。因此,PHP在提供最具成本效益的解决方案以及提供大量资源和支持方面优于ASP.NET。关于平均部署时间(即额外成本):使用ASP.NET编码所需的代码量是使用PHP的两倍,因此使用PHP的部署时间更便宜、更快。下面仔细说明各个方面,并附上你的意见。
1.可扩展性和可维护性无论选择PHP还是ASP.NET平台,对可扩展性和可维护性都不会有任何影响。Web应用程序的可扩展性和可维护性主要取决于以下几个方面:
程序员使用最佳编码实践的经验使用可靠的编程框架遵循编程指南和标准2。性能和速度。
关于这一点有很多争议,大多不客观、片面。这些论点并没有给我们提供真实有效的信息,而是试图吹捧一种语言,贬低另一种语言。
在衡量Web应用程序的速度时,有许多因素需要考虑。因此,编程语言的运行速度对大多数网站的速度和性能影响不大。
但是,如果你想用这种语言来完成像雅虎或谷歌这样的网站每天执行的巨大任务,就必须选择一种能够快速执行大型任务的编程语言,这就是为什么谷歌和雅虎选择多种编程语言(其中大部分是开源的),每种语言都用来执行最适合他们的任务。
接下来,作者将分析各种常见和不常见的场景,并解释哪个任务更好。
第一种常见情况Web应用程序的一个常见任务是访问和查询数据库,然后将结果输出到Web服务器,再输出到浏览器。因此,在这种常见的场景中,所有编程语言都应该扮演数据库服务器和Web服务器之间的通信或接口的角色。在这种情况下,编程语言的速度对整个过程几乎没有影响。这个过程的速度主要取决于数据库服务器、网络服务器、客户端的网络浏览器和带宽。
考虑到目前常用的主流数据库服务器,MySQL(现在属于Oracle)、PostgreSQL、MSSQL和Oracle都在努力提高速度和性能。我们看到数据库服务器升级的每一个版本都会带来新的功能和更好的性能,所以我认为只要数据库程序员使用优化实用的SQL查询,必要时采用缓存等高级功能,上述任何一个数据库服务器都会有出色的性能。
谷歌、脸书、YouTube、雅虎和国际足联都在使用MYSQL,它们最近在世界杯上获得了大量观众。因此,MySQL数据库服务器的能力是毋庸置疑的。
根据网上统计调查,截至发稿时,PHP和MySQL的通讯和接口速度比ASP.NET和MSSQL快,但不明显。
第二种常见情况网络程序的另一个常见任务是访问文件系统,找到一个图像并将其发送到网络服务器。在这种情况下,编程语言的任务仍然很少,与编程语言通信的负担主要落在操作系统和文件系统上。
根据网上统计调查,截至发稿时,Linux操作系统和EXT4(文件系统)的性能优于Windows操作系统和NTFS(文件系统)。
在第三种常见的情况下,大多数Linux/Unix服务器都比较简单,没有任何多余的不必要的包或GUI界面,因此这些操作系统只需要少量的CPU和RAM,从而为数据库和Web服务器留下了更多的资源。
大多数Windows服务器运行起来都很麻烦,很多冗余包会占用大量的CPU和RAM。
显然,LAMP平台比ASP.NET平台更有优势,因为它有更多的可用资源。
第四种不太常见的情况是,ASP.NET通常用C#编写。总的来说,到目前为止,C#是一种比PHP更快的编程语言。(但是,这种情况可能会改变,因为编程语言会不断升级和更新,以提高速度。)因此,假设完成某个计算需要200万次循环,用C#编写的ASP.NET程序将比PHP程序运行得更快。但这是非常罕见的情况,最大计算周期数是几百次,而不是200万次。此外,在这种情况下,我们应该考虑为什么要进行200万周期的计算。
与编程语言无关但对性能有影响的其他因素包括:
程序员写代码的知识储备和能力程序员写SQL查询语句的知识储备和能力需要实现的功能(有些功能在ASP.NET平台比在PHP平台需要更长的执行时间,而有些恰好相反)说到性能,这里就不得不说说一些专业的应用性能监控工具了。它可以有效地优化代码和SQL语句,减少代码编写对性能和速度的影响。
appDynamics
新遗迹
OneAPM
3.
3.成本PHP、MySQL服务器、PostgreSQL服务器、Apache服务器、Linux操作系统都是免费使用和升级的。此外,设置另一个冗余主机或运行多台服务器来平衡负载或构建服务器集群不需要额外的许可费用。
LAMP (Linux、Apache、MySQL和PHP)在托管公司中也比较受欢迎。与Windows主机相比,LAMP主机的普及使得月托管成本更低。
如果你买Windows操作系统,ASP.NET和IIS是免费的。微软的Windows服务器、SQL服务器和未来的更新都很贵。例如,微软服务器2008 R2 64位标准版的价格约为1029美元,而面向小型企业的微软SQL Server 2008的价格约为1038美元。
如果这个网站流行起来,需要另设一个备用主机,或者运行多台服务器进行负载均衡,搭建服务器集群,那么上述成本会大大增加。
4.支持和资源由于LAMP是开源的,世界各地专业友好的开发人员一直在为这个开源平台的更新和改进提供持续的支持。此外,PHP和LAMP平台还有很多其他的资源支持和开发者支持。
我提到“友好”这个词,是因为为开源社区做出贡献的开发者并不是为了寻求经济利益。如果你在编码过程中遇到了功能上的挑战,需要帮助的话,去PHP论坛提问,你肯定会从友好的程序员那里得到有用的信息。
ASP。NET更多地依赖于有限数量的微软开发人员所做的改进和更新。能够帮助解决ASP.NET问题的贡献者相对较少。
5.部署时间与PHP相比,ASP.NET需要很多或更多行代码来完成复杂的特性和功能,并且在开发过程中花费了更多的时间。
另外,PHP是在服务器端编译的,所以在改变函数的时候,不用额外的步骤就可以看到变化。相反,ASP。NET的代码每次修改都需要编译。换句话说,在开发过程中,ASP.NET比PHP花费更多的时间。
编译器和工具PHP和MySQL都有独立的编译器,所以PHP开发者可以得到更多的编译器。
ASP.NET的大多数程序员都是依靠微软的Visual Studio编译器来开发的。NET程序。(ASP.NET很多程序员对微软Visual Studio又爱又恨。)
这是一种完全不同的编程风格。——使用PHP的程序员和开源开发者更喜欢文本编辑器,比如VI、VIM和记事本。
VI和VIM是非常高级的独立编辑器。在充分掌握这些编辑器的性能后,开发人员可以快速、高效、独立地进行复杂的编程。因此,他们可以更灵活地控制代码。当涉及到使用或集成诸如JavaScript、Ajax、JQuery等平台时。PHP开发人员通常更有优势,因为他们熟悉开源环境,并使用VI或VIM手动编码。
7.平台无关性PHP具有平台无关性,可以在Linux、Unix、Mac OS X和Windows中的任何平台上运行。ASP.NET只能在Windows平台上运行。
8.热门网站在哪些平台上运行?下表列出了热门网站使用的平台和语言。注:请不要把C和C#(发音为C Sharp)混淆——它们是完全不同的编程语言。ASP.net大部分是用C# (c sharp)或visual basic编程的,而不是C .注意:不要把C和C#混为一谈,它们是两种完全不同的编程语言。ASP.NET通常使用C#或Visual Basic来编程,而不是C语言。
9.人气LAMP平台比Windows平台更受欢迎。根据Netcraft在2010年7月对205,714,253台Web服务器进行的数据调查,112,945,968台(54.90%) Web服务器托管在Apache上,53,217,620台(25.87%) Web服务器托管在Windows上,其余托管在其他平台上。
10.关于Linux的不友好的错误信息由来已久。
其实要看用户的平台搭建经验和知识储备。
但不得不说,流行的改进版Linux发行版给笔者留下了深刻的印象。Ubuntu、小红小红帽、CentOS、openSUSE、Fedora等发行版不仅易于安装部署,而且提供了简单直接的GUI界面,使得Linux服务器的配置更加容易。
不幸的是,在我看来,微软服务器的可用性日益下降,服务器管理变得越来越笨拙,充满了许多不必要的功能。
对PHP和ASP.NET做了详细的对比,帮助我们更好的分析两者的区别,希望能帮助我们发展。