[摘 要] 本文主要介紹了ASP.NET語(yǔ)言的特性、在動(dòng)態(tài)頁(yè)面中服務(wù)器、客戶端與數(shù)據(jù)庫(kù)的相關(guān)連接方法及其實(shí)現(xiàn)過(guò)程。適合應(yīng)用于Access、SQL Server,以及其他相關(guān)數(shù)據(jù)庫(kù)的SQL訪問(wèn),是建立動(dòng)態(tài)網(wǎng)站的有力工具。
[關(guān)鍵詞]ASP. NET 數(shù)據(jù)庫(kù) 動(dòng)態(tài) SQL
最近,一些基于TCP或IP的Internet或Intranet技術(shù),被廣泛應(yīng)用于各級(jí)企業(yè)網(wǎng)站,其中一個(gè)很重要的手段就是建立Web站點(diǎn)發(fā)布和瀏覽信息。傳統(tǒng)的靜態(tài)網(wǎng)頁(yè)技術(shù)已越來(lái)越不能滿足用戶的需求,因此各種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)應(yīng)運(yùn)而生。ASP就是目前比較流行的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)之一,而ASP. NET是微軟的新一代動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)。ASP. NET不是ASP的簡(jiǎn)單升級(jí),而是微軟公司推出的新一代Active Server Pages,是微軟公司推出的新一代體系結(jié)構(gòu)Microsoft. NET的一部分。Microsoft. NET主要由W indows. NET、. NETFramework、. NET Enterp rise Server、Orchestration、MSN. NET、OFFICE. NET、Visual Studio. NET、bCentral. NET等部分組成。其中全新的技術(shù)架構(gòu)會(huì)使編程變得更簡(jiǎn)單,ASP. NET是在抓住ASP的最大優(yōu)點(diǎn)并全力使其擴(kuò)大化的基礎(chǔ)上開(kāi)發(fā)出來(lái)的,同時(shí)也修復(fù)了許多ASP運(yùn)行時(shí)會(huì)發(fā)生的錯(cuò)誤。
一、ASP. NET的技術(shù)的發(fā)展及現(xiàn)狀
ASP. NET是建立在微軟新一代. NET平臺(tái)架構(gòu)上, 利用普通語(yǔ)言運(yùn)行時(shí)( CommonLanguageRuntime, CLR)在服務(wù)器后端為用戶提供建立強(qiáng)大的企業(yè)級(jí)Web應(yīng)用服務(wù)的編程框架。ASP. NET可完全利用. NET架構(gòu)的強(qiáng)大、安全和高效的平臺(tái)特性,是運(yùn)行在服務(wù)器后端編譯后的普通語(yǔ)言運(yùn)行時(shí)的代碼,運(yùn)行時(shí)早綁定( Early B inding) 、即時(shí)編譯、本地優(yōu)化、緩存服務(wù)、零安裝配置和基于運(yùn)行時(shí)代碼受管與驗(yàn)證的安全機(jī)制等都為ASP. NET帶來(lái)了卓越的性能。對(duì)XML,SOAP,WSDL等Internet標(biāo)準(zhǔn)的強(qiáng)有力的支持,為ASP. NET在異構(gòu)網(wǎng)絡(luò)里提供了強(qiáng)大的擴(kuò)展性。
二、ASP. NET的優(yōu)點(diǎn)
1.支持多種腳本語(yǔ)言
ASP曾在腳本引擎方面受到限制,特別是VBScrip t和JavaScript。而ASP.NET可以支持VS.NET中的多種語(yǔ)言,例如C#、VB. Net等。這意味著可以擺脫VBScrip t的語(yǔ)言限制,代碼將是編譯后運(yùn)行的而不是原來(lái)的解釋執(zhí)行。
2.服務(wù)器處理
在Internet上作為服務(wù)發(fā)布的軟件是WebServices的核心。ASP. NET 提供了一個(gè)WebServices的基礎(chǔ)構(gòu)造環(huán)境,從而使開(kāi)發(fā)人員能夠?yàn)檫@個(gè)服務(wù)模型創(chuàng)建服務(wù)。Web Services的不同之處在于,它允許你暴露一個(gè)服務(wù)而不必暴露數(shù)據(jù)。當(dāng)自動(dòng)提供商業(yè)服務(wù)的同時(shí),代碼和數(shù)據(jù)都是安全的。
3.代碼與內(nèi)容的分離
通常ASP代碼是和內(nèi)容混合在一起的,設(shè)計(jì)和編寫(xiě)代碼同時(shí)進(jìn)行會(huì)變得困難。如果頁(yè)面需要升級(jí),就會(huì)存在危險(xiǎn)的潛在問(wèn)題。ASP. NET可通過(guò)兩種方法來(lái)解決這個(gè)問(wèn)題。第一種是代碼內(nèi)聯(lián)模型,在該模型中代碼仍然保存在ASP. NET頁(yè)面中,但它并不和HTML混合在一起。第二種分離代碼和內(nèi)容的方法是代碼后置模型,該模型中的代碼被完全轉(zhuǎn)移到一個(gè)單獨(dú)的文件中。
4.更好的代碼控制
對(duì)于COM對(duì)象不再需要再在服務(wù)器上注冊(cè)這個(gè)功能,是非常受程序員喜愛(ài)的。但是通過(guò)這種過(guò)程簡(jiǎn)化,你再也不能夠在你的服務(wù)器上運(yùn)行另外一個(gè)DLL版本,并且代碼相當(dāng)保密。這就意味著,如果沒(méi)有正確的開(kāi)發(fā)工具和源代碼,很難改變代碼。
5.更好的升級(jí)能力
此系統(tǒng)建成,本身有著一定的特性,以改進(jìn)多處理器環(huán)境中的性能。例如, session state能夠通過(guò)單獨(dú)的處理器來(lái)維持,在一個(gè)單獨(dú)的機(jī)器上,甚至在數(shù)據(jù)庫(kù)中允許交叉的服務(wù)器會(huì)話。
三、ASP. NET的運(yùn)行環(huán)境
a. 服務(wù)器端:Windows 2003 Server。
b. 客戶端: Internet Exp lorer5.5以上。
c. ASP的開(kāi)發(fā)環(huán)境:Visual Studio.NET 2005。
d. ASP. NET的開(kāi)發(fā)語(yǔ)言: VB.NET,C#。
四、ASP. NET與WEB數(shù)據(jù)庫(kù)的連接
ASP. NET不僅帶來(lái)了ADO.NET,還帶來(lái)了SQL Managed Provider。這樣在ASP.NET里,我們就有了三種連接數(shù)據(jù)庫(kù)的方式:
(1)ADO. NETManaged Provider
(2)SQL Managed Provider
(3)ADO. NETManaged Provider +ODBC
其中,方式(1)可以連接到任何ODBC 或者OLEDB數(shù)據(jù)中心,而方式(2)可以連接到MS SQLServer。三種方法的對(duì)比如下:
一般來(lái)說(shuō),這三種存取數(shù)據(jù)庫(kù)的方法中, SQL Managed Provider 效率最高, 其次是ADO. NETManaged Provider + OLEDB,最差的是ADO. NETManaged Provider +ODBC。
SQL Managed Provider要優(yōu)于ADO.NET Managed Provider, 而從ODBC 和OLEDB的對(duì)比來(lái)看,OLEDB要優(yōu)于ODBC。
ASP. Net與Access數(shù)據(jù)庫(kù)連接:
< %@ Import Namespace =“system. data. oledb”%>
< %@ Import Namespace =“system. data”%>
< %@ Import Namespace =”System. IO“%>
< %Dim dbconn asOledbConnectiondbconn = new OledbConnection (”p rovider = microsoft. jet. oledb. 4.0; data source=“ server.MapPath (“XXX. mdb”))%>
ASP. Net與SQL數(shù)據(jù)庫(kù)連接:
< %@ Import Namespace =“system. data. oledb”% >
< %@ Import Namespace =“system. data”% >
< %@ Import Namespace =“System. IO”% >
< % Dim dbconn asOledbConnectiondbconn = new OledbConnection (“ p rovider =sqloledb; server =主機(jī)名稱(chēng); initial catalog =數(shù)據(jù)庫(kù)名稱(chēng); user id =XXX; password =XXX; ” ) % >建立記錄集對(duì)象:
< %Dim i as integerDim sql as OledbDataAdap terDim ds as new datasetsql = new OledbDataAdap ter (“ select 3 from contact” , dbconn)sql. fill ( ds, “ guest” ) % >
五、總結(jié)
ASP. NET從現(xiàn)有的ASP結(jié)構(gòu)體系上跨出了一大步, 其整個(gè)構(gòu)造體系使開(kāi)發(fā)結(jié)構(gòu)化的應(yīng)用程序變?yōu)榭赡?。Web表單設(shè)計(jì)帶來(lái)了一種更加直接和易于使用的開(kāi)發(fā)模式。服務(wù)器控件增加了提供公共功能的能力,從而使擴(kuò)展和加強(qiáng)現(xiàn)有功能變得容易。數(shù)據(jù)捆綁使創(chuàng)建數(shù)據(jù)約束型應(yīng)用程序變得十分簡(jiǎn)單。它不但具有許多很棒的新功能,而且還有一個(gè)用于開(kāi)發(fā)Web應(yīng)用程序的真正框架。使用ASP. NET的組件,可以輕松地實(shí)現(xiàn)對(duì)網(wǎng)頁(yè)內(nèi)容的動(dòng)態(tài)控制,根據(jù)不同的瀏覽者,生成不同的頁(yè)面內(nèi)容。在ADO. NET的支持下, ASP. NET與遠(yuǎn)程主機(jī)上的數(shù)據(jù)庫(kù)的連接與操作變得非常簡(jiǎn)單。隨著越來(lái)越多的開(kāi)發(fā)者開(kāi)始使用這種新技術(shù),給Internet的發(fā)展帶來(lái)了一次新的浪潮。
參考文獻(xiàn):
[1]曹建英:ASP.NET的安全性及其實(shí)現(xiàn)的策略[J].溫州師范學(xué)院學(xué)報(bào), 2005,(02)
[2]蘭靜:基于ASP.NET的在線考試系統(tǒng)[J].山西廣播電視大學(xué)學(xué)報(bào), 2005,(02)
[3]李曉念:在ASP.NET環(huán)境下實(shí)現(xiàn)圖像文件上傳及其屬性修改[J].廣西教育學(xué)院學(xué)報(bào), 2004,(03)
[4]黃 悅:基于ASP.NET與XML的網(wǎng)絡(luò)硬盤(pán)開(kāi)發(fā)[J].長(zhǎng)沙通信職業(yè)技術(shù)學(xué)院學(xué)報(bào), 2005,(02)