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

ASP
ASP字符串大写转换成小写 ASP小写转换成大写 ucase lcase
asp base64加解密函数代码
Discuz!NT 论坛整合ASP程序论坛
discuz 2.0整合asp系统,用户添加函数
P3P 和 跨域 (cross-domain) cookie 访问(读取和设置)
通过asp程序来创建access数据库
检查access数据库中是否存在某个名字的表的asp代码
asp #include file 与 #include virtual 的区别小结
一个带采集远程文章内容,保存图片,生成文件等完整的采集功能
asp 横排显示数据
asp base64 utf-8为了兼容asp.net的base64
两个非常规ASP木马(可躲过扫描)
asp DateDiff实现文字在特定时间后消失
ASP所有的Session变量获取实现代码
关于ASP eof与bof 区别分析
asp ajax注册验证之 防止用户名输入空格
asp sqlserver 执行存储过程返回记录集报对象关闭时不允许操作
ASP 获取文件扩展名函数getFileExt()
asp 简单分页代码
asp删除mssql数据库中没有记录的图片代码

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 133 ::
收藏到网摘: 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就高亮显示出语法,列出要作修改的地方,帮助我们这样发现编译期错误。