您好,登錄后才能下訂單哦!
這篇文章主要介紹了PHP和ASP.NET有哪些區(qū)別,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
1.可拓展性和易維護性
無論你選擇 PHP 還是 ASP.NET 平臺,對可拓展性和易維護性都不會有任何影響。Web 應用程序的可拓展性以及易維護性主要取決于以下幾個方面:
編程者的經(jīng)驗
使用最佳的編碼實踐
使用可靠的編程框架
遵循程序設計指南和標準
2.性能和速度
關于這點,一直以來都存在許多爭論,且大部分爭論都是不客觀且片面的。這些爭論并沒有給大家提供真正有效的信息,只是極力吹捧一種語言而貶低另一種。
當涉及到測量 Web 應用的速度時,值得考慮的因素非常多。以致于編程語言的運行速度,對當下大部分網(wǎng)站的速度和性能影響,其實是微乎其微的。
然而,如果要用這種語言完成雅虎或者谷歌這類網(wǎng)站每天都在執(zhí)行的龐大任務,那么選擇一種可以快速執(zhí)行大型任務的編程語言就十分必要了,這也是谷歌和雅虎選擇多種編程語言(大部分都是開源的)的原因,每種語言都用來執(zhí)行最適合它的任務。
下面,筆者會分析各種常見和不常見的場景并且解釋哪種任務更優(yōu)。
第一種常見情況
Web 應用的一種常見的任務是對數(shù)據(jù)庫進行訪問和查詢,再把結果輸出到 Web 服務器,繼而瀏覽器。因此,在這個常見場景中,所有的編程語言都要擔當數(shù)據(jù)庫服務器和 Web 服務器之間的通信或者是接口的角色。在此場景中,編程語言的速度對整個進程幾乎沒有影響;該進程的速度主要取決于數(shù)據(jù)庫服務器、Web 服務器,客戶端的 Web 瀏覽器和帶寬。
若是考慮常用的主流數(shù)據(jù)庫服務器,MySQL(現(xiàn)在屬于Oracle),PostgreSQL,MSSQL 和 Oracle 都在努力提升速度和性能。我們看到,每個版本的數(shù)據(jù)庫服務器升級都會帶來新功能和更好的性能,所以筆者認為只要數(shù)據(jù)庫程序員使用優(yōu)化的實用的 SQL 查詢,并且必要情況下采用如緩存一類的先進功能,上述任一款數(shù)據(jù)庫服務器都會有十分優(yōu)越的表現(xiàn)。
谷歌,F(xiàn)acebook,YouTube,雅虎和最近因世界杯獲得龐大觀眾數(shù)量的 FIFA 都在使用 MYSQL。因此,MySQL 數(shù)據(jù)庫服務器的能力是毋庸置疑的。
基于線上的統(tǒng)計調查,截止至發(fā)稿時,PHP 與 MySQL 之間的通信和接口速度要快于 ASP.NET 和 MSSQL,但并不明顯。
第二種常見情況
Web 程序的另一種常見任務是訪問文件系統(tǒng),找到一個圖像再將其發(fā)送到 Web 服務器。在這種情況下,編程語言的任務依然很少,與編程語言交流的負擔主要落在操作系統(tǒng)與文件系統(tǒng)身上。
基于線上的統(tǒng)計調查,截止至發(fā)稿時,Linux 操作系統(tǒng)和 EXT4(文件系統(tǒng))的性能優(yōu)于 Windows 操作系統(tǒng)和 NTFS(文件系統(tǒng))。
第三種常見情況
大多數(shù)的 Linux / Unix 服務器的運行都很簡約,沒有任何額外的非必需的包或 GUI 界面,因此這些操作系統(tǒng)只需使用很少量的 CPU 和 RAM,從而將更多的資源留給數(shù)據(jù)庫和 Web 服務器。
大多數(shù) Windows 服務器運行十分笨重,有許多冗余的包會占用大量的 CPU 和 RAM。
很顯然,LAMP 平臺要比 ASP.NET 平臺更有優(yōu)勢,因為它有更多的可用資源。
第四種 不太常見的情況
ASP.NET 通常使用 C# 編寫。一般而言,截止到目前為止,C# 是比 PHP 更快的編程語言。(但這種情況也可能改變,因為編程語言會為了提高速度而不斷升級更新)因此,假設為了完成某次計算需要執(zhí)行2,000,000次循環(huán),那么用 C# 編寫的 ASP.NET 程序將比 PHP 程序運行更快。然而,這是一種非常罕見的情況,一次計算循環(huán)次數(shù)最多為幾百次,而不是2,000,000次。而且,在這種情況下,就應該考慮為什么要做一個2,000,000次的循環(huán)計算。
其他與編程語言無關,但會對性能產(chǎn)生影響的因素還包括:
程序員在編寫代碼時的知識儲備和能力
程序員在編寫 SQL 查詢語句時的知識儲備和能力
所需實現(xiàn)的功能(有些功能在 ASP.NET 平臺所需的執(zhí)行時間長于在 PHP 平臺所需的時間,有些則恰巧相反)
說到性能,在此不得不談及一些專業(yè)的應用性能監(jiān)控工具??梢杂行У尼槍Υa、SQL語句等進行優(yōu)化,降低代碼編寫方面對性能和速度的影響。
appDynamics
NewRelic
OneAPM
3.
3、成本
PHP,MySQL 服務器,PostgreSQL 服務器,Apache 服務器和 Linux 操作系統(tǒng)的使用和升級都是免費的。此外,另設一臺備援主機,或者需要運行多個服務器以均衡負載或搭建服務器集群,也都沒有額外的許可費用。
LAMP (Linux, Apache, MySQL 和 PHP)在托管公司中也更受歡迎。與 Windows 主機相比,LAMP 主機的普及性使得每月的托管費用更低。
如果你購買了 Windows 操作系統(tǒng),那么 ASP.NET 和 IIS 就是免費的。微軟的 Windows 服務器,SQL 服務器以及未來的更新價格昂貴。例如 Microsoft Server 2008 R2 64位標準版價格在1029美元左右,而針對小型企業(yè)的 Microsoft SQL Server 2008價格在1038美元上下。
如果這個網(wǎng)站變得受歡迎,有必要另設一臺備援主機,或者需要運行多個服務器以負載均衡,搭建服務器集群,那么上述費用將會大幅度提高。
4.支持和資源
由于 LAMP 是開源的,世界各地專業(yè)且友好的開發(fā)者們一直在對這一開源平臺的更新和改進提供源源不斷的支持。除此之外,PHP 和 LAMP 平臺還有很多其他的資源支持和開發(fā)者支持。
我之所以提及“友好”這個詞,是因為向開源社區(qū)做出貢獻的開發(fā)者們并不是為了得到經(jīng)濟利益。如果你在編碼過程中遇到了功能挑戰(zhàn)需要尋求幫助,去 PHP 的論壇上提問,你一定會收到友好的程序員們給出的有用信息。
ASP.NET 更依賴于微軟數(shù)量有限的開發(fā)者做出的改進和更新。能幫助解決 ASP.NET 的貢獻者相對較少。
5.部署時間
與 PHP 相比,ASP.NET 需要大量或者說更多行的代碼去完成復雜的特性和功能,在開發(fā)過程中花費更多的時間。
此外,PHP 是在服務器端被編譯的,因此,當改變功能時,無需額外步驟就能看到改變。相反的是,ASP.NET 的代碼每次修改都需要進行編譯。也就是說,開發(fā)過程中 ASP.NET 要比 PHP 消耗更多的時間。
6.編譯器和工具
PHP 和 MySQL 都有獨立編譯器的,PHP 的開發(fā)者可以獲得數(shù)量更豐富的編譯器。
大多數(shù) ASP.NET 程序員都依賴于 Microsoft Visual Studio 編譯器開發(fā) .NET程序。(許多 ASP.NET 程序員對 Microsoft Visual Studio 是又愛又恨)
這是完全不同的編程風格——使用 PHP 的程序員及開源開發(fā)者們更喜愛文本編輯器,例如 VI,VIM,Notepad ++。
VI 和 VIM 是非常高級的獨立編輯器。開發(fā)者完全掌握這些編輯器的性能后,可以快速、高效且獨立地進行復雜的編程。因此,他們能更加靈活地控制代碼。當涉及到使用或與 JavaScript,Ajax,JQuery 等平臺集成時,由于熟悉開源環(huán)境且使用 VI 或 VIM 手打代碼,PHP 開發(fā)者往往更有優(yōu)勢。
7.平臺獨立性
PHP 具有平臺獨立性,可以在 Linux,Unix,Mac OS X,Windows 中的任何平臺運行。ASP.NET 則只能在 Windows 平臺上運行。
8.熱門網(wǎng)站都運行在什么平臺上?
下面的表格列出了當下流行站點所使用的平臺和語言。 Note: Please don't confuse C with C# (pronounced C Sharp) — they are completely different programming languages. ASP.net is mostly programmed in C# (C Sharp) or Visual Basic and not C.
注:請勿混淆 C 與 C#,他們是兩種完全不同的編程語言。ASP.NET 通常使用 C# 或者 Visual Basic 進行編程,而非 C 語言。
9.流行程度
LAMP 平臺要比 Windows 平臺更加流行?;?Netcraft 2010年7月針對205,714,253個 Web 服務器進行的數(shù)據(jù)調研顯示,有112,945,968(54.90%)的 Web 服務器托管在 Apache 上,有53,217,620(25.87%)的 Web 服務器托管在 Windows 上,剩余的則托管在其他平臺上。
10.可用性和易部署性
關于 Linux 的不友善誤傳已久。
實際上,這取決于使用者的平臺搭建經(jīng)驗和知識儲備程度。
但不得不說,時下流行的改進后的 Linux 發(fā)行版給筆者留下了深刻的印象。諸如 Ubuntu,小紅帽,CentOS,openSUSE 以及 Fedora 等發(fā)行版,不僅易于安裝部署,還提供簡單直接的 GUI 界面,使得配置 Linux 服務器變得更加簡單易行。
很可惜,在我看來,微軟的服務器在可用性上日漸衰落,服務器管理變得越發(fā)笨拙,并且充斥著許多不必要的功能。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“PHP和ASP.NET有哪些區(qū)別”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。