lunes, febrero 15, 2010

Migrar aplicación de ASP.NET Webforms a Mono

Hace un par de días me preguntaron, que se necesita para migrar una aplicación de ASP.NET Webforms a Mono y ejecutarla en un ambiente Linux.

Primeramente hay que conocer que según la pagina de ASP.NET Webforms de Mono, ASP.NET Webforms 2.0, ASP.NET Ajax y algunos controles 3.5 están soportados. Pero esto no es suficiente para algunas aplicaciones, ya que es posible que usen controles de 3ros. que no funcionan o funcionan correctamente en Mono, otro punto importante es que hay que recordar que los ambientes Linux son sensitivos a minúsculas/mayúsculas y si nuestra aplicaciones tiene archivos cuyos nombres están indistintos en minúsculas/mayúsculas muy probablemente vamos a tener problemas.

La opción segura para saber si nuestra aplicaciones puede funcionar o no en Mono es ejecutar MoMA, una aplicación para Windows que analiza nuestra aplicaciones ASP.NET Webforms y nos puede decir si todo esta bien o hay algo que no esta soportado en Mono.

Si nuestra aplicación no tiene ningún problema de acuerdo al reporte de MoMA, el siguiente paso es determinar si nuestra base de datos, usualmente MSSQL, server va a seguir en Windows o si también se va a migrar a MySQL o Postgresql.

Obviamente si se decide migrar la base de datos hay dos tareas importantes a realizar, la primera es convertir el esquema de MSSQL Server a la base de datos destino; la segunda tarea es que si nuestra aplicación hace uso de ADO.NET y estamos usando directamente las clases del namespace System.Data.SqlClient, vamos a tener que reemplazar esos objetos por los correspondientes a la base de datos destino.

Para MySQL hay que descargar el Connector/NET, el cual es un librería 100% .NET para conectarse a bases de datos MySQL. Si vamos a usar Postgresql, hay que descargar el Npgsql, librería 100% .NET para acceder a Postgresql.

SI ya llegamos hasta este punto y queremos publicar nuestra aplicación para que los usuarios se puedan conectar a ella; para tal efecto podemos utilizar el servidor Apache y el modulo Mod_Mono, que permite a Apache "servir" aplicaciones .NET.

Adicionalmente si vamos a desarrollar aplicaciones directamente desde Mono, una buena opción es descargar el ambiente de desarrollo llamado MonoDevelop; de esta forma vamos a poder desarrollar, modificar y depurar nuestras aplicaciones.

Sobre como instalar Mono, MySQL, Postgresql y Apache en Linux, va a depender de nuestra distribución, pero generalmente todas cuentan con un sistema de distribución de aplicaciones de donde podemos elegir tales aplicaciones para instalar. Como dato adicional, Ubuntu y SuSe son distribuciones "amigables" con Mono, por lo tanto ambas son recomendadas.http://mono-project.com/


No hay comentarios.: