Konverter
Skrevet af d. 7/12-2017 10:26

Da ASP normalt er programmeret i VBScript, er det mest oplagte at rette dette til VB (Visual Basic) i ASP.NET, da de to sprog ligger meget tæt på hinanden, og det er det vi på denne side går ud fra.

Største ændringer fra VBScript til VB

Alle variable skal deklareres og helst types
Option Explicit er slået til som standard, og da der ikke findes "variants" i ASP.NET, bliver en uspecificeret variabel sat til et "object". Det anbefales endvidere at man sætter Option Strict, hvilket vil kræve at alle dine variable bliver sat til en type (string, integer).
Alle metoder kræver paranteser
Du kan ikke længere skrive Response.Write "Hello .NET!". Du skal skrive Response.Write("Hello .NET!").
Nogle af de "underlige" kald er ændret
While [condition] [statements] Wend hedder nu While [condition] [statements] End While
Hvis du i stedet for While/Wend bruger Do [{while | Until} condition] [statements] Loop vil du kunne bruge samme kode begge steder.
Skal en linje fylde flere linjer, skal man skrive & _ eller ( _, man kan ikke bruge &_ og (_.
En Case sætning kan ikke stå på en linje, efter for eksempel Case 10, skal der være linjeskift.
IsObject eksisterer ikke, i ASP.NET er alt et objekt, du kan i stedet bruge IsReference.
Ikke flere forkortede "default properties"
Normalt kunne man skyde genvej og skrive RS("Name") du skal nu angive hvilken type du ønsker (normalt selve dataene) RS("Name").Value
Instruktionerne Set og Let er nu unødvendige da alting er objekter.
For at bruge en class eller et objekt, skal man nu skrive Pay = New clsPayModule i stedet for Set Pay = New clsPayModule.
ByVal er nu standard
ByRef som standard i funktionskald er udskiftet til ByVal som standard. Dette betyder at kald til funktioner/procedurer der retter i en af variablene i kaldet, ikke længere sender de rettede variabler retur med mindre man sætter ByRef i funktionen/proceduren.
"Include-filer" skal hentes via script
Include bruges ikke længere, man skal i stedet bruge <script language="vb" runat="server" src="filnavn.cls"></script>. Man kan ikke længere have kode eller variable stående "udenfor" funktioner eller subs, man kan med fordel i stedet lave en class.
En Class kan ikke umiddelbart tilgå serverobjekter
For at lave Response.Write, trække fra en Application("variabel") værdi og lignende, skal man nu lave inherit eller bruge andre metoder. Se vores class konvertering support.

Du kan sagtens nøjes med at omkode nogle af dine sider til ASP.NET, men du skal være opmærksom på at Application og Session variable der sættes i ASP og ASP.NET ikke er de samme, så de kan ikke deles henover siderne. Har man brug for det kan man for eksempel gemme dataene i en database.

Mens du omkoder kan det være en god ide at sætte <compilation debug="true"/> i din "web.config" fil, så du kan se fejlbeskeder, det anbefales kraftigt at du fjerner "debug mode" igen bagefter.

Et typisk problem man oplever, er at man skal konvertere sine data fra streng til tal hvis man bruger Option Strict, det gøres således:

' Konverter en tekststreng til et tal i VB
Dim strNumber as String = "12345"
Dim intNumber as Integer = Int32.Parse(strNumber)

Microsoft har lavet en udvidet migration guide, der forklarer yderligere og mere avancerede ting man eventuelt vil løbe ind i.

Eksempler

Samtidig brug af samme "includefil" i ASP og ASP.NET

Følgende eksempel viser hvordan du kan omkode en "includefil", så den virker både hvis den bliver brugt fra ASP og ASP.NET. Du kan sagtens lave kode der samtidig er kompatibel både med VB.NET (Visual Basic) og VBScript (ASP).

Typisk kode i ASP

"Includefil"

<%
  Sub Hello
    Response.Write "Hello World!<br/>"
  End Sub

  Sub HelloYou(strText, strTarget)
    Response.Write "Hello " & strTarget &_
      " - from " & strText & "<br/>"
  End Sub

%>

ASP eksempel

<!--#include file="diverse-asp-behind.inc"-->
<html>
<body>
<%
  Hello
  HelloYou "ASP", "World"
%>
</body>
</html>

Eksempel der virker både i ASP og ASP.NET

"Includefil"

Sub Hello()
  Response.Write("Hello World!<br/>")
End Sub

Sub HelloYou(strText,strTarget)
  Response.Write("Hello " & strTarget & _
    " - from " & strText & "<br/>")
End Sub

ASP eksempel

<script language="vbscript" runat="server" src="diverse-asp-net-behind.inc"></script>
<html>
<body>
<%
  Call Hello()
  Call HelloYou("ASP", "World")
%>
</body>
</html>

ASP.NET eksempel

<script language="vb" runat="server" src="diverse-asp-net-behind.inc"></script>
<html>
<body>
<%
  Hello()
  HelloYou("ASP.NET","World")
%>
</body>
</html>
(0 stemmer)
Denne artikel var til hjælp
Denne artikel var ikke til hjælp

Kommentarer (0)
Opret kommentar
 
 
Navn:
Email:
Kommentarer:
CAPTCHA Verificering 
 
Indtast teksten du ser på billedet i feltet herunder (CAPTCHA). Dette er påkrævet for at undgå automatiske registreringer og form afsendelser.

Referencer |  Om Azero |  Betingelser |  Job |  Presse |  Kontakt Azero

Azero A/S - CVR 28 10 17 59 - Skjørringvej 8 - 8464 Galten - Telefon 38 19 50 17
Danske Bank - Reg 4180 - Konto 0010092027 - SWIFT DABADKKK - IBAN DK7230000010092027

Copyright © 2000-2020. Azero A/S respekterer alle varemærker.
Priser er angivet eksklusive moms i DKK, der tages forbehold for trykfejl. Alt salg sker i henhold til vores betingelser.
1. Domaincheck - 2. Search - 3. NScheck - 4. NSlookup - 5. Lookup - 6. TraceRoute - 7. Query - 8. CheckWeb - (9. Flere)