Migrando ASP a ASP.NET

23
Migrando ASP a ASP.NET Daniel A. Seara Director Regional MSDN NDSoft

description

Migrando ASP a ASP.NET. Daniel A. Seara Director Regional MSDN NDSoft. ASP (Lo Bueno). Tecnología líder en desarrollo para Web Más de un millón de desarrolladores en ASP Desarrollo simple HTML combinado con script No requiere compilación – “sólo grabar” Flexible y extensible - PowerPoint PPT Presentation

Transcript of Migrando ASP a ASP.NET

Page 1: Migrando ASP a ASP.NET

Migrando ASP a ASP.NET

Daniel A. SearaDirector Regional MSDNNDSoft

Page 2: Migrando ASP a ASP.NET

ASP (Lo Bueno)• Tecnología líder en desarrollo para Web

Más de un millón de desarrolladores en ASP• Desarrollo simple

HTML combinado con script No requiere compilación – “sólo grabar”

• Flexible y extensible Soporta múltiples lenguajes

VBScript, JScript®, etc. Puede utilizar Objetos COM para acceder a

recursos y encapsular lógica de negocios

Page 3: Migrando ASP a ASP.NET

ASP (Lo Malo y lo Feo)• ¡El código ASP se vuelve complicado!• Requiere demasiado código

Para cualquier cosa se necesita escribir código

• Código mezclado con contenido• Sólo soporta lenguajes de scripting• La implementación de componentes y la

configuración es compleja DLLs bloqueadas, regsvr32, metabase de IIS

• Estado de Sesión limitado a un único servidor

Page 4: Migrando ASP a ASP.NET

Compatibilidad con ASP• Migrar aplicaciones de ASP a ASP.NET

siempre va a requerir cierto trabajo

• Se decidió romper la “compatibilidad hacia atrás” en ciertos puntos para mejorar la plataforma Tenemos más tiempo por delante en Internet

que por detrás Nos permite asegurar una plataforma por

mucho más tiempo

Page 5: Migrando ASP a ASP.NET

ASP: Soporte conjunto• ASP.NET corre “lado a lado” con ASP

Extensiones de archivo distintas (.aspx vs .asp) Configuraciones separadas

• Las páginas/aplicaciones ASP siguen utilizando el motor de ASP existente sin problemas No se han hecho cambios a ASP.DLL Ningún componente se “rompe” al instalar ASP.NET

• Importante: no se comparte estado entre páginas/aplicaciones ASP y ASP.NET

Page 6: Migrando ASP a ASP.NET

Cambios en la API• Con tres excepciones, ASP.NET es

100% API compatible con ASP

• Cambios de API previstos:Request() Array -> StringRequest.QueryString() Array -> StringRequest.Form() Array -> String

Page 7: Migrando ASP a ASP.NET

Cambios en la API: detalles• En ASP, las colecciones Request,

Request.QueryString y Request.Form devuelven Vectores de caracteres (StringArrays)

http://localhost/test/Test.asp?values=45&values=600

<%

‘ La línea siguiente retorna: “45, 600”

Response.Write Request.QueryString(“values”)

‘La línea siguiente retorna : “45”

Response.Write Request.QueryString(“values”)(1)

%>

Page 8: Migrando ASP a ASP.NET

Cambios en la API: detalles

• En ASP.NET estas colecciones requieren un método explícito para obtener un array Estos vectores ahora son “índice 0”

http://localhost/test/Test.aspx?values=45&values=600

<%

‘ La línea siguiente retorna : “45, 600”

Response.Write(Request.QueryString.GetValues(“values”))

‘ La línea siguiente retorna : “45”

Response.Write(Request.QueryString.GetValues(“values”)(0))

%>

Page 9: Migrando ASP a ASP.NET

Cambios en la API: detalles

• Escenarios de uso más frecuentes:

Multi-select list box: <select múltiple>

Múltiples casillas de verificación (checkbox) con el mismo nombre

Page 10: Migrando ASP a ASP.NET

Cambios semánticos• Hay varios cambios semánticos en

ASP.NET• Tópicos:

Lenguaje único en cada página Las funciones deben declararse en bloques

<script runat=server>No se soportan funciones de “rendering”

Page 11: Migrando ASP a ASP.NET

Lenguaje único en cada página

• ASP permitía tener múltiples lenguajes en una misma página

• ASP.NET sólo soporta un único lenguaje por páginaSe puede tener varias páginas, cada una

con un lenguaje diferente

Page 12: Migrando ASP a ASP.NET

Declaración de funciones• En ASP las funciones de cada página

podían declararse dentro de bloques <% %>

<%

Sub HacerAlgo()

Response.Write “¡Hola, Mundo!”

End Sub

HacerAlgo

%>

Page 13: Migrando ASP a ASP.NET

Declaración de funciones• En ASP.NET las funciones de cada página

deben declararse de la siguiente manera:

<script language=“VB” runat=server>

Sub HacerAlgo()

Response.Write (“¡Hola, Mundo!”)

End Sub

</script>

<% HacerAlgo() %>

Page 14: Migrando ASP a ASP.NET

Funciones de “rendering”• En ASP las funciones de rendering

podían declararse en bloques <% %>

<% Sub RenderAlgo() %>

<font color=“red”> Son las: <%=Now %> </font>

<% End Sub %>

<%

RenderAlgo

RenderAlgo

%>

Page 15: Migrando ASP a ASP.NET

Funciones de “rendering”• En ASP.NET estas funciones se deben re-

escribir con <script runat=server><script language=“VB” runat=server>

Sub RenderAlgo()

Response.Write(“<font color=red> “)

Response.Write(“Son las: “ & Now)

End Sub

</script>

<% RenderAlgo() %>

Page 16: Migrando ASP a ASP.NET

Cambios en el lenguaje Visual Basic®

• Cambios VBScript->VB7: serán el mayor problema a la hora de migrar

• Grandes tópicos: Las variables DEBEN declararse,

así como indicarse su tipo No hay más “Set” y “Let” No hay más “Propiedad por Defecto”

(importante) Se requieren paréntesis para invocar a Subs Los parámetros son ByVal

por defectoMás detalles

Page 17: Migrando ASP a ASP.NET

No hay más “Set” y “Let”• Usar asignaciones de variables

<%

‘ Sintaxis ASP

Dim MyConn

Set MyConn = Server.CreateObject(“ADODB.Connection”)

‘ Nueva sintaxis ASP.NET

Dim MyConn

MyConn = Server.CreateObject(“ADODB.Connection”)

%>

Page 18: Migrando ASP a ASP.NET

No hay más “Propiedad por Defecto”

‘ Sintaxis ASP (para obtener el valor de una columna)

Set MyConn = Server.CreateObject(“ADODB.Connection”)

MyConn.Open(“TestDB”)

Set RS = MyConn.Execute(“Select * from Products”)

Response.Write RS(“Name”)

‘ Nueva sintaxis ASP.NET (para obtener el valor de una columna)

MyConn = Server.CreateObject(“ADODB.Connection”)

MyConn.Open(“TestDB”)

RS = MyConn.Execute(“Select * from Products”)

Response.Write RS(“Name”).Value

Page 19: Migrando ASP a ASP.NET

Paréntesis en Subrutinas• En ASP.NET se requieren paréntesis al

invocar una Sub

‘ Paréntesis en Response.Write()

Sub HacerAlgo()

Response.Write( “¡Hola, Mundo!” )

End Sub

‘ Paréntesis en HacerAlgo()

HacerAlgo()

Page 20: Migrando ASP a ASP.NET

Parámetros ByVal por defecto• Los parámetros se deben declarar ByRef si

se quiere obtener lo siguiente<script language=“VB” runat=server>

Sub HacerAlgo(ByRef value)

value = 4343

End Sub

</script>

<% Dim number = 55

HacerAlgo (number)

Response.Write (“Número: “ & number)

%>

Page 21: Migrando ASP a ASP.NET

Las variables “Deben” existir

• A diferencia de lo que sucede en las páginas ASP, en ASPX todas las variables deben ser declaradas (indicando su tipo específico)

Page 22: Migrando ASP a ASP.NET

Algunas cosas pueden necesitar configuración

• Si se utilizan objetos cuyo modelo de ejecución sea “apartamento” (Apartment Threaded), se debe indicar compatibilidad con ASP en la página<%@ Page aspcompat=true %>