明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

NET移植案例學(xué)習(xí):建造Web網(wǎng)站(3)

[摘要]將ASP代碼移植到ASP .NET  開發(fā)組希望在移植這個(gè)Web站點(diǎn)的過程中,能盡可能地少寫代碼,以減少產(chǎn)生漏洞的可能。在這部分,我將向你說明將ASP頁面移植到ASP .NET最簡單的方法是什么。但使用這種方法不能充分利用ASP .NET的新特點(diǎn),只能建立一個(gè)能在ASP .NET下運(yùn)行的站點(diǎn)! ...
將ASP代碼移植到ASP .NET

  開發(fā)組希望在移植這個(gè)Web站點(diǎn)的過程中,能盡可能地少寫代碼,以減少產(chǎn)生漏洞的可能。在這部分,我將向你說明將ASP頁面移植到ASP .NET最簡單的方法是什么。但使用這種方法不能充分利用ASP .NET的新特點(diǎn),只能建立一個(gè)能在ASP .NET下運(yùn)行的站點(diǎn)。

  許多頁面需要做三四個(gè)標(biāo)準(zhǔn)的修改后才能正確運(yùn)行。最常見的修改是要?jiǎng)h除Set關(guān)鍵字。.NET框架和底層的common language runtime (CLR)把任何東西都當(dāng)作對(duì)象處理,所以刪除了Set這個(gè)關(guān)鍵字。下面這段代碼取自原先的站點(diǎn):

'create the feedback object
set oFeedback = Server.CreateObject("BetaSiteMgr.Feedback")

  應(yīng)該改為 :

'create the feedback object  
oFeedback = Server.CreateObject("BetaSiteMgr.Feedback")  

  另一個(gè)常見的改動(dòng)是,在ASP頁中引用一個(gè)對(duì)象時(shí),要明確指定這個(gè)對(duì)象的默認(rèn)屬性。CLR和ASP .NET不再支持不傳遞參數(shù)的默認(rèn)屬性。不幸的是,盡管明確指定屬性的值可以增加代碼的可讀性和可持續(xù)性,許多開發(fā)者更愿意利用默認(rèn)屬性的特點(diǎn)而不打出值。在這個(gè)Web站點(diǎn)中,當(dāng)需要使用ADO記錄時(shí),默認(rèn)屬性經(jīng)常被使用。原來的ASP代碼像這樣:

'set rs fields


rsLameError("BetaID") = Request.Form("betaid")
rsLameError("UserDescription") = Request.Form("bugDescription")
rsLameError("SeverityID") = Request.Form("severity")

  應(yīng)改為:
'set rs fields  

rsLameError("BetaID").Value=Request.Form("betaid")
rsLameError("UserDescription").Value=Request.Form("bugDescription")
rsLameError("SeverityID").Value=Request.Form("severity")


  第三種常見的修改是改變類型轉(zhuǎn)換函數(shù)的使用方式。再ASP .NET中,VBScript的類型轉(zhuǎn)換函數(shù)被加到了.NET框架中。這個(gè)變化要求下面的ASP代碼

adoRS.fields("AreaID") = clng(oUploadManager.Form("cboArea"))
adoRS.fields("SubAreaID") = clng(oUploadManager.Form("cboSubArea"))


  轉(zhuǎn)變?yōu)椋?br>
adoRS.fields("AreaID").Value =
      oUploadManager.Form("cboArea").ToString().ToInt()
adoRS.fields("SubAreaID").Value =
      oUploadManager.Form("cboSubArea").ToString().ToInt()


  最后一個(gè)常見的修改是將調(diào)用Response.Write方法的格式改為ASP .NET中的方法調(diào)用格式。在VBScript,調(diào)用不返回值的過程時(shí),不需要用小括號(hào)把參數(shù)括起來。但在ASP .NET中,所有傳遞到方法中的參數(shù)都要用括號(hào)括起來。在原來的站點(diǎn)中,在很多地方都調(diào)用了Response對(duì)象的Write方法,而且都沒加小括號(hào)。為了將站點(diǎn)移植到ASP .NET,有必要將下面這段代碼:

 。% Response.Write "Thank You!" %>

  改為:

 。% Response.Write("Thank You!") %>

  在對(duì)原來的ASP頁面做了這些修改之后,這個(gè)Web站點(diǎn)就可以運(yùn)行在ASP .NET下了。移植工作只要用兩周就可以完成了。為了知道什么地方需要作修改,開發(fā)組應(yīng)用Visual Studio .NET IDE新建了一個(gè)新的Visual Basic Web應(yīng)用程序,將現(xiàn)存的ASP文件的擴(kuò)展名都改為.aspx,并把它們加到工程中。一旦頁面在IDE中顯示了出來,Visual Studio .NET就高亮顯示出語法,列出要作修改的地方,幫助我們這樣發(fā)現(xiàn)編譯期錯(cuò)誤。