六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

從ASP遷移至ASP+

[摘要]最初的考慮(一)作 者 : 雨晨    它包括運行平臺的配置,pagelet的建立,新的ADO+的使用,如何使用新的DataSet進行數(shù)據(jù)訪問,HTML表格到DataList的轉變,以及其他多種新的...
最初的考慮(一)
作 者 : 雨晨


   它包括運行平臺的配置,pagelet的建立,新的ADO+的使用,如何使用新的DataSet進行數(shù)據(jù)訪問,HTML表格到DataList的轉變,以及其他多種新的服務器端控件的使用技巧……還等什么?現(xiàn)在就來感受一下ASP+的全新魅力吧!)

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

   要運行ASP+的alpha版本,你需要:

   Windows 2000 Professional server, 或者Advanced Server

   IIS5.0

   Internet Explorer5.5

   ..Net框架運行時(.Net Framwork Runtime)

   (未來發(fā)行的ASP+將可以在windows NT及9x上運行)

   如果你是一位ASP開發(fā)者,你當前使用的技巧如VBScript將輕松轉換到Visual Basic .Net來為你的ASP+頁面

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

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

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

   我們要做的第一步就是要使IIS能夠將default.aspx作為一個有效的缺省文件。這一步相當簡單,在Internet Service Manager中:

   * 打開IIS虛擬目錄中的‘屬性’對話框

   * 點擊‘文件’標簽中的‘添加’按鈕

   * 輸入Default.aspx

   * 點擊‘確定’兩次

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

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


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


   運用和在一個單獨模塊中創(chuàng)建一個普遍性的連接相同的構想,我們創(chuàng)建了一個Pagelet。Pagelet使開發(fā)人員可以創(chuàng)建偽控件,偽控件和對象一樣可以用來顯示屬性,方法以及事件。我們的方案是:創(chuàng)建一個顯示ConnectToDB方法的Pagelet,該方法返回一個ADOConnection對象(與ADO的語法稍有不同)。我們用下面的代碼創(chuàng)建Pagelet,將它存為connect.aspc(擴展名表明它是一個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>

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

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

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

   src="_includes/connect.aspc" %>

   放置我們剛注冊的Pagelet的方法與ASP+服務器控件類似:

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

   比如:

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

   在ADO+中,記錄集(Recordset)的概念被DataSets和DataViews的組合所取代。一會兒我們將討論這兩個概念。首先讓我們看看在default.asp頁面遷移至default.aspx(ASP+頁面的后綴)后代碼都有了哪些改變。先看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ù)訪問的核心,ANSI-SQL語句在轉換后沒有什么改變。然而正如你所看到的,創(chuàng)建記錄集的結構發(fā)生了改變,我們使用的是ADODataSetCommand和DataSet。





主站蜘蛛池模板: 越南一级淫片高清视频 | 亚洲影库 | 中文字幕在线导航 | 亚洲综合99 | 午夜不卡在线 | 四虎影库在线播放 | 天天射影院 | 日韩中文字幕在线不卡 | 有码中文字幕在线观看 | 日韩小视频在线 | 又大又粗又长又硬好爽国产 | 欧美做真爱欧美观看免费 | 亚洲欧美在线一区二区 | 日韩免费高清一级毛片在线 | 中国黄色毛片 | 日日夜干 | 日本高清在线播放一区二区三区 | 性久久久久久久久久久 | 亚洲乱亚洲23p女 | 亚洲网站黄色 | 日韩精品一区二区三区免费视频 | 日韩欧美激情 | 欧美亚洲日本视频 | 日韩欧美国产亚洲 | 亚洲第一视频在线观看 | 青娱乐在线免费观看视频 | 奇米婷婷 | 深夜男人天堂 | 桃色app福利 | 天天操欧美 | 日日摸夜夜摸无需播放器 | 日韩国产欧美精品综合二区 | 天天艹夜夜 | 日日夜夜骑 | 日韩精品久久一区二区三区 | 中文字幕高清在线天堂网 | 色姣姣狠狠撩综合网 | 亚洲最新在线视频 | 香蕉视频在线观看免费国产婷婷 | 羞羞色在线观看 | 色悠久久久久综合欧美99 |