文章詳情頁
NET移植案例學習:建造Web站點(3)
瀏覽:89日期:2022-07-21 11:14:52
將ASP代碼移植到ASP .NET開發組希望在移植這個Web站點的過程中,能盡可能地少寫代碼,以減少產生漏洞的可能。在這部分,我將向你說明將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不再支持不傳遞參數的默認屬性。不幸的是,盡管明確指定屬性的值可以增加代碼的可讀性和可持續性,許多開發者更愿意利用默認屬性的特點而不打出值。在這個Web站點中,當需要使用ADO記錄時,默認屬性經常被使用。原來的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") 第三種常見的修改是改變類型轉換函數的使用方式。再ASP .NET中,VBScript的類型轉換函數被加到了.NET框架中。這個變化要求下面的ASP代碼adoRS.fields("AreaID") = clng(oUploadManager.Form("cboArea"))adoRS.fields("SubAreaID") = clng(oUploadManager.Form("cboSubArea")) 轉變為:adoRS.fields("AreaID").Value = oUploadManager.Form("cboArea").ToString().ToInt()adoRS.fields("SubAreaID").Value = oUploadManager.Form("cboSubArea").ToString().ToInt() 最后一個常見的修改是將調用Response.Write方法的格式改為ASP .NET中的方法調用格式。在VBScript,調用不返回值的過程時,不需要用小括號把參數括起來。但在ASP .NET中,所有傳遞到方法中的參數都要用括號括起來。在原來的站點中,在很多地方都調用了Response對象的Write方法,而且都沒加小括號。為了將站點移植到ASP .NET,有必要將下面這段代碼:<% Response.Write "Thank You!" %>改為:<% Response.Write("Thank You!") %>在對原來的ASP頁面做了這些修改之后,這個Web站點就可以運行在ASP .NET下了。移植工作只要用兩周就可以完成了。為了知道什么地方需要作修改,開發組應用Visual Studio .NET IDE新建了一個新的Visual Basic Web應用程序,將現存的ASP文件的擴展名都改為.aspx,并把它們加到工程中。一旦頁面在IDE中顯示了出來,Visual Studio .NET就高亮顯示出語法,列出要作修改的地方,幫助我們這樣發現編譯期錯誤。
上一條:NET移植案例學習:建造Web站點(2)下一條:釘釘綠碼在哪里可以查看
排行榜