NET移植案例學習:建造Web網(wǎng)站(3)
發(fā)表時間:2024-02-24 來源:明輝站整理相關軟件相關文章人氣:
[摘要]將ASP代碼移植到ASP .NET 開發(fā)組希望在移植這個Web站點的過程中,能盡可能地少寫代碼,以減少產(chǎn)生漏洞的可能。在這部分,我將向你說明將ASP頁面移植到ASP .NET最簡單的方法是什么。但使用這種方法不能充分利用ASP .NET的新特點,只能建立一個能在ASP .NET下運行的站點! ...
將ASP代碼移植到ASP .NET
開發(fā)組希望在移植這個Web站點的過程中,能盡可能地少寫代碼,以減少產(chǎn)生漏洞的可能。在這部分,我將向你說明將ASP頁面移植到ASP .NET最簡單的方法是什么。但使用這種方法不能充分利用ASP .NET的新特點,只能建立一個能在ASP .NET下運行的站點。
許多頁面需要做三四個標準的修改后才能正確運行。最常見的修改是要刪除Set關鍵字。.NET框架和底層的common language runtime (CLR)把任何東西都當作對象處理,所以刪除了Set這個關鍵字。下面這段代碼取自原先的站點:
'create the feedback object
set oFeedback = Server.CreateObject("BetaSiteMgr.Feedback")
應該改為 :
'create the feedback object
oFeedback = Server.CreateObject("BetaSiteMgr.Feedback")
另一個常見的改動是,在ASP頁中引用一個對象時,要明確指定這個對象的默認屬性。CLR和ASP .NET不再支持不傳遞參數(shù)的默認屬性。不幸的是,盡管明確指定屬性的值可以增加代碼的可讀性和可持續(xù)性,許多開發(fā)者更愿意利用默認屬性的特點而不打出值。在這個Web站點中,當需要使用ADO記錄時,默認屬性經(jīng)常被使用。原來的ASP代碼像這樣:
'set rs fields
rsLameError("BetaID") = Request.Form("betaid")
rsLameError("UserDescription") = Request.Form("bugDescription")
rsLameError("SeverityID") = Request.Form("severity")
應改為:
'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框架中。這個變化要求下面的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()
最后一個常見的修改是將調(diào)用Response.Write方法的格式改為ASP .NET中的方法調(diào)用格式。在VBScript,調(diào)用不返回值的過程時,不需要用小括號把參數(shù)括起來。但在ASP .NET中,所有傳遞到方法中的參數(shù)都要用括號括起來。在原來的站點中,在很多地方都調(diào)用了Response對象的Write方法,而且都沒加小括號。為了將站點移植到ASP .NET,有必要將下面這段代碼:
<% Response.Write "Thank You!" %>
改為:
。% Response.Write("Thank You!") %>
在對原來的ASP頁面做了這些修改之后,這個Web站點就可以運行在ASP .NET下了。移植工作只要用兩周就可以完成了。為了知道什么地方需要作修改,開發(fā)組應用Visual Studio .NET IDE新建了一個新的Visual Basic Web應用程序,將現(xiàn)存的ASP文件的擴展名都改為.aspx,并把它們加到工程中。一旦頁面在IDE中顯示了出來,Visual Studio .NET就高亮顯示出語法,列出要作修改的地方,幫助我們這樣發(fā)現(xiàn)編譯期錯誤。