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 fue desarrollado por Ximian , que fue adquirido por Novell , y luego fue desarrollado por Xamarin , que fue adquirido 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 lo describió como "una nueva plataforma basada en estándares de Internet", [6] y en diciembre de ese año se publicó la Common Language Infrastructure subyacente como un estándar abierto, "ECMA-335", [7] abriendo 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 era factible una versión para Linux. [9] Reconociendo que su pequeño equipo no podía esperar construir y dar soporte a 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 como plataforma de desarrollo para aplicaciones de escritorio Linux a soportar una amplia gama de arquitecturas y sistemas operativos, incluyendo sistemas integrados. [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ó después de ser despedido de Novell. El equipo original de Mono también se había mudado a la nueva empresa. Xamarin planeaba seguir trabajando en Mono y había planeado reescribir las pilas .NET propietarias para iOS y Android desde cero, porque Novell todavía poseía MonoTouch y Mono para Android en ese momento. [15] Después de este anuncio, el futuro del proyecto fue cuestionado, ya que MonoTouch y Mono para Android estaban en competencia directa con las ofertas comerciales existentes ahora propiedad de Attachmate , y considerando que el equipo de Xamarin tendría dificultades para demostrar que no usaban tecnologías que desarrollaron anteriormente cuando fueron empleados por Novell para el mismo trabajo. [16] Sin embargo, en julio de 2011, Novell, ahora una subsidiaria de Attachmate, y Xamarin, anunciaron que otorgaron una licencia perpetua a Xamarin para Mono, MonoTouch y Mono para Android, que tomó oficialmente la administració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 de Windows. [5]
Estado actual y hoja de ruta
La versión actual de Mono es 6.12.0 (a junio de 2024 [update]). Esta versión proporciona la API principal de .NET Framework y soporte para Visual Basic.NET y C# 7.0. LINQ to Objects , XML y SQL son parte de la distribución. Windows Forms 2.0 también es compatible, pero no se desarrolla activamente y, como tal, su soporte en Mono es incompleto. [20] La versión 4.0 fue la primera versión que incorpora el código fuente original de Microsoft que fue lanzado por Microsoft como parte del proyecto .NET Core .
A partir del 14 de enero de 2021, Mono tiene soporte completo para todas las características de .NET 4.7, excepto Windows Presentation Foundation (WPF) (que el equipo de Mono no planea admitir debido a la cantidad de trabajo que necesitaría) [20] y Windows Workflow Foundation (WF), y con solo soporte limitado para Windows Communication Foundation (WCF) y la pila asincrónica 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, Rolf Bjarne Kvinge lo está desarrollando.
Luz de la luna
Desde Mono 1.9 se incluye una implementación de código abierto de Microsoft Silverlight , llamada Moonlight . [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 ganado suficiente tracción en la Web. Además, Silverlight en sí fue descontinuado por Microsoft en 2012.
Componentes mono
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 compatible con los estándares, gratuita y de código abierto . Microsoft emitió una declaración que cubre ambos estándares bajo su licencia Community Promise [28] .
La pila de desarrollo Mono/Linux/GNOME proporciona herramientas para el desarrollo de aplicaciones mientras se utilizan las bibliotecas GNOME existentes y las bibliotecas gratuitas y de código abierto . Estas incluyen: Gtk# para el desarrollo de la interfaz gráfica 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, una pila 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 con la base de datos relacional de objetos 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 trasladar las aplicaciones Windows .NET a Linux . Este grupo de componentes incluye ADO.NET , ASP.NET y Windows Forms , entre otros. Como estos componentes no están cubiertos por los estándares Ecma , algunos de ellos siguen siendo objeto de temores y preocupaciones en materia de patentes.
Arquitectura del marco
Los componentes principales de Mono incluyen:
- Motor de ejecución de código
- Bibliotecas de clases
- Biblioteca de clases base
- Bibliotecas de clases de compatibilidad .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 el espacio de usuario (FUSE), curses)
- Bibliotecas de clases específicas de la plataforma (enlaces para: Mac, iOS, Android, MeeGo)
- Ensamblajes CLI
- Metadatos de la CLI
- Common Language Runtime de Mono
- Compatible con la infraestructura de lenguaje común ECMA /.NET Common Language Runtime
- Mejoras mono-específicas:
- Compatibilidad con Mono.SIMD
- Co-rutinas mono y continuaciones.
- Mejoras mono-especí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 Mono contiene un motor de ejecución de código que traduce los códigos de bytes ECMA CIL en 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 Just-in-time (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 Ahead-of-Time (AOT): este código convierte 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 de CPU, arquitectura y sistema operativo (para un archivo foo.exe, produciría foo.exe.so en Linux). Este modo de operación compila la mayor parte del código que normalmente se realiza en tiempo de ejecución. Hay algunas excepciones, como los trampolines y otro código administrativo que aún requieren JIT para funcionar, por lo que las imágenes AOT no son completamente independientes.
- Compilación estática completa: este modo solo es compatible con un puñado de plataformas y lleva el proceso de compilación anticipada un paso más allá y genera todos los trampolines, envoltorios y proxies necesarios en un archivo estático que se puede vincular estáticamente a un programa y elimina la necesidad de un JIT en tiempo de ejecución. Se utiliza en los sistemas operativos iOS de Apple , PlayStation 3 de Sony y Xbox 360 de Microsoft . [ cita requerida ]
A partir de Mono 2.6, es posible configurar Mono para que utilice LLVM como motor de generación de código en lugar del propio motor de generación de código de Mono. Esto resulta útil para cargas informáticas 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 en lugar de otro en el momento de la configuración. El motor de generación de código se puede seleccionar al inicio mediante los argumentos de la línea de comandos --llvmo --nollvm, y el motor de generación de código Mono, de inicio rápido, se establece de forma predeterminada.
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 puede manejar. [30]
Recolector de basura
A partir de Mono 2.8, el entorno de ejecución de Mono se entrega con dos recolectores de basura : un recolector generacional y el recolector de basura conservador Boehm–Demers–Weiser . El recolector de basura Boehm podría exhibir fugas de memoria en ciertas clases de aplicaciones, lo que lo hace inadecuado para algunas aplicaciones de servidor de larga ejecución. [31] [32] Mono cambió a Simple Generational GC (SGen-GC) como el 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 vivero, 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 y solo un puñado de objetos son objetos de largo plazo que viven durante toda la vida de la aplicación. Para mejorar el rendimiento, este recolector asigna grupos de memoria a cada hilo para permitir que los hilos asignen nuevos bloques de memoria sin tener que coordinarse con otros hilos. La migración de objetos del vivero a la generación anterior se realiza copiando los datos del vivero al grupo de la 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 utiliza un algoritmo de marcado y barrido para esos objetos. [31]
Biblioteca de clases
La biblioteca de clases proporciona un conjunto completo de funciones para el desarrollo de aplicaciones. Están escritas principalmente en C#, pero gracias a la Common Language Specification 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 ensamblajes. Cuando hablamos 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 de forma lógica clases similares en una estructura jerárquica. Esto evita conflictos de nombres. La estructura se implementa utilizando 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. Son archivos .dll, como las bibliotecas compartidas de Win32 (pero 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 distribuirse 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), tal como la implementa Common Language Runtime (CLR) , se implementa mediante el ejecutable Mono. El entorno de ejecución 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 pertinentes.
La especificación de lenguaje común (CLS) se especifica en el capítulo 6 de ECMA-335 y define la interfaz con la CLI, como las 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 Mono toma esta imagen y la ejecuta. El estándar ECMA define formalmente una biblioteca que cumple con la CLS como un marco.
Código administrado y no administrado
En una aplicación .NET/Mono nativa, todo el código se administra ; 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, que se conoce como no administrado, mediante el uso de las bibliotecas System.Runtime.InteropServices para crear enlaces de C#. Muchas bibliotecas que se incluyen con Mono utilizan esta característica de la CLI, como Gtk# .
Innovaciones mono-especí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 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 de código .NET [37] (utilizado en Mono/iPhone, Mono/PS3).
- Corrutinas mono (utilizadas para implementar código de microprocesamiento y continuaciones , principalmente para desarrolladores de juegos). [38]
- Inyección de ensamblaje a procesos vivos. [39]
- Uso de LLVM como backend JIT.
- Cxxi y CppSharp interoperan directamente 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 amplían Mono y permiten a los desarrolladores utilizarlo en su entorno de desarrollo. Entre estos proyectos se incluyen:
Multiplataforma:
- Banshee Media Player (bloqueado), un reproductor multimedia de música 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# alrededor de las bibliotecas GTK y GNOME subyacentes , escritos en C y disponibles en Linux, MacOS y Windows.
- Mono Migration Analyzer (MoMA), 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); utilice en su lugar .NET Portability Analyzer (dotnet-apiport) de Microsoft.
- MonoCross , un patrón de diseño multiplataforma de modelo-vista-controlador en el que el modelo y el controlador se comparten entre plataformas y las vistas son únicas para cada plataforma para lograr una interfaz de usuario optimizada. El marco requiere Xamarin.iOS y Xamarin.Android.
- MvvmCross, un marco de trabajo de modelo vista multiplataforma que utiliza Xamarin.iOS y Xamarin.Android para desarrollar aplicaciones móviles.
- MonoDevelop es un entorno de desarrollo integrado multiplataforma y de código abierto que admite la creación de aplicaciones para ASP.NET, Gtk#, Meego, MonoTouch y Silverlight/Moonlight.
- Moonlight (descontinuado), una implementación de Silverlight que utiliza Mono.
- OpenTK , un enlace administrado para OpenGL, OpenCL y OpenAL.
- QtSharp, enlaces de C# para el marco 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 sincronizada con Microsoft Dynamics CRM .
- ServiceStack es un marco de servicios web .NET REST 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 (reemplazado por OpenTK), una colección de enlaces gráficos y de juegos (OpenGL, SDL, GLUT, Cg).
- Xwt, un kit de herramientas GUI que asigna llamadas de API a llamadas de plataforma nativas de la plataforma subyacente, exponiendo una API unificada en diferentes plataformas y haciendo posible que las interfaces gráficas de usuario tengan una apariencia nativa en diferentes plataformas. Permite crear aplicaciones de escritorio basadas en GUI que se ejecutan en múltiples plataformas, sin tener que personalizar el código para diferentes plataformas. 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 el uso de widgets nativos, lo que se conoce como alojamiento en el contexto de Xwt. [41] Xwt se usó parcialmente como kit de herramientas GUI (además de GTK#) en el desarrollo de Xamarin Studio . [42] Los motores "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 nuevos para la programación de 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.
Ventanas:
- MonoTools para Visual Studio Un complemento de Visual Studio que permite a los desarrolladores de Windows trabajar con Linux y macOS directamente desde Visual Studio y se integra con SUSE Studio .
Otras implementaciones
Microsoft tiene una versión de .NET 2.0 disponible actualmente sólo para Windows XP , llamada Shared Source CLI (Rotor) . La licencia de código fuente compartido de Microsoft puede resultar insuficiente para las necesidades de la comunidad (prohíbe explícitamente el uso comercial).
El proyecto Portable.NET desmantelado por la Free Software Foundation . [44]
Monodesarrollo
MonoDevelop es un entorno de desarrollo integrado gratuito de GNOME diseñado principalmente para C# y otros lenguajes .NET como Nemerle , Boo y Java (a través de IKVM.NET ), aunque también admite lenguajes como C , C++ , Python y Vala . MonoDevelop fue originalmente un puerto de SharpDevelop a Gtk#, pero desde entonces ha evolucionado para satisfacer las necesidades de los desarrolladores de Mono. El IDE incluye administración de clases, ayuda incorporada, finalización de código, Stetic (un diseñador de GUI), soporte de proyectos y un depurador integrado.
El navegador MonoDoc brinda acceso a la documentación de API y a ejemplos de código. El navegador de documentación utiliza una gestión de contenido de estilo 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 , son implementaciones de Mono para teléfonos inteligentes basados en iPhone y Android . Anteriormente, solo estaban disponibles para licencias comerciales [45] , pero después de que Microsoft adquiriera Xamarin en 2016, el entorno de ejecución de Mono fue reautorizado bajo la licencia MIT [46] y tanto Xamarin.iOS como Xamarin.Android se están volviendo gratuitos y de código abierto. [47]
Xamarin.iOS
Xamarin.iOS (anteriormente denominada MonoTouch) es una biblioteca que permite a los desarrolladores crear aplicaciones basadas en C# y .NET que se ejecutan en los dispositivos iPhone, iPod y iPad. Se basa en el marco Mono y se desarrolló en conjunto con Novell. A diferencia de las aplicaciones Mono, las "aplicaciones" de Xamarin.iOS se compilan en código de máquina dirigido específicamente al iPhone y iPad de Apple . [48] Esto es necesario porque el núcleo de iOS evita que los compiladores justo a tiempo se ejecuten en el dispositivo.
La pila Xamarin.iOS se compone de:
- Compiladores
- C# del Proyecto Mono
- Los compiladores de terceros como Oxygene de RemObject también pueden apuntar a Xamarin.iOS
- Bibliotecas básicas de .NET
- SDK de desarrollo:
- Vinculador: se utiliza para agrupar solo 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 vinculan las API nativas de CocoaTouch
- IDE de Xamarin Studio
Se utiliza Xamarin Studio como IDE principal, sin embargo se han escrito enlaces adicionales a Xcode y al simulador de iOS.
Desde abril hasta principios de septiembre de 2010, el futuro de MonoTouch estuvo en duda cuando Apple introdujo nuevos términos para los desarrolladores de iPhone que aparentemente les prohíben desarrollar en lenguajes distintos a C, C++ y Objective-C , y el uso de una capa intermedia entre la plataforma iOS y las aplicaciones de iPhone. Esto hizo que el futuro de MonoTouch y otras tecnologías como Unity fuera incierto. [49] Luego, en septiembre de 2010, Apple rescindió esta restricción, declarando que estaban relajando las restricciones de lenguaje que habían establecido a principios de ese año. [50] [51]
Historial de versiones
Xamarin.Android
Xamarin.Android (anteriormente conocido como Mono para Android), desarrollado inicialmente por Novell y continuado por Xamarin , es una implementación propietaria [ cita requerida ] [68] de Mono para teléfonos inteligentes basados en Android . [69] [70] [71] Se lanzó por primera vez el 6 de abril de 2011. [72] Mono para Android se desarrolló para permitir a los desarrolladores escribir más fácilmente aplicaciones multiplataforma que se ejecutarán en todas las plataformas móviles. [73] En una entrevista con H-Online, Miguel de Icaza afirmó: "Nuestra visión es permitir a los desarrolladores reutilizar su motor y código de lógica empresarial en todas las plataformas móviles e intercambiar el código de la interfaz de usuario por una API específica de la plataforma". [74]
En agosto de 2010, un portavoz de Microsoft, Tom Hanrahan del Centro de Tecnología de Código Abierto de Microsoft, afirmó, en referencia a la demanda presentada por Oracle contra Google por el uso de Java por parte de Android, que "el tipo de acción que Oracle está tomando contra Google por Java no va a suceder. Si un puerto de .NET a Android fuera a través de Mono, estaría dentro del Acuerdo de Promesa de la Comunidad de Microsoft ". [75] [76]
La pila Xamarin.Android consta de los siguientes componentes:
- Tiempo de ejecución mono
- Un diseñador de interfaz de usuario de Android [77]
- Bibliotecas:
- Bibliotecas de clases básicas de .NET
- Bibliotecas que vinculan 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
Cacao Sharp
Cocoa# (también conocido como CocoaSharp) fue 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, [78] y se incluyó con la distribución Mono a partir de la versión 1.0.6, lanzada el 18 de febrero de 2005. [ cita requerida ] No ha experimentado ningún desarrollo desde 2008, [ cita requerida ] y ahora está obsoleto. [79]
Monobjc
Monobjc fue el reemplazo de CocoaSharp. Permite a los desarrolladores de .NET utilizar la mayoría de las API de Mac OS X, incluido Cocoa, sin código nativo, y al mismo tiempo lograr una interfaz de usuario nativa. [ cita requerida ]
Xamarin.Mac
Xamarin.Mac es una biblioteca que permite a los desarrolladores ejecutar aplicaciones .NET y C# en Mac . [80]
Licencia
Mono tiene licencia dual de Xamarin, similar a otros productos como Qt y Mozilla Application Suite . El compilador C# y las herramientas de Mono se publican bajo la Licencia Pública General GNU (solo GPLv2) (a partir de la versión 2.0 de Mono, el código fuente del compilador C# de Mono también está disponible bajo la Licencia MIT X11 ), [81] las bibliotecas de tiempo de ejecución bajo la Licencia Pública General Reducida 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 GPL a MIT X11 [82] para permitir que el código del compilador se reutilizara en algunos casos en los que la GPL lo habría impedido:
- El compilador de Mono como servicio
- El Mono Interactivo Shell
- El compilador C# integrable Mono
- Implementación de Mono del enlazador dinámico C# 4.0.
- Analizador integrado y gráfico AST de MonoDevelop
El 18 de marzo de 2016, la adquisición de Xamarin por parte de Microsoft se cerró oficialmente. [83] El 31 de marzo de 2016, Microsoft anunció en Microsoft Build que volverían a licenciar completamente Mono bajo la Licencia MIT incluso en escenarios en los que anteriormente era necesaria una licencia comercial, [84] y Microsoft declaró que no harían valer ninguna "patente aplicable" contra las partes que estén "usando, vendiendo, ofreciendo para la venta, importando o distribuyendo Mono". [85] [86] También se anunció que Xamarin había contribuido con el Proyecto Mono a la Fundación .NET. [85]
Mono y las patentes de Microsoft
El 6 de julio de 2009, Microsoft anunció que iba a incluir sus especificaciones ECMA 334 y ECMA 335 en su Promesa Comunitaria , comprometiéndose a no hacer valer sus patentes contra nadie que implementase, distribuyese o utilizase implementaciones alternativas de .NET. [87] La implementación por parte de Mono de aquellos componentes de la pila .NET que no se habían presentado 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. [88] En particular, se ha debatido si Microsoft podría destruir el proyecto Mono mediante demandas por patentes. [89]
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 coloca explícitamente los estándares ECMA 334 ( C# ) y ECMA 335 ( CLI ) bajo la Promesa de la Comunidad de Microsoft . Las preocupaciones se relacionan principalmente con las tecnologías desarrolladas por Microsoft sobre .NET Framework, como ASP.NET , ADO.NET y Windows Forms (consulte espacios de nombres no estandarizados ), es decir, las partes que componen la pila de compatibilidad de Windows de Mono. Estas tecnologías hoy [ ¿cuándo? ] no están completamente implementadas en Mono y no son necesarias para desarrollar aplicaciones Mono, simplemente están ahí para los 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 a Mono o las aplicaciones basadas en él del archivo o del conjunto de instalación predeterminado". [90]
El 2 de junio de 2009, Richard Stallman de la Free Software Foundation afirmó que "[...] deberíamos disuadir a la gente de escribir programas en C#. Por lo tanto, no deberíamos incluir implementaciones de C# en la instalación predeterminada de las distribuciones de GNU/Linux o en sus principales formas de instalar GNOME". [91] El 1 de julio de 2009, Brett Smith (también de la FSF) afirmó 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 declarado su intención de atacar a nuestra comunidad con patentes", "C# representa una amenaza única para nosotros" y "La Promesa Comunitaria no hace nada para cambiar nada de esto". [92]
El líder del proyecto Fedora, Paul Frields, ha declarado: "Tenemos algunas preocupaciones serias sobre Mono y seguiremos analizándolas con nuestro asesor legal para ver qué medidas son necesarias de nuestra parte", pero "no hemos llegado a una conclusión legal que sea lo suficientemente convincente como para que tomemos la decisión de eliminar Mono". [93]
En noviembre de 2011, en una Cumbre de desarrolladores de Ubuntu , los desarrolladores votaron para eliminar el reproductor multimedia Banshee basado en Mono de la instalación predeterminada de Ubuntu a partir de Ubuntu 12.04 ; aunque los razonamientos informados incluyeron problemas de rendimiento en la arquitectura ARM , problemas de bloqueo en su versión GTK+ 3 y que, en su opinión, "no estaba bien mantenido", también surgió la especulación de que la decisión también estuvo influenciada por el deseo de eliminar Mono de la distribución base, ya que los programas restantes dependientes de Mono, gbrainy y Tomboy , también debían eliminarse. 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 como un "insulto personal dirigido" a uno de sus principales contribuyentes. [94]Software desarrollado con Mono


Se han desarrollado muchos programas que cubren una amplia gama de aplicaciones utilizando la interfaz de programación de aplicaciones (API) Mono y C#. Algunos programas escritos para el escritorio Linux incluyen Banshee , Beagle , F-Spot , Gbrainy , Docky / GNOME Do , MonoTorrent , Pinta y Tomboy . El programa, Logos 5 Bible Study Software (versión OS X) , fue escrito para MacOS.
Varios videojuegos, como Los Sims 3 y Second Life (por sus lenguajes de programación ), el servidor de mundo virtual OpenSimulator o juegos creados con los motores de juego Unity o MonoGame , también utilizan Mono. [95] OpenRA agrupa su imagen de disco de Apple y sus AppImages de Linux con Mono, eliminando esencialmente casi todas las dependencias del juego. [96]
Historial de versiones
Véase también
- Tiempo de ejecución del lenguaje común
- Marco .NET
- .NET , un marco 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 dirigido tanto a las plataformas Mono como a Microsoft .NET Framework
- Moonlight (tiempo 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 : implementación de código compartido de .NET de Microsoft, anteriormente con nombre en código Rotor
- mod_mono : un módulo para el servidor HTTP Apache que permite alojar páginas ASP.NET y otros ensamblajes 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á a más desarrolladores crear aplicaciones en cualquier dispositivo". Blog oficial de Microsoft . 24 de febrero de 2016 . Consultado el 24 de febrero de 2016 .
- ^ ab Sourav, Rudra (2 de septiembre de 2024). "La inesperada decisión de Microsoft de entregar un proyecto de código abierto al equipo Wine: ¿un cambio generoso?". It's FOSS News . Consultado el 8 de septiembre de 2024 .
- ^ Bonisteel, Steven (23 de junio de 2000). "Microsoft no ve nada más que .NET en el futuro". ZDNet. Archivado desde el original el 5 de noviembre de 2011. Consultado 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 mundo del código compartido". ZDNet.
- ^ "[Mono-list] Historia temprana del mono". 13 de octubre de 2003. Archivado desde el original el 6 de junio de 2011. Consultado el 30 de marzo de 2005 .
- ^ "Se lanzó la implementación Mono 1.0 de OSS .NET - Ars Technica". ArsTechnica . 30 de junio de 2004 . Consultado el 23 de octubre de 2009 .
- ^ "Plataformas compatibles". Sitio web de Mono.
- ^ Koep, Paul (2011-05-02). "Los empleados dicen que cientos de personas fueron despedidas en la oficina de Novell en Provo". KSL-TV . Consultado el 2011-05-07 .
- ^ Vaughan-Nichols, Steven J. (4 de mayo de 2011). "¿Está muerta Mono? ¿Novell se está muriendo?". ZDNet . Consultado el 2 de agosto de 2024 .
- ^ Clarke, Gavin (3 de mayo de 2011). «.NET Android and iOS clones eliminados por Attachmate». The Register . Consultado el 7 de mayo de 2011 .
- ^ "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. Incluso
si no lo respaldan, 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 desalentadora perspectiva de demostrar que su nuevo desarrollo no utiliza ninguna de las tecnologías que utilizaba el anterior. Teniendo en cuenta que esto es realmente solo un envoltorio alrededor de la API nativa, sería difícil demostrar que tenía una implementación de sala limpia incluso para un equipo que no estuviera íntimamente 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 . 2011-07-18 . Consultado el 2011-07-18 .
El acuerdo otorga a Xamarin una licencia amplia y perpetua para toda la propiedad intelectual que cubre 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 administración del proyecto de la comunidad de código abierto Mono.
- ^ de Icaza, Miguel (18 de julio de 2011). "Alianza Novell/Xamarin en torno a Mono" . Consultado el 18 de julio de 2011 .
- ^ "Microsoft adquirirá Xamarin y permitirá a más desarrolladores crear aplicaciones en cualquier dispositivo". Blog oficial de Microsoft . 24 de febrero de 2016. Archivado desde el original el 24 de febrero de 2016 . Consultado el 24 de febrero de 2016 .
- ^ ab de Icaza, Miguel (2011-03-07). "GDC 2011" . Consultado el 2011-03-11 .
No tenemos planes de desarrollar WPF. Simplemente no tenemos la mano de obra para desarrollar una implementación en un plazo de tiempo razonable (...) Para herramientas que se basan principalmente en OpenGL/DirectX, utilice Windows.Forms, teniendo en cuenta que puede ser necesario corregir errores o hacer alguna solución alternativa por parte de ellos, 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 hacia Moonlight 3 y 4 — Miguel de Icaza". Tirania.org. 2009-12-17 . Consultado el 2013-07-17 .
- ^ "Vista previa 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 para Linux". ZDNet .
- ^ desde "Ecma-335".
- ^ "Technet.com". Archivado desde el original el 23 de mayo de 2013. Consultado el 7 de julio de 2009 .
- ^ "Acceso a bases de datos - Mono".
- ^ "Mono LLVM". Mono .
- ^ ab "Compactación de GC". mono-project.com . Consultado el 16 de diciembre de 2008 .
- ^ Boehm, Hans-J. "Ventajas y desventajas de la recolección de basura conservadora". Xerox PARC . Archivado desde el original el 24 de julio de 2013. Consultado el 16 de diciembre de 2008 .
- ^ "Arquitectura de .NET Framework". Documentación oficial de Mono.
- ^ ab "Compilador C# de Mono como servicio en Windows. - Miguel de Icaza". Tirania.org. 2010-04-27 . Consultado el 2013-07-17 .
- ^ ab "CsharpRepl - Mono". Mono-project.com . Consultado el 17 de julio de 2013 .
- ^ ab "Compatibilidad con SIMD de Mono: Cómo hacer que Mono sea seguro para los juegos - Miguel de Icaza". Tirania.org. 2008-11-03 . Consultado el 2013-07-17 .
- ^ de Icaza, Miguel. "Compilación estática en Mono".
- ^ "Continuaciones - Mono".
- ^ de Icaza, Miguel. "Monovation: Inyección de ensamblaje en procesos en vivo".
- ^ "Plataformas compatibles - Mono".
- ^ Narayanaswamy, Anand (23 de noviembre de 2012). "Crear aplicaciones multiplataforma con Xwt". InfoQ . Archivado desde el original el 15 de abril de 2016 . Consultado el 15 de abril de 2016 .
- ^ de Icaza, Miguel (22 de febrero de 2013). "La creación de Xamarin Studio". InfoQ . Archivado desde el original el 2016-04-15 . Consultado el 2016-04-15 .
- ^ "Xwt Read Me". Xwt en GitHub . 15 de enero de 2012. Archivado desde el 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 Mono de código abierto y su licencia se otorga por desarrollador.
- ^ "Mono MIT con nueva licencia". www.mono-project.com. 31 de marzo de 2016.
- ^ "Xamarin para todos". blog.xamarin.com. 31 de marzo de 2016.
Hoy anunciamos nuestro compromiso de abrir el código fuente de los SDK de Xamarin para Android, iOS y Mac bajo la licencia MIT en los próximos meses.
- ^ "MonoTouch y iPhone 4".
Las aplicaciones creadas con MonoTouch son aplicaciones nativas que no se pueden distinguir de otras aplicaciones nativas.
- ^ "Apple apunta a Adobe... ¿o a Android?". 9 de abril de 2010.
- ^ "Declaración de Apple sobre las pautas de revisión de la App Store".
Basándonos en sus comentarios, hoy estamos realizando algunos cambios importantes en nuestra licencia del Programa para desarrolladores de iOS en las secciones 3.3.1, 3.3.2 y 3.3.9 para relajar algunas restricciones que implementamos a principios de este año. En particular, estamos relajando todas las restricciones sobre las herramientas de desarrollo utilizadas para crear aplicaciones de iOS, siempre que las aplicaciones resultantes no descarguen ningún código. Esto debería brindarles a los desarrolladores la flexibilidad que desean, al mismo tiempo que preservamos la seguridad que necesitamos.
- ^ "Buenas noticias para los usuarios de MonoTouch".
Con estos nuevos términos, la ambigüedad ha desaparecido y los amantes y entusiastas de C# pueden volver a utilizar MonoTouch. Los desarrolladores a los que les gusta la recolección de basura y sus lenguajes fuertemente tipados pueden reanudar su trabajo.
- ^ de Icaza, Miguel. "MonoTouch 1.0 ya está disponible".
- ^ "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 . 2013-09-18 . Consultado el 2021-03-20 .
- ^ "iOS 8 más grande y mejor con Xamarin". Blog de Xamarin . 2014-09-10 . Consultado el 2021-03-20 .
- ^ "Xamarin para iOS 9: búsqueda más profunda". Blog de Xamarin . 2015-09-16 . Consultado el 2021-03-20 .
- ^ "Actualizaciones importantes: iOS 10, Android Nougat y otras novedades interesantes". Blog de Xamarin . 2016-09-13 . Consultado el 2021-03-20 .
- ^ 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 sobre Mono para Android. 28 de agosto de 2011. Consultado el 29 de marzo de 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: .NET Support Comes to Android" (MonoDroid: compatibilidad con .NET en camino a Android). TechieBuzz. 18 de octubre de 2022.
- ^ "Mono para Android lleva C# a Android". Heise Online . 2011-04-07 . Consultado el 2011-04-07 .
- ^ "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 incorporación de algunas de las aplicaciones existentes creadas con MonoTouch a Android.
- ^ "Mono para Android". H-Online.
Nuestra visión es permitir a los desarrolladores reutilizar su motor y código de lógica empresarial en todas las plataformas móviles y reemplazar el código de la interfaz de usuario por una API específica de la plataforma.
- ^ "Microsoft no detendrá (Mono) .NET en Android". TechWorld.
El tipo de acción que Oracle está tomando contra Google por Java no va a suceder. Si un puerto de .NET a Android fuera a través de Mono, estaría dentro del Acuerdo de Promesa de la Comunidad de Microsoft.
- ^ "Microsoft afirma que .NET en Android es seguro y no habrá litigios como en el caso de Oracle". Desarrollador Fusion.
- ^ "Xamarin Designer para Android". Revista Visual Studio.
El 14 de mayo, Xamarin anunció Mono para Android 4.2.
- ^ "Cocoa# va 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 desde el 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 desde el original el 2016-04-12 . Consultado el 2016-04-12 .
- ^ 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 .
- ^ ab 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 desde el 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 desde el original el 23 de mayo de 2013. Consultado el 7 de julio de 2009.
En virtud de la Promesa de la Comunidad, Microsoft garantiza que no hará valer sus Reclamos Necesarios contra nadie que haga, use, venda, ofrezca para la venta, importe o distribuya cualquier Implementación Cubierta bajo cualquier tipo de modelo de desarrollo o distribución, incluidos los modelos de licencia de código abierto como la LGPL o la GPL.
- ^ Babcock, Charles (7 de agosto de 2001). "¿Se verá atrapado el código abierto en .Net?". ZDNet Asia.
- ^ Smith, Brett (16 de julio de 2009). "La promesa vacía de Microsoft". fsf.org.
- ^ "Declaración de posición de Mono". Canonical Ltd. 30 de junio de 2009.
Es una práctica común en la industria del software 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 demanda por 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#".
- ^ "La promesa vacía de Microsoft".
- ^ "Fedora está preocupada por Mono". internetnews.com. 12 de junio de 2009. Archivado desde el original el 19 de junio de 2009. Consultado el 4 de julio de 2010.
No hemos llegado a una conclusión legal que sea lo suficientemente clara como para que tomemos la decisión de eliminar Mono.
- ^ "'Bansheegeddon' podría hacer que Banshee y Mono dejen de ser los predeterminados de Ubuntu". ITWorld . Archivado desde el 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. 2008-10-06 . Consultado el 2013-07-17 .
- ^ "Notas de la versión Mono 2.2". Mono-project.com . Consultado el 17 de julio de 2013 .
- ^ "IR lineal - 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 de Mono 5.2.0".
- ^ "Notas de la versión de Mono 5.4.0".
- ^ "Notas de la versión de Mono 5.8.0".
- ^ "Notas de la versión de Mono 5.10.0".
- ^ "Notas de la versión de Mono 5.12.0".
- ^ "Notas de la versión de Mono 5.14.0".
- ^ "Notas de la versión de Mono 5.16.0".
- ^ "Notas de la versión de Mono 5.18.0".
- ^ "Notas de la versión de Mono 5.20.0".
- ^ "Notas de la versión de Mono 6.0.0".
- ^ "Notas de la versión de Mono 6.4.0".
- ^ "Notas de la versión de Mono 6.6.0".
- ^ "Notas de la versión de Mono 6.8.0".
- ^ "Notas de la versión de Mono 6.10.0".
- ^ "Notas de la versión de Mono 6.12.0".
Fuentes
- Este artículo incorpora texto de la página de inicio de Mono, que entonces estaba bajo la Licencia de Documentación Libre de GNU .
- de Icaza, Miguel (13 de octubre de 2003). «[Mono-list] Mono early history.». Archivado desde el original (lista de correo) el 6 de junio de 2011. Consultado 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 desde el original el 19 de octubre de 2006. Consultado el 14 de octubre de 2006 .
- Loli-Queru, Eugenia (22 de febrero de 2005). "¿Aplicaciones mono? ¡Abundantes!". OSNews . Consultado el 6 de diciembre de 2005 .
- Kerner, Sean Michael (18 de noviembre de 2005). "Mono Project Goes Virtual". Internet News . Consultado el 14 de octubre de 2006 .
- Kerner, Sean Michael (9 de noviembre de 2006). "Con meses de retraso, Novell lanza Mono 1.2". internetnews.com.
- Northcutt, Corey (12 de octubre de 2006). "En el mundo de mod_mono". Ubiquity. Archivado desde el original el 23 de febrero de 2007. Consultado el 14 de octubre de 2006 .
- Campbell, Sean (8 de octubre de 2008). "Entrevista con Joseph Hill, director de productos, Mono, Novell". HSIB . Consultado el 8 de octubre de 2008 .
- Smith, Tim (9 de septiembre de 2010). "Una breve introducción a las cuestiones de patentes de Java y .NET". InfoQ . Consultado el 13 de septiembre de 2010 .
Enlaces externos
- Sitio web oficial
- Página principal de MonoTouch para el puerto de productos portátiles de Apple Inc.