日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

動態(tài)網(wǎng)站web開發(fā) PHP、ASP還是ASP.NET

瀏覽:11日期:2023-12-17 18:59:02

這是一個經(jīng)常被提出的問題,并且它很容易把人們帶入爭論Linux還是Windows的歧途。這樣的爭論事實上反映出了對于相互競爭的Web開發(fā)技術(shù)要進行并行分析是多么困難的一件事情,而這一難度同時因為開發(fā)人員對任何可比較操作系統(tǒng)的不同意見而大大增加。 所以與其繼續(xù)參與到這樣的爭論中,我們還不如來看看每一項技術(shù)對于特定Web開發(fā)以及運行環(huán)境所表現(xiàn)出的優(yōu)勢。盡管ASP和PHP的相似程度大于其中任意一種與ASP.NET的相似程度,我們還是要討論ASP.NET。原因是開發(fā)人員常常將其與ASP相混淆,并且在微軟的努力下ASP.NET的確會在將來完全取代ASP。

基本理論——特點概述PHP——超文本預處理器(Hypertext Pre-processor)PHP是開放源代碼服務(wù)器端的腳本語言,在語法上同C語言非常類似。盡管最初是被設(shè)計用于基于Linux的Apache Web 服務(wù)器系統(tǒng),現(xiàn)在的PHP已經(jīng)被移植到了任何操作系統(tǒng)并兼容任何標準Web服務(wù)器軟件。由此也可以得出PHP的三大主要優(yōu)勢。首先它是跨平臺的技術(shù),因此PHP應(yīng)用程序可以被方便的移植——當然這還要取決于諸如廠商特定數(shù)據(jù)庫等需要集成的額外組件。這樣的可移植性還帶來了另一方面的優(yōu)勢,即絕大部分的Web主機提供商都會支持PHP,因此根據(jù)需要更改主機將會非常方便。

第二點,由于PHP同C編程語言有很多相似之處,對于熟悉相關(guān)語法的開發(fā)人員來說,PHP則非常容易上手——這種語法同樣在Java、JavaScript以及Perl中得到應(yīng)用。第三,由于是開放源代碼產(chǎn)品,PHP將繼續(xù)快速發(fā)展,更為重要的是相關(guān)漏洞補丁將免費的定期植入到核心庫中。

此外,在一些特定的編程需求下,PHP對于開發(fā)人員顯示出了更為誘人的吸引力。首先,PHP有內(nèi)建庫支持對于圖片及PDF文檔的直接創(chuàng)建和相關(guān)操作。這意味著當一個應(yīng)用程序調(diào)用包含有anti-aliased類型文本的動態(tài)創(chuàng)建菜單圖像,或者是需要導出Acrobat格式頁面時,PHP都將是解決此類問題的理想技術(shù)。盡管這些功能在理論上也可以通過其他與PHP相競爭的技術(shù)獲得,但往往其他技術(shù)需要安裝第三方自定義組件才能實現(xiàn)。

另一點使得PHP成為編寫服務(wù)器腳本最佳選擇的是在處理連接mySOL或者Postgres數(shù)據(jù)庫一類的問題時PHP的良好表現(xiàn)。盡管對于mySOL或者Postgres數(shù)據(jù)庫的訪問可以通過ASP技術(shù)借助ODBC連接來實現(xiàn),但這常常需要系統(tǒng)管理員進行額外的配置。幸運的是,這點限制在ASP.NET中得到了改正,當需要建立類似于使用MS SQL Server的直接數(shù)據(jù)庫連接時可以通過mySQL提供數(shù)據(jù)。

ASP——動態(tài)服務(wù)頁面(Active Server Pages)微軟將ASP引入Windows NT Server 4并將其作為IIS Web服務(wù)器下的動態(tài)Web應(yīng)用程序的默認使用平臺。由于它使用VBScript(Visual Basic語言的一個分支),ASP立即被熟悉Microsoft IDE——Visual Studio編程的開發(fā)人員所追捧。隨著腳本語言的不斷發(fā)展,研究人員對ASP并沒有引入太多功能使之加入到技術(shù)競爭的行列。因此,在PHP中可以看到的諸如圖像操作等功能沒有集成到ASP中。但開發(fā)人員仍然可以通過DLL文件的形式編寫(或者安裝)第三方COM對象來完成類似的工作。在服務(wù)器自身允許的情況下,通過這種方式可以編寫代碼來完成任何動作。當然,造成的缺陷是這將導致為了配置這些服務(wù)開發(fā)人員不得不與桌面系統(tǒng)進行交互——對于Web開發(fā)人員來說這項功能并不是必須的。ASP的優(yōu)勢是在企業(yè)環(huán)境中微軟服務(wù)器幾乎無處不在。此外,MS SQL Server同樣具有廣泛的市場,并且能很好的支持ASP(這并不會讓人感到驚奇)。盡管事實上通過ODBC可以兼容任何數(shù)據(jù)來源,但SQL Server以及文件DSN訪問(file DSN access)可以在代碼一級得到實現(xiàn)。

ASP.NET是選擇ASP還是PHP的爭論正在隨著.NET的崛起而越來越顯得多余。的確,過去長達數(shù)年的爭論將隨著是選擇Java還是.NET技術(shù)(或是兩者)答案的揭曉而終結(jié)。ASP以及ASP.NET的唯一聯(lián)系是二者都使用VBScript。而單獨就.NET而言,它可以使用VBScript以及其他大約20種語言。

對于ASP以及PHP來說,將ASP.NET看作是另外一種語言的原因是它運行在完全不同的構(gòu)架之上。前者是翻譯腳本語言,而.NET則是經(jīng)過編譯的framework。這就意味著首先Web頁面的運行速度將會有極大提高。同時,源代碼更加安全且更為健壯。此外,ASP.NET給Web編程帶來了新的理念——即“code-behind頁面”的思想。按照code-behind思想,每一個HTML頁面都是由自身經(jīng)過編譯的程序化指令進行驅(qū)動。因此,HTML——或稱之為表現(xiàn)層——很大程度上脫離了應(yīng)用程序的商業(yè)邏輯。盡管這樣的分離也可以通過PHP和ASP來實現(xiàn),但這并非同ASP.NET一樣屬于自身技術(shù)的主要部分。

ASP.NET的另一好處是它完整的集成了對XML以及Web服務(wù)的各種支持。對.NET而言可以使用非常廣泛的安全以及密碼系統(tǒng)庫,這對于金融機構(gòu)和企業(yè)數(shù)據(jù)應(yīng)用程序尤為有用。就缺陷而言,即使是具備豐富經(jīng)驗的開發(fā)人員也會發(fā)現(xiàn)使用.NET可能把自己搞糊涂。不考慮開發(fā)者對于所使用的編程語言的熟悉程度,對于Web開發(fā)人員來說,在程序范例方面難度的大幅提升可能會成為他們?nèi)谌階SP.NET的主要障礙。對ASP.NET應(yīng)用程序來說主機同樣是個問題,ASP.NET并未同ASP或者PHP一樣獲得了主機提供商的廣泛支持,無法在同一級別上展開競爭。

實踐——語言比較變量聲明在VBScript中(ASP和ASP.NET都使用VBScript),在使用變量之前并不一定要對其進行聲明,盡管技術(shù)文檔通常建議這么做。使用Option Explicit聲明,開發(fā)人員可以通過程序強制進行變量聲明。在PHP中,變量可以被聲明,盡管沒有辦法強制開發(fā)人員做到這點。的確,在使用之前變量都自動進行聲明。PHP變量的優(yōu)點在于變量可以被設(shè)置成為其他變量的引用(references),而在VBScript中變量只能通過值來定義。

<%

' VBScript Example

Option Explicit

myVar = 1

myOtherVar = myVar

myVar = 2

' myResult will be 3

myResult = myVar + myOtherVar

%>

<?

// PHP Example

$myVar = 1;

'Use the ampersand to make a reference

$myOtherVar = &$myVar;

$myVar = 2;

// $myResult will be 4

$myResult = $myVar + $myOtherVar;

?>

變量收集在PHP以及ASP中使用表單以及query string變量的方法非常相似。有很多辦法可以訪問表單以及query string變量的集合,例如通過name或者將其作為數(shù)組。在ASP.NET中情況則有很多不同,尤其是對于表單域。不同于盲目的尋找提交過的表單變量,code-behind可以對HTML頁面中的每一個表單域了如指掌,并可以按照任何已知事件的執(zhí)行為條件觸發(fā)對這些表單域的值進行檢查。其中一個事件是“postback”,當表單被用戶提交時此事件被觸發(fā)。其他的事件可以是客戶端的程序,并且可以通過JavaScript來觸發(fā)。在ASP.NET中,二者沒有性質(zhì)上的區(qū)別。<%

' ASP Example

myFormVal = request.form('myInputField')

myQSval = request.querystring('myQSitem')

myVal = request.item('myFormOrQSitem')

%>

<?

// PHP 4.1+ Example

$myFormVal = $_POST['myInputField'];

$myQSval = $_REQUEST['myQSitem'];

// PHP 3+ Example

$myFormVal = $HTTP_POST_VARS['myInputField'];

// If register_globals = on

$myVal = $myFormOrQSitem;

?>

<!-- ASP.NET example -->

<html>

<script language='VB' runat=server>

Sub SubmitBtn_Click(Sender As Object, E As EventArgs)

Message.Text = 'Hello ' & Name.Text

End Sub

</script>

<body>

<form action='action.aspx' method='post' runat='server'>

Name: <asp:textbox runat='server'/>

<asp:button text='OK' OnClick='SubmitBtn_Click'

runat='server'/>

<asp:label runat='server'/>

</form>

</body>

</html>

字符串連接(String Concatenation)PHP似乎對此問題給予了足夠的重視,它允許將變量插入到字符串中而無需考慮通常的串連(Concatenation)問題。ASP.NET則把整個過程弄得比較麻煩,需要借助其StringBuilder類,但由此ASP.NET的運行速度也會快很多。

<?

// PHP Example

$link = mysql_connect('host', 'user', 'password')or die('mysql_error());

mysql_select_db('database') or die('Could not select database');

$query = 'SELECT * FROM Table';

$result = mysql_query($query) or die(mysql_error());

while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {

foreach ($line as $col_value) {

//do something

}

}

?>

連接數(shù)據(jù)庫對于數(shù)據(jù)庫的連接問題,每種技術(shù)都表現(xiàn)出了各自突出的規(guī)范性。首先,每種情況都要建立到數(shù)據(jù)庫的連接。對于PHP,在建立之后選擇數(shù)據(jù)庫(對于ASP以及ASP.NET則將在連接階段完成)。隨后將建立一個詢問,并將其傳送給數(shù)據(jù)庫,由此可能產(chǎn)生也可能不會產(chǎn)生一條返回記錄。

由于在本質(zhì)上ASP.NET更為以對象為導向,并且支持復雜的錯誤處理(error handling),因此無論是相對于PHP還是ASP,在完成簡單任務(wù)方面ASP.NET可能會需要編寫更多的代碼。但在優(yōu)勢方面,ASP.NET完成顯示數(shù)據(jù)功能所需要的代碼則大大少于PHP以及ASP——尤其如果使用內(nèi)建的datagrid控制來自動創(chuàng)建HTML輸出。

<%

'ASP Example

Set objConn = Server.CreateObject('ADODB.Connection')

objConn.Open 'Driver={SQL Server};Server=MyServerName;' & _

'Database=myDatabaseName;Uid=;Pwd='

const strSQL = 'SELECT * FROM Table' Set objRS = Server.CreateObject('ADODB.Recordset')

objRS.OpenstrSQL, objConn

Do While Not objRS.EOF

'do something

objRS.MoveNext

Loop

%>

' ASP.NET Example

<%@ Import Namespace='System.Data' %>

<%@ Import Namespace='System.Data.SqlClient' %>

<html>

<script language='VB' runat='server'>

Sub Page_Load(Sender As Object, E As EventArgs)

Dim MyConn As SqlConnection = New SqlConnection('server=(local). . . ')

Dim MyComm As SqlCommand = New SqlCommand('select * from Table', MyConn)

MyConn.Open()

Dim dr As SqlDataReader = MyComm.ExecuteReader()

MyDataGrid.DataSource = dr

MyDataGrid.DataBind()

MyConn.Close()

End Sub

</script>

<body>

<ASP:DataGrid runat='server'

Width='600'

BackColor='#FFFFFF'

BorderColor='#000000'

ShowFooter='false'

CellPadding=2

CellSpacing='0'

Font-Name='Verdana'

Font-Size='8pt'

HeaderStyle-BackColor='#EEEEEE'

EnableViewState='false'

/>

</body>

</html>

結(jié)論

選擇ASP、PHP還是ASP.NET將最終取決于應(yīng)用程序的需要,以及運行程序的系統(tǒng)環(huán)境。開發(fā)人員對于相似編程語言或范例的熟悉程度同樣可以作為選擇的因素。記住沒有完美的方法和個人實際情況可以表明哪種技術(shù)是最佳選擇。比如,使用ASP.NET為一個Windows服務(wù)器創(chuàng)建一個單頁面的表單郵件應(yīng)用程序似乎有些大材小用,但對于ASP來說這是極佳的應(yīng)用環(huán)境。如果一個站點需要同Linux Apache服務(wù)器上的mySQL數(shù)據(jù)庫連接,那么使用ASP或者ASP.NET則會顯得力不從心。如果能夠提前詳細考慮用戶的個人要求,那么開發(fā)人員在這些相互競爭的技術(shù)中進行選擇的過程則已成功了一半。

標簽: PHP
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久久久久美女精品| 欧美私人啪啪vps| 久久精品凹凸全集| 婷婷综合福利| 亚洲制服欧美另类| 麻豆9191精品国产| 国产精品高颜值在线观看| 88久久精品| 久久影视三级福利片| 国产欧美日韩精品高清二区综合区| 久久亚洲国产精品一区二区| 五月婷婷六月综合| 激情婷婷欧美| 中文欧美日韩| 亚洲一区二区三区高清不卡| 久久不射中文字幕| 亚洲三级在线| 日韩av影院| 国产精品久久久久久久免费软件| 欧美日韩精品一区二区视频| 亚洲精品小说| 亚洲色图国产| 青青草91视频| 国产欧美大片| 国产精品综合| 欧美有码在线| 精品91福利视频| 久久久精品网| 日韩一区欧美二区| 国产日韩欧美一区二区三区在线观看| 国产精品嫩模av在线| 欧美综合精品| 欧美黄色一区二区| 日韩精品一区二区三区av | 日韩精品五月天| 国产精品一区免费在线| 麻豆成全视频免费观看在线看| 999精品色在线播放| 欧美手机在线| 美女日韩在线中文字幕| 国产精品蜜月aⅴ在线| 中文字幕在线免费观看视频| 91成人超碰| 日韩1区2区日韩1区2区| av资源中文在线| 国产99久久| 亚欧成人精品| 精品福利久久久| 欧美特黄视频| 国产精品亚洲产品| 激情五月综合| 国产剧情一区| 五月天久久久| 日韩在线黄色| 久久久久久婷| 蜜桃免费网站一区二区三区| 日韩激情av在线| 日韩欧美午夜| 国产精品久久久久77777丨| 99精品美女| 青草久久视频| 久久蜜桃资源一区二区老牛| 亚洲另类视频| 日本免费一区二区三区四区| 在线亚洲人成| 国产精品久久久久久久久久白浆 | 成人欧美一区二区三区的电影| 亚洲少妇在线| 国产a久久精品一区二区三区| 亚洲一区日韩在线| 首页国产精品| 日本午夜免费一区二区| 黄色亚洲在线| 成人精品国产亚洲| 日本欧美大码aⅴ在线播放| 久久久影院免费| 麻豆国产精品| 国产日韩欧美一区二区三区| re久久精品视频| 蜜桃伊人久久| 91欧美日韩| 日韩欧美一区二区三区在线视频| 国产精品一级在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产一区二区三区日韩精品| 亚洲一区二区小说| 久久亚洲国产| 国产精品13p| 国产精品国码视频| 一区久久精品| 亚洲日本久久| 99在线|亚洲一区二区| 欧美综合精品| 亚洲一区二区动漫| 超级白嫩亚洲国产第一| 免费一级片91| 不卡在线一区| 五月天av在线| 美女高潮久久久| 久久国产精品色av免费看| 99国产精品私拍| 一本大道色婷婷在线| 精品国产美女a久久9999| 青青草国产成人99久久| 国产精品二区不卡| 国产精品一区亚洲| 欧美91福利在线观看| www.51av欧美视频| 鲁大师成人一区二区三区| 欧美日韩国产一区二区三区不卡| 日韩激情一区| 国产精品蜜芽在线观看| 国产一区二区三区成人欧美日韩在线观看| 久久精品 人人爱| 日本a口亚洲| 欧美在线资源| 久久在线免费| av亚洲在线观看| 亚洲性色视频| 欧洲精品一区二区三区| 日韩深夜视频| 日韩成人三级| 欧美日韩中文| 国产日韩欧美三级| 精品九九久久| 精品国产亚洲一区二区三区在线| 日本亚洲视频在线| 欧美成a人免费观看久久| 亚洲欧美专区| 国产一区二区亚洲| 国产劲爆久久| 国产成人精品福利| 四虎成人av| 99久久激情| 亚洲韩日在线| 欧美日韩一区二区三区视频播放| 久久久久久久久丰满| 香蕉国产精品| 中文字幕日韩高清在线| 日韩国产欧美在线播放| 国产精品一二| 国产在线看片免费视频在线观看| 青青草国产成人99久久| 欧美精品aa| 国产精品二区不卡| 国产综合激情| 亚洲精选久久| 精品伊人久久久| 91高清一区| 亚洲精品系列| 久久三级毛片| 激情综合自拍| 日韩极品在线观看| 亚洲免费激情| 国产精品一区二区99| 国产精品一区亚洲| 日韩三区在线| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 欧美一级网站| 美女高潮久久久| 激情黄产视频在线免费观看| 久久激情一区| 日本成人在线视频网站| av资源新版天堂在线| 波多野结衣一区| 97成人在线| 天堂网av成人| 欧美亚洲tv| 亚洲视频综合| 亚洲精品中文字幕99999| 91综合久久爱com| 国产 日韩 欧美一区| 国产字幕视频一区二区| 日本成人在线视频网站| 亚洲精品在线影院| 电影天堂国产精品| 中文字幕亚洲精品乱码| 久久精品国产亚洲aⅴ| 日韩不卡免费高清视频| 在线一区二区三区视频| 日韩成人三级| 亚洲精品综合| 日韩在线中文| 国产一区福利| 午夜一级久久| 久久网站免费观看| 国产欧美精品| 国产欧美亚洲精品a| 在线一区二区三区视频| 欧美日韩调教| 97久久中文字幕| 国产美女久久| 女生影院久久| 久久激情av| 少妇久久久久| 在线精品亚洲欧美日韩国产| 日韩av黄色在线| 一区二区三区四区在线看| 91成人精品观看| 亚洲综合精品|