Cómo, cuándo y porqué migrar aplicaciones ASP a ASP.NET Fecha: 09/Nov/2004 (09/11/2004)
|
Introducción
Porqué migrar mi aplicación si todo anda bien ?
Cuándo conviene migrar a ASP.NET ?
Preparando el servidor web
Preparando las páginas
Cambios en el lenguaje
Modificaciones extras
Conclusión
Introducción
Asumiendo que ya tenemos varias aplicaciones ASP corriendo satisfactoriamente, sin errores y cumpliendo con todos los requerimientos necesarios, la pregunta clave seria ...
Porqué migrar mi aplicación si todo anda bien ?
La respuesta no es sencilla, y depende de la aplicación en cuestión. Les recomiendo no migrar las aplicaciones web cuando esto no sea necesario. Las ventajas de la migración se basan en las ventajas que acarrea el uso del nuevo lenguaje y del nuevo entorno.
Demos un breve repaso de estas ventajas: (hay muchos documentos que hablan de esto, así que no me detendré demasiado en este tema)
Completamente orientado a objetos: encapsulamiento, herencia, polimorfismo ...
Ventajas del lenguaje
Clara división entre el diseño estético (capa de aplicación) y el código
Controles ASP.NET para todos lo gustos
Controles de usuario y personalizados
Etc, etc, etc...Si todo esto los convenció en migrar de lenguaje, la segunda pregunta clave sería...
Cuándo conviene migrar a ASP.NET ?
Para que quede claro, les repito una frase anterior ... “Les recomiendo no migrar las aplicaciones web cuando esto no sea necesario”. El momento justo sería cuando querramos optimizar algún módulo existente, agregar una nueva funcionalidad o utilizar uno de los componentes nuevos que vienen con ASP.NET.
Un concepto que es muy importante y que tenemos que tener siempre en cuenta es que ASP es compatible con el .Net Framework, o sea, pueden coexistir páginas ASP y ASP.NET dentro de una misma aplicación. (es por ello que las páginas asp.net tienen una extensión distinta: aspx). Y con este concepto en mente, queda claro que no hace falta migrar todo el sitio de una única vez (aunque seria lo óptimo), sino que podríamos migrar solamente las páginas ASP que necesitemos o crear nuevas páginas ASPX que coexistan con las ASP ya creadas.
Preparando el servidor web
Si contamos con versiones de Windows 2003, no hace falta instalar ningún componente extra, ya que incluye el framework. Pero en el caso de Windows XP ó Windows 2000, deberemos instalar previamente el .NET Framework.
Pueden bajar la versión 1.1 desde el sitio de Microsoft, en la siguiente dirección: http://www.microsoft.com/downloads/details.aspx?FamilyID=262d25e3-f589-4842-8157-034d1e7cf3a3&displaylang=en
La instalación es muy sencilla y no deberían tener ningún problemas, pero en el caso de que ocurra algún error y tengan que desinstalar Internet Information Server (IIS de ahora en más), recuerden que primero deben sacar el .Net Framework (desde Agregar/Quitar programas del Panel de Control) y una vez eliminado, recién deben desinstalar IIS. Para instalar hacen lo inverso: primero IIS y después .Net Framework (y luego los services pack existentes).
Nota: instalen siempre la última versión y el último service pack existentes ya que corrigen varios bugs de versiones anteriores.
Preparando las páginas
Lo primero a tener en cuenta es que deben renombrar las páginas con extensión .asp a .aspx. Esto le dirá al servidor como debe interpretar cada página.
Además deben incluir una directiva al comienzo de cada página que indique con que lenguaje van a trabajar, por ejemplo: <%@ Page Language="VB" %>
Otra directiva a tener en cuenta para que podamos detectar errores y debuggear es debug=true. Pueden incluirlo en cada página como <%@ Page Language="VB" Debug="true" %> o sino también pueden incorporar esta información al archivo web.config de la siguiente manera: <compilation debug="true" />.
Cambios en el lenguaje
(usaremos VB.NET para este artículo) Pueden encontrar varios documentos pululando en internet que detallan sobre los cambios producidos en el lenguaje, mi intención aquí es hacer un breve resumen de los principales cambios con los cuales podemos ‘chocarnos' en nuestras páginas ASP.
- Se elimino el keyword SET. O sea que ahora no hace falta poner set delante de los objetos a los que querramos asignarle un valor.
- No hay más tipo de datos Variant. Si tienen alguna variable de tipo no especificado, deben usar Object.
- La sintaxis del while...wend, cambió por while...end while
- Todos los métodos necesitan paréntesis para los parámetros
- No existe más isNull genérico , ahora deben preguntar por la propiedad isNull del objeto involucrado.
- No hay mas default para propiedades. Ahora deben especificar siempre la propiedad a la que quieren acceder.
- Se mantienen los objetos Server, Request, Response, Application and Session (asi que no tienen que hacer ningún cambio sobre ellos).
Modificaciones extras
Tags <% %>
Dentro de nuestras páginas, solíamos poner tags <% ... %> entre el código HTML para indicar código de rutinas o funciones de ASP. Ahora deben reemplazarlo por:
<script LANGUAGE="VBScript" runat="server">…. </script>
Include
El manejo de includes debe cambiarse al uso de User Controls.
En la versión de ASP, nosotros usábamos por ejemplo <!--#include virtual="/includes/links.asp"--> para poder reusar la pagina links.asp en varias páginas sin tener que escribir el código en distintas páginas.
Ahora en ASP.NET tenemos los llamados UserControl que tienen el mismo objetivo. Para hacer este reemplazo deben seguir los siguientes pasos:
- Cambiar la extensión de links.asp a links.ascx
- Poner al principio de link.ascx la directiva <%@ Control Language="vb" %>
- Al cominezo de la página ASPX aingresar la directiva <%@ Register TagPrefix="cc" TagName="Links" Src="/links.ascx" %>
- Y en el lugar deseado de la pagina (donde antes estaba el #incluye) hay que cambiarlo a <cc:Links id="LinkId" runat="server" ></cc:Links>
Objetos COM
Muchas veces hacemos uso de objetos COM dentro de nuestras páginas, para que todo esto siga funcionando deben incluir una directiva al comienzo de la página para que estos objetos sigan funcionando como antes:
<%@ Page Language="vb" aspcompat="true">
Por ejemplo, si antes usaban ADO para el manejo de datos pueden seguir usándolo con este directiva, y en un segundo paso hacer los cambios a ADO.NET
Conclusión
Espero que este documento les haya sido de utilidad y los haga concientiziar sobre el tema de la migración. En conclusión: no es muy complicado migrar a ASP.NET, siempre es mas fácil migrar si la aplicación ASP existente estaba programada de forma bien estructura. Y para finalizar les recuerdo: trae muchas ventajas migrar... pero si la aplicación funciona correctamente quizás no sea necesario este paso.