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

ASP
ASP编程菜鸟易犯的一个错误
ASP申请单动态添加实现方法及代码
经验总结:ASP与存储过程解析
学以致用 驳“ASP低能论”
使用ASP脚本技术
ASP、Request对象与SQL注入
判断访问是否来自搜索引擎的ASP函数
ASP判断数据库值是否为空的通用函数
大刀阔斧扔掉ASP,充分准备学习ASP.NET
关于创建多级文件夹的ASP函数实例
ASP正则判断取出HTML的图片地址的函数
网页不存在自动给管理员发邮件的ASP代码
ASP教程:等差数列和等比数列通项公式
Recordset对象和Command对象的区别
Filter与updatebatch混合使用实现批量更新
ASP实例:检测整数和长整数的函数
在不支持FSO的服务器上使用XMLDOM创建HTML文件
汉字转拼音ASP函数
网页输出N行N列表格的ASP实现方法
ASP操作数据库的类

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


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