stringtranslate.com

Mono (software)

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

Stand de Mono en OSCON 2009 en San José, California

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 la posibilidad de 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 de una 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 ). 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:

  1. Componentes principales
  2. Pila de desarrollo Mono/Linux/GNOME
  3. 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 existentes de GNOME y de código abierto y gratuito . Estas incluyen: Gtk# para el desarrollo de interfaz gráfica de usuario (GUI), bibliotecas de Mozilla para trabajar con el motor de renderizado Gecko , bibliotecas de integración de Unix (Mono.Posix), bibliotecas de conectividad de base 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 base 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 base 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

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:

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:

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:

macOS:

Plataformas móviles:

Ventanas:

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 se volvió a licenciar 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:

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:

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 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

Reproductor multimedia Banshee
GNOME Hacer

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

Referencias

Citas

  1. ^ "Lanzamientos Mono". Mono .
  2. ^ Presentación de Mono en AIX e IBM i
  3. ^ "Preguntas frecuentes: Licencias" . Consultado el 3 de julio de 2020 .
  4. ^ "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 .
  5. ^ 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 .
  6. ^ 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 .
  7. ^ "ECMA-335-Parte-I-IV - ECMA-335, 1.ª edición, diciembre de 2001" (PDF) .
  8. ^ Wilcox, Joe; Shankland, Stephen (28 de junio de 2001). "Microsoft se adentra en el mundo del código compartido". ZDNet.
  9. ^ "[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 .
  10. ^ "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 .
  11. ^ "Plataformas compatibles". Sitio web de Mono.
  12. ^ 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 .
  13. ^ Vaughan-Nichols, Steven J. (4 de mayo de 2011). "¿Está muerta Mono? ¿Novell se está muriendo?". ZDNet . Consultado el 2 de agosto de 2024 .
  14. ^ Clarke, Gavin (3 de mayo de 2011). «.NET Android and iOS clones eliminados por Attachmate». The Register . Consultado el 7 de mayo de 2011 .
  15. ^ "Anunciando Xamarin - Miguel de Icaza". Tirania.org. 2011-05-16 . Consultado el 17 de julio de 2013 .
  16. ^ "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.
  17. ^ "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.
  18. ^ de Icaza, Miguel (18 de julio de 2011). "Alianza Novell/Xamarin en torno a Mono" . Consultado el 18 de julio de 2011 .
  19. ^ "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 .
  20. ^ 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.
  21. ^ "Lista de compatibilidad mono".
  22. ^ "Hoja de ruta del proyecto Mono - Mono". Mono-project.com . Consultado el 17 de julio de 2013 .
  23. ^ "MoonlightRoadmap". Equipo Mono . Consultado el 8 de noviembre de 2008 .
  24. ^ "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 .
  25. ^ "Vista previa 1 de Moonlight 3.0 - Miguel de Icaza". Tirania.org. 2010-02-03 . Consultado el 17 de julio de 2013 .
  26. ^ "Xamarin abandona su tecnología Silverlight para Linux". ZDNet .
  27. ^ desde "Ecma-335".
  28. ^ "Technet.com". Archivado desde el original el 23 de mayo de 2013. Consultado el 7 de julio de 2009 .
  29. ^ "Acceso a bases de datos - Mono".
  30. ^ "Mono LLVM". Mono .
  31. ^ ab "Compactación de GC". mono-project.com . Consultado el 16 de diciembre de 2008 .
  32. ^ 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 .
  33. ^ "Arquitectura de .NET Framework". Documentación oficial de Mono.
  34. ^ ab "Compilador C# de Mono como servicio en Windows. - Miguel de Icaza". Tirania.org. 2010-04-27 . Consultado el 2013-07-17 .
  35. ^ ab "CsharpRepl - Mono". Mono-project.com . Consultado el 17 de julio de 2013 .
  36. ^ 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 .
  37. ^ de Icaza, Miguel. "Compilación estática en Mono".
  38. ^ "Continuaciones - Mono".
  39. ^ de Icaza, Miguel. "Monovation: Inyección de ensamblaje en procesos en vivo".
  40. ^ "Plataformas compatibles - Mono".
  41. ^ 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 .
  42. ^ 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 .
  43. ^ "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 .
  44. ^ "Proyecto DotGNU" . Consultado el 2 de junio de 2014 .
  45. ^ "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.
  46. ^ "Mono MIT con nueva licencia". www.mono-project.com. 31 de marzo de 2016.
  47. ^ "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.
  48. ^ "MonoTouch y iPhone 4". Las aplicaciones creadas con MonoTouch son aplicaciones nativas que no se pueden distinguir de otras aplicaciones nativas.
  49. ^ "Apple apunta a Adobe... ¿o a Android?". 9 de abril de 2010.
  50. ^ "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.
  51. ^ "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.
  52. ^ de Icaza, Miguel. "MonoTouch 1.0 ya está disponible".
  53. ^ "MonoTouch 2.0.0". Xamarin .
  54. ^ "MonoTouch 3.0.0". Xamarin .
  55. ^ "MonoTouch 4.0.0". Xamarin .
  56. ^ "MonoTouch 5.0". Xamarin .
  57. ^ "MonoTouch 6.0". Xamarin .
  58. ^ "Xamarin.iOS 6.2". Xamarin . 28 de enero de 2023.
  59. ^ "Xamarin.iOS 6.4". Xamarin . 8 de julio de 2022.
  60. ^ "iOS 7 y Xamarin: listos cuando tú lo estés". Blog de Xamarin . 2013-09-18 . Consultado el 2021-03-20 .
  61. ^ "iOS 8 más grande y mejor con Xamarin". Blog de Xamarin . 2014-09-10 . Consultado el 2021-03-20 .
  62. ^ "Xamarin para iOS 9: búsqueda más profunda". Blog de Xamarin . 2015-09-16 . Consultado el 2021-03-20 .
  63. ^ "Actualizaciones importantes: iOS 10, Android Nougat y otras novedades interesantes". Blog de Xamarin . 2016-09-13 . Consultado el 2021-03-20 .
  64. ^ 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 .
  65. ^ 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 .
  66. ^ 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 .
  67. ^ 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 .
  68. ^ "¿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 .
  69. ^ "El proyecto Mono de Novell lleva el desarrollo .Net a Android". NetworkWorld.
  70. ^ "El proyecto Mono de Novell lleva el desarrollo .Net a Android". InfoWorld. 16 de marzo de 2010.
  71. ^ "MonoDroid: .NET Support Comes to Android" (MonoDroid: compatibilidad con .NET en camino a Android). TechieBuzz. 18 de octubre de 2022.
  72. ^ "Mono para Android lleva C# a Android". Heise Online . 2011-04-07 . Consultado el 2011-04-07 .
  73. ^ "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.
  74. ^ "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.
  75. ^ "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.
  76. ^ "Microsoft afirma que .NET en Android es seguro y no habrá litigios como en el caso de Oracle". Desarrollador Fusion.
  77. ^ "Xamarin Designer para Android". Revista Visual Studio. El 14 de mayo, Xamarin anunció Mono para Android 4.2.
  78. ^ "Cocoa# va tomando forma; primeras capturas de pantalla disponibles - OSnews".
  79. ^ "macOS | Mono". www.mono-project.com . Consultado el 4 de febrero de 2023 .
  80. ^ davidortinau. "Xamarin.Mac - Xamarin". learn.microsoft.com . Consultado el 4 de febrero de 2023 .
  81. ^ "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 .
  82. ^ de Icaza, Miguel. "El compilador Mono C# ahora también tiene licencia MIT X11".
  83. ^ "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 .
  84. ^ 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 .
  85. ^ ab Ferraira, Bruno (31 de marzo de 2016). "Xamarin ahora viene gratis con Visual Studio". The Tech Report .
  86. ^ "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 .
  87. ^ "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.
  88. ^ Babcock, Charles (7 de agosto de 2001). "¿Se verá atrapado el código abierto en .Net?". ZDNet Asia.
  89. ^ Smith, Brett (16 de julio de 2009). "La promesa vacía de Microsoft". fsf.org.
  90. ^ "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.
  91. ^ "Por qué el software libre no debería depender de Mono o C#".
  92. ^ "La promesa vacía de Microsoft".
  93. ^ "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.
  94. ^ "'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 .
  95. ^ "Empresas que utilizan Mono". Proyecto Mono . Consultado el 30 de agosto de 2015 .
  96. ^ Paul Chote: OpenRA: prueba de juego 20190825, 25 de agosto de 2019
  97. ^ "Lanzamientos de Mono". Mono-project.com . Consultado el 4 de abril de 2015 .
  98. ^ "OldReleases". Mono-project.com . Consultado el 17 de julio de 2013 .
  99. ^ "Notas de la versión Mono 1.0". Mono-project.com . Consultado el 17 de julio de 2013 .
  100. ^ "Mono 1.1.1: versión de desarrollo". Mono-project.com . Consultado el 17 de julio de 2013 .
  101. ^ "Mono 1.2: Notas de la versión". Mono-project.com . Consultado el 17 de julio de 2013 .
  102. ^ "Notas de la versión Mono 2.0". Mono-project.com. 2008-10-06 . Consultado el 2013-07-17 .
  103. ^ "Notas de la versión Mono 2.2". Mono-project.com . Consultado el 17 de julio de 2013 .
  104. ^ "IR lineal - Mono". Mono-project.com . Consultado el 17 de julio de 2013 .
  105. ^ "Notas de la versión Mono 2.4". Mono-project.com . Consultado el 17 de julio de 2013 .
  106. ^ "Notas de la versión Mono 2.6". Mono-project.com . Consultado el 17 de julio de 2013 .
  107. ^ "Notas de la versión Mono 2.8". Mono-project.com . Consultado el 17 de julio de 2013 .
  108. ^ "Notas de la versión Mono 2.10". Mono-project.com . Consultado el 17 de julio de 2013 .
  109. ^ "Notas de la versión Mono 3.0". Mono-project.com . Consultado el 23 de septiembre de 2013 .
  110. ^ "Notas de la versión Mono 3.2". Mono-project.com . Consultado el 23 de septiembre de 2013 .
  111. ^ "Notas de la versión Mono 3.4". Mono-project.com . Consultado el 4 de abril de 2015 .
  112. ^ "Notas de la versión Mono 3.6". Mono-project.com . Consultado el 4 de abril de 2015 .
  113. ^ "Notas de la versión Mono 3.8". Mono-project.com . Consultado el 4 de abril de 2015 .
  114. ^ "Notas de la versión Mono 3.10". Mono-project.com . Consultado el 4 de abril de 2015 .
  115. ^ "Notas de la versión Mono 3.12". Mono-project.com . Consultado el 4 de abril de 2015 .
  116. ^ "Notas de la versión Mono 4.0". Mono-project.com . Consultado el 3 de mayo de 2015 .
  117. ^ "Notas de la versión Mono 5.0". Mono-project.com . Consultado el 13 de mayo de 2017 .
  118. ^ "Notas de la versión de Mono 5.2.0".
  119. ^ "Notas de la versión de Mono 5.4.0".
  120. ^ "Notas de la versión de Mono 5.8.0".
  121. ^ "Notas de la versión de Mono 5.10.0".
  122. ^ "Notas de la versión de Mono 5.12.0".
  123. ^ "Notas de la versión de Mono 5.14.0".
  124. ^ "Notas de la versión de Mono 5.16.0".
  125. ^ "Notas de la versión de Mono 5.18.0".
  126. ^ "Notas de la versión de Mono 5.20.0".
  127. ^ "Notas de la versión de Mono 6.0.0".
  128. ^ "Notas de la versión de Mono 6.4.0".
  129. ^ "Notas de la versión de Mono 6.6.0".
  130. ^ "Notas de la versión de Mono 6.8.0".
  131. ^ "Notas de la versión de Mono 6.10.0".
  132. ^ "Notas de la versión de Mono 6.12.0".

Fuentes

Enlaces externos