fbpx
Wikipedia

Proyecto Mono

Mono es el nombre de un proyecto de código abierto iniciado por Ximian respaldado por Microsoft y actualmente impulsado por Novell (tras la adquisición de Ximian) para crear un grupo de herramientas libres, basadas en GNU/Linux y compatibles con .NET según lo especificado por el ECMA.

Mono
Información general
Tipo de programa Lenguaje de programación
Autor Miguel de Icaza
Desarrollador Xamarin
Lanzamiento inicial 30 de junio de 2004
Licencia GPL, LGPL y MIT
Información técnica
Programado en
Versiones
Última versión estable 6.8.0 15 de enero de 2020 (1 año, 6 meses y 19 días)
Enlaces
Sitio web oficial
Repositorio de código
Seguimiento de errores

Mono posee importantes componentes útiles para desarrollar software:

Existe un proyecto similar, llamado Portable.NET, que es parte del proyecto dotGNU.

Historia

Tan pronto como Microsoft publicó los documentos que especifican la arquitectura .NET en diciembre de 2000, Miguel de Icaza (cofundador de la empresa Ximian y de la GNOME Foundation) comenzó a interesarse en ellos.

GNOME siempre había luchado por proporcionar facilidades al programador, y una de las características más conocidas es que existen multitud de bindings para poder utilizar cualquier lenguaje de programación para desarrollar aplicaciones. Pero la elaboración de dichos bindings era tremendamente laboriosa y cada vez que se realizaba un cambio en la interfaz original, era necesario cambiar todos y cada uno de los bindings.

Para intentar mejorar y facilitar la reutilización de código se realizó una implementación de componentes, llamada Bonobo, utilizando CORBA. Pero tampoco ha tenido éxito, ya que era necesario que todo el software utilizase esa característica y eso no fue así. Por tanto, con .NET se abre una nueva puerta para conseguir hacer de GNOME en un futuro un escritorio mejor y más atractivo tanto para usuarios como para programadores. Con esta tecnología por fin se consigue lo que el proyecto GNOME siempre había buscado, independencia del lenguaje para programar en dicho escritorio.

Miguel de Icaza, después de analizar el intérprete del byte code, advierte que no existen especificaciones. En febrero de 2001 comienza a indagar por dicha información en las listas de correo de .NET y al mismo tiempo comienza a trabajar en un compilador C# en cooperación con Rhys Weatherley y Jay Freeman, el mismo fue programado en C# como un ejercicio para demostrar su potencia.

En abril de 2001, la ECMA publica el formato de archivos faltante y en GUADEC (6 al 8 de abril de 2001) Icaza demuestra las habilidades de su compilador. Después de un minucioso análisis, donde claramente se concluye que es posible construir esa tecnología, Ximian reasigna recursos humanos de otros proyectos y crea el equipo Mono.[2]​ Aspirando a tener una herramienta que fuese un sustituto completo de la tecnología .NET, formaron The Mono Open Source Project, el cual fue anunciado en julio de 2001, en la conferencia de O’Reilly.

Pasaron 3 años hasta que el 30 de junio de 2004 Mono 1.0 finalmente fue lanzado.

Componentes

 
Arquitectura simplificada de Mono.

Bibliotecas de clase

Las bibliotecas de clase proveen un conjunto de facilidades que ayudan al desarrollo de aplicaciones. Son escritas en primer lugar en C#, pero gracias al lenguaje común de especificación (CLS), las mismas pueden ser invocadas en cualquier otro lenguaje de .NET. Las bibliotecas de clase están estructuradas en espacios de nombres (namespaces) y puestas en producción en bibliotecas compartidas denominadas assemblies o ensamblados. Cuando hablamos del framework de .NET, nos estamos refiriendo en primer lugar a las bibliotecas de clase.[JAC]

Espacios de Nombres (namespaces) y Ensamblados (assemblies)

Los espacios de nombres son un mecanismo que permite agrupar lógicamente clases similares en una estructura jerárquica, evitando así conflictos de nombres. La estructura se implementa utilizando palabras separadas por puntos. Por ejemplo, System.IO o System.Net agrupan las clases para acceso a ficheros y para comunicaciones de red, respectivamente.

Los ensamblados son el paquete físico de las bibliotecas de clase. Son archivos con extensión.dll, como las bibliotecas de Windows. Ejemplos de bibliotecas son mscorlib.dll, System.dll, System.Data.dll.

Los espacios de nombres, por lo general, están compuestos por muchos ensamblados y un ensamblado puede estar compuesto de varios archivos.

Lenguaje Común de Infraestructura (CLR)

El lenguaje común de infraestructura o más comúnmente llamado Common Language Runtime (CLR) es implementado por el ejecutable de Mono. El runtime es utilizado para correr aplicaciones compiladas en .NET. Este lenguaje común de infraestructura está definido en los estándares ECMA y ECMA-335. Para ejecutar una aplicación se deberá invocar el runtime con los parámetros adecuados.

Lenguaje Común de Especificación (CLS)

Se encuentra especificado en el estándar ECMA-335 y define la interfaz con el CLR. Por ejemplo, convenciones sobre el tipo de datos que se utilizará para implementar los enumerados. El compilador Mono genera una imagen que cumple con el CLS, esta imagen está codificada en el denominado Common Intermediate Language (CIL) o Lenguaje Intermedio Común. El runtime de Mono toma dicha imagen y la ejecuta.

Mono y las patentes de Microsoft

La implementación de Mono de esos componentes de .NET no sometidos a ECMA para su estandarización ha levantado algunas preocupaciones por la posible violación de patentes de software durante la vida del proyecto. En particular, la discusión se desarrolló por si Microsoft podría o no destruir al proyecto mono mediante demandas sobre las patentes violadas.

En la actualidad existe un vivo debate sobre la (in)conveniencia de aceptar y usar Mono en la comunidad de desarrolladores de GNU/Linux. Los principales argumentos en contra de Mono son:

  • No está libre de patentes de software.
  • Existe el riesgo de que Microsoft exija licencias para usar C# / CLI.[3]

Por otra parte, el proyecto Gnome está desarrollando un lenguaje alternativo, Vala, creado específicamente para desarrollar aplicaciones para Gnome, pero libre de las potenciales amenazas de Microsoft.

Véase también

Enlaces externos

  • Mono-Project.com, Página principal del proyecto, en inglés.
  • MonoDevelop.com, IDE de desarrollo, en inglés.
  • Mono Remoting
  • SharpDevelop2, IDE de desarrollo para Windows con soporte para compilación con Mono
  • Aplicaciones con GUI en Mono: ¿Gtk# o Windows Forms?

Planetas

  • Oficial

Referencias

  1. Visual Basic.NET support in Mono.
  2. . 13 de octubre de 2003. Archivado desde el original el 6 de junio de 2011. 
  3. Nickell, Seth (19 de mayo de 2004). «Why Mono is Currently An Unacceptable Risk» (en inglés). Consultado el 9 de abril de 2014. 
  •   Datos: Q722656

proyecto, mono, mono, nombre, proyecto, código, abierto, iniciado, ximian, respaldado, microsoft, actualmente, impulsado, novell, tras, adquisición, ximian, para, crear, grupo, herramientas, libres, basadas, linux, compatibles, según, especificado, ecma, monoi. Mono es el nombre de un proyecto de codigo abierto iniciado por Ximian respaldado por Microsoft y actualmente impulsado por Novell tras la adquisicion de Ximian para crear un grupo de herramientas libres basadas en GNU Linux y compatibles con NET segun lo especificado por el ECMA MonoInformacion generalTipo de programaLenguaje de programacionAutorMiguel de IcazaDesarrolladorXamarinLanzamiento inicial30 de junio de 2004LicenciaGPL LGPL y MITInformacion tecnicaProgramado enCC Extensible Markup LanguageVersionesUltima version estable6 8 0 15 de enero de 2020 1 ano 6 meses y 19 dias EnlacesSitio web oficial Repositorio de codigo Seguimiento de errores editar datos en Wikidata Mono posee importantes componentes utiles para desarrollar software Una maquina virtual de infraestructura de lenguaje comun CLI que contiene un cargador de clases un compilador en tiempo de ejecucion JIT y unas rutinas de recoleccion 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 Visual Basic 1 Java y Python El CLR y el Sistema de tipos comun Common Type System CTS permite que la aplicacion y las bibliotecas sean escritas en una amplia variedad de lenguajes diferentes que compilen para byte code Esto significa que si por ejemplo se define una clase que realice una manipulacion algebraica en C esta pueda ser reutilizada en cualquier lenguaje compatible con CLI Puede crear una clase en C una subclase en C e instanciar esa clase en un programa en Eiffel Un sistema de objetos unico system de hilos bibliotecas de clases y sistema recolector de memoria pueden ser compartidos por todos estos lenguajes Es un proyecto independiente de la plataforma Actualmente Mono funciona en GNU Linux OpenBSD FreeBSD UNIX Mac OS X Solaris y plataformas Windows Existe un proyecto similar llamado Portable NET que es parte del proyecto dotGNU Indice 1 Historia 2 Componentes 2 1 Bibliotecas de clase 2 2 Espacios de Nombres namespaces y Ensamblados assemblies 2 3 Lenguaje Comun de Infraestructura CLR 2 4 Lenguaje Comun de Especificacion CLS 3 Mono y las patentes de Microsoft 4 Vease tambien 5 Enlaces externos 5 1 Planetas 6 ReferenciasHistoria EditarTan pronto como Microsoft publico los documentos que especifican la arquitectura NET en diciembre de 2000 Miguel de Icaza cofundador de la empresa Ximian y de la GNOME Foundation comenzo a interesarse en ellos GNOME siempre habia luchado por proporcionar facilidades al programador y una de las caracteristicas mas conocidas es que existen multitud de bindings para poder utilizar cualquier lenguaje de programacion para desarrollar aplicaciones Pero la elaboracion de dichos bindings era tremendamente laboriosa y cada vez que se realizaba un cambio en la interfaz original era necesario cambiar todos y cada uno de los bindings Para intentar mejorar y facilitar la reutilizacion de codigo se realizo una implementacion de componentes llamada Bonobo utilizando CORBA Pero tampoco ha tenido exito ya que era necesario que todo el software utilizase esa caracteristica y eso no fue asi Por tanto con NET se abre una nueva puerta para conseguir hacer de GNOME en un futuro un escritorio mejor y mas atractivo tanto para usuarios como para programadores Con esta tecnologia por fin se consigue lo que el proyecto GNOME siempre habia buscado independencia del lenguaje para programar en dicho escritorio Miguel de Icaza despues de analizar el interprete del byte code advierte que no existen especificaciones En febrero de 2001 comienza a indagar por dicha informacion en las listas de correo de NET y al mismo tiempo comienza a trabajar en un compilador C en cooperacion con Rhys Weatherley y Jay Freeman el mismo fue programado en C como un ejercicio para demostrar su potencia En abril de 2001 la ECMA publica el formato de archivos faltante y en GUADEC 6 al 8 de abril de 2001 Icaza demuestra las habilidades de su compilador Despues de un minucioso analisis donde claramente se concluye que es posible construir esa tecnologia Ximian reasigna recursos humanos de otros proyectos y crea el equipo Mono 2 Aspirando a tener una herramienta que fuese un sustituto completo de la tecnologia NET formaron The Mono Open Source Project el cual fue anunciado en julio de 2001 en la conferencia de O Reilly Pasaron 3 anos hasta que el 30 de junio de 2004 Mono 1 0 finalmente fue lanzado Componentes Editar Arquitectura simplificada de Mono Bibliotecas de clase Editar Las bibliotecas de clase proveen un conjunto de facilidades que ayudan al desarrollo de aplicaciones Son escritas en primer lugar en C pero gracias al lenguaje comun de especificacion CLS las mismas pueden ser invocadas en cualquier otro lenguaje de NET Las bibliotecas de clase estan estructuradas en espacios de nombres namespaces y puestas en produccion en bibliotecas compartidas denominadas assemblies o ensamblados Cuando hablamos del framework de NET nos estamos refiriendo en primer lugar a las bibliotecas de clase JAC Espacios de Nombres namespaces y Ensamblados assemblies Editar Los espacios de nombres son un mecanismo que permite agrupar logicamente clases similares en una estructura jerarquica evitando asi conflictos de nombres La estructura se implementa utilizando palabras separadas por puntos Por ejemplo System IO o System Net agrupan las clases para acceso a ficheros y para comunicaciones de red respectivamente Los ensamblados son el paquete fisico de las bibliotecas de clase Son archivos con extension dll como las bibliotecas de Windows Ejemplos de bibliotecas son mscorlib dll System dll System Data dll Los espacios de nombres por lo general estan compuestos por muchos ensamblados y un ensamblado puede estar compuesto de varios archivos Lenguaje Comun de Infraestructura CLR Editar El lenguaje comun de infraestructura o mas comunmente llamado Common Language Runtime CLR es implementado por el ejecutable de Mono El runtime es utilizado para correr aplicaciones compiladas en NET Este lenguaje comun de infraestructura esta definido en los estandares ECMA y ECMA 335 Para ejecutar una aplicacion se debera invocar el runtime con los parametros adecuados Lenguaje Comun de Especificacion CLS Editar Se encuentra especificado en el estandar ECMA 335 y define la interfaz con el CLR Por ejemplo convenciones sobre el tipo de datos que se utilizara para implementar los enumerados El compilador Mono genera una imagen que cumple con el CLS esta imagen esta codificada en el denominado Common Intermediate Language CIL o Lenguaje Intermedio Comun El runtime de Mono toma dicha imagen y la ejecuta Mono y las patentes de Microsoft EditarLa implementacion de Mono de esos componentes de NET no sometidos a ECMA para su estandarizacion ha levantado algunas preocupaciones por la posible violacion de patentes de software durante la vida del proyecto En particular la discusion se desarrollo por si Microsoft podria o no destruir al proyecto mono mediante demandas sobre las patentes violadas En la actualidad existe un vivo debate sobre la in conveniencia de aceptar y usar Mono en la comunidad de desarrolladores de GNU Linux Los principales argumentos en contra de Mono son No esta libre de patentes de software Existe el riesgo de que Microsoft exija licencias para usar C CLI 3 Por otra parte el proyecto Gnome esta desarrollando un lenguaje alternativo Vala creado especificamente para desarrollar aplicaciones para Gnome pero libre de las potenciales amenazas de Microsoft Vease tambien EditarProyecto Mono Remoting Pagina en Wikipedia acerca de Remoting sobre el Proyecto Mono MonoDevelop DotGNU XSPEnlaces externos EditarMono Project com Pagina principal del proyecto en ingles MonoDevelop com IDE de desarrollo en ingles Mono Remoting SharpDevelop2 IDE de desarrollo para Windows con soporte para compilacion con Mono Aplicaciones con GUI en Mono Gtk o Windows Forms Programacion en Mono con C Curso de MonoPlanetas Editar Oficial En CastellanoReferencias Editar Visual Basic NET support in Mono Mono list Mono early history 13 de octubre de 2003 Archivado desde el original el 6 de junio de 2011 Nickell Seth 19 de mayo de 2004 Why Mono is Currently An Unacceptable Risk en ingles Consultado el 9 de abril de 2014 Datos Q722656Obtenido de https es wikipedia org w index php title Proyecto Mono amp oldid 132260164, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos