Programar usando el Framework .NET ¿en Linux?
Para muchos usuarios el cambio de plataforma de sistema operativo puede significar una inmensa alegría, para otros tantos, puede convertirse en una pesadilla, sobre todo si hacen uso de programas y tecnologías exclusivos de una sola plataforma.
Como desarrolladores de software, hemos conocido en algún momento de nuestras vidas a uno de los productos estrella de Microsoft: Visual Studio y, por consiguiente, a su famoso Framework .NET.
Visual Studio con el paso de los años se ha convertido en uno de los mejores IDE (Integrated Development Environment) del mercado para desarrollar aplicaciones de escritorio y web. No obstante, es un software comercial que tiene un costo y que sólo funciona en Windows.
Es importante aclarar ciertos conceptos sobre lo que es el Framework .NET de Microsoft y el porque sólo puede usarse bajo Windows, que nos permitirán entender que es el proyecto Mono y sus alcances.
El proyecto Mono no representa la migración del Framework .NET a Linux, sino más bien una implementación del CLI (Common Language Infrastructure) propuesto por Microsoft a la ECMA (European Computer Manufacturers Association).
El CLI es el alma y corazón del Framework .NET y no es un invento de Microsoft, sino un trabajo conjunto realizado por la ECMA y sus demás integrantes. Este organismo es uno de los más importantes a nivel internacional en lo que se refiere a estándares de computación y lenguajes de programación. Todos los miembros de organismo (entre los cuales se encuentra Microsoft) definieron hace tiempo lo que debieran ser un CLI y un ECMAScript. No obstante, ambos estándares no son tangibles en sí, sino más son un conjunto de especificaciones que debieran cumplirse para poder denominarse CLI o ECMAScript según sea el caso. Lo más interesante de todo esto es que ambos estándares son inter-plataforma (Cross-Plataform) lo que significa que cualquier implementación que se haga de cualquiera de ambos estándares debiera tener su implementación en otra plataforma distinta a la ‘original’ y las aplicaciones creadas en una plataforma pudieran ejecutarse en otra.
Ahora bien, el hecho de que el CLI de Microsoft esté sujeto a estandarización también significa que el Framework .NET ya es multiplataforma, al menos teóricamente. Además de que cualquier otra empresa u organización puede construir lenguajes de programación que hagan uso de este CLI. Sin embargo, no es el único ‘beneficio’ de esto, sino que también cualquier empresa u organización podría hacer su propia implementación del CLI (basándose en el de Microsoft y siguiendo las especificaciones de la ECMA) y terminar así con la restricción de desarrollo de aplicaciones que hagan uso del Framework .NET exclusivas para Windows.
Sabiendo lo anterior, la empresa Novell a través del Proyecto Mono ha decidido realizar su propia implementación del CLI para múltiples plataformas (openSUSE, Windows, Mac OS X, Solaris, etc.).
A continuación describimos algunas de las características más importantes sobre Mono 2.8 (versión más reciente del proyecto, publicada el 4 de octubre de 2010):
- C# 4.0
- El valor predeterminado es el perfil 4.0
- Nuevo motor de Garbage Collection
- Nuevos frameworks:
- ASP.NET 4.0
- ASP.NET MVC 2
- System.Dynamic
- Managed Extensibility Framework
- Parallel Framework
- System.XAML
- System.Data.Services.Client (OData client framework)
- WCF Routing
- .NET 4.0′s CodeContracts
- El comportamiento de Threadpool ha cambiado para que coincida con .NET 2.0
- Rendimiento
- Grandes mejoras de rendimiento
- Soporte para LLVM (Low Level Virtual Machine) ahora es estable
- Versión 2.0 de la embedding API
- Se ha eliminado el perfil 1.1 y varias bibliotecas obsoletas
- Soporte integrado para OpenBSD
- Lenguajes soportados: C#, F#, Java, Scala, Boo, Nemerle, Visual Basic.NET, Python (PythonNet y IronPython), JavaScript, Oberon, PHP, Object Pascal, LUA, Cobra.
- Compatibilidad de API´s Microsoft: ASP.NET, ADO.NET, Silverlight y Windows Forms sin recompilación.
Para mayor información:

