.NET
Si bien he tenido experiencia con el desarrollo de aplicaciones en .NET por alguna razón no he seguido utilizándolo, tal ves porque la licencia es un tanto cara y demanda de hardware poderoso, aquàpongo una breve reseña de lo que es .NET y una alternativa de programación en software libre.
.NET es un proyecto creado por Microsoft, creado para el desarrollo de software, con independencia de plataforma de hardware, basados en el concepto de integrar sus productos desde las aplicaciones de desarrollo hasta el sistema operativo, Algunos lenguajes desarrollados para el .NET son: c++, Visual Basic, C#, J#, Perl,
Python, Fortran, Cobol.NET y PowerBuilder, aunque en este momento son mas de 20 lenguajes soportados.
CRL y .NET framework
.NET Framework (marco de trabajo .NET) pretende reunir las ventajas de lenguajes como C, C++ y Visual Basic, en uno solo. El CLR es el verdadero núcleo del framework de .NET, entorno de ejecución en el que se cargan las aplicaciones desarrolladas en los distintos lenguajes, ampliando el conjunto de servicios del sistema operativo.
La herramienta de desarrollo compila el código fuente de cualquiera de los lenguajes soportados por .NET en un código intermedio, el MSIL (Microsoft Intermediate Lenguaje), similar al BYTECODE de Java. Para generarlo, el compilador se basa en la especificación CLS (Common Language Specification) que determina las reglas necesarias para crear el código MSIL compatible con el CLR.
Para ejecutarse se necesita un segundo paso, un compilador JIT (Just-In-Time) es el que genera el código maquina real que se ejecuta en la plataforma del cliente. De esta forma se consigue con .NET independencia de la plataforma de hardware. La compilación JIT la realiza el CLR a medida que el programa invoca métodos. El código ejecutable obtenido se almacena en la memoria caché del ordenador, siendo recompilado de nuevo sólo en el caso de producirse algún cambio en el código fuente.
El proyecto mono
Mono es el nombre de un proyecto de open sourse iniciado por Ximian con el objetivo de crear un grupo de herramientas libres, basadas en GNU/LINUX y compatibles con .NET. Actualmente Mono corre sobre Linux, FreeBSD, UNIX, Mac OS X y Windows.
Mono posee importantes componentes útiles para desarrollar software:
- Una maquina virtual de lenguaje común de infraestructura (CLI) que contiene un cargador de clases, un compilador de ejecución (JIT), y unas rutinas de recolección de memoria.
- Una biblioteca de clases que puede funcionar en cualquier lenguaje que funcione en el CLR (Common Language Runtime).
- Un compilador para el lenguaje C#, MonoBasic (la versión para mono de Visual Basic), java y Python.
- El CLR y el Sistema de tipos común (CTS) permite que la aplicación y las bibliotecas sean escritas en una amplia variedad de lenguajes diferentes que compilen para byte code.
- Un sistema de objetos único, sistema de hilos, bibliotecas de clases y sistema recolector de memoria pueden ser compartidos por todos estos lenguajes.
Datos interesantes.
La implementación de Mono para sustituir completamente .NET ha levantado algunas preocupaciones de la violación de la patente durante la vida del proyecto. En particular, la discusión se desarrolló en base a si Microsoft podrÃÂa o no destruir al proyecto mono mediante demandas sobre las patentes violadas.
Si bien .Net es una herramienta poderosa para el desarrollo de software Mono tambien lo es.
18 Jun 08 9:54 pm
Me gustaria agregar que el proyecto mono está liderado orgullosamente por un mexicano: Miguel de Icaza; quien tambien inició junto con Federico Mena-radica aquàen xalapa por cierto- el proyecto Gnome.Saludos