viernes, 26 de febrero de 2010

Visual Studio y Monodevelop

A la hora de trabajar en los proyectos de desarrollo en que me he visto involucrado profesionalmente, siempre lo he hecho con Visual Studio 2005/2008, puesto que desarrollo en .NET. En mis experimentos de migración total hacia Linux, he librado algunas pequeñas batallas. Una de ellas es el tratar de correr mis proyectos de ASP.NET en Linux, y me he llevado sorpresas tanto agradables como desagradables.

Entre las sorpresas agradables, es que puedo migrar casi la totalidad de mis aplicaciones nativas de .NET a mono sin problemas. El problema es que cuando las aplicaciones involucran elementos de terceros tal como conectores o drivers para bases de datos específicas, no siempre se tiene buena suerte. En mi caso, el problema fue Informix. Al intentar conectarme a una instancia de Informix Dynamic Server 9.4, la única opción existente al menos al momento de mi prueba, que fue hace unos 3 meses, era utilizar UnixODBC para conectarme a través de ODBC. Lo malo es que el driver ODBC de Informix limita en gran medida la funcionalidad a la que podemos acceder con el driver nativo de .NET, y como muchos de mis procedimientos ya estaban diseñados de forma que se aprovechan ciertas características, tendría que reprogramar varias cosas para hacerlo funcionar con el driver ODBC, y eso sin mencionar el menor rendimiento del mismo.

Otro punto malo fue que los controles de terceros (Infragistics .NET Advantage 2006) no se pueden migrar a mono, ya que aun no hay una implementación adecuada de esta suite. Lo mismo sucede con la suite de Telerik RadControls para ASP.NET, aunque de esta última ya existe una nueva versión con soporte para Mono. Sin embargo, no pensaba al menos por el momento en volver a pagar por la licencia de la suite.

Otro punto débil que aún tiene la plataforma para muchos programadores (a lo mejor para muchos no) es el IDE. MonoDevelop es un buen IDE por sí solo, pero si nos ponemos a hacer la comparación con Visual Studio, aún le falta mucho camino por recorrer. El depurador aún no es capaz de depurar aplicaciones de ASP, aunque ya está en desarrollo e incluso existe una versión anticipada del mismo.

Fuera de eso, la mayoría de aplicaciones se pueden migrar sin problemas, demostrando el gran potencial de esta implementación de la plataforma de .NET en Linux.

El proyecto Mono es muy prometedor, e incluso ahora es bastante bueno, creo que toda una proeza, ya que todo fue reimplementado; sin embargo creo que finalmente es Microsoft quien pone la pauta cuando de desarrollo en .NET se trata, por lo que al parecer Mono y MonoDevelop están destinados a seguirle siempre los pasos. Con esto me refiero a que las nuevas características se encontrarán primero en Visual Studio y Mono tardará un tiempo en implementarlas, como sucede con las versiones de Silverlight y Moonlight en Mono.

El lenguaje C# es muy práctico, y me gusta mucho utilizarlo para programar, es perfecto para aplicaciones de negocio y de usuario, pero para cosas más "serias", en mi opinión C y C++ siguen siendo los indiscutidos reyes.