Mono es un marco de software gratuito y de código abierto compatible con .NET Framework . Originalmente por Ximian , más tarde fue adquirido por Novell y ahora está dirigido por Xamarin , una subsidiaria de Microsoft [5] y .NET Foundation . Mono se puede ejecutar en muchos sistemas de software .
Autor (es) original (es) | Ximian |
---|---|
Desarrollador (es) | .NET Foundation y Xamarin (una subsidiaria de Microsoft ) |
Versión inicial | 30 de junio de 2004 |
Lanzamiento estable | 6.12.0 [1] / 30 de julio de 2020 |
Versión de vista previa | 6.12.0.114 / 30 de junio de 2020 [2] |
Repositorio | |
Escrito en | C , C # , XML |
Sistema operativo | Windows , macOS , Linux , IBM AIX , IBM i [3] |
Plataforma | IA-32 , x64 , IA-64 , ARM , MIPS , PowerPC , SPARC , S390 |
Tipo | Marco de software |
Licencia | Licencia MIT [4] |
Sitio web | www |
Historia
Fecha | Versión [7] | Notas |
---|---|---|
2004-06-30 | 1.0 [8] | Compatibilidad con C # 1.0 |
2004-09-21 | 1.1 [9] | |
2006-11-09 | 1.2 [10] | Compatibilidad con C # 2.0 |
2008-10-06 | 2.0 [11] | Las API de Mono ahora están a la par con .NET 2.0. Presenta los compiladores de C # 3.0 y Visual Basic 8. Nuevas API específicas de Mono: Mono.Cecil, Mono.Cairo y Mono.Posix. Lanzamiento de GTK # 2.12. Se presentan la herramienta de verificación Gendarme y Mono Linker. |
2009-01-13 | 2.2 [12] | Mono cambia su motor JIT a una nueva representación interna [13] que le da un impulso de rendimiento e introduce soporte SIMD en el espacio de nombres Mono.Simd [14] Mono.Simd. Mono presenta la compilación Full Ahead of Time que permite a los desarrolladores crear aplicaciones estáticas completas y estrena el compilador de C # como servicio [15] y el Shell interactivo de C # [16] (C # REPL) |
2009-03-30 | 2.4 [17] | Esta versión perfecciona principalmente todas las funciones que se incluyeron en la versión 2.2 y se convirtió en la base para la compatibilidad a largo plazo de Mono en SUSE Linux. |
2009-12-15 | 2.6 [18] | El tiempo de ejecución de Mono ahora puede usar LLVM como un backend de generación de código y esta versión presenta co-rutinas de Mono, Mono Soft Debugger y el sistema de seguridad CoreCLR requerido para Moonlight y otros complementos basados en la Web. En la biblioteca de clases System.IO.Packaging, cliente WCF, servidor WCF, debut de LINQ to SQL. El shell interactivo admite la finalización automática y LINQ to SQL admite múltiples backends de bases de datos. Se introduce el sistema de compilación xbuild. |
2010-09-22 | 2.8 [19] | El valor predeterminado es el perfil .NET 4.0, compatibilidad con C # 4.0 , nuevo recolector de basura generacional, incluye extensiones paralelas , enrutamiento WCF, CodeContracts , ASP.NET 4.0, elimina la compatibilidad con el perfil 1.0; el motor LLVM ajustado para admitir el 99,9% de todo el código generado, llvm y gc seleccionables en tiempo de ejecución; incorpora Dynamic Language Runtime , MEF , ASP.NET MVC 2, código de fuente abierta OData Client de Microsoft ;. Se convertirá en la versión 3.0. |
2011-02-15 | 2.10 [20] | |
2012-10-18 | 3,0 [21] | Compatibilidad con C # 5.0 , compatibilidad asíncrona, actualización de la biblioteca de clases base asíncrona y MVC4: parcial, sin compatibilidad con funciones asíncronas. |
2013-07-24 | 3.2 [22] | El recolector de basura predeterminado es ahora SGEN, en lugar de Boehm |
2014-03-31 | 3.4 [23] | |
2014-08-12 | 3.6 [24] | |
2014-09-04 | 3.8 [25] | |
2014-10-04 | 3.10 [26] | |
2015-01-13 | 3.12 [27] | |
2015-04-29 | 4.0 [28] | El valor predeterminado es el perfil .NET 4.5 y solo se distribuye en ensamblados .NET 4.5; el valor predeterminado es C # 6.0. Primera versión para integrar el código .NET Core de código abierto de Microsoft |
2017-05-10 | 5,0 [29] | Envío del compilador Roslyn C # para habilitar la compatibilidad con C # 7; Envío de msbuild y desaprobación de xbuild para una mejor compatibilidad; Habilitación del recolector de basura SGen concurrente para reducir el tiempo empleado en GC; Presentamos la pila AppleTLS en macOS para conexiones HTTPS; Progreso continuo en la convergencia de bibliotecas de clases .NET; Libjpeg actualizado en el paquete macOS |
2017-07-14 | 5.2 [30] | Compatibilidad con .NET Standard 2.0, nombres de ensamblados seguros y miembros de interfaz predeterminados experimentales. |
2017-10-05 | 5.4 [31] | JIT Runtime ahora admite la compilación de métodos concurrentes y varias otras optimizaciones de rendimiento; |
2018-02-01 | 5,8 [32] | Puerto de WebAssembly inicial ; Modos para SGen GC; Incluye la herramienta REPL csi (C # interactivo) de Roslyn |
2018-02-26 | 5.10 [33] | El intérprete ahora está incluido en la instalación predeterminada; el tiempo de ejecución ahora admite métodos de interfaz predeterminados; WebAssembly se considera confiable ahora; Soporte para .NET 4.7.1 / C # 7.2 / F # 4.1 |
2018-05-08 | 5.12 [34] | Puerto a IBM AIX / i; ahora incluye el compilador VB.NET ; opción de usar jemalloc |
2018-08-07 | 5.14 [35] | Actualización importante de Windows.Forms para mejorar la compatibilidad con .NET |
2018-10-08 | 5.16 [36] | Recolector de basura híbrido suspendido; Soporte de certificado de cliente; Compatibilidad con C # 7.3 |
2018-12-21 | 5.18 [37] | Compatibilidad con .NET 4.7.2; se usa más código CoreFX |
2019-07-17 | 6.0.0 | El compilador de C # tiene por defecto la versión C # 8.0 RC; Varias mejoras de estabilidad en el soporte del depurador; Mono Interpreter es una característica completa y estable |
Cuando Microsoft anunció por primera vez su .NET Framework en junio de 2000, se describió como "una nueva plataforma basada en los estándares de Internet", [38] y en diciembre de ese año se publicó la Common Language Infrastructure subyacente como estándar abierto, "ECMA-335 ", [39] abriendo el potencial para implementaciones independientes. [40] 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. [41] 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 de O'Reilly .
Después de tres años de desarrollo, Mono 1.0 fue lanzado el 30 de junio de 2004. [42] 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, incluidos los sistemas integrados. [43]
Novell adquirió Ximian en 2003. Después de que Attachmate adquiriera Novell en abril de 2011, Attachmate anunció cientos de despidos de la fuerza laboral de Novell, [44] poniendo en duda el futuro de Mono. [45] [46]
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 original de Mono también se había trasladado a la nueva empresa. Xamarin planeaba seguir trabajando en Mono y había planeado reescribir las pilas de .NET patentadas para iOS y Android desde cero, porque Novell todavía poseía MonoTouch y Mono para Android en ese momento. [47] Después de este anuncio, se cuestionó el futuro del proyecto, ya que MonoTouch y Mono para Android compiten directamente 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. anteriormente se desarrollaron cuando fueron empleados por Novell para el mismo trabajo. [48] 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 oficialmente asumió la dirección del proyecto. [49] [50]
Estado actual y hoja de ruta
La versión actual de Mono es 6.0.0 (a partir de agosto de 2019[actualizar]). Esta versión proporciona la API principal de .NET Framework y es compatible 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. [51] 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 en .NET 4.7 excepto Windows Presentation Foundation (WPF) (que el equipo de Mono no planea soportar debido a la cantidad de trabajo que necesitaría) [51] y Windows Workflow Foundation (WF) y solo con compatibilidad limitada para Windows Communication Foundation (WCF) y la pila asíncrona ASP.NET. Sin embargo, System.Web y WCF son candidatos para la migración 'casi inmediata' desde la fuente de referencia de .NET a Mono. [52] Algunas partes faltantes de .NET Framework están en desarrollo en un subproyecto experimental de Mono llamado Olive . [53]
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
Una implementación de código abierto de Microsoft Silverlight , llamada Moonlight , se ha incluido desde Mono 1.9. [54] 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. [55] Se anunció una versión preliminar de Moonlight 3.0 en febrero de 2010 y contiene actualizaciones para el soporte de Silverlight 3. [56]
El proyecto Moonlight fue abandonado el 29 de mayo de 2012. [57] Según Miguel, dos factores sellaron el destino del proyecto: Microsoft agregó "restricciones artificiales" que "lo hicieron 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, el propio Silverlight fue obsoleto 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 Common Language Infrastructure y las bibliotecas de clases principales. Estos componentes se basan en los estándares Ecma-334 y Ecma-335 , [58] lo que permite que Mono proporcione 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 . [59]
La pila de desarrollo Mono / Linux / GNOME proporciona herramientas para el desarrollo de aplicaciones mientras se utilizan las bibliotecas de código abierto y gratuitas de GNOME existentes . Estos 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 de 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 muchos otros. El proyecto Mono rastrea el desarrollo de componentes de bases de datos en su sitio web. [60]
La pila de compatibilidad de Microsoft proporciona una vía para migrar aplicaciones .NET de Windows a GNU / 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 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 de .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)
- Ensambles CLI
- Metadatos CLI
- Tiempo de ejecución de lenguaje común de Mono
- Compatible con ECMA Common Language Infrastructure /.NET Common Language Runtime
- Mejoras monoespecíficas:
- Soporte Mono.SIMD
- Co-rutinas y continuaciones mono.
- Mejoras monoespecíficas
- Servicios de interoperabilidad nativos e interoperabilidad COM
- Seguridad: marco de código transparente
Motor de ejecución de código
El tiempo 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 , S390 (en modo de 64 bits), x86 , 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 tiempo de ejecución convertirá los códigos de bytes ECMA CIL en código nativo a medida que se ejecuta el código.
- Compilación anticipada (AOT): este código 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 sistema operativo, arquitectura y archivo específico de la CPU (para un foo. exe, produciría foo.exe.so en Linux). Este modo de funcionamiento compila la mayor parte del código que normalmente se realiza en tiempo de ejecución. Hay algunas excepciones como trampolines y otros códigos administrativos que aún requieren que el JIT funcione, por lo que las imágenes de 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 Ahead-of-Time un paso más allá y genera todos los trampolines, envoltorios y proxies que se requieren en un archivo estático que se puede vincular estáticamente en un programa y elimina por completo 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 utilizar LLVM como motor de generación de código en lugar del motor de generación de código propio 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 mediante el uso de los argumentos de la línea de comandos --llvm
o --nollvm
y, por defecto, 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. [61]
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, haciéndolo inadecuado para algunas aplicaciones de servidor de larga ejecución. [62] [63] Mono cambió a GC generacional simple (SGen-GC) como colector 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 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 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 en vivo que apunte a los datos para apuntar a la nueva ubicación. Esto puede ser 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. [62]
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 ser utilizados por 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 se refiere principalmente a esta biblioteca de clases. [64]
Espacios de nombres y ensamblados
Los espacios de nombres son un mecanismo para agrupar lógicamente clases similares en una estructura jerárquica. Esto evita conflictos de nombres. La estructura se implementa 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 hay 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 ensamblados son el empaquetado físico de las bibliotecas de clases. Estos son archivos .dll, como (pero no confundir con) las bibliotecas compartidas de Win32. Ejemplos de ensamblados son mscorlib.dll, System.dll, System.Data.dll y Accessibility.dll. Los espacios de nombres a menudo se distribuyen 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 Common Language Infrastructure (CLI) implementada por Common Language Runtime (CLR) , es implementada por el ejecutable Mono. El motor de ejecución compila y ejecuta aplicaciones .NET. La infraestructura de lenguaje común está definida por el estándar ECMA. [58] Para ejecutar una aplicación, debe invocar el tiempo de ejecución con los parámetros relevantes.
La Common Language Specification (CLS) se especifica en el capítulo 6 de ECMA-335 y define la interfaz a la CLI, como convenciones como los tipos subyacentes para Enum. El compilador Mono genera una imagen que se ajusta al CLS. Este es el idioma intermedio común. El tiempo de ejecución de Mono toma esta imagen y la ejecuta. El estándar ECMA define formalmente una biblioteca que se ajusta a 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 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 las bibliotecas System.Runtime.InteropServices para crear enlaces C #. Muchas bibliotecas que se envían con Mono utilizan esta función de la CLI, como Gtk # .
Innovaciones monoespecíficas
Mono ha innovado en algunas áreas con nuevas extensiones para las especificaciones principales de C # y CLI:
- Compilador de C # como servicio (use el compilador de C # como biblioteca). [15]
- Shell interactivo de C #. [dieciséis]
- Compatibilidad con SIMD [14] como parte del espacio de nombres Mono.SIMD, donde las llamadas a métodos a 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 [65] (utilizado en Mono / iPhone, Mono / PS3).
- Corutinas mono (utilizadas para implementar código de micro-subprocesos y continuaciones , principalmente para desarrolladores de juegos). [66]
- Inyección de montaje a procesos en vivo. [67]
- Uso de LLVM como backend JIT.
- Interoperabilidad directa de Cxxi y CppSharp con código y bibliotecas C ++.
Además, Mono está disponible en una variedad de sistemas operativos y arquitecturas. [68]
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 usarlo en su entorno de desarrollo. Estos proyectos incluyen:
Multiplataforma:
- Banshee Media Player (detenido), un reproductor multimedia de música multiplataforma construido 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 incrustar el motor de diseño utilizado en Mozilla ( Gecko ).
- Gtk # , C # envoltorios alrededor de las bibliotecas GTK y GNOME subyacentes , escritas 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 pueden no ser multiplataforma y, por lo tanto, no funcionan en Mono en Linux y otros Unix. No actualizado desde Mono 2.8 (2013); utilice el Analizador de portabilidad .NET de Microsoft (dotnet-apiport) en su lugar.
- MonoCross , un patrón de diseño de modelo-vista-controlador multiplataforma donde el modelo y el controlador se comparten entre plataformas y las vistas son únicas para cada plataforma para una interfaz de usuario optimizada. El marco requiere Xamarin.iOS y Xamarin.Android.
- MvvmCross , un marco Model View ViewModel multiplataforma que utiliza Xamarin.iOS y Xamarin.Android para desarrollar aplicaciones móviles.
- Mono Desarrolle un entorno de desarrollo integrado de código abierto y multiplataforma que admita la creación de aplicaciones para ASP.NET, Gtk #, Meego, MonoTouch y Silverlight / Moonlight.
- Moonlight (descontinuado), una implementación de Silverlight que usa Mono.
- OpenTK , un enlace administrado para OpenGL, OpenCL y OpenAL.
- QtSharp , enlaces de C # para el marco Qt .
- Resco MobileBusiness , una solución de desarrollador multiplataforma para clientes móviles.
- Resco MobileCRM , una solución de desarrollador multiplataforma para clientes móviles sincronizada con Microsoft Dynamics CRM .
- ServiceStack es un marco de servicios web REST de código abierto de alto rendimiento que simplifica el desarrollo de servicios web XML, JSON y SOAP.
- SparkleShare es un software cliente de código abierto que proporciona almacenamiento en la nube y servicios de sincronización de archivos.
- Tao (reemplazado por OpenTK), una colección de gráficos y enlaces de juegos (OpenGL, SDL, GLUT, Cg).
- Xwt , un kit de herramientas de GUI que asigna las llamadas de API a las llamadas de la plataforma nativa 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 funciones 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 Xwt. [69] Xwt se utilizó parcialmente como kit de herramientas de GUI (junto a GTK #) en el desarrollo de Xamarin Studio . [70] Los motores "backend" admitidos 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 . [71]
Mac OS:
- Cocoa # : envoltorios del kit de herramientas nativo de macOS ( Cocoa ) (obsoleto).
- Monobjc : un conjunto de enlaces para la programación de 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 apuntar a Linux y macOS directamente desde Visual Studio y se integra con SUSE Studio .
Otras implementaciones
Microsoft tiene una versión de .NET 2.0 ahora disponible solo para Windows XP , llamada CLI de fuente compartida (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 retirado de la Free Software Foundation . [72]
MonoDevelop
MonoDevelop es un entorno de desarrollo integrado 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 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 para proyectos y un depurador integrado.
El navegador MonoDoc proporciona acceso a la documentación de la API y a ejemplos de código. El navegador de documentación utiliza una 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 iPhone y teléfonos inteligentes basados en Android . Anteriormente disponible solo para licencias comerciales, [73] después de la adquisición de Xamarin por parte de Microsoft en 2016, el tiempo de ejecución de Mono en sí se volvió a obtener la licencia bajo la licencia MIT [74] y tanto Xamarin.iOS como Xamarin.Android se están convirtiendo en gratuitos y de código abierto. [75]
Xamarin.iOS
Fecha | Versión | Notas |
---|---|---|
2009-09-14 | MonoTouch 1.0 [76] | Versión inicial |
2010-04-05 | MonoTouch 2.0 [77] | soporte para iPad |
2010-04-16 | MonoTouch 3.0 [78] | Soporte para iPhone 4 |
2011-04-06 | MonoTouch 4.0 [79] | Compatibilidad con iOS 4 |
2011-10-12 | MonoTouch 5.0 [80] | Compatibilidad con iOS 5 |
2012-09-19 | MonoTouch 6.0 [81] | Soporte iOS 6 |
2013-02-20 | Xamarin.iOS 6.2 [82] | Soporte de Visual Studio |
2013-07-24 | Xamarin.iOS 6.4 [83] | Compatibilidad con .NET 4.5 async / await |
2013-06-19 | Xamarin.iOS 7.0 [84] | Compatibilidad con XCode 5 y iOS 7 |
2014-09-10 | Xamarin.iOS 8.0 [85] | Compatibilidad con iOS 8 y Xcode 6 |
2015-09-16 | Xamarin.iOS 9.0 [86] | Compatibilidad con iOS 9 y Xcode 7 |
2016-09-13 | Xamarin.iOS 10.0 [87] | Compatibilidad con iOS 10 y Xcode 8 |
2017-09-19 | Xamarin.iOS 11.0 [88] | Compatibilidad con iOS 11 y Xcode 9 |
2018-09-14 | Xamarin.iOS 12.0 [89] | Compatibilidad con iOS 12 y Xcode 10 |
2019-09-13 | Xamarin.iOS 13.0 [90] | Compatibilidad con iOS 13 y Xcode 11 |
20-09-2020 | Xamarin.iOS 14.0 [91] | Compatibilidad con iOS 14 y Xcode 12 |
Xamarin.iOS (anteriormente llamado MonoTouch) es una biblioteca patentada que permite a los desarrolladores crear aplicaciones basadas en C # y .NET que se ejecutan en dispositivos iPhone, iPod y iPad. Se basa en el marco Mono y se desarrolla junto 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 . [92] Esto es necesario porque el kernel de iOS evita que los compiladores justo a tiempo se ejecuten en el dispositivo.
La pila de 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 Core .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 que se usa para implementar en el dispositivo de destino
- Herramientas de integración de Interface Builder
- Bibliotecas que enlazan las API nativas de CocoaTouch
- IDE de Xamarin Studio
Xamarin Studio se usa como el 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 se puso 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. [93] Luego, en septiembre de 2010, Apple anuló esta restricción, afirmando que estaban relajando las restricciones de idioma que habían establecido a principios de ese año. [94] [95]
Xamarin.Android
Xamarin.Android (anteriormente conocido como Mono para Android), desarrollado inicialmente por Novell y continuado por Xamarin , es una implementación propietaria [96] de Mono para teléfonos inteligentes basados en Android . [97] [98] [99] Fue lanzado por primera vez el 6 de abril de 2011. [100] Mono para Android fue desarrollado para permitir a los desarrolladores escribir más fácilmente aplicaciones multiplataforma que se ejecutarán en todas las plataformas móviles. [101] 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 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". [102]
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 de Android, que "El tipo de acción que Oracle está tomando contra Google sobre Java no es ". Si un puerto .NET a Android fuera a través de Mono, estaría incluido en el Acuerdo de promesa de la comunidad de Microsoft ". [103] [104]
La pila de Xamarin.Android consta de los siguientes componentes:
- Tiempo de ejecución mono
- Un diseñador de IU de Android [105]
- Bibliotecas:
- Bibliotecas de clases de Core .NET
- Bibliotecas que enlazan las API nativas de Android / Java
- Herramientas SDK para empaquetar, implementar y depurar
- Integración de Xamarin Studio y Visual Studio 2010 para diseñar la interfaz de usuario, depurar e implementar de forma remota.
Licencia
Mono tiene doble licencia de Xamarin, similar a otros productos como Qt y Mozilla Application Suite . El compilador y las herramientas de Mono C # 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 Mono C # también está disponible bajo la Licencia MIT X11 ), [106] 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 un software gratuito y de código abierto .
La licencia del compilador de C # se cambió de la GPL a la licencia MIT X11 [107] para permitir que el código del compilador se reutilice en algunos casos en los que la GPL hubiera impedido lo siguiente:
- Compilador de Mono como servicio
- El Shell interactivo Mono
- El compilador de C # integrable de Mono
- Implementación de Mono del enlazador dinámico C # 4.0.
- Analizador sintáctico y gráfico AST integrados de MonoDevelop
El 18 de marzo de 2016, se cerró oficialmente la adquisición de Xamarin por parte de Microsoft. [108] El 31 de marzo de 2016, Microsoft anunció en Microsoft Build que volverían a licenciar por completo Mono bajo la licencia MIT incluso en escenarios donde anteriormente era necesaria una licencia comercial, [109] y Microsoft declaró que no afirmarán cualquier "patente aplicable" contra las partes que están "usando, vendiendo, ofreciendo para la venta, importando o distribuyendo Mono". [110] [111] También se anunció que Xamarin había contribuido con el Proyecto Mono a la Fundación .NET. [110]
Patentes de Mono y Microsoft
Software desarrollado con Mono
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 Linux Desktop 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 scripting ), el servidor del mundo virtual OpenSimulator o los juegos creados con los motores de juego Unity o MonoGame , también utilizan Mono. [112] OpenRA incluye su Apple Disk Image y Linux AppImages con Mono esencialmente eliminando casi todas las dependencias del juego. [113]
Ver también
- Common Language Runtime
- .NET Framework
- .NET , un marco de código abierto y sucesor de .NET Framework
- Bibliotecas estándar (CLI)
- Biblioteca de clases base (BCL)
- Comparación de máquinas virtuales de aplicaciones
- DotGNU : un proyecto general de software gratuito que incluye Portable.NET
- MonoDevelop : un IDE de código abierto dirigido a las plataformas Mono y Microsoft .NET Framework
- Moonlight (tiempo de ejecución) , una de código abierto aplicación de Microsoft 's Silverlight desarrollado por el Proyecto Mono
- Infraestructura de lenguaje común de fuente compartida: implementación de fuente compartida de Microsoft de .NET, anteriormente con nombre en código Rotor
- mod_mono : un módulo para el servidor HTTP Apache que permite el alojamiento de páginas ASP.NET y otros ensamblados en múltiples plataformas mediante el uso de Mono
Referencias
Citas
- ^ https://github.com/mono/mono/releases/tag/mono-6.12.0.90 ; Consultado: 6 de noviembre de 2020.
- ^ "Notas de la versión Mono 6.12.0" .
- ^ Presentación de Mono en AIX e IBM i
- ^ "FAQ: 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 . Consultado el 24 de febrero de 2016 .
- ^ "Mono Releases" . 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 de 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 17 de julio de 2013 .
- ^ "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 .
- ^ a b "Soporte SIMD de Mono: Hacer Mono seguro para Gaming - Miguel de Icaza" . Tirania.org. 2008-11-03 . Consultado el 17 de julio de 2013 .
- ^ a b "Compilador C # de Mono como servicio en Windows. - Miguel de Icaza" . Tirania.org. 2010-04-27 . Consultado el 17 de julio de 2013 .
- ^ a b "CsharpRepl - 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 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" .
- ^ 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 .
- ^ "ECMA-335-Part-I-IV - ECMA-335, 1ª edición, diciembre de 2001" (PDF) .
- ^ Wilcox, Joe; Shankland, Stephen (28 de junio de 2001). "Microsoft se inclina a compartir código" . ZDNet.
- ^ "[Mono-lista] Mono historia temprana" . 2003-10-13. Archivado desde el original el 6 de junio de 2011 . Consultado el 30 de marzo de 2005 .
- ^ "Lanzamiento de la implementación de OSS .NET Mono 1.0 - Ars Technica" . ArsTechnica . Consultado el 23 de octubre de 2009 .
- ^ "Plataformas compatibles" . Sitio web de Mono.
- ^ Koep, Paul (2 de mayo de 2011). "Los empleados dicen que cientos de despedidos en la oficina de Provo de Novell" . KSL-TV . Consultado el 7 de mayo de 2011 .
- ^ J. Vaughan-Nichols, Steven (4 de mayo de 2011). "¿Mono está muerto? ¿Novell se está muriendo?" . ZDNet . Consultado el 7 de mayo de 2011 .
- ^ 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 .
- ^ "Anunciante Xamarin - Miguel de Icaza" . Tirania.org. 2011-05-16 . Consultado el 17 de julio de 2013 .
- ^ "La muerte y renacimiento de Mono" . infoq.com. 2011-05-17 . Consultado el 29 de mayo de 2011 .
Incluso si no lo admiten, poseen un producto que está en competencia directa con las futuras ofertas de Xamarin. Sin algún tipo de arreglo legal entre Attachmate y Xamarin, este último se enfrentaría a la abrumadora perspectiva de demostrar que su nuevo desarrollo no usa la tecnología que usaba el anterior. Teniendo en cuenta que esto es solo una envoltura de la API nativa, sería difícil demostrar que tenía una implementación de sala limpia incluso para un equipo que no estaba íntimamente familiarizado con el código de Attachmate.
- ^ "SUSE y Xamarin se asocian para acelerar la innovación y apoyar a los clientes y la comunidad 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 proporcionará soporte técnico a los clientes de SUSE que utilizan productos basados en Mono y asumirá la administración del proyecto de comunidad de código abierto Mono.
- ^ de Icaza, Miguel (18 de julio de 2011). "Asociación Novell / Xamarin en torno a Mono" . Consultado el 18 de julio de 2011 .
- ^ a b de Icaza, Miguel (7 de marzo de 2011). "GDC 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 son en su mayoría basadas en OpenGL / DirectX, use Windows.Forms, teniendo en cuenta que se corrigieron algunos errores o solucionaron sus problemas puede ser necesaria una parte ya que nuestro Windows.Forms no se desarrolla activamente.
- ^ "Lista de compatibilidad mono" .
- ^ "Hoja de ruta del proyecto Mono - Mono" . Mono-project.com . Consultado el 17 de julio de 2013 .
- ^ "MoonlightRoadmap" . Equipo Mono . Consultado el 8 de noviembre de 2008 .
- ^ "Lanzamiento de Moonlight 2, Hoja de ruta a Moonlight 3 y 4 - Miguel de Icaza" . Tirania.org. 2009-12-17 . Consultado el 17 de julio de 2013 .
- ^ "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 por Linux" .
- ^ a b "Ecma-335" .
- ^ "Technet.com" . Archivado desde el original el 22 de junio de 2013 . Consultado el 7 de julio de 2009 .
- ^ "Acceso a la base de datos - Mono" .
- ^ "Mono LLVM" . Mono .
- ^ a b "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.
- ^ de Icaza, Miguel. "Compilación estática en mono" .
- ^ "Continuaciones - Mono" .
- ^ de Icaza, Miguel. "Monovación: inyección de ensamblajes en procesos en vivo" .
- ^ "Plataformas compatibles - Mono" .
- ^ 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 .
- ^ de Icaza, Miguel (22 de febrero de 2013). "El Making of Xamarin Studio" . InfoQ . Archivado desde el original el 15 de abril de 2016 . Consultado el 15 de abril de 2016 .
- ^ "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. 2011-08-01.
MonoTouch es un producto comercial basado en el proyecto Mono de código abierto y se licencia por desarrollador.
- ^ "Mono rebautizado MIT" . www.mono-project.com. 2016-03-31.
- ^ "Xamarin para todos" . blog.xamarin.com. 2016-03-31.
Hoy anunciamos nuestro compromiso con el código abierto de los SDK de Xamarin para Android, iOS y Mac bajo la licencia MIT en los próximos meses.
- ^ de Icaza, Miguel. "MonoTouch 1.0 se activa" .
- ^ "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 .
- ^ "Xamarin.iOS 6.4" . Xamarin .
- ^ "iOS 7 y Xamarin: listo cuando tú lo estés" . Blog de Xamarin . 2013-09-18 . Consultado el 20 de marzo de 2021 .
- ^ "iOS 8 más grande y mejor con Xamarin" . Blog de Xamarin . 2014-09-10 . Consultado el 20 de marzo de 2021 .
- ^ "Xamarin para iOS 9: búsqueda más profunda" . Blog de Xamarin . 2015-09-16 . Consultado el 20 de marzo de 2021 .
- ^ "Actualizaciones importantes: iOS 10, Android Nougat y otros bits sabrosos" . Blog de Xamarin . 2016-09-13 . Consultado el 20 de marzo de 2021 .
- ^ spouliot. "Notas de la versión de Xamarin.iOS 11.0 - Xamarin" . docs.microsoft.com . Consultado el 20 de marzo de 2021 .
- ^ spouliot. "Notas de la versión de Xamarin.iOS 12.0 - Xamarin" . docs.microsoft.com . Consultado el 20 de marzo de 2021 .
- ^ spouliot. "Notas de la versión de Xamarin.iOS 13.0 - Xamarin" . docs.microsoft.com . Consultado el 20 de marzo de 2021 .
- ^ spouliot. "Notas de la versión de Xamarin.iOS 14.0 - Xamarin" . docs.microsoft.com . Consultado el 20 de marzo de 2021 .
- ^ "MonoTouch y iPhone 4" .
Las aplicaciones creadas con MonoTouch son aplicaciones nativas indistinguibles de otras aplicaciones nativas.
- ^ "¿Apple apunta a Adobe ... o Android?" .
- ^ "Declaración de Apple sobre las directrices 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 iOS, siempre que las aplicaciones resultantes no descarguen ningún código. Esto debería darles a los desarrolladores la flexibilidad que desean, al mismo tiempo que preserva la seguridad que necesitamos.
- ^ "Grandes noticias para los usuarios de MonoTouch" .
Con estos nuevos términos, la ambigüedad desaparece y los amantes y entusiastas de C # pueden volver a usar MonoTouch. Los desarrolladores que gustan de la recolección de basura y sus lenguajes fuertemente tipados pueden reanudar su trabajo.
- ^ "¿Cómo se licencia Mono para Android?" . Preguntas frecuentes de Mono para Android. 2011-08-28 . Consultado el 29 de marzo de 2012 .
- ^ "Proyecto Mono de Novell que lleva el desarrollo .Net a Android" . NetworkWorld.
- ^ "Proyecto Mono de Novell que lleva el desarrollo .Net a Android" . InfoWorld.
- ^ "MonoDroid: .NET Support Próximamente a Android" . TechieBuzz.
- ^ "Mono para Android trae C # a Android" . Heise en línea . 2011-04-07 . Consultado el 7 de abril de 2011 .
- ^ "Novell (Mono / C #) está desarrollando MonoDroid" . Comunidad de Android.
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 cambiar 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 sobre Java no va a suceder. Si un puerto .NET a Android fuera a través de Mono, estaría incluido en el Acuerdo de promesa de la comunidad de Microsoft.
- ^ "Microsoft dice que .NET en Android es seguro, sin litigios como Oracle" . Desarrollador Fusion.
- ^ "Diseñador de Xamarin para Android" . Revista Visual Studio.
El 14 de mayo, Xamarin anunció Mono para Android 4.2.
- ^ "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 .
- ^ de Icaza, Miguel. "El compilador Mono C # ahora también con licencia MIT X11" .
- ^ "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 .
- ^ Anderson, Tim (31 de marzo de 2016). "Microsoft para hacer que las herramientas y el código de Xamarin sean libres y de código abierto" . El registro .
- ^ a b Ferraira, Bruno (31 de marzo de 2016). "Xamarin ahora viene gratis con Visual Studio" . El informe técnico .
- ^ "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 .
- ^ "Empresas que utilizan Mono" . Monoproyecto . Monoproyecto . Consultado el 30 de agosto de 2015 .
- ↑ Paul Chote: OpenRA: Playtest 20190825 , 2019-08-25
Fuentes
- Este artículo incorpora texto de la página de inicio de Mono , que entonces estaba bajo la licencia de documentación libre GNU .
- de Icaza, Miguel (13 de octubre de 2003). "[Mono-lista] Mono historia temprana". . 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). "¿Mono se convertirá en la plataforma preferida para el desarrollo de Linux?" . ONLamp . 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 se vuelve virtual" . Noticias de Internet . Consultado el 14 de octubre de 2006 .
- Kerner, Sean Michael (9 de noviembre de 2006). "Meses tarde, Novell lanza Mono 1.2" . internetnews.com.
- Northcutt, Corey (12 de octubre de 2006). "En el mundo de mod_mono" . Ubicuidad. 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 - Product Manager - Mono - Novell" . HSIB . Consultado el 8 de octubre de 2008 .
- Smith, Tim (9 de septiembre de 2010). "Una breve introducción a los problemas de patentes de Java y .NET" . InfoQ . Consultado el 13 de septiembre de 2010 .
enlaces externos
- Página web oficial
- MonoTouch página principal para que el puerto de Apple Inc. productos de mano 's