PHP(开源)与ASP.net(商业),性能,成本,可扩展性,支持和复杂性的比较
互联网上有数以百计的论坛辩论和文章,关于PHP或ASP.net是否是一个更好的平台。不幸的是,大多数意见都有偏见,他们的偏好通常基于推广一种编程语言而不是另一种编程语言。
此外,如果您注意这些文章和辩论的日期,您将看到大多数信息已过时且过时。这是不幸的 – 辩论显示在搜索引擎之上,信息不再有效。我们需要考虑对PHP和ASP.net平台进行定期的主要升级和改进。
让我向您保证,两种编程语言都用于非常大的Web应用程序和大型成功的Web站点,因此对任何上述编程语言处理大型Web应用程序项目的能力都不应有任何疑问。
在这篇文章中:
关于性能,我将解释哪些因素会影响性能,结果将证明在大多数情况下由于速度而选择一种编程语言而不是另一种编程语言是没有意义的。
关于可伸缩性,我将解释在可伸缩性方面要考虑哪些因素,如果编程正确,两种编程语言都是可扩展的。
关于成本和支持,由于PHP是开源的,并且通常在开源平台LAMP(Linux,Apache,MySQL,PHP)上运行,PHP赢得ASP.net以提供最具成本效益的解决方案并提供大量资源和支持。
关于部署时间(对成本的额外关注)平均而言,使用ASP.net完成某些事情所需的代码是PHP的两倍,因此使用PHP可以更快地部署部署。
我会仔细考虑每一个因素,并提供下面的两分钱:
I.可扩展性和易维护性
可扩展性和易维护性与您选择PHP还是ASP.net平台无关。Web应用程序的可伸缩性和易维护性主要取决于:
- 程序员的经验
- 使用最好的编程实践
- 使用可靠的编程框架
- 遵循编程指南和标准
II。性能和速度
关于这个主题的争论很多,大多数辩论都有偏见,并且已经过量身定制,以推广其中一种编程语言而不是向观众提供信息。
在衡量Web应用程序速度时,还有许多其他因素需要考虑,因此任何编程语言的速度都不会对当今大多数网站的速度和性能产生任何明显影响。
但是,如果编程语言需要执行类似于Google或Yahoo等网站日常工作的大量任务,那么在为所需的大量任务选择非常快速的编程语言时应该考虑很多 – 这就是为什么Google和雅虎使用多种编程语言(主要是开源),每种语言都被选中来处理编程语言最擅长的任务。
下面,我将分析常见和不常见的场景,并解释哪个任务比另一个更好:
第一个常见场景:
任何Web应用程序的常见任务之一是访问和查询数据库并将结果输出到Web服务器,然后输出到浏览器。因此,在这种常见情况下,所有编程语言都在与数据库服务器和Web服务器进行通信/接口。在这种常见情况下,编程语言的速度对此过程几乎没有影响; 此过程的速度依赖于数据库服务器,Web服务器,客户端的Web浏览器/计算机和带宽。
对于主要和通用数据库服务器,MySQL(现在由Oracle拥有),PostgreSQL,MSSQL和Oracle都在争取速度和性能。我们在每个版本升级中都会看到所有数据库服务器的新功能和更好的性能,所以如果数据库程序员使用优化和实用的SQL查询,并且如果需要,使用高级功能,我会说上述数据库服务器都会有很好的性能。作为缓存。
MySQL被谷歌,Facebook,YouTube,雅虎以及最近在FIFA世界杯上使用,后者在世界各地吸引了大量观众。所以我不会质疑MySQL数据库服务器的功能。
根据我对一些在线统计数据的研究,在撰写本文时,PHP和MySQL之间的通信和接口比ASP.net和MSSQL更快,但它并不是很明显。
第二个常见场景:
任何Web应用程序的其他常见任务之一是访问文件系统,查找映像并将其发送到Web服务器。在这种情况下,编程语言再次做得很少 – 操作系统和文件系统负责与编程语言进行通信。
基于我对一些在线统计数据的研究,在撰写本文时,Linux操作系统和ext4(文件系统)比Windows操作系统和NTFS(文件系统)执行得更好(IO)。
第三种常见方案:
运行大多数Linux / Unix服务器非常精简,没有任何额外的不需要的包或GUI界面,因此操作系统使用更少的CPU和RAM,为数据库和Web服务器提供更多的分配。
大多数Windows服务器运行笨重,并且有许多不需要的软件包和GUI,它们将使用更多的CPU和RAM。
显然,LAMP平台将优于ASP.net平台,因为它将拥有更多可用资源。
第四种不常见的场景:
ASP.net通常用C#编写(发音为C Sharp) – 一般来说,在撰写本文时,C#是一种比PHP更快的编程语言。(这可能会改变,因为每种编程语言都会提出升级以争取更好的速度。)因此,如果编程语言需要运行2,000,000循环执行计算,用C#编写的ASP.net将赢得PHP。但是,这是一种非常罕见的情况,计算的大多数循环执行将是100秒而不是2,000,000。在这种情况下,应该有其他人担心为什么有人需要进行2,000,000次循环计算。
可能对性能产生影响但与选择哪种编程语言无关的其他项目包括:
- 程序员优化代码的能力和知识
- 编程人员编写适当和优化的SQL查询的能力和知识。
- 需要的功能(某些功能可能需要更长的时间才能在ASP.net平台中执行,而在PHP平台中则需要更少的时间,反之亦然。
III。成本:
PHP,MySQL服务器,PostgreSQL服务器,Apache服务器和Linux操作系统都是免费的,升级也是免费的。此外,将另一台热备用服务器作为备份,或者需要运行多台服务器以实现负载平衡或服务器群集,不会产生额外的许可成本。
LAMP(Linux,Apache,MySQL和PHP)在托管公司中也更受欢迎,与Windows托管相比,它的受欢迎程度导致LAMP托管的每月托管成本更低。
如果您购买Windows操作系统,ASP.net和IIS是免费的。Microsoft Windows Server,Microsoft SQL Server和未来的升级需要大量的许可成本。例如,Microsoft Server 2008 R2 Standard – 64位成本约为1029美元,Microsoft SQL Server 2008 Standard Edition For Small Business成本约为1038美元。
如果站点变得流行并且需要在多个服务器上运行站点或需要服务器功能(如负载平衡,服务器群集或热备用),则Microsoft的上述许可成本可能会大幅增加。
IV。支持和资源
由于LAMP是开源的,因此全世界有大量专注且友好的开发人员不断进行改进和更新,并为该平台提供支持。此外,还有更多支持资源和开发人员可用于PHP和LAMP平台。
我之所以提到“友好”这个词,是因为为开源社区做贡献的开源开发人员这样做并不是为了获取经济利益。如果您在功能挑战中寻求帮助并在PHP论坛上发布问题,您将收到来自友好贡献者的有用信息。
ASP.net依赖于Microsoft的可用开发人员数量来进行改进和更新。可用于解决ASP.net挑战的支持贡献者较少。
五,部署时间
与PHP相比,使用ASP.net需要更多(更多行)代码来完成复杂的特性和功能,从而为开发过程增加了更多时间。
此外,PHP在服务器上进行解释,因此在更改功能时,无需其他步骤即可查看更改。另一方面,每次修改代码时都需要编译ASP.net。同样,使用ASP.net而不是PHP时,开发过程更耗时。
VI。编辑和工具
PHP和MySQL是编辑独立的。PHP开发人员可以访问大量编辑器。
大多数ASP.net程序员依靠Microsoft Visual Studio编辑器来帮助他们开发.NET应用程序。(许多ASP.net开发人员都喜欢和发誓Microsoft Visual Studio。)
这是一种不同的编程风格 – PHP和开源开发人员倾向于使用文本编辑器,如VI,VIM,Notepad ++。
VI和VIM是非常先进和独立的编辑器,学习和使用这些编辑器的程序员可以以快速,高效和独立的方式执行非常复杂的编程。这些程序员拥有更多的控制和灵活性,当需要使用和集成其他基本平台(如JavaScript,Ajax,JQuery等)时,PHP开发人员因熟悉开源环境而具有更好的优势。和使用VI或VIM编辑器的手动编码。
七。平台独立
PHP独立于平台,可以在任何平台上运行 – Linux,Unix,Mac OS X,Windows。
ASP.net仅在Windows平台上运行。
八。哪些热门网站在哪些平台上运行?
下表列出了热门站点及其使用的平台和语言。
注意:请不要将C与C#混淆(发音为C Sharp) – 它们是完全不同的编程语言。ASP.net主要用C#(C Sharp)或Visual Basic编程,而不是C.
现场 | 从那以后 | 服务器平台 | 编程 语言 |
---|---|---|---|
Google.com | 1998年11月 | Linux的 | C,Java,C ++,PHP和MySQL |
Facebook.com | 2004年2月 | Linux的 | PHP,MySQL和C ++ |
YouTube.com | 2005年2月 | Linux的 | C,Java和MySQL |
Yahoo.com | 1995年8月 | Linux的 | C ++,C,Java,PHP和MySQL |
MSN.com (由微软拥有) | 1995年8月 | 视窗 | ASP.net |
Live.com (由微软拥有) | 2008年8月 | 视窗 | ASP.net |
维基百科 | 2001年1月 | Linux的 | PHP和MySQL |
Amazon.com | 1995年10月 | Linux和Solaris | C ++,Java,J2EE |
WordPress.com | 2005年11月 | Linux的 | PHP和MySQL |
IX。声望
LAMP平台比Windows平台更受欢迎。根据Netcraft 2010年7月对205,714,253个站点的Web服务器调查,在Apache上托管了112,945,968(54.90%),在Windows上托管了53,217,620(25.87%); 其余的托管在其他平台上。
X.可用性和易于部署
有许多关于Linux不友好的误解和错误信息。
这实际上取决于设置平台的人的经验和知识。
但是,我不得不说,我对流行的Linux发行版的新版本和改进版本印象深刻。这些Linux的发行版(如Ubuntu,Red Hat,CentOS,openSUSE和Fedora)在提供易于安装和部署方面做得非常出色,以及简单直接的GUI界面,可以非常简单地配置和设置Linux服务器。管理。
不幸的是,在我看来,微软服务器的可用性已经落后,使服务器管理非常笨重,并且充满了复杂和不需要的功能。