国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > ASP > 正文

從ASP遷移至ASP+

2019-11-18 22:01:24
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
它包括運(yùn)行平臺(tái)的配置,pagelet的建立,新的ADO+的使用,如何使用新的DataSet進(jìn)行數(shù)據(jù)訪問(wèn),HTML表格到DataList的轉(zhuǎn)變,以及其他多種新的服務(wù)器端控件的使用技巧……還等什么?現(xiàn)在就來(lái)感受一下asp+的全新魅力吧!)

   自從微軟在2000年7月的專業(yè)開(kāi)發(fā)人員會(huì)議上宣布了ASP+以來(lái), 一個(gè)相同的問(wèn)題一直困擾著許多新聞組及討論論壇:“我需要怎樣做以使現(xiàn)有的web應(yīng)用程序從ASP轉(zhuǎn)換成asp+?” 專業(yè)開(kāi)發(fā)人員會(huì)議的發(fā)言人稱:代碼方面無(wú)須作較大改動(dòng),整個(gè)轉(zhuǎn)換過(guò)程也并不太難。真是這樣嗎?在本文中,我們將一探究竟。

   要運(yùn)行ASP+的alpha版本,你需要:

   Windows 2000 PRofessional server, 或者Advanced Server

   IIS5.0

   Internet Explorer5.5

   ..Net框架運(yùn)行時(shí)(.Net Framwork Runtime)

   (未來(lái)發(fā)行的ASP+將可以在windows NT及9x上運(yùn)行)

   如果你是一位ASP開(kāi)發(fā)者,你當(dāng)前使用的技巧如VBScript將輕松轉(zhuǎn)換到Visual Basic .Net來(lái)為你的ASP+頁(yè)面

   編寫(xiě)代碼。你也可能使用其他的語(yǔ)言如:C#,Managed C++甚至Cobol。 在本文中,我會(huì)介紹將一個(gè)小型web應(yīng)用程序從ASP升級(jí)到ASP+所需的詳細(xì)步驟。示例代碼使用Visual Basic .Net。

   盡管ASP與ASP+可以彼此交互共存,我們還是選擇將整個(gè)站點(diǎn)遷移至ASP+。被遷移的是一個(gè)示例站點(diǎn),該站點(diǎn)被用來(lái)演示入門(mén)級(jí)的web開(kāi)發(fā) 。我們覺(jué)得該站點(diǎn)代表了當(dāng)前互聯(lián)網(wǎng)上相當(dāng)一部分典型的中,小型站點(diǎn)。該站點(diǎn)網(wǎng)址是: http://www.codejunkies.net/eVille/, 它是一個(gè)虛擬招生網(wǎng)站, 招收的學(xué)生們將學(xué)習(xí)IT相關(guān)課程。該站點(diǎn)架設(shè)于Windows2000 Server上,由access2000數(shù)據(jù)庫(kù)驅(qū)動(dòng),使用VBScript, 客戶端javaScript以及ASP3.0,沒(méi)有使用COM。

   在同一臺(tái)運(yùn)行IIS5.0的WEB服務(wù)器上,ASP與ASP+被設(shè)計(jì)成為支持并行運(yùn)行(最終發(fā)行版本將支持IIS其它版本)。這意味著我們可以一次一頁(yè)地來(lái)遷移整個(gè)站點(diǎn)。最初的頁(yè)面仍然可以在ASP3.0下繼續(xù)運(yùn)行,而新的頁(yè)面將被轉(zhuǎn)換成為使用ASP+服務(wù)器控件與函數(shù)。

   我們要做的第一步就是要使IIS能夠?qū)efault.aspx作為一個(gè)有效的缺省文件。這一步相當(dāng)簡(jiǎn)單,在Internet Service Manager中:

   * 打開(kāi)IIS虛擬目錄中的‘屬性’對(duì)話框

   * 點(diǎn)擊‘文件’標(biāo)簽中的‘添加’按鈕

   * 輸入Default.aspx

   * 點(diǎn)擊‘確定’兩次

   做示例用的eVille站點(diǎn)沒(méi)有使用COM,因此所有的數(shù)據(jù)訪問(wèn)都是通過(guò)ASP或者include文件中的ADO來(lái)完成的。我們初始的目標(biāo)之一就是要將ADO轉(zhuǎn)換成ADO+以獲得由ADO+ Managed Provider帶來(lái)的更好執(zhí)行效果。ASP+支持傳統(tǒng)ADO的使用,然而遷移到ADO+將受益更多。比方說(shuō):從單個(gè)DataSet中獲取多個(gè)表(table),更快的執(zhí)行速度,將數(shù)據(jù)綁定到服務(wù)器控件。ASP+頁(yè)面中的數(shù)據(jù)訪問(wèn)可以通過(guò)ADO,ADO+或是SQL Managed Provider來(lái)完成。由于示例站點(diǎn)沒(méi)有使用SQL Server,而我們又想對(duì)執(zhí)行進(jìn)行優(yōu)化,所以ADO+成了我們最好的選擇。

   本站的每個(gè)頁(yè)面都涉及到數(shù)據(jù)訪問(wèn),所以它將在轉(zhuǎn)換工程中占最大的比例。基本上,每一頁(yè)都必須作一些代碼修改以獲取并顯示該頁(yè)所需的數(shù)據(jù)。在eVille的結(jié)構(gòu)中有一個(gè)connect.inc文件,該文件包含ADO連接代碼,并且每個(gè)頁(yè)面中都有該文件。連接已經(jīng)建好并且可以使用了。由于在ASP+中,連接到數(shù)據(jù)庫(kù)和綁定到ASP+數(shù)據(jù)控件的過(guò)程由新的Page_Load事件來(lái)完成,現(xiàn)在我們得采取一種稍微不同的方法。


最初的考慮(二)
作 者 : 雨晨                               


   運(yùn)用和在一個(gè)單獨(dú)模塊中創(chuàng)建一個(gè)普遍性的連接相同的構(gòu)想,我們創(chuàng)建了一個(gè)Pagelet。Pagelet使開(kāi)發(fā)人員可以創(chuàng)建偽控件,偽控件和對(duì)象一樣可以用來(lái)顯示屬性,方法以及事件。我們的方案是:創(chuàng)建一個(gè)顯示ConnectToDB方法的Pagelet,該方法返回一個(gè)ADOConnection對(duì)象(與ADO的語(yǔ)法稍有不同)。我們用下面的代碼創(chuàng)建Pagelet,將它存為connect.aspc(擴(kuò)展名表明它是一個(gè)Pagelet)

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

   < %@ Import Namespace="System.Data.ADO" %>

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

   Public Function ConnectToDB() As ADOConnection

   ConnectToDB = New ADOConnection("DSN=evilleDSN")

   End Function

   < /script>

   你會(huì)注意到我們導(dǎo)入了兩個(gè)Namespaces,即System.Data和System.Data.ADO。為了使用ADO+ Managed Provider這些Namespaces是必須的。許多人就此問(wèn)了我許多問(wèn)題,因?yàn)槟壳岸鄶?shù)示例都使用基于Microsoft SQL Server 2000數(shù)據(jù)庫(kù)的SQL Managed Provider。對(duì)于非SQL Server 數(shù)據(jù)庫(kù),ASP+可以使用ADO+ Managed Provider,這和目前你在程序中使用ADO的方式大致相同。導(dǎo)入Namespaces和在VB程序中創(chuàng)建參考(Reference)有異曲同工之妙。

   Pagelet的運(yùn)用使我可以維護(hù)當(dāng)前的站點(diǎn)計(jì)劃,一旦在模塊中創(chuàng)建了連接,我們就可在任何需要的地方重用模塊。這意味著我們需要用Pagelet的一個(gè)實(shí)例來(lái)替代Include文件指令,然后當(dāng)我們需要數(shù)據(jù)庫(kù)連接時(shí)調(diào)用ConnectToDB方法。在需要使用Pagelet的頁(yè)面中,我們首先必須使用ASP+指令將之與該頁(yè)面注冊(cè)(register)。在指令中,我們定義TagPrefix,TagName,以及Source(src)。與ASP中的include文件類(lèi)似,在我們放置Pagelet的地方要用到TagPrefix和TagName。

   < %@ Register TagPrefix="seven" TagName="Connect"

   src="_includes/connect.aspc" %>

   放置我們剛注冊(cè)的Pagelet的方法與ASP+服務(wù)器控件類(lèi)似:

   < [TagPrefix]:[TagName] id=myPagelet runat=server />

   比如:

   < seven:Connect id=Connect runat=server />

   在ADO+中,記錄集(Recordset)的概念被DataSets和DataViews的組合所取代。一會(huì)兒我們將討論這兩個(gè)概念。首先讓我們看看在default.asp頁(yè)面遷移至default.aspx(ASP+頁(yè)面的后綴)后代碼都有了哪些改變。先看default.asp:

   < !-- #include file="_includes/connect.inc" -->

   < %

   Dim cnEville_DB, rsUpcoming, strSqlUpcoming

   Set rsUpcoming = Server.CreateObject("ADODB.Recordset")

   strSqlUpcoming = " SELECT TOP 2 " & _

   "Classes.Title, sessions.Session_ID, " & _

   "Sessions.Special, Classes.Description " & _

   "FROM Classes INNER JOIN Sessions ON " & _

   "Classes.Class_ID = Sessions.ClassID " & _

   "WHERE (((Sessions.Date)>Date())) " & _

   "ORDER BY Sessions.Date"

   rsUpcoming.Open strSqlUpcoming,cnEville_DB

   %>

   在ASP+中成了default.aspx:

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

   < %@ Import Namespace="System.Data.ADO" %>

   < %@ Register TagPrefix="seven" TagName="Connect" &_

   src="_includes/connect.aspc" %>

   < script language="vb" runat=server>

   Sub Page_Load(Source As Object, E As EventArgs)

   Dim dscUpcoming As ADODataSetCommand

   Dim dsUpcoming As New DataSet

   Dim strSQL As String

   strSQL = "SELECT TOP 2 Classes.Title," & _

   "Sessions.Session_ID, Classes.Description " & _

   "FROM Classes INNER JOIN Sessions ON " & _

   "Classes.Class_ID = Sessions.ClassID " & _

   "WHERE (((Sessions.Date)>Date())) " & _

   "ORDER BY Sessions.Date"

   dscUpcoming = New ADODataSetCommand(strSQL, Connect.ConnectToDB())

   dscUpcoming.FillDataSet(dsUpcoming, "Upcoming")

   End Sub

   < /script>

   數(shù)據(jù)訪問(wèn)的核心,ANSI-SQL語(yǔ)句在轉(zhuǎn)換后沒(méi)有什么改變。然而正如你所看到的,創(chuàng)建記錄集的結(jié)構(gòu)發(fā)生了改變,我們使用的是ADODataSetCommand和DataSet。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 潞城市| 门源| 竹北市| 英吉沙县| 平南县| 广州市| 和田市| 台北市| 屏南县| 茶陵县| 高要市| 北海市| 翁牛特旗| 乐业县| 大化| 柘城县| 绥德县| 台湾省| 乐陵市| 亳州市| 互助| 泽普县| 米林县| 井陉县| 平潭县| 泰兴市| 闻喜县| 渝北区| 云安县| 嵩明县| 蒙山县| 清水河县| 曲阳县| 阿克陶县| 永吉县| 绥宁县| 凭祥市| 广东省| 迭部县| 临夏县| 高台县|