動態網站Web開發PHP、ASP還是ASP.NET(1)

來源:互聯網
上載者:User
  這是一個經常被提出的問題,並且它很容易把人們帶入爭論Linux還是Windows的歧途。這樣的爭論事實上反映出了對於相互競爭的Web開發技術要進行並行分析是多麼困難的一件事情,而這一難度同時因為開發人員對任何可比較作業系統的不同意見而大大增加。
  
  所以與其繼續參與到這樣的爭論中,我們還不如來看看每一項技術對於特定Web開發以及運行環境所表現出的優勢。儘管ASP和PHP的相似程度大於其中任意一種與ASP.NET的相似程度,我們還是要討論ASP.NET。原因是開發人員常常將其與ASP相混淆,並且在微軟的努力下ASP.NET的確會在將來完全取代ASP。
  
  基本理論——特點概述
  
  PHP——超文本前置處理器(Hypertext Pre-processor)
  
  PHP是開放原始碼伺服器端的指令碼語言,在文法上同C語言非常類似。儘管最初是被設計用於基於Linux的Apache Web 服務器系統,現在的PHP已經被移植到了任何作業系統併兼容任何標準Web伺服器軟體。由此也可以得出PHP的三大主要優勢。首先它是跨平台的技術,因此PHP應用程式可以被方便的移植——當然這還要取決於諸如廠商特定資料庫等需要整合的額外組件。這樣的可移植性還帶來了另一方面的優勢,即絕大部分的Web主機供應商都會支援PHP,因此根據需要更改主機將會非常方便。
  
  第二點,由於PHP同C程式設計語言有很多相似之處,對於熟悉相關文法的開發人員來說,PHP則非常容易上手——這種文法同樣在Java、JavaScript以及Perl中得到應用。第三,由於是開放原始碼產品,PHP將繼續快速發展,更為重要的是相關漏洞補丁將免費的定期植入到核心庫中。
  
  此外,在一些特定的編程需求下,PHP對於開發人員顯示出了更為誘人的吸引力。首先,PHP有內建庫支援對於圖片及PDF文檔的直接建立和相關操作。這意味著當一個應用程式調用包含有anti-aliased類型文本的動態建立菜單映像,或者是需要匯出Acrobat格式頁面時,PHP都將是解決此類問題的理想技術。儘管這些功能在理論上也可以通過其他與PHP相競爭的技術獲得,但往往其他技術需要安裝第三方自訂群組件才能實現。
  
  另一點使得PHP成為編寫伺服器指令碼最佳選擇的是在處理串連mySOL或者Postgres資料庫一類的問題時PHP的良好表現。儘管對於mySOL或者Postgres資料庫的訪問可以通過ASP技術藉助ODBC串連來實現,但這常常需要系統管理員進行額外的配置。幸運的是,這點限制在ASP.NET中得到了改正,當需要建立類似於使用MS SQL Server的直接資料庫連接時可以通過mySQL提供資料。
  
  ASP——動態服務頁面(Active Server Pages)
  
  微軟將ASP引入Windows NT Server 4並將其作為IIS Web伺服器下的動態Web應用程式的預設使用平台。由於它使用VBScript(Visual Basic語言的一個分支),ASP立即被熟悉Microsoft IDE——Visual Studio編程的開發人員所追捧。隨著指令碼語言的不斷髮展,研究人員對ASP並沒有引入太多功能使之加入到技術競爭的行列。因此,在PHP中可以看到的諸如映像操作等功能沒有整合到ASP中。但開發人員仍然可以通過DLL檔案的形式編寫(或者安裝)第三方COM對象來完成類似的工作。在伺服器自身允許的情況下,通過這種方式可以編寫代碼來完成任何動作。當然,造成的缺陷是這將導致為了配置這些服務開發人員不得不與案頭系統進行互動——對於Web開發人員來說這項功能並不是必須的。
  
  ASP的優勢是在企業環境中微軟伺服器幾乎無處不在。此外,MS SQL Server同樣具有廣泛的市場,並且能很好的支援ASP(這並不會讓人感到驚奇)。儘管事實上通過ODBC可以相容任何資料來源,但SQL Server以及檔案DSN訪問(file DSN access)可以在代碼一級得到實現。
  
  ASP.NET
  
  是選擇ASP還是PHP的爭論正在隨著.NET的崛起而越來越顯得多餘。的確,過去長達數年的爭論將隨著是選擇Java還是.NET技術(或是兩者)答案的揭曉而終結。ASP以及ASP.NET的唯一聯絡是二者都使用VBScript。而單獨就.NET而言,它可以使用VBScript以及其他大約20種語言。
  
  對於ASP以及PHP來說,將ASP.NET看作是另外一種語言的原因是它運行在完全不同的構架之上。前者是翻譯指令碼語言,而.NET則是經過編譯的framework。這就意味著首先Web頁面的運行速度將會有極大提高。同時,原始碼更加安全且更為健壯。此外,ASP.NET給Web編程帶來了新的理念——即“code-behind頁面”的思想。按照code-behind思想,每一個HTML頁面都是由自身經過編譯的程式化指令進行驅動。因此,HTML——或稱之為表現層——很大程度上脫離了應用程式的商業邏輯。儘管這樣的分離也可以通過PHP和ASP來實現,但這並非同ASP.NET一樣屬於自身技術的主要部分。
  
  ASP.NET的另一好處是它完整的整合了對XML以及Web服務的各種支援。對.NET而言可以使用非常廣泛的安全以及密碼系統庫,這對於金融機構和企業資料應用程式尤為有用。就缺陷而言,即使是具備豐富經驗的開發人員也會發現使用.NET可能把自己搞糊塗。不考慮開發人員對於所使用的程式設計語言的熟悉程度,對於Web開發人員來說,在程式範例方面難度的大幅提升可能會成為他們融入ASP.NET的主要障礙。對ASP.NET應用程式來說主機同樣是個問題,ASP.NET並未同ASP或者PHP一樣獲得了主機供應商的廣泛支援,無法在同一層級上展開競爭。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.