stringtranslate.com

Mono (software)

Mono es un marco de software gratuito y de código abierto compatible con .NET Framework . Originalmente por Ximian , luego fue adquirida por Novell y ahora está dirigida por Xamarin , una subsidiaria de Microsoft [4] y la Fundación .NET . Mono se puede ejecutar en muchos sistemas de software .

Historia

Stand mono en OSCON 2009 en San José, California

Cuando Microsoft anunció por primera vez su .NET Framework en junio de 2000, lo describió como "una nueva plataforma basada en estándares de Internet", [5] y en diciembre de ese año la infraestructura de lenguaje común subyacente se publicó como un estándar abierto, "ECMA-335 ", [6] abriendo el potencial para implementaciones independientes. [7] Miguel de Icaza de Ximian creía que .NET tenía el potencial de aumentar la productividad del programador y comenzó a investigar si una versión de Linux era factible. [8] Reconociendo que su pequeño equipo no podía esperar construir y soportar un producto completo, lanzaron el proyecto de código abierto Mono, el 19 de julio de 2001, en la conferencia O'Reilly .

Después de tres años de desarrollo, Mono 1.0 fue lanzado el 30 de junio de 2004. [9] Mono evolucionó desde su enfoque inicial de una plataforma de desarrollo para aplicaciones de escritorio Linux hasta soportar una amplia gama de arquitecturas y sistemas operativos, incluidos sistemas integrados. [10]

Novell adquirió Ximian en 2003. Después de que Novell fuera adquirida por Attachmate en abril de 2011, Attachmate anunció cientos de despidos de la fuerza laboral de Novell, [11] poniendo en duda el futuro de Mono. [12] [13]

El 16 de mayo, Miguel de Icaza anunció en su blog que Mono seguiría contando con el apoyo de Xamarin , empresa que fundó tras ser despedido de Novell. El equipo Mono original 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 era propietario de MonoTouch y Mono para Android en ese momento. [14] Después de este anuncio, se cuestionó el futuro del proyecto, ya que MonoTouch y Mono para Android competían directamente con las ofertas comerciales existentes ahora propiedad de Attachmate , y considerando que el equipo de Xamarin tendría dificultades para demostrar que no utilizaban tecnologías. se desarrollaron anteriormente cuando Novell los contrató para el mismo trabajo. [15] Sin embargo, en julio de 2011, Novell, ahora una subsidiaria de Attachmate, y Xamarin, anunció que otorgó una licencia perpetua a Xamarin para Mono, MonoTouch y Mono para Android, que asumió oficialmente la administración del proyecto. [16] [17]

Estado actual y hoja de ruta

La versión actual de Mono es 6.0.0 (a agosto de 2019 ). Esta versión proporciona la API principal de .NET Framework y compatibilidad con Visual Basic.NET y C# 7.0. LINQ to Objects , XML y SQL son parte de la distribución. Windows Forms 2.0 también es compatible, pero no se desarrolla activamente y, como tal, su compatibilidad con Mono es incompleta. [18] La versión 4.0 fue la primera versión que incorpora el código fuente original de Microsoft que fue lanzada por Microsoft como parte del proyecto .NET Core .

A partir del 14 de enero de 2021, Mono tiene soporte completo para todas las funciones 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) [18] y Windows Workflow Foundation (WF) y con soporte limitado para Windows Communication Foundation (WCF) y la pila asíncrona de ASP.NET. Sin embargo, System.Web y WCF son candidatos para una migración "casi inmediata" desde la fuente de referencia .NET a Mono. [19] Algunas partes faltantes de .NET Framework están en desarrollo en un subproyecto experimental Mono llamado Olive. [20]

El proyecto Mono también ha creado un compilador Visual Basic .NET y un tiempo de ejecución diseñado para ejecutar aplicaciones VB.NET. Actualmente está siendo desarrollado por Rolf Bjarne Kvinge.

luz de la luna

Desde Mono 1.9 se ha incluido una implementación de código abierto de Microsoft Silverlight , llamada Moonlight . [21] Moonlight 1.0, que admite las API de Silverlight 1.0, se lanzó el 20 de enero de 2009. Moonlight 2.0 es compatible con Silverlight 2.0 y algunas características de Silverlight 3.0. [22] En febrero de 2010 se anunció una versión preliminar de Moonlight 3.0 que contiene actualizaciones del soporte de Silverlight 3. [23]

El proyecto Moonlight fue abandonado el 29 de mayo de 2012. [24] Según Miguel, dos factores sellaron el destino del proyecto: Microsoft añadió "restricciones artificiales" que "lo hacían inútil para la programación de escritorio", y la tecnología no había ganado lo suficiente. tracción en la Web. Además, Microsoft dejó de utilizar Silverlight en 2012.

Monocomponentes

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 Common Language Infrastructure y las bibliotecas de clases principales. Estos componentes se basan en los estándares Ecma-334 y Ecma-335 , [25] lo que permite a Mono proporcionar una máquina virtual CLI de código abierto, gratuita y compatible con los estándares . Microsoft emitió una declaración que cubre ambos estándares bajo su licencia Community Promise . [26]

La pila de desarrollo Mono/Linux/GNOME proporciona herramientas para el desarrollo de aplicaciones mientras se utiliza GNOME existente y bibliotecas gratuitas y de código abierto . Estos 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 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 brindan conectividad a 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 rastrea el desarrollo de componentes de bases de datos en su sitio web. [27]

La pila de compatibilidad de Microsoft proporciona una vía para migrar 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 de Ecma , algunos de ellos siguen sujetos a temores y preocupaciones sobre patentes.

Arquitectura marco

Los componentes principales de Mono incluyen:

Motor de ejecución de código

El tiempo de ejecución Mono contiene un motor de ejecución de código que traduce códigos de bytes ECMA CIL a código nativo y admite varios procesadores: ARM , MIPS (solo en modo de 32 bits), SPARC , PowerPC , z/Architecture , IA-32 , x86- 64 e IA-64 para modos de 64 bits.

El generador de código se expone en tres modos:

A partir de Mono 2.6, es posible configurar Mono para usar LLVM como motor de generación de código en lugar del propio motor de generación de código de Mono. Esto es ú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 vista previa de Mono 2.7, ya no es necesario elegir un motor sobre el otro en el momento de la configuración. El motor de generación de código se puede seleccionar al inicio utilizando los argumentos de la línea de comando --llvmo --nollvm, y de forma predeterminada es el motor de generación de código Mono de inicio rápido.

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 LLVM especial, pero ahora mono puede recurrir a su propio generador de código cuando encuentra algo que LLVM no maneja. [28]

Recolector de basura

A partir de Mono 2.8, el tiempo de ejecución de Mono se envía con dos recolectores de basura : un recolector generacional y el recolector de basura conservador Boehm-Demers-Weiser . El recolector de basura de Boehm podría presentar pérdidas de memoria en ciertas clases de aplicaciones, lo que lo hace inadecuado para algunas aplicaciones de servidor de larga ejecución. [29] [30] Mono cambió a GC generacional simple (SGen-GC) como recopilador predeterminado en la versión 3.1.1.

El recolector de basura SGen tiene muchas ventajas sobre un escáner conservador tradicional. Utiliza recolección de basura generacional donde se asignan nuevos objetos 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 recopilar rápidamente y solo un puñado de objetos son objetos a largo plazo que viven durante toda la vida útil de la aplicación. Para mejorar el rendimiento, este recopilador asigna grupos de memoria a cada subproceso para permitir que los subprocesos asignen nuevos bloques de memoria sin tener que coordinarse con otros subprocesos. La migración de objetos de la guardería a la generación anterior se realiza copiando los datos de la guardería al grupo de generación anterior y actualizando cualquier puntero en vivo que apunte a los datos para que apunte a la nueva ubicación. Esto puede resultar costoso para objetos grandes, por lo que SGen de Mono usa un grupo de memoria separado para objetos grandes (Sección de Objetos Grandes) y usa un algoritmo de marca y barrido para esos objetos. [29]

biblioteca de clases

La biblioteca de clases proporciona un conjunto completo de funciones para el desarrollo de aplicaciones. Están escritos principalmente en C#, pero debido a la especificación de lenguaje común, pueden usarse en cualquier lenguaje .NET. La biblioteca de clases está estructurada en espacios de nombres y se implementa en bibliotecas compartidas conocidas como ensamblados. Hablar de .NET Framework es hacer referencia principalmente a esta biblioteca de clases. [31]

Espacios de nombres y ensamblajes

Los espacios de nombres son un mecanismo para agrupar lógicamente clases similares en una estructura jerárquica. Esto evita conflictos de nombres. La estructura se implementa 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 Accesibilidad y Windows. Un usuario puede definir un espacio de nombres colocando elementos dentro de un bloque de espacio de nombres.

Los ensamblajes son el embalaje físico de las bibliotecas de clases. Estos son archivos .dll, como (pero no deben confundirse con) las bibliotecas compartidas Win32. Ejemplos de ensamblados son mscorlib.dll, System.dll, System.Data.dll y Accessibility.dll. Los espacios de nombres suelen distribuirse entre varios ensamblajes y un ensamblaje puede estar compuesto por varios archivos.

Infraestructura de lenguaje común y especificación de lenguaje común

La infraestructura de lenguaje común (CLI) , implementada por Common Language Runtime (CLR) , se implementa mediante el ejecutable Mono. El tiempo de ejecución compila y ejecuta aplicaciones .NET. La infraestructura del lenguaje común está definida por el estándar ECMA. [25] Para ejecutar una aplicación, debe invocar el tiempo de ejecución con los parámetros relevantes.

La Especificación de lenguaje común (CLS) se especifica en el capítulo 6 de ECMA-335 y define la interfaz para la CLI, como convenciones como los tipos subyacentes para Enum. El compilador Mono genera una imagen que se ajusta a CLS. Esta es la lengua intermedia común. El tiempo de ejecución Mono toma esta imagen y la ejecuta. El estándar ECMA define formalmente una biblioteca que se ajusta al CLS como marco.

Código administrado y no administrado

Dentro de una aplicación nativa .NET/Mono, se administra todo el código ; es decir, se rige por el estilo de gestión de memoria y seguridad de subprocesos de la CLI. Otras aplicaciones .NET o Mono pueden usar código heredado, denominado 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 función de la CLI, como Gtk# .

Innovaciones monoespecíficas

Mono ha innovado en algunas áreas con nuevas extensiones de las especificaciones principales de C# y CLI:

Además, Mono está disponible en una variedad de sistemas operativos y arquitecturas. [38]

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. Estos proyectos incluyen:

Multiplataforma:

Mac OS:

Plataformas móviles:

Ventanas:

Otras implementaciones

Microsoft tiene una versión de .NET 2.0 ahora disponible sólo para Windows XP , llamada CLI de origen compartido (Rotor) . La licencia de fuente compartida de Microsoft puede ser insuficiente para las necesidades de la comunidad (prohíbe explícitamente el uso comercial).

Proyecto Portable.NET desmantelado de la Free Software Foundation . [42]

Monodesarrollo

MonoDevelop es un entorno de desarrollo integrado de GNOME gratuito 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 una adaptación de SharpDevelop a Gtk#, pero desde entonces ha evolucionado para satisfacer las necesidades de los desarrolladores de Mono. El IDE incluye gestión de clases, ayuda integrada, finalización de código, Stetic (un diseñador de GUI), soporte de proyectos y un depurador integrado.

El navegador MonoDoc proporciona acceso a documentación API y ejemplos de código. El navegador de documentación utiliza gestión de contenido 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 estaba disponible para licencias comerciales, [43] después de la adquisición de Xamarin por parte de Microsoft en 2016, el tiempo de ejecución Mono en sí volvió a obtener la licencia MIT [44] y tanto Xamarin.iOS como Xamarin.Android se están volviendo gratuitos y de código abierto. [45]

Xamarin.iOS

Xamarin.iOS (anteriormente llamado MonoTouch) es una biblioteca que permite a los desarrolladores crear aplicaciones basadas en C# y .NET que se ejecutan en dispositivos iPhone, iPod y iPad. Está basado en el marco Mono y desarrollado 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 . [46] Esto es necesario porque el kernel de iOS impide que los compiladores justo a tiempo se ejecuten en el dispositivo.

La pila de Xamarin.iOS se compone de:

Xamarin Studio se utiliza 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 quedó en duda cuando Apple introdujo nuevos términos para los desarrolladores de iPhone que aparentemente les prohíbe desarrollar en lenguajes distintos de C, C++ y Objective-C , y el uso de una capa intermedia entre los Plataforma iOS y aplicaciones para iPhone. Esto hizo que el futuro de MonoTouch y otras tecnologías como Unity fuera incierto. [47] Luego, en septiembre de 2010, Apple rescindió esta restricción, afirmando que estaban relajando las restricciones de idioma que habían implementado a principios de ese año. [48] ​​[49]

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 patentada [ cita necesaria ] [66] de Mono para teléfonos inteligentes basados ​​en Android . [67] [68] [69] Se lanzó por primera vez el 6 de abril de 2011. [70] 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. [71] En una entrevista con H-Online, Miguel de Icaza declaró: "Nuestra visión es permitir a los desarrolladores reutilizar su motor y código de lógica de negocios en todas las plataformas móviles y cambiar el código de la interfaz de usuario por una API específica de la plataforma". [72]

En agosto de 2010, un portavoz de Microsoft, Tom Hanrahan del Centro de Tecnología de Código Abierto de Microsoft, declaró, en referencia a la demanda presentada por Oracle contra Google por el uso de Java en Android, que "El tipo de acción que Oracle está tomando contra Google por Java no es "Esto va a suceder. Si un puerto .NET a Android fuera a través de Mono, estaría bajo el Acuerdo de Promesa de la Comunidad de Microsoft ". [73] [74]

La pila de Xamarin.Android consta de los siguientes componentes:

Mono en macOS

cacaoafilado

Cocoa# (también conocido como CocoaSharp) era un marco puente para Mac OS X , que permitía que las aplicaciones desarrolladas con el tiempo de ejecución Mono accedieran a la API Cocoa . Se lanzó inicialmente el 12 de agosto de 2004, [76] 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 necesaria ] No ha visto ningún desarrollo desde 2008, [ cita necesaria ] y ahora está en desuso. [77]

Monobjc

Monobjc fue el reemplazo de CocoaSharp. Permite a los desarrolladores de .NET utilizar la mayor parte de la API de Mac OS X, incluido Cocoa, sin código nativo, y al mismo tiempo lograr una interfaz de usuario nativa. [ cita necesaria ]

Xamarin.Mac

Xamarin.Mac es una biblioteca que permite a los desarrolladores ejecutar aplicaciones .NET y C# en Mac . [78]

Licencia

Mono tiene doble licencia de Xamarin, similar a otros productos como Qt y Mozilla Application Suite . El compilador y las herramientas de C# de Mono se publican bajo la licencia pública general GNU (solo GPLv2) (a partir de la versión 2.0 de Mono, el código fuente del compilador de Mono C# también está disponible bajo la licencia MIT X11 ), [79] las bibliotecas de tiempo de ejecución bajo GNU Licencia pública general reducida (solo LGPLv2) y las bibliotecas de clases bajo la licencia MIT . Todos estos son software gratuito y licencias de código abierto y, por lo tanto, Mono es software gratuito y de código abierto .

La licencia del compilador C# se cambió de GPL a la licencia MIT X11 [80] para permitir que el código del compilador se reutilice en algunos casos en los que la GPL lo habría impedido:

El 18 de marzo de 2016 se cerró oficialmente la adquisición de Xamarin por parte de Microsoft. [81] El 31 de marzo de 2016, Microsoft anunció en Microsoft Build que volverán a otorgar la licencia completa de Mono bajo la licencia MIT incluso en escenarios en los que anteriormente era necesaria una licencia comercial, [82] y Microsoft declaró que no afirmará cualquier "patente aplicable" contra partes que "usen, vendan, ofrezcan para la venta, importen o distribuyan Mono". [83] [84] También se anunció que Xamarin había contribuido con el Proyecto Mono a la Fundación .NET. [83]

Las patentes de Mono y Microsoft

Software desarrollado con Mono

Reproductor multimedia banshee
GNOME hacer

Se han desarrollado muchos programas que cubren una variedad 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, Software de estudio bíblico Logos 5 (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. [85] OpenRA incluye su Apple Disk Image y Linux AppImages con Mono, esencialmente eliminando casi todas las dependencias del juego. [86]

Historial de versiones

Ver también

Referencias

Citas

  1. ^ "Lanzamientos mono". Mononucleosis infecciosa .
  2. ^ Presentamos 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. ^ Bonisteel, Steven (23 de junio de 2000). "Microsoft no ve nada más que .NET por delante". ZDNet. Archivado desde el original el 5 de noviembre de 2011 . Consultado el 5 de abril de 2011 .
  6. ^ "ECMA-335-Part-I-IV - ECMA-335, 1.ª edición, diciembre de 2001" (PDF) .
  7. ^ Wilcox, Joe; Shankland, Stephen (28 de junio de 2001). "Microsoft avanza hacia el intercambio de código". ZDNet.
  8. ^ "[Lista Mono] Historia temprana de Mono". 2003-10-13. Archivado desde el original el 6 de junio de 2011 . Consultado el 30 de marzo de 2005 .
  9. ^ "Lanzamiento de la implementación de OSS .NET Mono 1.0 - Ars Technica". ArsTechnica . 30 de junio de 2004 . Consultado el 23 de octubre de 2009 .
  10. ^ "Plataformas compatibles". Sitio web mono.
  11. ^ Koep, Paul (2 de mayo de 2011). "Los empleados dicen que cientos fueron despedidos en la oficina de Novell en Provo". KSL-TV . Consultado el 7 de mayo de 2011 .
  12. ^ J. Vaughan-Nichols, Steven (4 de mayo de 2011). "¿Mono está muerto? ¿Novell está muriendo?". ZDNet . Consultado el 7 de mayo de 2011 .
  13. ^ Clarke, Gavin (3 de mayo de 2011). "Clones de .NET Android e iOS eliminados por Attachmate". El registro . Consultado el 7 de mayo de 2011 .
  14. ^ "Anunciando Xamarin - Miguel de Icaza". Tirania.org. 2011-05-16 . Consultado el 17 de julio de 2013 .
  15. ^ "La muerte y el renacimiento de Mono". infoq.com. 2011-05-17 . Consultado el 29 de mayo de 2011 . Incluso si no lo respaldan, poseen un producto que compite directamente con las ofertas futuras de Xamarin. Sin algún tipo de acuerdo legal entre Attachmate y Xamarin, este último enfrentaría la desalentadora perspectiva de demostrar que su nuevo desarrollo no utiliza la tecnología que usaba el anterior. Teniendo en cuenta que esto es en realidad solo una envoltura de la API nativa, sería difícil demostrar que tuvo una implementación limpia incluso para un equipo que no estaba íntimamente familiarizado con el código de Attachmate.
  16. ^ "SUSE y Xamarin se asocian para acelerar la innovación y respaldar a los clientes y la comunidad de Mono". Novell . 2011-07-18 . Consultado el 18 de julio de 2011 . 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 comunitario de código abierto Mono.
  17. ^ de Icaza, Miguel (18 de julio de 2011). "Asociación Novell/Xamarin en torno a Mono" . Consultado el 18 de julio de 2011 .
  18. ^ ab de Icaza, Miguel (7 de marzo de 2011). "CDG 2011" . Consultado el 11 de marzo de 2011 . No tenemos planes de construir WPF. Simplemente no tenemos la mano de obra para construir una implementación en un período de tiempo razonable (...) Para herramientas que están basadas principalmente en OpenGL/DirectX, use Windows.Forms, teniendo en cuenta que algunas correcciones de errores o soluciones alternativas Es posible que se necesite una parte ya que nuestro Windows.Forms no está desarrollado activamente.
  19. ^ "Lista de compatibilidad mono".
  20. ^ "Hoja de ruta del proyecto Mono: Mono". Mono-proyecto.com . Consultado el 17 de julio de 2013 .
  21. ^ "Hoja de ruta a la luz de la luna". Equipo Mono . Consultado el 8 de noviembre de 2008 .
  22. ^ "Lanzamiento de Moonlight 2, hoja de ruta hacia Moonlight 3 y 4 - Miguel de Icaza". Tirania.org. 2009-12-17 . Consultado el 17 de julio de 2013 .
  23. ^ "Vista previa 1 de Moonlight 3.0 - Miguel de Icaza". Tirania.org. 2010-02-03 . Consultado el 17 de julio de 2013 .
  24. ^ "Xamarin abandona su tecnología Silverlight para Linux". ZDNet .
  25. ^ ab "Ecma-335".
  26. ^ "Technet.com". Archivado desde el original el 23 de mayo de 2013 . Consultado el 7 de julio de 2009 .
  27. ^ "Acceso a la base de datos: Mono".
  28. ^ "Mono LLVM". Mononucleosis infecciosa .
  29. ^ ab "Compactación de GC". mono-project.com . Consultado el 16 de diciembre de 2008 .
  30. ^ Boehm, Hans-J. "Ventajas y desventajas de la recolección de basura conservadora". XeroxPARC . Archivado desde el original el 24 de julio de 2013 . Consultado el 16 de diciembre de 2008 .
  31. ^ "Arquitectura de .NET Framework". documentación oficial de Mono.
  32. ^ ab "Compilador C# de Mono como servicio en Windows. - Miguel de Icaza". Tirania.org. 27 de abril de 2010 . Consultado el 17 de julio de 2013 .
  33. ^ ab "CsharpRepl - Mono". Mono-proyecto.com . Consultado el 17 de julio de 2013 .
  34. ^ ab "Compatibilidad con SIMD de Mono: hacer que Mono sea seguro para los juegos - Miguel de Icaza". Tirania.org. 2008-11-03 . Consultado el 17 de julio de 2013 .
  35. ^ de Icaza, Miguel. "Compilación estática en Mono".
  36. ^ "Continuaciones - Mono".
  37. ^ de Icaza, Miguel. "Monovación: inyección de ensamblaje en procesos en vivo".
  38. ^ "Plataformas compatibles: Mono".
  39. ^ Narayanaswamy, Anand (23 de noviembre de 2012). "Cree aplicaciones multiplataforma con Xwt". InfoQ . Archivado desde el original el 15 de abril de 2016 . Consultado el 15 de abril de 2016 .
  40. ^ de Icaza, Miguel (22 de febrero de 2013). "La creación de Xamarin Studio". InfoQ . Archivado desde el original el 15 de abril de 2016 . Consultado el 15 de abril de 2016 .
  41. ^ "Xwt Léame". 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 .
  42. ^ "Proyecto DotGNU" . Consultado el 2 de junio de 2014 .
  43. ^ "Preguntas frecuentes". os.xamarin.com. 2011-08-01. MonoTouch es un producto comercial basado en el proyecto Mono de código abierto y su licencia se otorga por desarrollador.
  44. ^ "MIT con licencia mono". www.mono-project.com. 2016-03-31.
  45. ^ "Xamarin para todos". blog.xamarin.com. 2016-03-31. Anunciamos hoy nuestro compromiso de abrir los SDK de Xamarin para Android, iOS y Mac bajo la licencia MIT en los próximos meses.
  46. ^ "MonoTouch y iPhone 4". Las aplicaciones creadas con MonoTouch son aplicaciones nativas que no se pueden distinguir de otras aplicaciones nativas.
  47. ^ "Apple apunta a Adobe… ¿o Android?". 9 de abril de 2010.
  48. ^ "Declaración de Apple sobre las pautas de revisión de la App Store". Con base en sus aportes, 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 iOS, siempre y cuando las aplicaciones resultantes no descarguen ningún código. Esto debería dar a los desarrolladores la flexibilidad que desean, preservando al mismo tiempo la seguridad que necesitamos.
  49. ^ "Buenas noticias para los usuarios de MonoTouch". Con estos nuevos términos, la ambigüedad desaparece y los amantes y entusiastas de C# pueden volver a utilizar MonoTouch. Los desarrolladores a los que les gusta la recolección de basura y sus lenguajes fuertemente tipados pueden reanudar su trabajo.
  50. ^ de Icaza, Miguel. "MonoTouch 1.0 se pone en marcha".
  51. ^ "MonoTouch 2.0.0". Xamarin .
  52. ^ "MonoTouch 3.0.0". Xamarin .
  53. ^ "MonoTouch 4.0.0". Xamarin .
  54. ^ "MonoTouch 5.0". Xamarin .
  55. ^ "MonoTouch 6.0". Xamarin .
  56. ^ "Xamarin.iOS 6.2". Xamarin . 28 de enero de 2023.
  57. ^ "Xamarin.iOS 6.4". Xamarin . 8 de julio de 2022.
  58. ^ "iOS 7 y Xamarin: listos cuando usted lo esté". Blog de Xamarin . 2013-09-18 . Consultado el 20 de marzo de 2021 .
  59. ^ "iOS 8 más grande y mejor con Xamarin". Blog de Xamarin . 2014-09-10 . Consultado el 20 de marzo de 2021 .
  60. ^ "Xamarin para iOS 9: búsqueda más profunda". Blog de Xamarin . 2015-09-16 . Consultado el 20 de marzo de 2021 .
  61. ^ "Actualizaciones importantes: iOS 10, Android Nougat y otros detalles sabrosos". Blog de Xamarin . 2016-09-13 . Consultado el 20 de marzo de 2021 .
  62. ^ spouliot. "Notas de la versión de Xamarin.iOS 11.0: Xamarin". docs.microsoft.com . Consultado el 20 de marzo de 2021 .
  63. ^ spouliot. "Notas de la versión de Xamarin.iOS 12.0: Xamarin". docs.microsoft.com . Consultado el 20 de marzo de 2021 .
  64. ^ spouliot. "Notas de la versión de Xamarin.iOS 13.0: Xamarin". docs.microsoft.com . Consultado el 20 de marzo de 2021 .
  65. ^ spouliot. "Notas de la versión de Xamarin.iOS 14.0: Xamarin". docs.microsoft.com . Consultado el 20 de marzo de 2021 .
  66. ^ "¿Cómo se obtiene la licencia de Mono para Android?". Preguntas frecuentes sobre Mono para Android. 2011-08-28 . Consultado el 29 de marzo de 2012 .
  67. ^ "El proyecto Mono de Novell lleva el desarrollo .Net a Android". MundoRed.
  68. ^ "El proyecto Mono de Novell lleva el desarrollo .Net a Android". Infomundo. 16 de marzo de 2010.
  69. ^ "MonoDroid: compatibilidad con .NET disponible para Android". Techie Buzz. 18 de octubre de 2022.
  70. ^ "Mono para Android lleva C# a Android". Heise en línea . 2011-04-07 . Consultado el 7 de abril de 2011 .
  71. ^ "Novell (Mono/C#) está desarrollando MonoDroid". Comunidad de 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.
  72. ^ "Mono para Android". H-en línea. 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 cambiar el código de la interfaz de usuario por una API específica de la plataforma.
  73. ^ "Microsoft no detendrá (Mono) .NET en Android". Mundo tecnológico. El tipo de acción que Oracle está tomando contra Google por Java no va a suceder. Si un puerto .NET a Android se realizara a través de Mono, se incluiría en el Acuerdo de promesa de la comunidad de Microsoft.
  74. ^ "Microsoft dice que .NET en Android es seguro, no hay litigios como Oracle". Fusión de desarrolladores.
  75. ^ "Diseñador Xamarin para Android". Revista Visual Studio. El 14 de mayo, Xamarin anunció Mono para Android 4.2.
  76. ^ "Cocoa# está tomando forma; primeras capturas de pantalla disponibles - OSnews".
  77. ^ "macOS | Mono". www.mono-project.com . Consultado el 4 de febrero de 2023 .
  78. ^ davidortinau. "Xamarin.Mac-Xamarin". aprender.microsoft.com . Consultado el 4 de febrero de 2023 .
  79. ^ "Compilador Mono C# bajo licencia MIT X11". Novell Inc. 2008-04-08. Archivado desde el original el 13 de mayo de 2008 . Consultado el 9 de abril de 2008 .
  80. ^ de Icaza, Miguel. "El compilador Mono C# ahora también tiene licencia MIT X11".
  81. ^ "Xamarin para todos". Blog de Xamarin . Xamarin. 31 de marzo de 2016. Archivado desde el original el 12 de abril de 2016 . Consultado el 12 de abril de 2016 .
  82. ^ 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". El registro .
  83. ^ ab Ferraira, Bruno (31 de marzo de 2016). "Xamarin ahora viene gratis con Visual Studio". El informe técnico .
  84. ^ "Promesa de patente de Microsoft para Mono". Mono en GitHub . Proyecto Mono. 2016-03-28. Archivado desde el original el 12 de abril de 2016 . Consultado el 12 de abril de 2016 .
  85. ^ "Empresas que utilizan Mono". Monoproyecto . Monoproyecto . Consultado el 30 de agosto de 2015 .
  86. ^ Paul Chote: OpenRA: prueba de juego 20190825, 25 de agosto de 2019
  87. ^ "Lanzamientos mono". Mono-proyecto.com . Consultado el 4 de abril de 2015 .
  88. ^ "Lanzamientos antiguos". Mono-proyecto.com . Consultado el 17 de julio de 2013 .
  89. ^ "Notas de la versión Mono 1.0". Mono-proyecto.com . Consultado el 17 de julio de 2013 .
  90. ^ "Mono 1.1.1: versión de desarrollo". Mono-proyecto.com . Consultado el 17 de julio de 2013 .
  91. ^ "Mono 1.2: Notas de la versión". Mono-proyecto.com . Consultado el 17 de julio de 2013 .
  92. ^ "Notas de la versión Mono 2.0". Mono-proyecto.com. 2008-10-06 . Consultado el 17 de julio de 2013 .
  93. ^ "Notas de la versión Mono 2.2". Mono-proyecto.com . Consultado el 17 de julio de 2013 .
  94. ^ "IR lineal - Mono". Mono-proyecto.com . Consultado el 17 de julio de 2013 .
  95. ^ "Notas de la versión Mono 2.4". Mono-proyecto.com . Consultado el 17 de julio de 2013 .
  96. ^ "Notas de la versión Mono 2.6". Mono-proyecto.com . Consultado el 17 de julio de 2013 .
  97. ^ "Notas de la versión Mono 2.8". Mono-proyecto.com . Consultado el 17 de julio de 2013 .
  98. ^ "Notas de la versión Mono 2.10". Mono-proyecto.com . Consultado el 17 de julio de 2013 .
  99. ^ "Notas de la versión Mono 3.0". Mono-proyecto.com . Consultado el 23 de septiembre de 2013 .
  100. ^ "Notas de la versión Mono 3.2". Mono-proyecto.com . Consultado el 23 de septiembre de 2013 .
  101. ^ "Notas de la versión Mono 3.4". Mono-proyecto.com . Consultado el 4 de abril de 2015 .
  102. ^ "Notas de la versión Mono 3.6". Mono-proyecto.com . Consultado el 4 de abril de 2015 .
  103. ^ "Notas de la versión Mono 3.8". Mono-proyecto.com . Consultado el 4 de abril de 2015 .
  104. ^ "Notas de la versión Mono 3.10". Mono-proyecto.com . Consultado el 4 de abril de 2015 .
  105. ^ "Notas de la versión Mono 3.12". Mono-proyecto.com . Consultado el 4 de abril de 2015 .
  106. ^ "Notas de la versión Mono 4.0". Mono-proyecto.com . Consultado el 3 de mayo de 2015 .
  107. ^ "Notas de la versión Mono 5.0". Mono-proyecto.com . Consultado el 13 de mayo de 2017 .
  108. ^ "Notas de la versión Mono 5.2.0".
  109. ^ "Notas de la versión Mono 5.4.0".
  110. ^ "Notas de la versión Mono 5.8.0".
  111. ^ "Notas de la versión Mono 5.10.0".
  112. ^ "Notas de la versión Mono 5.12.0".
  113. ^ "Notas de la versión Mono 5.14.0".
  114. ^ "Notas de la versión Mono 5.16.0".
  115. ^ "Notas de la versión Mono 5.18.0".
  116. ^ "Notas de la versión Mono 5.20.0".
  117. ^ "Notas de la versión Mono 6.0.0".
  118. ^ "Notas de la versión Mono 6.4.0".
  119. ^ "Notas de la versión Mono 6.6.0".
  120. ^ "Notas de la versión Mono 6.8.0".
  121. ^ "Notas de la versión Mono 6.10.0".
  122. ^ "Notas de la versión Mono 6.12.0".

Fuentes

enlaces externos