asp.net asp-classic vbscript refactoring migration

Migre(monolítico) ASP clásico a ASP.Net



asp-classic vbscript (2)

Durante muchos años he tenido el objetivo de pasar de ASP / VBScript a un lenguaje "mejor" (mi preferencia sería C # ya que tengo habilidades en C), pero también consideraría otros lenguajes (incluido PHP, etc., así que no solo DotNet). )

El objetivo es tener la base de código en un lenguaje que hace más por nosotros. Odio la falta de datos en VBScript, me gustaría tener varios "objetos contenedores" diferentes, en lugar de solo un objeto de diccionario, y así sucesivamente. De hecho, me pregunto por qué, habiendo pasado de Basic a C en los 80, y luego C ++ un rato después de eso, logré moverme "atrás" a Basic in a 00''s.

(Podría programar los objetos del contenedor en VBScript, pero mi instinto es que serían de operación lenta, tenemos un caché significativo de "fragmentos" de HTML utilizados en la representación de la página, el objeto de aplicación ASP es un instrumento bastante contundente !

Mi ASP / VBScript es una sola aplicación grande que es básicamente un "motor" para entregar contenido web.

Han pasado muchos años en la fabricación, y ahora el código ASP cambia rara vez. (Así que tengo que justificar moverlo en absoluto, o simplemente vivir con VBScript "para siempre")

Se maneja desde datos en una base de datos MS SQL.

Solo hay una página .ASP (compuesta de varios archivos incluidos).

En función de los parámetros de cadena de consulta, las plantillas Skin y CMS para la página se cargan desde la base de datos y Sprocs de la base de datos adecuada se ejecutan para adquirir datos que se fusionan en las plantillas CMS.

Los datos sobre la página (métodos para usar, etc.) también se recuperan de la base de datos, junto con los detalles de los permisos de acceso, etc.

Por lo que he leído, algunas de estas cosas pueden facilitar la migración:

Las sesiones ASP no se utilizan: se usa una cookie de sesión para recuperar los datos de la sesión de la base de datos (para poder compartir una sesión de mitad a mitad con ASPX fácilmente)

VBScript utiliza OPTION EXPLICIT en todo momento, por lo que todas las variables están predefinidas.

Todos los resultados se obtienen a través de Response.Write (de hecho, la mayoría del contenido se fusiona en una sola variable y luego se genera). No hay una mezcla de HTML y <% server code%>.

Tengo algunas clases de VBScript, pero no muchas.

Tengo muchas funciones de VBScript y algunas subrutinas.

Tengo un banco de pruebas. Esto capta capturas de pantalla del navegador y las compara gráficamente con imágenes maestras, por lo que tengo la capacidad de hacer una prueba de regresión.

No tengo el recurso para hacer una reescritura completa; el mantenimiento del código existente debe continuar durante la migración; pero habiendo dicho que el 99% de nuestro trabajo está en CMS o SQL Sprocs, los cambios en el código ASP son poco frecuentes.

He leído sobre la utilidad de MS para migrar código ASP a VB.NET. Dado que mi código es 100% VBScript y no hay mezcla de HTML / Script, ¿apreciaría las opiniones sobre si esto me ayudaría mucho o poco?

Estaría encantado de refactorizar STAYING IN VBscript con el objetivo de facilitar la migración a DotNet más adelante (pero necesitaría saber cuáles eran mis objetivos al hacer eso :)). Podría, por ejemplo, mover algunas / todas las funciones a un objeto COM, y probablemente podría hacer eso poco a poco?

Gracias por tu ayuda


Tengo una gran intranet clásica ASP que mantenía hasta el año pasado, y estaba envejeciendo, pero todavía se estaban agregando nuevas piezas en ASP clásico porque ya había mucho código de biblioteca invertido. Ya tiene una buena configuración si no está cambiando el código ASP a menudo y tiene algún tipo de prueba en su lugar. (Tengo que admitir que es la primera vez que escucho sobre el enfoque de captura de pantalla). Si todo se expulsa de la base de datos y funciona. no lo rompas

PHP le dará el mismo problema de tipos variantes, pero le dará un mundo de opciones y elecciones que hacen que ASP clásico parezca un juguete para niños. Fuera de la caja PHP hace todo lo que siempre he necesitado hacer.

ASP.net es un marco GRANDE. Comprenderlo de manera adecuada y completa no es una tarea fácil, y me sorprende muy a menudo. trata de hacer cosas para los desarrolladores que provienen de un entorno de formularios de forma automática que se vuelven muy molestos cuando se obtiene una metodología de renderizado muy precisa como la que suena. Me encontré luchando contra la tecnología todo el tiempo, hasta que apareció ASP.net MVC. Se ajustaba mejor a mi mente por cómo funcionaba e hizo lo que le pedí, y nada más. C # es un lenguaje impresionante, con características brillantes y el marco DOT.net le permite hacer cualquier cosa, si puede encontrar las piezas correctas. Hay tanto de lo que se encontrará ocasionalmente escribiendo algo que ya se ha hecho en el marco, solo para encontrarlo justo después de terminar su propia implementación.

En realidad, la migración podría generar algunos problemas interesantes. A pesar de que PUEDE ejecutar una página ASP.net de forma muy parecida a una página ASP clásica, perderá muchos de los beneficios del entorno tal como está previsto. Dicho esto, realicé algunas pruebas para analizar la migración del sitio en cuestión a ASP.net y logré encontrar la manera de sortear la mayoría de los obstáculos y llegar a la conclusión de que dicha migración sería, de hecho, "un mero trabajo". La gran cantidad de horas-hombre que tomaría hacer tal migración hizo que la empresa no sea factible.

Personalmente, no sugeriría tal migración a menos que tenga algunos proyectos de ASP.net con éxito y esté al tanto de los problemas que asp.net trae consigo.

No he visto la herramienta de conversión de ASP a ASP.net de la que hablas, pero me encantaría obtener un enlace a ella.

Si se aloja en VBScript y no conoce el proyecto AX (ASP Xtreme Evolution) aquí, le sugiero que lo busque como inspiración para pasar varias de las "limitaciones" clásicas de ASP y para la biblioteca de funcionalidades que proporciona. .


Si está buscando una manera de justificar el proyecto para la administración, será cada vez más difícil encontrar desarrolladores clásicos de ASP para continuar manteniendo la aplicación. Cualquier desarrollador que tenga una opción probablemente no elija mantener una aplicación creada con VBScript. Los desarrolladores que acepten el trabajo podrían considerarlo temporal y continuar buscando otro trabajo.

Aunque no he escuchado nada de Microsoft, no pueden pasar muchos años antes de que decidan retirar por completo el ASP clásico.