当前位置: 首页 > 图文教程 > 网络编程 > ASP > NET移植案例学习:建造Web站点(3)

ASP
bbs的数据结构和存储过程(二)
bbs的数据结构和存储过程(三)
聊天室自做 Follow Me
动态按钮生成器(上)
动态按钮生成器(下)
ASP直接调用EXCEL数据的例子(不用ODBC)
asp自动生成javascript检验函数
用Jmail做收取邮件附件的程序
简单的浮点论坛
ASP数据库恢复的代码
限制只能中文输入的方法
产生密码,记录到数据库,然后发送给用户。
一个基于web的QQ程序 1(xml+asp)
利用ASP生成EXECL文档
用ASP让用户访问指定页面
使用ASP程序对“HTML炸弹”进行屏蔽
实现ASP文件在线发邮件
用ASP+SQL Server为网页建一道防火墙
用Delphi开发ASP分页组件
如何在DataGrid控件中隐藏列

ASP 中的 NET移植案例学习:建造Web站点(3)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 218 ::
收藏到网摘: n/a

    将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就高亮显示出语法,列出要作修改的地方,帮助我们这样发现编译期错误。