Mono es un marco de software libre y de código abierto que tiene como objetivo ejecutar software creado para .NET Framework en Linux y otros sistemas operativos. Originalmente desarrollado por Ximian , empresa adquirida por Novell , posteriormente fue desarrollado por Xamarin , empresa adquirida por Microsoft . [ 4 ] En agosto de 2024, Microsoft transfirió la propiedad de Mono a WineHQ . [ 5 ]
Historia

Cuando Microsoft anunció por primera vez su .NET Framework en junio de 2000, se describió como "una nueva plataforma basada en estándares de Internet" [ 6 ] y en diciembre de ese año, la infraestructura de lenguaje común subyacente se publicó como un estándar abierto, "ECMA-335" [ 7 ] , lo que abrió el potencial para implementaciones independientes. [ 8 ] Miguel de Icaza de Ximian creía que .NET tenía el potencial de aumentar la productividad de los programadores y comenzó a investigar si una versión para Linux era factible. [ 9 ] Reconociendo que su pequeño equipo no podía esperar construir y mantener un producto completo, lanzaron el proyecto de código abierto Mono el 19 de julio de 2001, en la conferencia de O'Reilly .
Después de tres años de desarrollo, Mono 1.0 fue lanzado el 30 de junio de 2004. [ 10 ] Mono evolucionó desde su enfoque inicial de una plataforma de desarrollo para aplicaciones de escritorio Linux hasta admitir una amplia gama de arquitecturas y sistemas operativos, incluidos los sistemas embebidos. [ 11 ]
Novell adquirió Ximian en 2003. Después de que Novell fuera adquirida por Attachmate en abril de 2011, Attachmate anunció cientos de despidos para la fuerza laboral de Novell, [ 12 ] poniendo en duda el futuro de Mono. [ 13 ] [ 14 ]
El 16 de mayo de 2011, Miguel de Icaza anunció en su blog que Mono seguiría recibiendo soporte de Xamarin , una empresa que fundó tras ser despedido de Novell. El equipo original de Mono también se había trasladado a la nueva empresa. Xamarin planeaba seguir trabajando en Mono y había planeado reescribir desde cero las pilas .NET propietarias para iOS y Android , ya que Novell aún era propietaria de MonoTouch y Mono para Android en ese momento. [ 15 ] Tras este anuncio, se cuestionó el futuro del proyecto, dado que MonoTouch y Mono para Android competían directamente con las ofertas comerciales existentes, ahora propiedad de Attachmate , y considerando que el equipo de Xamarin tendría dificultades para demostrar que no utilizaban tecnologías que habían desarrollado anteriormente cuando trabajaban para Novell en el mismo proyecto. [ 16 ] Sin embargo, en julio de 2011, Novell, ahora filial de Attachmate, y Xamarin, anunciaron que otorgaban una licencia perpetua a Xamarin para Mono, MonoTouch y Mono para Android, asumiendo oficialmente la dirección del proyecto. [ 17 ] [ 18 ]
El 24 de febrero de 2016, Microsoft anunció que había firmado un acuerdo definitivo para adquirir Xamarin. [ 19 ]
El 27 de agosto de 2024, Microsoft transfirió la propiedad de Mono a WineHQ, el equipo de desarrolladores de Wine , una capa de compatibilidad con Windows. [ 5 ]
Estado actual y hoja de ruta
La versión actual de Mono es la 6.12.0 ( a fecha de junio de 2024). Esta versión proporciona la API principal de .NET Framework y compatibilidad con Visual Basic.NET y C# 7.0. LINQ to Objects , XML y SQL forman parte de la distribución. Windows Forms 2.0 también es compatible, pero no se desarrolla activamente, por lo que su compatibilidad con Mono es incompleta. [ 20 ] La versión 4.0 fue la primera que incorporó el código fuente original de Microsoft, publicado por Microsoft como parte del proyecto .NET Core .
A fecha de 14 de enero de 2021, Mono ofrece compatibilidad total con todas las características de .NET 4.7, excepto Windows Presentation Foundation (WPF) (que el equipo de Mono no tiene previsto admitir debido a la cantidad de trabajo que requeriría) [ 20 ] y Windows Workflow Foundation (WF), y solo ofrece compatibilidad limitada con Windows Communication Foundation (WCF) y la pila asíncrona de ASP.NET. Sin embargo, System.Web y WCF son candidatos para una migración casi inmediata desde la fuente de referencia de .NET a Mono. [ 21 ] Algunas partes faltantes de .NET Framework están en desarrollo en un subproyecto experimental de Mono llamado Olive . [ 22 ]
El proyecto Mono también ha creado un compilador de Visual Basic .NET y un entorno de ejecución diseñado para ejecutar aplicaciones VB.NET. Actualmente, su desarrollo está a cargo de Rolf Bjarne Kvinge.
Luz de la luna
Una implementación de código abierto de Microsoft Silverlight , llamada Moonlight , se incluyó desde Mono 1.9. [ 23 ] Moonlight 1.0, que admite las API de Silverlight 1.0, se lanzó el 20 de enero de 2009. Moonlight 2.0 admite Silverlight 2.0 y algunas características de Silverlight 3.0. [ 24 ] En febrero de 2010 se anunció una versión preliminar de Moonlight 3.0 que contiene actualizaciones para la compatibilidad con Silverlight 3. [ 25 ]
El proyecto Moonlight fue abandonado el 29 de mayo de 2012. [ 26 ] Según Miguel, dos factores sellaron el destino del proyecto: Microsoft añadió "restricciones artificiales" que "lo hicieron inútil para la programación de escritorio", y la tecnología no había logrado suficiente aceptación en la web. Además, Microsoft dejó de dar soporte a Silverlight en 2012.
Componentes monocomponentes
Mono consta de tres grupos de componentes:
- Componentes principales
- Pila de desarrollo Mono/Linux/GNOME
- Pila de compatibilidad de Microsoft
Los componentes principales incluyen el compilador de C#, la máquina virtual para la Infraestructura de Lenguaje Común y las bibliotecas de clases principales. Estos componentes se basan en los estándares Ecma-334 y Ecma-335 , [ 27 ] lo que permite a Mono proporcionar una máquina virtual CLI libre, de código abierto y compatible con los estándares . Microsoft emitió una declaración que abarca ambos estándares bajo su licencia Community Promise . [ 28 ]
El conjunto de herramientas de desarrollo Mono/Linux/GNOME proporciona herramientas para el desarrollo de aplicaciones utilizando las bibliotecas existentes de GNOME y de código abierto . Estas incluyen: Gtk# para el desarrollo de interfaces gráficas de usuario (GUI), bibliotecas de Mozilla para trabajar con el motor de renderizado Gecko , bibliotecas de integración Unix (Mono.Posix), bibliotecas de conectividad de bases de datos, un conjunto de seguridad y el lenguaje de esquema XML RelaxNG . Gtk# permite que las aplicaciones Mono se integren en el escritorio GNOME como aplicaciones nativas. Las bibliotecas de bases de datos proporcionan conectividad a las bases de datos objeto-relacionales db4o , Firebird , Microsoft SQL Server (MSSQL), MySQL , Open Database Connectivity (ODBC), Oracle , PostgreSQL , SQLite y muchas otras. El proyecto Mono realiza un seguimiento del desarrollo de componentes de bases de datos en su sitio web. [ 29 ]
La pila de compatibilidad de Microsoft proporciona una vía para portar aplicaciones .NET de Windows a Linux . Este grupo de componentes incluye ADO.NET , ASP.NET y Windows Forms (y libgdiplus), entre otros. Dado que estos componentes no están cubiertos por los estándares Ecma , algunos de ellos siguen generando inquietudes y preocupaciones en materia de patentes .
Arquitectura del marco
Los componentes principales de Mono incluyen:
- Motor de ejecución de código
- Bibliotecas de clase
- Biblioteca de clases base
- Bibliotecas de clases de compatibilidad con .NET
- Bibliotecas de clases específicas de Mono:
- Bibliotecas de clases multiplataforma para Mono y .NET (Gtk#, Mono.Cecil , Mono.CSharp, Text.Templating)
- Bibliotecas de clases específicas de Unix (POSIX, Sistema de archivos en espacio de usuario (FUSE), curses)
- Bibliotecas de clases específicas para cada plataforma (enlaces para: Mac, iOS, Android, MeeGo)
- Ensamblajes CLI
- Metadatos de la CLI
- Entorno de ejecución de lenguaje común de Mono
- Compatible con ECMA Common Language Infrastructure / .NET Common Language Runtime
- Mejoras monoespecíficas:
- Compatibilidad con Mono.SIMD
- Corrutinas y continuaciones mono.
- Mejoras monoespecíficas
- Servicios de interoperabilidad nativos e interoperabilidad COM
- Seguridad - Marco de código transparente
Motor de ejecución de código
El entorno de ejecución de Mono contiene un motor de ejecución de código que traduce los códigos de bytes ECMA CIL a código nativo y admite varios procesadores: ARM , MIPS (solo en modo de 32 bits), SPARC , PowerPC , z/Architecture , IA-32 , x86-64 e IA-64 para modos de 64 bits.
El generador de código se expone en tres modos:
- Compilación justo a tiempo (JIT): El entorno de ejecución convertirá los códigos de bytes ECMA CIL en código nativo a medida que se ejecuta el código.
- Compilación anticipada (AOT): este código transforma los códigos de bytes ECMA CIL (que normalmente se encuentran en un archivo .exe o .dll) y genera código nativo almacenado en un archivo específico del sistema operativo, la arquitectura y la CPU (por ejemplo, para un archivo foo.exe, generaría foo.exe.so en Linux). Este modo de operación compila la mayor parte del código que normalmente se ejecuta en tiempo de ejecución. Existen algunas excepciones, como los trampolines y otro código administrativo, que aún requieren el compilador JIT para funcionar, por lo que las imágenes AOT no son completamente autónomas.
- Compilación estática completa: este modo solo es compatible con algunas plataformas y lleva el proceso de compilación anticipada un paso más allá, generando todos los trampolines, envoltorios y proxies necesarios en un archivo estático que se puede enlazar estáticamente a un programa, eliminando la necesidad de un compilador JIT en tiempo de ejecución. Se utiliza en los sistemas operativos iOS de Apple , PlayStation 3 de Sony y Xbox 360 de Microsoft .
A partir de Mono 2.6, es posible configurar Mono para que utilice LLVM como motor de generación de código en lugar de su propio motor de generación de código. Esto resulta útil para cargas de computación de alto rendimiento y otras situaciones en las que el rendimiento de ejecución es más importante que el rendimiento de inicio.
A partir de la versión preliminar de Mono 2.7, ya no es necesario elegir un motor u otro durante la configuración. El motor de generación de código se puede seleccionar al inicio mediante los argumentos de línea de comandos --llvmo --nollvm, y por defecto se utiliza el motor de generación de código Mono, que arranca rápidamente.
A partir de Mono 5.18, la compatibilidad con LLVM es una opción de configuración predeterminada. Las versiones anteriores requerían una bifurcación especial de LLVM, pero ahora Mono puede recurrir a su propio generador de código cuando encuentra algo que LLVM no maneja. [ 30 ]
Recolector de basura
A partir de Mono 2.8, el entorno de ejecución de Mono incluye dos recolectores de basura : un recolector generacional y el recolector de basura conservador de Boehm-Demers-Weiser . El recolector de basura de Boehm podría presentar fugas de memoria en ciertas clases de aplicaciones, lo que lo hace inadecuado para algunas aplicaciones de servidor de larga duración. [ 31 ] [ 32 ] Mono cambió a Simple Generational GC (SGen-GC) como recolector predeterminado en la versión 3.1.1.
El recolector de basura SGen tiene muchas ventajas sobre un escáner conservador tradicional. Utiliza la recolección de basura generacional, donde los nuevos objetos se asignan desde un grupo de memoria de tipo "native" (native nursery). Durante el ciclo de recolección de basura, todos los objetos que sobrevivieron se migran a un grupo de memoria de generación anterior. La idea es que muchos objetos son transitorios y se pueden recolectar rápidamente, mientras que solo unos pocos son objetos de larga duración que existen durante toda la vida útil de la aplicación. Para mejorar el rendimiento, este recolector asigna grupos de memoria a cada hilo para que estos asignen nuevos bloques de memoria sin tener que coordinarse con otros hilos. La migración de objetos del grupo de memoria de tipo "native" al grupo de memoria de generación anterior se realiza copiando los datos del grupo de memoria de tipo "native" al grupo de memoria de generación anterior y actualizando cualquier puntero activo que apunte a los datos para que apunte a la nueva ubicación. Esto puede ser costoso para objetos grandes, por lo que SGen de Mono utiliza un grupo de memoria separado para objetos grandes (Sección de Objetos Grandes) y un algoritmo de marcado y barrido para dichos objetos. [ 31 ]
Biblioteca de clases
La biblioteca de clases proporciona un conjunto completo de herramientas para el desarrollo de aplicaciones. Están escritas principalmente en C#, pero gracias a la Especificación de Lenguaje Común (CLS) pueden ser utilizadas por cualquier lenguaje .NET. La biblioteca de clases está estructurada en espacios de nombres y se implementa en bibliotecas compartidas conocidas como ensamblados. Al hablar de .NET Framework, nos referimos principalmente a esta biblioteca de clases. [ 33 ]
Espacios de nombres y ensamblados
Los espacios de nombres son un mecanismo para agrupar lógicamente clases similares en una estructura jerárquica. Esto evita conflictos de nombres. La estructura se implementa mediante palabras separadas por puntos, donde el espacio de nombres de nivel superior más común es System, como System.IO y System.Net. También existen otros espacios de nombres de nivel superior, como Accessibility y Windows. Un usuario puede definir un espacio de nombres colocando elementos dentro de un bloque de espacio de nombres.
Los ensamblados son el empaquetado físico de las bibliotecas de clases. Se trata de archivos .dll, similares a las bibliotecas compartidas de Win32 (aunque no deben confundirse con ellas). Algunos ejemplos de ensamblados son mscorlib.dll, System.dll, System.Data.dll y Accessibility.dll. Los espacios de nombres suelen estar distribuidos entre varios ensamblados, y un ensamblado puede estar compuesto por varios archivos.
Infraestructura de lenguaje común y especificación de lenguaje común
La infraestructura de lenguaje común (CLI) , implementada por el entorno de ejecución de lenguaje común (CLR) , se implementa mediante el ejecutable Mono. Este entorno compila y ejecuta aplicaciones .NET. La infraestructura de lenguaje común está definida por el estándar ECMA. [ 27 ] Para ejecutar una aplicación, debe invocar el entorno de ejecución con los parámetros correspondientes.
La Especificación del Lenguaje Común (CLS) se especifica en el capítulo 6 de ECMA-335 y define la interfaz para la CLI, incluyendo convenciones como los tipos subyacentes para Enum. El compilador Mono genera una imagen que cumple con la CLS. Este es el Lenguaje Intermedio Común. El entorno de ejecución de Mono toma esta imagen y la ejecuta. El estándar ECMA define formalmente una biblioteca que cumple con la CLS como un marco de trabajo.
Código administrado y no administrado
En una aplicación nativa .NET/Mono, todo el código está administrado ; es decir, se rige por el estilo de administración de memoria y seguridad de subprocesos de la CLI. Otras aplicaciones .NET o Mono pueden usar código heredado, denominado no administrado, mediante las bibliotecas System.Runtime.InteropServices para crear enlaces C#. Muchas bibliotecas incluidas en Mono utilizan esta característica de la CLI, como Gtk# .
Innovaciones monoespecíficas
Mono ha innovado en algunas áreas con nuevas extensiones a las especificaciones principales de C# y CLI:
- Compilador de C# como servicio (Utilice el compilador de C# como una biblioteca). [ 34 ]
- Shell interactivo de C#. [ 35 ]
- Soporte SIMD [ 36 ] como parte del espacio de nombres Mono.SIMD, donde las llamadas a métodos de tipos de vectores especiales se asignan directamente a las instrucciones SIMD de la CPU del procesador subyacente.
- Compilación estática completa del código .NET [ 37 ] (utilizada en Mono/iPhone, Mono/PS3).
- Corrutinas mono (utilizadas para implementar código de microhilos y continuaciones , principalmente para desarrolladores de juegos). [ 38 ]
- Inyección de ensamblaje en procesos en vivo. [ 39 ]
- Uso de LLVM como backend JIT.
- Cxxi y CppSharp ofrecen interoperabilidad directa con código y bibliotecas de C++.
Además, Mono está disponible en una variedad de sistemas operativos y arquitecturas. [ 40 ]
Requisitos del sistema
Windows 7, Windows 8, Windows 8.1, Windows 10, macOS o Linux
Proyectos relacionados
Varios proyectos extienden Mono y permiten a los desarrolladores usarlo en su entorno de desarrollo. Estos proyectos incluyen:
Multiplataforma:
- Banshee Media Player (proyecto paralizado), un reproductor multimedia multiplataforma creado con Mono y Gtk#, y también un controlador de docenas de bibliotecas y proyectos basados en C# para el manejo de medios.
- Beagle (sin mantenimiento), un sistema de búsqueda para sistemas Unix.
- Gecko#, enlaces para integrar el motor de diseño utilizado en Mozilla ( Gecko ).
- Gtk# , envoltorios de C# para las bibliotecas subyacentes GTK y GNOME , escritos en C y disponibles para Linux, MacOS y Windows.
- Mono Migration Analyzer (MoMA) es una herramienta que ayuda a los desarrolladores de Windows .NET a encontrar áreas en su código que podrían no ser multiplataforma y, por lo tanto, no funcionar en Mono en Linux y otros sistemas Unix. No se ha actualizado desde Mono 2.8 (2013); en su lugar, utilice el Analizador de portabilidad de .NET de Microsoft (dotnet-apiport).
- MonoCross es un patrón de diseño modelo-vista-controlador (MVC) multiplataforma donde el modelo y el controlador se comparten entre plataformas, mientras que las vistas son únicas para cada plataforma, lo que permite una interfaz de usuario optimizada. El framework requiere Xamarin.iOS y Xamarin.Android.
- MvvmCross es un marco de trabajo multiplataforma de modelo-vista-modelo de vista (MVVM) que utiliza Xamarin.iOS y Xamarin.Android para el desarrollo de aplicaciones móviles.
- MonoDevelop es un entorno de desarrollo integrado, de código abierto y multiplataforma, que permite crear aplicaciones para ASP.NET, Gtk#, Meego, MonoTouch y Silverlight/Moonlight.
- Moonlight (descontinuado), una implementación de Silverlight que utiliza Mono.
- OpenTK , una biblioteca de enlace gestionado para OpenGL, OpenCL y OpenAL.
- QtSharp , enlaces de C# para el framework Qt .
- Resco MobileBusiness , una solución de desarrollo multiplataforma para clientes móviles.
- Resco MobileCRM , una solución de desarrollo multiplataforma para clientes móviles sincronizados con Microsoft Dynamics CRM .
- ServiceStack es un framework de servicios web REST .NET de código abierto y alto rendimiento que simplifica el desarrollo de servicios web XML, JSON y SOAP.
- SparkleShare es un software cliente de código abierto que proporciona servicios de almacenamiento en la nube y sincronización de archivos.
- Tao (sustituido por OpenTK), una colección de enlaces para gráficos y juegos (OpenGL, SDL, GLUT, Cg).
- Xwt , un kit de herramientas GUI que asigna llamadas a la API a llamadas a la plataforma nativa subyacente, exponiendo una API unificada en diferentes plataformas y permitiendo que las interfaces gráficas de usuario tengan una apariencia nativa en distintas plataformas. Permite crear aplicaciones de escritorio basadas en GUI que se ejecutan en múltiples plataformas, sin necesidad de personalizar el código para cada una. La API de Xwt se asigna a un conjunto de controles nativos en cada plataforma compatible. Las características que no están disponibles en plataformas específicas se emulan mediante widgets nativos, lo que se denomina alojamiento en el contexto de Xwt. [ 41 ] Xwt se utilizó parcialmente como kit de herramientas GUI (junto con GTK#) en el desarrollo de Xamarin Studio . [ 42 ] Los motores de "backend" compatibles son: motor WPF y motor Gtk (usando Gtk# ) en Windows , motor Cocoa (usando MonoMac) y motor Gtk (usando Gtk#) en Mac OS X , y motor Gtk (usando Gtk#) en Linux . [ 43 ]
macOS:
- Cocoa# – envoltorios alrededor del kit de herramientas nativo de macOS ( Cocoa ) (obsoleto).
- Monobjc : un conjunto de enlaces para la programación en macOS.
- MonoMac : enlaces más recientes para la programación en macOS, basados en el diseño de la API MonoTouch.
Plataformas móviles:
- MonoDroid. Mono para el sistema operativo Android. Con enlaces para las API de Android.
- MonoTouch . Mono para iPhone, iPad y iPod Touch. Con enlaces a las API de iOS.
Windows:
- MonoTools para Visual Studio: Un complemento de Visual Studio que permite a los desarrolladores de Windows crear aplicaciones para Linux y macOS directamente desde Visual Studio y se integra con SUSE Studio .
Otras implementaciones
Microsoft dispone actualmente de una versión de .NET 2.0, disponible únicamente para Windows XP , denominada Shared Source CLI (Rotor) . La licencia de código compartido de Microsoft podría resultar insuficiente para las necesidades de la comunidad (prohíbe explícitamente el uso comercial).
Proyecto Portable.NET desmantelado de la Free Software Foundation . [ 44 ]
MonoDevelop
MonoDevelop es un entorno de desarrollo integrado gratuito diseñado principalmente para C# y otros lenguajes .NET como Nemerle , Boo y Java (a través de IKVM ), aunque también admite lenguajes como C , C++ , Python y Vala . MonoDevelop fue originalmente una adaptación de SharpDevelop a Gtk#, pero desde entonces ha evolucionado para satisfacer las necesidades de los desarrolladores de Mono. El IDE incluye gestión de clases, ayuda integrada, autocompletado de código, Stetic (un diseñador de interfaz gráfica), soporte para proyectos y un depurador integrado.
El navegador MonoDoc proporciona acceso a la documentación de la API y a ejemplos de código. Este navegador de documentación utiliza un sistema de gestión de contenido tipo wiki, lo que permite a los desarrolladores editar y mejorar la documentación.
Xamarin.iOS y Xamarin.Android
Xamarin.iOS y Xamarin.Android, ambos desarrollados por Xamarin , eran implementaciones de Mono para teléfonos inteligentes basados en iPhone y Android . Anteriormente disponibles solo con licencia comercial, [ 45 ] después de la adquisición de Xamarin por parte de Microsoft en 2016, el entorno de ejecución de Mono se relicenciaron bajo la licencia MIT [ 46 ] y tanto Xamarin.iOS como Xamarin.Android se están convirtiendo en software libre y de código abierto. [ 47 ]
Xamarin.iOS y Xamarin.Android llegaron al final de su ciclo de vida el 1 de mayo de 2024, integrándose directamente en .NET. [ 48 ] [ 49 ] Microsoft recomienda la migración a .NET MAUI . [ 49 ]
Xamarin.iOS
Xamarin.iOS (anteriormente llamado MonoTouch) era una biblioteca que permitía a los desarrolladores crear aplicaciones basadas en C# y .NET que se ejecutaban en los dispositivos iPhone, iPod y iPad. Estaba basada en el framework Mono y se desarrolló en colaboración con Novell. A diferencia de las aplicaciones Mono, las "Apps" de Xamarin.iOS se compilaban a código máquina específicamente diseñado para el iPhone y el iPad de Apple . [ 50 ] Esto es necesario porque el kernel de iOS impide que los compiladores justo a tiempo se ejecuten en el dispositivo.
La pila Xamarin.iOS estaba compuesta por:
- Compiladores
- C# del proyecto Mono
- Los compiladores de terceros, como Oxygene de RemObject, también podrían tener como objetivo Xamarin.iOS.
- Bibliotecas principales de .NET
- SDK de desarrollo:
- Enlazador: se utilizó para agrupar únicamente el código utilizado en la aplicación final.
- mtouch: el compilador nativo y la herramienta utilizada para implementar en el dispositivo de destino.
- Herramientas de integración de Interface Builder
- Bibliotecas que enlazan las API nativas de CocoaTouch
- IDE de Xamarin Studio
Se utilizó Xamarin Studio como entorno de desarrollo integrado (IDE) principal; sin embargo, se han añadido enlaces a Xcode y al simulador de iOS.
Desde abril hasta principios de septiembre de 2010, el futuro de MonoTouch se vio comprometido cuando Apple introdujo nuevas condiciones para los desarrolladores de iPhone que les prohibían desarrollar en lenguajes distintos de C, C++ y Objective-C , así como el uso de una capa intermedia entre la plataforma iOS y las aplicaciones de iPhone. Esto generó incertidumbre sobre el futuro de MonoTouch y otras tecnologías como Unity . [ 51 ] Posteriormente, en septiembre de 2010, Apple revocó esta restricción, declarando que flexibilizaba las restricciones de lenguaje que había establecido a principios de ese año. [ 52 ] [ 53 ]
Historial de versiones
Xamarin.Android
Xamarin.Android (anteriormente conocido como Mono para Android), desarrollado inicialmente por Novell y continuado por Xamarin , fue una implementación propietaria [ 70 ] de Mono para teléfonos inteligentes basados en Android . [ 71 ] [ 72 ] [ 73 ] Se lanzó por primera vez el 6 de abril de 2011. [ 74 ] Mono para Android se desarrolló para permitir a los desarrolladores escribir más fácilmente aplicaciones multiplataforma que se ejecutarían en todas las plataformas móviles. [ 75 ] En una entrevista con H-Online, Miguel de Icaza declaró: "Nuestra visión es permitir a los desarrolladores reutilizar su motor y el código de su lógica de negocio en todas las plataformas móviles y reemplazar el código de la interfaz de usuario por una API específica de la plataforma". [ 76 ]
En agosto de 2010, un portavoz de Microsoft, Tom Hanrahan del Centro de Tecnología de Código Abierto de Microsoft, declaró, en referencia a la demanda presentada por Oracle contra Google por el uso de Java en Android, que "El tipo de acción que Oracle está emprendiendo contra Google por Java no va a ocurrir. Si una adaptación de .NET a Android se realizara a través de Mono, estaría sujeta al Acuerdo de Promesa de la Comunidad de Microsoft ". [ 77 ] [ 78 ]
La pila de Xamarin.Android constaba de los siguientes componentes:
- Entorno de ejecución de Mono
- Diseñador de interfaz de usuario de Android [ 79 ]
- Bibliotecas:
- Bibliotecas de clases principales de .NET
- Bibliotecas que enlazan las API nativas de Android/Java
- Herramientas SDK para empaquetar, implementar y depurar.
- Integración de Xamarin Studio y Visual Studio 2010 para diseñar la interfaz de usuario, depurar de forma remota e implementar.
Mono en macOS
CocoaSharp
Cocoa# (también conocido como CocoaSharp) era un marco de trabajo puente para Mac OS X que permitía a las aplicaciones desarrolladas con el entorno de ejecución Mono acceder a la API de Cocoa . Se lanzó inicialmente el 12 de agosto de 2004 [ 80 ] y se incluyó en la distribución de Mono a partir de la versión 1.0.6, publicada el 18 de febrero de 2005. No ha tenido ningún desarrollo desde 2008 y ahora está obsoleto [ 81 ] .
Monoobjeto
Monobjc fue el sustituto de CocoaSharp. Permite a los desarrolladores .NET usar la mayor parte de la API de Mac OS X, incluyendo Cocoa, sin código nativo, y aun así lograr una interfaz de usuario nativa.
Xamarin.Mac
Xamarin.Mac es una biblioteca que permite a los desarrolladores ejecutar aplicaciones .NET y C# en Mac . [ 82 ]
Licencia
Mono tiene una licencia dual de Xamarin, similar a otros productos como Qt y Mozilla Application Suite . El compilador y las herramientas de C# de Mono se publican bajo la Licencia Pública General de GNU (solo GPLv2) (a partir de la versión 2.0 de Mono, el código fuente del compilador de C# de Mono también está disponible bajo la Licencia MIT X11 ), [ 83 ] las bibliotecas de tiempo de ejecución bajo la Licencia Pública General Reducida de GNU (solo LGPLv2) y las bibliotecas de clases bajo la Licencia MIT . Todas estas son licencias de software libre y de código abierto y, por lo tanto, Mono es software libre y de código abierto .
La licencia del compilador de C# se cambió de la GPL a la licencia MIT X11 [ 84 ] para permitir que el código del compilador se reutilizara en algunos casos en los que la GPL lo habría impedido:
- Compilador como servicio de Mono
- La carcasa interactiva Mono
- El compilador C# integrable de Mono
- Implementación de Mono del enlazador dinámico de C# 4.0.
- El analizador sintáctico integrado y el gráfico AST de MonoDevelop
El 18 de marzo de 2016, se cerró oficialmente la adquisición de Xamarin por parte de Microsoft. [ 85 ] El 31 de marzo de 2016, Microsoft anunció en Microsoft Build que volvería a licenciar completamente Mono bajo la Licencia MIT incluso en escenarios donde anteriormente era necesaria una licencia comercial, [ 86 ] y Microsoft declaró que no haría valer ninguna "patente aplicable" contra las partes que estén "usando, vendiendo, ofreciendo a la venta, importando o distribuyendo Mono". [ 87 ] [ 88 ] También se anunció que Xamarin había contribuido con el Proyecto Mono a la Fundación .NET. [ 87 ]
Patentes de Mono y Microsoft
El 6 de julio de 2009, Microsoft anunció que sometería sus especificaciones ECMA 334 y ECMA 335 a su Compromiso con la Comunidad, comprometiéndose a no hacer valer sus patentes contra nadie que implementara, distribuyera o utilizara implementaciones alternativas de .NET. [ 89 ] La implementación de Mono de aquellos componentes de la pila .NET que no se presentaron a la ECMA para su estandarización ha sido fuente de preocupaciones por violación de patentes durante gran parte de la vida del proyecto. [ 90 ] En particular, se ha debatido si Microsoft podría destruir el proyecto Mono mediante demandas por patentes. [ 91 ]
Se afirma que las tecnologías base presentadas a la ECMA, y por lo tanto también las partes específicas de Unix/GNOME, son seguras debido a que Microsoft incluyó explícitamente los estándares ECMA 334 ( C# ) y ECMA 335 ( CLI ) bajo la Promesa de la Comunidad de Microsoft . Las preocupaciones se refieren principalmente a las tecnologías desarrolladas por Microsoft sobre .NET Framework, como ASP.NET , ADO.NET y Windows Forms (véase espacios de nombres no estandarizados ), es decir, las partes que componen la pila de compatibilidad de Mono con Windows. Estas tecnologías no están implementadas completamente en Mono actualmente ni son necesarias para desarrollar aplicaciones Mono; simplemente están disponibles para desarrolladores y usuarios que necesitan compatibilidad total con el sistema Windows.
En junio de 2009, el Consejo Técnico de Ubuntu declaró que no veía "ninguna razón para excluir Mono o las aplicaciones basadas en él del archivo o del conjunto de instalación predeterminado". [ 92 ]
Richard Stallman, de la Free Software Foundation , declaró el 2 de junio de 2009 que «[...] deberíamos desalentar a la gente a escribir programas en C#. Por lo tanto, no deberíamos incluir implementaciones de C# en la instalación predeterminada de las distribuciones GNU/Linux ni en sus principales métodos de instalación de GNOME». [ 93 ] El 1 de julio de 2009, Brett Smith (también de la FSF) declaró que «Las patentes de Microsoft son mucho más peligrosas: es la única gran empresa de software que se ha declarado enemiga de GNU/Linux y ha manifestado su intención de atacar a nuestra comunidad con patentes», «C# representa una amenaza única para nosotros» y «La Promesa de la Comunidad no hace nada para cambiar nada de esto». [ 94 ]
El líder del proyecto Fedora, Paul Frields, ha declarado: «Tenemos serias preocupaciones sobre Mono y seguiremos analizándolo con nuestros asesores legales para ver qué medidas, si las hay, debemos tomar», pero «no hemos llegado a una conclusión legal lo suficientemente clara como para tomar la decisión de eliminar Mono». [ 95 ]
En noviembre de 2011, en una Cumbre de Desarrolladores de Ubuntu , los desarrolladores votaron a favor de eliminar el reproductor multimedia Banshee, basado en Mono, de la instalación predeterminada de Ubuntu a partir de Ubuntu 12.04 . Si bien las razones citadas incluían problemas de rendimiento en la arquitectura ARM , problemas de bloqueo en su versión GTK+ 3 y, en su opinión, que "no estaba bien mantenido", también surgieron especulaciones de que la decisión estuvo influenciada por el deseo de eliminar Mono de la distribución base, ya que los programas restantes que dependían de Mono, gbrainy y Tomboy , también iban a ser eliminados. El desarrollador de Mono, Joseph Michael Shields, defendió el rendimiento de Banshee en ARM y también las afirmaciones de que Banshee no estaba bien mantenido, calificándolas de "insulto personal dirigido" a uno de sus principales colaboradores. [ 96 ]
Software desarrollado con Mono


Se han desarrollado numerosos programas con diversas aplicaciones utilizando la interfaz de programación de aplicaciones (API) Mono y C#. Algunos programas escritos para Linux son Banshee, Beagle, F-Spot , Gbrainy , Docky / GNOME Do , MonoTorrent , Pinta y Tomboy . El programa Logos 5 Bible Study Software (versión para OS X) fue escrito para macOS.
Varios videojuegos, como Los Sims 3 y Second Life (por sus lenguajes de scripting ), el servidor de mundo virtual OpenSimulator o los juegos creados con los motores de juego Unity o MonoGame , también utilizan Mono. [ 97 ] OpenRA incluye sus imágenes de disco de Apple y AppImages de Linux con Mono, eliminando prácticamente todas las dependencias del juego. [ 98 ]
Historial de versiones
Véase también
- Entorno de ejecución de lenguaje común
- Marco de trabajo .NET
- .NET , un framework de código abierto y sucesor de .NET Framework.
- Bibliotecas estándar (CLI)
- Comparación de máquinas virtuales de aplicaciones
- DotGNU : un proyecto paraguas de software libre que incluye Portable.NET.
- MonoDevelop : un IDE de código abierto para plataformas Mono y Microsoft .NET Framework.
- Moonlight (entorno de ejecución) , una implementación de código abierto de Silverlight de Microsoft desarrollada por el Proyecto Mono.
- Infraestructura de lenguaje común de código compartido : la implementación de código compartido de .NET de Microsoft, anteriormente conocida con el nombre en clave Rotor.
- mod_mono : un módulo para el servidor HTTP Apache que permite alojar páginas ASP.NET y otros ensamblados en múltiples plataformas mediante el uso de Mono.
Referencias
Citas
- ↑ Presentación de Mono en AIX e IBM i
- ↑ "Preguntas frecuentes: Licencias" . Consultado el 3 de julio de 2020 .
- ↑ "Microsoft adquirirá Xamarin y permitirá que más desarrolladores creen aplicaciones en cualquier dispositivo" . Blog oficial de Microsoft . 24 de febrero de 2016. Consultado el 24 de febrero de 2016 .
- 1 2 Sourav, Rudra (2024-09-02). "El movimiento inesperado de Microsoft de entregar un proyecto de código abierto al equipo de Wine: ¿un cambio generoso?" . It's FOSS News . Recuperado el 2024-09-08 .
- ↑ Bonisteel, Steven (23 de junio de 2000). "Microsoft no ve más que .NET por delante" . ZDNet. Archivado del original el 5 de noviembre de 2011. Recuperado el 5 de abril de 2011 .
- ↑ "ECMA-335-Parte-I-IV - ECMA-335, 1.ª edición, diciembre de 2001" (PDF) .
- ↑ Wilcox, Joe; Shankland, Stephen (28 de junio de 2001). "Microsoft se adentra en el código compartido" . ZDNet.
- ↑ " [ Mono-list ] Historia temprana de Mono" . mono-list (Lista de correo). 13 de octubre de 2003. Archivado del original el 6 de junio de 2011. Recuperado el 30 de marzo de 2005 .
- ↑ "Lanzamiento de la implementación OSS .NET Mono 1.0 - Ars Technica" . ArsTechnica . 30 de junio de 2004. Consultado el 23 de octubre de 2009 .
- ↑ "Plataformas compatibles" . Sitio web de Mono.
- ↑ Koep, Paul (2 de mayo de 2011). "Los empleados dicen que cientos fueron despedidos en la oficina de Novell en Provo" . KSL-TV . Recuperado el 7 de mayo de 2011 .
- ↑ Vaughan-Nichols, Steven J. (2011-05-04). "¿Está muerta Mono? ¿Está muriendo Novell?" . ZDNet . Recuperado el 2 de agosto de 2024 .
- ↑ Clarke, Gavin (2011-05-03). "Clones de .NET para Android e iOS eliminados por Attachmate" . The Register . Consultado el 2011-05-07 .
- ↑ «Anunciando Xamarin - Miguel de Icaza» . Tirania.org. 2011-05-16 . Consultado el 17 de julio de 2013 .
- ↑ "La muerte y el renacimiento de Mono" . infoq.com. 17 de mayo de 2011. Consultado el 29 de mayo de 2011. Aunque
no lo apoyen, poseen un producto que compite directamente con las futuras ofertas de Xamarin. Sin algún tipo de acuerdo legal entre Attachmate y Xamarin, este último se enfrentaría a la difícil tarea de demostrar que su nuevo desarrollo no utiliza ninguna de las tecnologías que utilizaba el anterior. Dado que se trata simplemente de una capa de abstracción sobre la API nativa, sería difícil demostrar que se trata de una implementación completamente nueva, incluso para un equipo que no esté familiarizado con el código de Attachmate.
- ↑ "SUSE y Xamarin se asocian para acelerar la innovación y brindar soporte a los clientes y la comunidad de Mono" . Novell . 18 de julio de 2011. Consultado el 18 de julio de 2011.
El acuerdo otorga a Xamarin una licencia amplia y perpetua sobre toda la propiedad intelectual que abarca Mono, MonoTouch, Mono para Android y Mono Tools para Visual Studio. Xamarin también brindará soporte técnico a los clientes de SUSE que utilicen productos basados en Mono y asumirá la gestión del proyecto comunitario de código abierto Mono.
- ↑ de Icaza, Miguel (2011-07-18). "Novell/Xamarin Partnership around Mono" . Recuperado el 18 de julio de 2011 .
- ↑ "Microsoft adquirirá Xamarin y permitirá que más desarrolladores creen aplicaciones en cualquier dispositivo" . Blog oficial de Microsoft . 24 de febrero de 2016. Archivado del original el 24 de febrero de 2016. Consultado el 24 de febrero de 2016 .
- 1 2 de Icaza, Miguel (2011-03-07). "GDC 2011" . Recuperado el 2011-03-11 .
No tenemos planes de construir WPF. Simplemente no tenemos el personal para construir una implementación en un plazo razonable (...) Para herramientas que se basan principalmente en OpenGL/DirectX, utilice Windows.Forms, teniendo en cuenta que es posible que se necesiten algunas correcciones de errores o soluciones alternativas por su parte, ya que nuestro Windows.Forms no se desarrolla activamente.
- ↑ "Lista de compatibilidad mono" .
- ↑ "Hoja de ruta del proyecto Mono - Mono" . Mono-project.com . Consultado el 17 de julio de 2013 .
- ↑ "MoonlightRoadmap" . Equipo Mono . Consultado el 8 de noviembre de 2008 .
- ↑ "Lanzamiento de Moonlight 2, hoja de ruta para Moonlight 3 y 4 — Miguel de Icaza" . Tirania.org. 17 de diciembre de 2009. Consultado el 17 de julio de 2013 .
- ↑ «Avance 1 de Moonlight 3.0 — Miguel de Icaza» . Tirania.org. 2010-02-03 . Consultado el 17 de julio de 2013 .
- ↑ "Xamarin abandona su tecnología Silverlight por Linux" . ZDNet .
- 1 2 "Ecma-335" .
- ↑ "Technet.com" . Archivado del original el 23 de mayo de 2013. Consultado el 7 de julio de 2009 .
- ↑ "Acceso a bases de datos - Mono" .
- ↑ "Mono LLVM" . Mono .
- 1 2 "Compactando GC" . mono-project.com . Consultado el 16 de diciembre de 2008 .
- ↑ Boehm, Hans-J. "Ventajas y desventajas de la recolección conservadora de basura" . Xerox PARC . Archivado del original el 24 de julio de 2013. Consultado el 16 de diciembre de 2008 .
- ↑ "Arquitectura de .NET Framework" . Documentación oficial de Mono.
- 1 2 "Compilador C# de Mono como servicio en Windows. - Miguel de Icaza" . Tirania.org. 27 de abril de 2010. Consultado el 17 de julio de 2013 .
- 1 2 "CsharpRepl - Mono" . Mono-project.com . Consultado el 17 de julio de 2013 .
- 1 2 "Soporte SIMD de Mono: Haciendo que Mono sea seguro para juegos - Miguel de Icaza" . Tirania.org. 3 de noviembre de 2008. Consultado el 17 de julio de 2013 .
- ↑ de Icaza, Miguel. «Recopilación estática en Mono» .
- ↑ "Continuaciones - Mono" .
- ↑ de Icaza, Miguel. "Monovación: inyección de ensamblaje en procesos en vivo" .
- ↑ "Plataformas compatibles - Mono" .
- ↑ Narayanaswamy, Anand (23 de noviembre de 2012). "Crea aplicaciones multiplataforma con Xwt" . InfoQ . Archivado del original el 15 de abril de 2016. Consultado el 15 de abril de 2016 .
- ↑ de Icaza, Miguel (22 de febrero de 2013). "Cómo se hizo Xamarin Studio" . InfoQ . Archivado del original el 15 de abril de 2016. Recuperado el 15 de abril de 2016 .
- ↑ "Xwt Léame" . Xwt en GitHub . 15 de enero de 2012. Archivado del original el 16 de abril de 2016. Consultado el 15 de abril de 2016 .
- ↑ "Proyecto DotGNU" . Consultado el 2 de junio de 2014 .
- ↑ "Preguntas frecuentes" . os.xamarin.com. 1 de agosto de 2011.
MonoTouch es un producto comercial basado en el proyecto de código abierto Mono y se licencia por desarrollador.
- ^ "MIT con nueva licencia mono" . www.mono-project.com. 2016-03-31.
- ↑ "Xamarin para todos" . blog.xamarin.com. 31/03/2016. Archivado del original el 12/04/2016 . Consultado el 11/04/2016 .
Hoy anunciamos nuestro compromiso de liberar como código abierto los SDK de Xamarin para Android, iOS y Mac bajo la licencia MIT en los próximos meses.
- ↑ "Política oficial de soporte de Xamarin" . dotnet.microsoft.com . Microsoft . Consultado el 26 de enero de 2026 .
- 1 2 "Xamarin" . dotnet.microsoft.com . Microsoft . Consultado el 26 de enero de 2026 .
- ↑ "MonoTouch y iPhone 4" .
Las aplicaciones creadas con MonoTouch son aplicaciones nativas indistinguibles de otras aplicaciones nativas.
- ↑ "¿Apple apunta a Adobe... o a Android?" 9 de abril de 2010.
- ↑ «Declaración de Apple sobre las directrices de revisión de la App Store» .
Basándonos en sus comentarios, hoy realizamos algunos cambios importantes en la licencia de nuestro Programa para Desarrolladores de iOS, específicamente en las secciones 3.3.1, 3.3.2 y 3.3.9, para flexibilizar algunas restricciones que implementamos a principios de este año. En particular, eliminamos todas las restricciones sobre las herramientas de desarrollo utilizadas para crear aplicaciones iOS, siempre y cuando las aplicaciones resultantes no descarguen ningún código. Esto debería brindar a los desarrolladores la flexibilidad que desean, sin comprometer la seguridad que necesitamos.
- ↑ «¡Buenas noticias para los usuarios de MonoTouch!» .
Con estos nuevos términos, la ambigüedad desaparece y los amantes y entusiastas de C# pueden volver a usar MonoTouch. Los desarrolladores que prefieren la recolección de basura y los lenguajes fuertemente tipados pueden retomar su trabajo.
- ↑ de Icaza, Miguel. "MonoTouch 1.0 entra en funcionamiento" .
- ↑ "MonoTouch 2.0.0" . Xamarin .
- ↑ "MonoTouch 3.0.0" . Xamarin .
- ↑ "MonoTouch 4.0.0" . Xamarin .
- ↑ "MonoTouch 5.0" . Xamarin .
- ↑ "MonoTouch 6.0" . Xamarin .
- ↑ "Xamarin.iOS 6.2" . Xamarin . 28 de enero de 2023.
- ↑ "Xamarin.iOS 6.4" . Xamarin . 8 de julio de 2022.
- ↑ "iOS 7 y Xamarin: Listos cuando tú lo estés" . Blog de Xamarin . 18 de septiembre de 2013. Consultado el 20 de marzo de 2021 .
- ↑ "iOS 8 más grande y mejor con Xamarin" . Blog de Xamarin . 10 de septiembre de 2014. Consultado el 20 de marzo de 2021 .
- ↑ "Xamarin para iOS 9: Búsqueda más profunda" . Blog de Xamarin . 16 de septiembre de 2015. Consultado el 20 de marzo de 2021 .
- ↑ "Actualizaciones importantes: iOS 10, Android Nougat y otras novedades interesantes" . Blog de Xamarin . 13 de septiembre de 2016. Consultado el 20 de marzo de 2021 .
- ↑ spouliot (19 de septiembre de 2017). "Notas de la versión de Xamarin.iOS 11.0 - Xamarin" . docs.microsoft.com . Consultado el 20 de marzo de 2021 .
- ↑ spouliot (14 de septiembre de 2018). "Notas de la versión de Xamarin.iOS 12.0 - Xamarin" . docs.microsoft.com . Consultado el 20 de marzo de 2021 .
- ↑ spouliot (13 de septiembre de 2019). "Notas de la versión de Xamarin.iOS 13.0 - Xamarin" . docs.microsoft.com . Consultado el 20 de marzo de 2021 .
- ↑ spouliot (21 de septiembre de 2020). "Notas de la versión de Xamarin.iOS 14.0 - Xamarin" . docs.microsoft.com . Consultado el 20 de marzo de 2021 .
- ↑ "¿Cómo se licencia Mono para Android?" . Preguntas frecuentes de Mono para Android. 28/08/2011 . Consultado el 29/03/2012 .
- ↑ "El proyecto Mono de Novell lleva el desarrollo .Net a Android" . NetworkWorld.
- ↑ "El proyecto Mono de Novell lleva el desarrollo .Net a Android" . InfoWorld. 16 de marzo de 2010.
- ↑ "MonoDroid: Próximamente compatibilidad con .NET para Android" . TechieBuzz. 18 de octubre de 2022.
- ↑ "Mono para Android lleva C# a Android" . Heise Online . 7 de abril de 2011. Consultado el 7 de abril de 2011 .
- ↑ "Novell (Mono/C#) está desarrollando MonoDroid" . Comunidad Android. 18 de febrero de 2010.
Esto facilitará a los desarrolladores la creación de aplicaciones multiplataforma, así como la adaptación a Android de algunas de las aplicaciones existentes creadas con MonoTouch.
- ↑ "Mono para Android" . H-Online.
Nuestra visión es permitir a los desarrolladores reutilizar el código de su motor y lógica de negocio en todas las plataformas móviles, sustituyendo el código de la interfaz de usuario por una API específica de cada plataforma.
- ↑ "Microsoft no detendrá (Mono) .NET en Android" . TechWorld.
El tipo de acción que Oracle está emprendiendo contra Google por Java no va a ocurrir. Si una adaptación de .NET a Android se realizara a través de Mono, estaría sujeta al Acuerdo de Promesa de la Comunidad de Microsoft.
- ↑ "Microsoft afirma que .NET en Android es seguro, sin litigios como los de Oracle" . Developer Fusion.
- ↑ "Xamarin Designer para Android" . Visual Studio Magazine.
El 14 de mayo, Xamarin anunció Mono para Android 4.2.
- ↑ "Cocoa# está tomando forma; primeras capturas de pantalla disponibles – OSnews" .
- ↑ "macOS | Mono" . www.mono-project.com . Consultado el 4 de febrero de 2023 .
- ↑ davidortinau. "Xamarin.Mac - Xamarin" . learn.microsoft.com . Consultado el 4 de febrero de 2023 .
- ↑ "Compilador Mono C# bajo licencia MIT X11" . Novell Inc. 8 de abril de 2008. Archivado del original el 13 de mayo de 2008. Consultado el 9 de abril de 2008 .
- ↑ de Icaza, Miguel. "El compilador Mono C# ahora también tiene licencia MIT X11" .
- ↑ "Xamarin para todos" . Blog de Xamarin . Xamarin. 31 de marzo de 2016. Archivado del original el 12 de abril de 2016. Consultado el 12 de abril de 2016 .
- ↑ Anderson, Tim (31 de marzo de 2016). "Microsoft hará que las herramientas y el código de Xamarin sean gratuitos y de código abierto" . The Register .
- 1 2 Ferraira, Bruno (31 de marzo de 2016). "Xamarin ahora viene gratis con Visual Studio" . The Tech Report .
- ↑ "Promesa de patente de Microsoft para Mono" . Mono en GitHub . Proyecto Mono. 28 de marzo de 2016. Archivado del original el 12 de abril de 2016. Consultado el 12 de abril de 2016 .
- ↑ "Los estándares ECMA C# y CLI" . Puerto 25. 6 de julio de 2009. Archivado del original el 23 de mayo de 2013. Recuperado el 7 de julio de 2009. Bajo
la Promesa de la Comunidad, Microsoft garantiza que no hará valer sus Reclamaciones Necesarias contra nadie que fabrique, use, venda, ofrezca a la venta, importe o distribuya ninguna Implementación Cubierta bajo ningún tipo de modelo de desarrollo o distribución, incluidos los modelos de licencias de código abierto como LGPL o GPL.
- ↑ Babcock, Charles (7 de agosto de 2001). "¿Se verá afectado el software de código abierto por .Net?" . ZDNet Asia. Archivado del original el 5 de noviembre de 2011. Recuperado el 30 de diciembre de 2020 .
- ↑ Smith, Brett (16 de julio de 2009). "La promesa vacía de Microsoft" . fsf.org. Archivado del original el 1 de mayo de 2013. Recuperado el 30 de diciembre de 2020 .
- ↑ «Declaración de posición de Mono» . Canonical Ltd. 30 de junio de 2009. Archivado del original el 9 de noviembre de 2020. Consultado el 30 de diciembre de 2020. En la industria del software ,
es práctica común registrar patentes como protección contra litigios, en lugar de como una intención de litigar. Por lo tanto, la mera existencia de una patente, sin una reclamación de infracción, no es razón suficiente para justificar la exclusión del Proyecto Ubuntu.
- ↑ "Por qué el software libre no debería depender de Mono o C#" . Archivado del original el 30 de mayo de 2013. Consultado el 30 de diciembre de 2020 .
- ↑ "La promesa vacía de Microsoft" . Archivado del original el 1 de mayo de 2013. Consultado el 30 de diciembre de 2020 .
- ↑ "Fedora está preocupada por Mono" . internetnews.com. 12 de junio de 2009. Archivado del original el 19 de junio de 2009. Consultado el 4 de julio de 2010.
No hemos llegado a una conclusión legal lo suficientemente clara como para tomar la decisión de eliminar Mono
. - ↑ ""El 'Bansheegeddon' podría provocar que Banshee y Mono dejen de ser la distribución predeterminada de Ubuntu" . ITWorld . Archivado del original el 10 de julio de 2015. Consultado el 31 de agosto de 2015 .
- ↑ "Empresas que utilizan Mono" . Proyecto Mono . Consultado el 30 de agosto de 2015 .
- ↑ Paul Chote: OpenRA: Prueba de juego 20190825 , 25 de agosto de 2019
- ↑ "Lanzamientos de Mono" . Mono-project.com . Consultado el 4 de abril de 2015 .
- ↑ "OldReleases" . Mono-project.com . Consultado el 17 de julio de 2013 .
- ↑ "Notas de la versión Mono 1.0" . Mono-project.com . Consultado el 17 de julio de 2013 .
- ↑ "Mono 1.1.1: Versión de desarrollo" . Mono-project.com . Consultado el 17 de julio de 2013 .
- ↑ "Mono 1.2: Notas de la versión" . Mono-project.com . Consultado el 17 de julio de 2013 .
- ↑ "Notas de la versión Mono 2.0" . Mono-project.com. 6 de octubre de 2008. Consultado el 17 de julio de 2013 .
- ↑ "Notas de la versión Mono 2.2" . Mono-project.com . Consultado el 17 de julio de 2013 .
- ↑ "Linear IR - Mono" . Mono-project.com . Consultado el 17 de julio de 2013 .
- ↑ "Notas de la versión Mono 2.4" . Mono-project.com . Consultado el 17 de julio de 2013 .
- ↑ "Notas de la versión Mono 2.6" . Mono-project.com . Consultado el 17 de julio de 2013 .
- ↑ "Notas de la versión Mono 2.8" . Mono-project.com . Consultado el 17 de julio de 2013 .
- ↑ "Notas de la versión Mono 2.10" . Mono-project.com . Consultado el 17 de julio de 2013 .
- ↑ "Notas de la versión Mono 3.0" . Mono-project.com . Consultado el 23 de septiembre de 2013 .
- ↑ "Notas de la versión Mono 3.2" . Mono-project.com . Consultado el 23 de septiembre de 2013 .
- ↑ "Notas de la versión Mono 3.4" . Mono-project.com . Consultado el 4 de abril de 2015 .
- ↑ "Notas de la versión Mono 3.6" . Mono-project.com . Consultado el 4 de abril de 2015 .
- ↑ "Notas de la versión Mono 3.8" . Mono-project.com . Consultado el 4 de abril de 2015 .
- ↑ "Notas de la versión Mono 3.10" . Mono-project.com . Consultado el 4 de abril de 2015 .
- ↑ "Notas de la versión Mono 3.12" . Mono-project.com . Consultado el 4 de abril de 2015 .
- ↑ "Notas de la versión Mono 4.0" . Mono-project.com . Consultado el 3 de mayo de 2015 .
- ↑ "Notas de la versión Mono 5.0" . Mono-project.com . Consultado el 13 de mayo de 2017 .
- ↑ "Notas de la versión Mono 5.2.0" .
- ↑ "Notas de la versión Mono 5.4.0" .
- ↑ "Notas de la versión Mono 5.8.0" .
- ↑ "Notas de la versión Mono 5.10.0" .
- ↑ "Notas de la versión Mono 5.12.0" .
- ↑ "Notas de la versión Mono 5.14.0" .
- ↑ "Notas de la versión Mono 5.16.0" .
- ↑ "Notas de la versión Mono 5.18.0" .
- ↑ "Notas de la versión Mono 5.20.0" .
- ↑ "Notas de la versión Mono 6.0.0" .
- ↑ "Notas de la versión Mono 6.4.0" .
- ↑ "Notas de la versión Mono 6.6.0" .
- ↑ "Notas de la versión Mono 6.8.0" .
- ↑ "Notas de la versión Mono 6.10.0" .
- ↑ "Notas de la versión Mono 6.12.0" .
- ↑ "mono-6.14.0 Mono / Framework Mono GitLab" .
Fuentes
- Este artículo incorpora texto de la página principal de Mono , que en aquel entonces estaba bajo la Licencia de Documentación Libre de GNU .
- de Icaza, Miguel (13 de octubre de 2003). "[Mono-list] Historia temprana de Mono." . mono-list (Lista de correo). Archivado del original el 6 de junio de 2011. Recuperado el 6 de diciembre de 2005 .
- Dumbill, Edd (11 de marzo de 2004). "¿Se convertirá Mono en la plataforma preferida para el desarrollo de Linux?" . ONLamp. Archivado del original el 19 de octubre de 2006. Recuperado el 14 de octubre de 2006 .
- Loli-Queru, Eugenia (22 de febrero de 2005). "¿Aplicaciones Mono? ¡Hay muchísimas!" . OSNews . Consultado el 6 de diciembre de 2005 .
- Kerner, Sean Michael (18 de noviembre de 2005). "Mono Project se vuelve virtual" . Noticias de Internet . Recuperado el 14 de octubre de 2006 .
- Kerner, Sean Michael (9 de noviembre de 2006). "Novell lanza Mono 1.2 con meses de retraso" . internetnews.com.
- Northcutt, Corey (12 de octubre de 2006). "En el mundo de mod_mono" . Ubiquity. Archivado del original el 23 de febrero de 2007. Recuperado el 14 de octubre de 2006 .
- Campbell, Sean (8 de octubre de 2008). "Entrevista con Joseph Hill - Gerente de Producto - Mono - Novell" . Cómo se crea el software . Microsoft. Archivado del original el 12 de diciembre de 2008. Recuperado el 22 de octubre de 2025 .
- Smith, Tim (9 de septiembre de 2010). "Una breve introducción a los problemas de patentes de Java y .NET" . InfoQ . Recuperado el 13 de septiembre de 2010 .
Enlaces externos
- Sitio web oficial

- Página principal de MonoTouch para la adaptación a los productos portátiles de Apple Inc.
- Mono (software)
- .NETO
- Implementaciones .NET
- Software de 2004
- Software multiplataforma
- Software Novell
- Software que utiliza la licencia MIT.