ASP编程技术:如何迁移到ASP.NET
如何迁移到ASP.NET
问题
现在的很多程序文件是使用ASP开发的,那么如何把这些程序迁移到ASP.NET中呢?
专家指点
由于ASP.NET 不支持 Visual Basic Scripting Edition (VBScript),但是它却支持 Visual Basic .NET,而Visual Basic .NET与 VBScript又非常相似。所以大多数包含 VBScript 的ASP 页仍必须经过更改后才能在 ASP.NET 下运行,下面的列表描述了 Visual Basic .NET 中的特定更改,这些更改主要是要求对现有的 Visual Basic 或 VBScript 应用程序进行更改。
1,数据类型 Variant
数据类型 Variant 不再存在,并且被Object类型取代。Object 类型必须被显式地强制转换为其他基元数据类型。
2.方法的调用
在所有方法调用中的参数列表的两边都需要加括号,即使对于不带参数的方法也是这样。例如:
If LoginSucced=True then
LoginForm.Show()
End If
3.参数传递
在 Visual Basic 6 中,如果用户没有在参数声明中显式指定 ByVal 或 ByRef,调用参数约定默认为按ByRef引用传递。在新的 Visual Basic .NET 中,默认值为 ByVal按值传递。这对常规参数(其默认值通过显式指定 ByRef 可重写)和传递给 ParamArray 参数的参数(其默认值不能重写)都适用。将默认值更改为 ByVal 可提高性能并减少意外副作用的可能性。
仍然可以通过显式使用 ByRef 修饰符来使用按引用参数,例如:
Sub DoSomething(ByRef value)
value = 1234
End Sub
<%
Dim number = 55
DoSomething (number)
Response.Write ("Number: " & number)
%>
4.Set与Let
Visual Basic.NET不再支持 Set 和 Let。可以通过简单的赋值操作给对象赋值,例如:
<%
' 以下是以前ASP用法
Dim TestConn
Set TestConn = Server.CreateObject("ADODB.Connection")
' 以下新的New ASP.NET用法
Dim TestConn
TestConn = Server.CreateObject("ADODB.Connection")
%>
5.默认属性
在Visual Basic.NET中不再使用非索引默认属性。非索引默认属性使通常引用对象的表达式能够转而引用对象的默认属性。支持默认属性的令人遗憾的结果是使程序更难读,因为表达式的含义取决于其上下文。在 Visual Basic .NET 中,非索引属性必须始终在代码中显式指定,例如:
<%
' 以下是旧的ASP用法 (得到记录集列值).
Set TestConn = Server.CreateObject("ADODB.Connection")
TestConn.Open("TestDB")
Set RS = TestConn.Execute("Select * from Grade")
Response.Write RS("English")
' 以下是新的ASP.NET 用法 (得到记录集列值)
TestConn = Server.CreateObject("ADODB.Connection")
TestConn.Open("TestDB")
RS = TestConn.Execute("Select * from Grade")
Response.Write RS("English").Value
%>
但是Visual Basic.NET仍然支持索引默认属性,例如:
<%
Dim RS As RecordSet
' 以下是允许的(因为有索引)
RS.Fields(1).Value = RS.Fields(2).Value
' 但是以下是不允许的(因为没有索引)
RS(1) = RS(2)
RS(1).Value = RS(2).Value
%>
6.类属性语法
类属性语法已更改,并且不再包括 Property Let、Property Get 和 Property Set。新的属性语法与 C# 中的属性语法相似。
Public Property ThisProperty As String
Get
ThisProperty = InternalValue
End Get
Set
InternalValue = value
End Set
End Property
7.& 运算符的使用
VBScript 允许用户编写 a&b&c; 这样的代码。而在 Visual Basic .NET 中,串联字符串时,在 & 运算符的两边必须始终有空格,所以上例必须将其编写成 a & b & c 的形式来避免语法错误。
8.If语句的使用
对于 VBScript,可以编写类似 If x Then y 的单行 If 语句。在 Visual Basic .NET 中,必须使用多行来构造所有的 If 语句,即必须按如下方式编写:
If TestBoolean=True Then
Y=3
End If
9. Option Explicit
Option Explicit 默认情况下是启用的,因此所有的变量都必须在声明后才能使用。