Mono (software)

Mono
Mono project logo.svg
Mono architecture.svg
Diagramm der Mono -Architektur
Originalautor (en) Ximian
Entwickler (en) .NET Foundation und Xamarin (a Microsoft Tochtergesellschaft)
Erstveröffentlichung 30. Juni 2004; Vor 18 Jahren
Stabile Version
6.12.0.122[1] Edit this on Wikidata / 23. Februar 2021; Vor 17 Monaten
Vorschau -Version
6.12.0.148 / 13. August 2021; vor 11 Monaten[2]
Repository
Geschrieben in C, C#, Xml
Betriebssystem Fenster, Mac OS, Linux, IBM AIX, Ibm i[3]
Plattform IA-32, x64, IA-64, ARM, MIPS, Powerpc, Sparc, S390
Typ Software -Framework
Lizenz MIT -Lizenz[4]
Webseite www.mono-project.com

Mono ist ein frei und offen .NET Framework-kompatibel Software -Framework. Ursprünglich von Ximian, es wurde später von erworben von Novellund wird jetzt von angeführt Xamarineine Tochtergesellschaft von Microsoft[5] und die .NET Foundation. Mono kann auf vielen betrieben werden Softwaresysteme.

Geschichte

Mono -Stand bei Oscon 2009 in San Jose, Kalifornien
Veröffentlichung Geschichte[6]
Datum Ausführung[7] Anmerkungen
2004-06-30 1.0[8] C# 1.0 Unterstützung
2004-09-21 1.1[9]
2006-11-09 1.2[10] C# 2.0 Unterstützung
2008-10-06 2.0[11] Monos APIs sind jetzt mit .NET 2.0 gleichbedeutend mit. Führt die vor C# 3.0 und Visual Basic 8 Compiler. Neue monospezifische APIs: Mono.cecil, Mono.Cairo und Mono.PoSix. Gtk# 2.12 wird freigegeben. Das Gendarme -Überprüfungswerkzeug und der Mono -Linker werden eingeführt.
2009-01-13 2.2[12] Mono schaltet seinen JIT -Motor auf eine neue interne Darstellung[13] Das gibt ihm einen Leistungsschub und führt ein Simd Unterstützung in der Mono.simd[14] Mono.Simd Namespace.
Mono führt vor Voll im Voraus Zusammenstellung, mit der Entwickler vollständige statische Anwendungen erstellen und den C# Compiler als Service debütiert[15] und die c# interaktive Hülle[16] (C# repl)
2009-03-30 2.4[17] Diese Veröffentlichung poliert hauptsächlich alle Merkmale, die in 2,2 versandt wurden und die Grundlage für die langfristige Unterstützung von Mono in SUSE Linux wurden.
2009-12-15 2.6[18] Die Mono-Laufzeit ist jetzt in der Lage, LLVM als Backend für die Codegenerierung zu verwenden, und in dieser Version werden Mono-Co-Routinen, das Mono Soft Debugger und das CoreCLR-Sicherheitssystem für Moonlight und andere webbasierte Plugins erforderlich.
Auf dem Class Library System.io.Packaging, WCF Client, WCF Server, LINQ bis SQL Debüt. Die interaktive Shell unterstützt die automatische Vervollständigung und der LINQ zu SQL unterstützt mehrere Datenbank-Backends. Das Xbuild -Build -System wird eingeführt.
2010-09-22 2.8[19] Standardeinstellungen zum .net 4.0 -Profil, C# 4.0 Unterstützung, neuer Generationsmüllsammler, umfasst Parallele Erweiterungen, WCF Routing, CodeContracts, ASP.NET 4.0, löscht die 1,0 -Profilunterstützung; Die LLVM -Engine, die auf 99,9% aller generierten Code, die selektierbare Laufzeit -LLVM und GC unterstützt wurde; beinhaltet Dynamische Sprachlaufzeit, Mef, ASP.NET MVC2, Odata Client Open-Source-Code von Microsoft;. Wird Release 3.0
2011-02-15 2.10[20]
2012-10-18 3.0[21] C# 5.0 Support, Async Support, Async Basis Class Library Upgrade und MVC4 - Partielle, No Async -Funktionsunterstützung.
2013-07-24 3.2[22] Der Standardmüllsammler ist jetzt der SGEN anstelle von 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] Standardmäßig zu .NET 4.5 Profil und nur .NET 4.5 -Assemblys, Standardeinstellung zu C# 6.0. Erste Veröffentlichung zur Integration von Microsoft Open-Source .net Core Code
2017-05-10 5.0[29] Versand von Roslyn C# Compiler, um C# 7 Support zu aktivieren; Versand von MSBUILD und Abschreibungen für eine bessere Kompatibilität; Ermöglicht das gleichzeitige Sgen -Müllsammler, die Zeit in GC zu verkürzen. Einführung des AppletLS -Stacks auf macOS für HTTPS -Verbindungen; Fortschritte bei der Konvergenz der .NET -Klasse Bibliothek; Aktualisiert libjpeg im macOS -Paket
2017-07-14 5.2[30] Unterstützung für .NET Standard 2.0, starke Montage -Namen und experimentelle Standard -Schnittstellenmitglieder.
2017-10-05 5.4[31] Die JIT -Laufzeit unterstützt jetzt die gleichzeitige Zusammenstellung der Methode und verschiedene andere Leistungsoptimierungen. .NET 4.7 Referenzbaugruppen hinzugefügt
2018-02-01 5.8[32] Initial WebAssembly Hafen; Modi für das SGEN GC; Beinhaltet Roslyns CSI -Reply -Tool (C# Interactive)
2018-02-26 5.10[33] Der Dolmetscher ist jetzt in der Standardinstallation enthalten. Die Laufzeit unterstützt jetzt Standard -Schnittstellenmethoden. WebAssembly ist jetzt als zuverlässig angesehen; Unterstützung für .net 4.7.1 / c# 7.2 / f# 4.1
2018-05-08 5.12[34] Port zu IBM AIX/i; Jetzt beinhaltet Vb.net Compiler; Option zu verwenden Jemalloc
2018-08-07 5.14[35] Haupt Windows.forms Aktualisieren Sie, um die Kompatibilität mit .NET zu verbessern
2018-10-08 5.16[36] Hybrid suspendiert Müllsammler; Support für Kundenzertifikat; C# 7.3 Unterstützung
2018-12-21 5.18[37] .NET 4.7.2 Support; mehr Corefx Code wird verwendet
2019-07-17 6.0[38] C# Compiler standardmäßig von Version C# 8.0 RC; Verschiedene Stabilitätsverbesserungen bei der Unterstützung von Debugger; Mono -Dolmetscher ist komplett und stabil
2019-09-23 6.4[39] C# Compiler -Unterstützung für C# 8 Sprachversion; .NET Standard 2.1 Support
2019-12-10 6.6[40] .NET 4.8 Referenzbaugruppen hinzugefügt
2020-01-15 6.8[41] Verschiedene Fehler
2020-05-19 6.10[42] Verschiedene Fehler
2020-11-24 6.12[43] Verschiedene Fehler

Als Microsoft ihre zum ersten Mal ankündigte .NET Framework Im Juni 2000 wurde es als "eine neue Plattform basierend auf Internetstandards" beschrieben,[44] und im Dezember dieses Jahres die zugrunde liegenden Gemeinsame Sprachinfrastruktur wurde als offener Standard, "ECMA-335", veröffentlicht,[45] Eröffnung des Potenzials für unabhängige Implementierungen.[46] Miguel de Icaza von Ximian glaubte, dass .NET das Potenzial hatte, die Programmiererproduktivität zu steigern, und begann zu untersuchen, ob eine Linux -Version machbar war.[47] In der Erkenntnis, dass ihr kleines Team nicht erwarten konnte, ein vollständiges Produkt aufzubauen und zu unterstützen, starteten sie das Mono Open-Source-Projekt am 19. Juli 2001 in der O'Reilly Konferenz.

Nach dreijähriger Entwicklung wurde Mono 1.0 am 30. Juni 2004 veröffentlicht.[48] Mono entwickelte sich aus seinem ursprünglichen Fokus einer Entwicklerplattform für Linux -Desktop -Anwendungen bis zur Unterstützung einer Vielzahl von Architekturen und Betriebssystemen - einschließlich eingebetteter Systeme.[49]

Novell erworben Ximian im Jahr 2003. Nachdem Novell von erworben wurde von Attachmate Im April 2011 kündigte Attachmate Hunderte von Entlassungen für die Novell Workforce an.[50] In Frage stellen die Zukunft von Mono.[51][52]

Am 16. Mai kündigte Miguel de Icaza in seinem Blog an, dass Mono weiterhin unterstützt werden würde Xamarin, eine Firma, die er gründete, nachdem er von Novell entlassen worden war. Das ursprüngliche Mono -Team war ebenfalls in die neue Firma gezogen. Xamarin plante, weiter an Mono zu arbeiten iOS und Android Von Grund auf neu, weil Novell zu dieser Zeit noch Monotouch und Mono für Android besaß.[53] Nach dieser Ankündigung wurde die Zukunft des Projekts in Frage gestellt, Monotouch und Mono für Android in direktem Wettbewerb mit den vorhandenen kommerziellen Angeboten, die jetzt im Besitz sind Attachmateund wenn man bedenkt, dass das Xamarin -Team Schwierigkeiten haben würde, zu beweisen, dass es keine Technologien verwendete, die sie früher entwickelt haben, als sie angestellt wurden Novell für die gleiche Arbeit.[54] Im Juli 2011 kündigte Novell, heute eine Tochtergesellschaft von Attachmate, und Xamarin, an, dass er Xamarin für Mono, Monotouch und Mono für Android eine ewige Lizenz gewährt hat, die offiziell die Verantwortung des Projekts eroberte.[55][56]

Aktueller Status und Roadmap

Die aktuelle Version von Mono ist 6.0.0 (ab August 2019). Diese Version bietet den Kern API des .NET Framework und Unterstützung für Visual Basic.net und C# 7.0. Linq zu Objekten, Xml und Sql sind Teil der Verteilung. Windows forms 2.0 wird ebenfalls unterstützt, aber nicht aktiv entwickelt, und als solche ist seine Unterstützung bei Mono unvollständig.[57] Version 4.0 war die erste Version, die Microsoft Original -Quellcode enthält, der von Microsoft als Teil der veröffentlicht wurde .NET CORE Projekt.

Ab dem 14. Januar 2021 hat Mono alle Funktionen in .NET 4.7 mit Ausnahme der vollen Unterstützung Windows Presentation Foundation (WPF) (das das Mono -Team aufgrund der Arbeit, die es benötigt, nicht zur Unterstützung vorhat)[57] und Windows Workflow Foundation (WF) und nur mit begrenzter Unterstützung für Windows Communication Foundation (WCF) und ASP.NET Async Stack. System.Web und WCF sind jedoch Kandidaten für die "fast unmittelbare" Portierung von der .NET -Referenzquelle zurück nach Mono.[58] Einige fehlende Teile der .NET Framework werden in einem experimentellen Mono -Unterprojekt in der Entwicklung genannt Olive.[59]

Das Mono -Projekt hat auch a geschaffen Visual Basic .net Compiler und eine Laufzeit zum Ausführen von VB.NET -Anwendungen. Derzeit wird es von Rolf Bjarne Kvinge entwickelt.

Mondlicht

Eine Open-Source-Implementierung von Microsoft Silverlight, genannt Mondlicht, ist seit Mono 1.9 aufgenommen.[60] Moonlight 1.0, das den Silverlight 1.0 APIs unterstützt, wurde am 20. Januar 2009 veröffentlicht. Moonlight 2.0 unterstützt Silverlight 2.0 und einige Merkmale von Silverlight 3.0.[61] Eine Vorschau -Veröffentlichung von Moonlight 3.0 wurde im Februar 2010 bekannt gegeben und enthält Aktualisierungen zur Silverlight 3 -Unterstützung.[62]

Das Moonlight -Projekt wurde am 29. Mai 2012 aufgegeben.[63] Laut Miguel besiegelten zwei Faktoren das Schicksal des Projekts: Microsoft fügte "künstliche Einschränkungen" hinzu, die es "für die Desktop -Programmierung nutzlos machten", und die Technologie hatte nicht genug Traktion im Web gewonnen. Darüber hinaus wurde Silverlight selbst bis 2012 von Microsoft veraltet.

Mono -Komponenten

Mono besteht aus drei Gruppen von Komponenten:

  1. Kernkomponenten
  2. Mono/Linux/Gnome -Entwicklungsstapel
  3. Microsoft -Kompatibilitätsstapel

Das Kernkomponenten Fügen Sie den C# Compiler ein, die virtuelle Maschine für die Gemeinsame Sprachinfrastruktur und die Kernklassenbibliotheken. Diese Komponenten basieren auf dem ECMA-334- und ECMA-335-Standards,[64] Ermöglichen, dass Mono eine Standards für konform, kostenlose und offene Source-CLI bereitstellt virtuelle Maschine. Microsoft gab eine Erklärung ab, in der beide Standards gemäß ihrer abdeckt Community Promise Lizenz.[65]

Das Mono/Linux/Gnome -Entwicklungsstapel Stellen Sie Tools für die Anwendungsentwicklung bereit, während Sie die vorhandenen verwenden Gnom und frei und offen Bibliotheken. Diese beinhalten: Gtk# zum grafische Benutzeroberfläche (GUI) Entwicklung, Mozilla -Bibliotheken für die Arbeit mit dem Gecko Rendering Motor, Unix Integration Libraries (Mono.Posix), Datenbankkonnektivitätsbibliotheken, ein Sicherheitsstapel und die XML -Schema -Sprache Relaxng. Mit GTK# können Mono -Anwendungen als native Anwendungen in den Gnome -Desktop integrieren. Die Datenbankbibliotheken bieten eine Konnektivität zur Objektrelationsdatenbank DB4O, Feuervogel, Microsoft SQL Server (MSSQL), Mysql, Öffnen Sie die Datenbankkonnektivität (ODBC), Orakel, PostgreSQL, Sqlite, und viele andere. Das Mono -Projekt verfolgt die Entwicklung von Datenbankkomponenten auf seiner Website.[66]

Das Microsoft -Kompatibilitätsstapel Bietet einen Weg zum Portieren von Windows .NET -Anwendungen an Linux. Diese Gruppe von Komponenten umfasst Ado.net, ASP.NET, und Windows forms, unter anderen. Da diese Komponenten nicht abgedeckt werden von ECMA Standards, einige von ihnen bleiben weiterhin ausgesetzt Patentangst und Bedenken.

Rahmenarchitektur

Die Hauptkomponenten von Mono sind:

Code -Ausführungs -Engine

Die Mono -Laufzeit enthält eine Code -Ausführungs -Engine, die ECMA übersetzt Cil Byte codiert in nativen Code und unterstützt eine Reihe von Prozessoren: ARM, MIPS (Nur im 32-Bit-Modus), Sparc, Powerpc, S390 (im 64-Bit-Modus), x86, x86-64 und IA-64 Für 64-Bit-Modi.

Der Codegenerator ist in drei Modi freigelegt:

  • Just-in-Time (JIT) -Kompilation: Die Laufzeit verwandelt ECMA CIL-Byte-Codes in nativen Code, wenn der Code ausgeführt wird.
  • Vorzeit (AOT) -Kompilation: Dieser Code dreht die ECMA-CIL-Byte-Codes (typischerweise in einer .exe- oder .dll-Datei) und generiert nativen Code, das in einem Betriebssystem, einer Architektur und einer CPU-spezifischen Datei gespeichert ist (für eine FOO. EXE -Datei würde foo.exe.so unter Linux erzeugen). Diese Operationsart erstellt den größten Teil des Code, der normalerweise zur Laufzeit durchgeführt wird. Es gibt einige Ausnahmen wie Trampoline und anderer Verwaltungscode, für den die JIT noch funktionieren muss, um zu funktionieren, sind AOT -Bilder nicht vollständig eigenständig.
  • Vollständige statische Zusammenstellung: Dieser Modus wird nur auf einer Handvoll Plattformen unterstützt und führt den Vorzeitkompilierungsprozess noch einen Schritt weiter und generiert alle Trampoline. Wrapper und Stellvertreter Dies sind in eine statische Datei erforderlich, die statisch in ein Programm in Verbindung gebracht werden kann und die Notwendigkeit einer JIT zur Laufzeit vollständig beseitigt. Dies wird auf verwendet Apples iOS, Sony Playstation 3 und Microsoft Xbox 360 Betriebssysteme.

Beginnend mit Mono 2.6 ist es möglich, Mono für die Verwendung der Verwendung der zu konfigurieren Llvm Als Codegenerierung Engine anstelle von Monos eigener Codegenerierung Engine. Dies ist nützlich für leistungsstarke Computerlasten und andere Situationen, in denen die Ausführungsleistung wichtiger ist als die Startleistung.

Beginnend mit der Mono 2.7 -Vorschau ist es nicht mehr erforderlich, einen Motor über den anderen zum Konfigurationszeit zu wählen. Die Codegenerierungs -Engine kann beim Start mit der Verwendung der ausgewählt werden --llvm oder -nollvm Befehlszeilenargumente und standardmäßig mit der Fast-Starting-Mono-Code-Generation-Engine.

Ausgehend von Mono 5.18 ist die Unterstützung für LLVM eine Standardkonfigurationsoption. Frühere Versionen erforderten eine spezielle LLVM -Gabel, aber jetzt kann Mono auf einen eigenen Codegenerator zurückfallen, wenn es auf etwas trifft, das nicht von LLVM behandelt wird.[67]

Müllsammler

Ab Mono 2.8 wird die Mono -Laufzeit mit zwei geliefert Müllsammler: ein Generationensammler und der Boehm-Demers-zwser konservativer Müllsammler. Der Boehm -Müllsammler könnte ausstellen Speicherlecks Bei bestimmten Anwendungsklassen, die es für einige langjährige Serveranwendungen ungeeignet machen.[68][69] Mono wechselte zu Einfacher Generations -GC (SGEN-GC) als Standardkollektor in Version 3.1.1.

Der SGEN -Müllsammler hat gegenüber einem traditionellen konservativen Scanner viele Vorteile. Es verwendet Generation Müllsammlung Wenn neue Objekte aus einem Kindergarten während des Müllabfuhrzyklus zugewiesen werden, werden alle überlebenden Objekte in einen Gedächtnispool der älteren Generation migriert. Die Idee ist, dass viele Objekte vorübergehend sind und schnell gesammelt werden können und nur eine Handvoll Objekte langfristige Objekte sind, die das gesamte Leben der Anwendung leben. Um die Leistung zu verbessern Die Migration von Objekten vom Kindergarten in die alte Generation erfolgt durch Kopieren der Daten vom Kindergarten in den Pool der alten Generation und Aktualisierung von Live -Zeigern, die auf die Daten hinweisen, um auf den neuen Standort zu verweisen. Dies kann für große Objekte teuer sein, daher verwendet das SGEN von Mono einen separaten Speicherpool für große Objekte (großer Objektabschnitt) und einen Mark-and-Sweep-Algorithmus für diese Objekte.[68]

Klassenbibliothek

Das Klassenbibliothek Bietet eine umfassende Reihe von Einrichtungen für die Anwendungsentwicklung. Sie sind hauptsächlich in C#geschrieben, aber aufgrund der gemeinsamen Sprachspezifikation können sie von jeder .NET -Sprache verwendet werden. Die Klassenbibliothek ist in Namespaces strukturiert und in freigegebenen Bibliotheken bereitgestellt, die als Assemblys bezeichnet werden. Apropos .NET -Framework bezieht sich in erster Linie auf diese Klassenbibliothek.[70]

Namespaces und Baugruppen

Namespaces sind ein Mechanismus, um ähnliche Klassen logisch zu einer hierarchischen Struktur zu gruppieren. Dies verhindert die Benennung von Konflikten. Die Struktur wird unter Verwendung von dot getrennten Wörtern implementiert, wobei der häufigste Namespace auf höchstem Niveau wie System.io und System.net ist. Es gibt auch andere Namespaces der obersten Ebene, wie z. B. Barrierefreiheit und Windows. Ein Benutzer kann einen Namespace definieren, indem sie Elemente in einem Namespace -Block platziert.

Versammlungen sind die physische Verpackung der Klassenbibliotheken. Dies sind .dll -Dateien, genau wie (aber nicht zu verwechseln mit) Win32 Shared Libraries. Beispiele für Baugruppen sind mscorlib.dll, System.dll, System.data.dll und Barrierefreiheit.dll. Namespaces werden häufig auf mehrere Baugruppen verteilt und eine Baugruppe kann aus mehreren Dateien bestehen.

Gemeinsame Sprachinfrastruktur und gemeinsame Sprachspezifikation

Das Gemeinsame Sprachinfrastruktur (CLI) wie implementiert von der Gemeinsame Sprachlaufzeit (CLR), wird durch die ausführbare Mono implementiert. Die Laufzeit kompiliert und führt .NET -Anwendungen zusammen. Die gemeinsame Sprachinfrastruktur wird vom ECMA -Standard definiert.[64] Um eine Anwendung auszuführen, müssen Sie die Laufzeit mit den entsprechenden Parametern aufrufen.

Das Gemeinsame Sprachspezifikation (CLS) wird in Kapitel 6 von ECMA-335 angegeben und definiert die Schnittstelle zur CLI, wie z. B. Konventionen wie die zugrunde liegenden Typen für Enum. Der Mono -Compiler erzeugt ein Bild, das den CLS entspricht. Dies ist die gemeinsame Zwischensprache. Die Mono -Laufzeit nimmt dieses Bild und führt es aus. Der ECMA -Standard definiert offiziell eine Bibliothek, die den CLS als Framework entspricht.

Verwaltete und nicht verwaltete Code

Innerhalb einer nativen .NET/Mono -Anwendung ist der gesamte Code gelang es; Das heißt, es unterliegt dem Stil der Speicherverwaltung und der Gewindesicherheit des CLI. Andere .NET- oder Mono -Anwendungen können den Legacy -Code verwenden, der als nicht verwaltet bezeichnet wird. Viele Bibliotheken, die mit Mono versandt werden, verwenden diese Funktion der CLI, wie z. Gtk#.

Monospezifische Innovationen

Mono hat in einigen Bereichen mit neuen Erweiterungen in den Kern -C #- und CLI -Spezifikationen innoviert:

  • C# Compiler als Dienst (Verwenden Sie den C# Compiler als Bibliothek).[15]
  • C# Interaktive Shell.[16]
  • Simd Unterstützung[14] Im Rahmen des Mono.Simd -Namespace, in dem Methodenaufrufe auf spezielle Vektortypen direkt den zugrunde liegenden Prozessor -CPU -SIMD -Anweisungen zugeordnet sind.
  • Vollständige statische Zusammenstellung von .NET -Code[71] (Wird auf Mono/iPhone, Mono/PS3 verwendet).
  • Mono Coroutinen (Wird zur Implementierung von Mikro-Threading-Code und verwendet Kontinuationenhauptsächlich für Spieleentwickler).[72]
  • Montageinjektion zu lebenden Prozessen.[73]
  • Gebrauch von Llvm als JIT -Backend.
  • Cxxi und CPPSharp Direkter Interop mit C ++ - Code und Bibliotheken.

Darüber hinaus ist Mono für eine Vielzahl von Betriebssystemen und Architekturen erhältlich.[74]

System Anforderungen

Windows 7, Windows 8, Windows 8.1, Windows 10, MacOS oder Linux

Ähnliche Projekte

Mehrere Projekte erweitern Mono und ermöglichen es den Entwicklern, es in ihrer Entwicklungsumgebung zu nutzen. Diese Projekte umfassen:

Plattformübergreifend:

  • Banshee Media Player (Stilled), ein plattformübergreifender Musikmedienspieler, der mit Mono und GTK# gebaut wurde, sowie ein Treiber von Dutzenden von C#-basierten Bibliotheken und Projekten für die Medienbehandlung.
  • Beagle (ungerecht), ein Suchsystem für UNIX -Systeme.
  • Gecko#, Bindungen zum Einbetten des in Mozilla verwendeten Layoutmotors (Gecko).
  • Gtk#, C# Wrapper um die zugrunde liegenden Gtk und Gnom Bibliotheken, geschrieben in C und verfügbar unter Linux, MacOS und Windows.
  • Mono-Migrationsanalysator (MOMA), ein Tool, das Windows .NET-Entwicklern dabei hilft, Bereiche in ihrem Code zu finden, die möglicherweise nicht plattformübergreifend sind und daher nicht unter Linux und anderen Unixes funktionieren. Seit Mono 2.8 (2013) nicht verbessert; Verwenden Sie stattdessen stattdessen Microsoft .NET-Portabilitätsanalysator (Dotnet-APIPORT).
  • Monocross, eine plattformübergreifende Model View Controller Designmuster, bei dem das Modell und der Controller über Plattformen teilnehmen und die Ansichten für jede Plattform für eine optimierte Benutzeroberfläche eindeutig sind. Das Rahmen erfordert Xamarin.ios und Xamarin.android.
  • Mvvmcross, eine plattformübergreifende Modellansicht ViewModel Framework unter Verwendung von Xamarin.ios und Xamarin.android für die Entwicklung mobiler Apps.
  • Monode entwickelt Eine Open-Source- und plattformübergreifende integrierte Entwicklungsumgebung, die den Bau von Anwendungen für ASP.NET, GTK#, Meego, Monotouch und Silverlight/Moonlight unterstützt.
  • Mondlicht (eingestellt) eine Umsetzung von Silberlicht Das benutzt Mono.
  • Openentk, eine verwaltete Bindung für OpenGL, OpenCL und Openal.
  • Qtsharp, C# Bindungen für die QT -Framework.
  • Resco MobileBusiness, eine plattformübergreifende Entwicklerlösung für mobile Clients.
  • Resco mobilecrm, eine plattformübergreifende Entwicklerlösung für mobile Clients, die synchronisiert sind, mit Microsoft Dynamics CRM.
  • Servicestack Ein Hochleistungs-Open-Source-REST-Web-Services-Framework, der die Entwicklung von XML-, JSON- und SOAP-Webdiensten vereinfacht.
  • SparkleShare Eine Open-Source-Client-Software, die Cloud-Speicher- und Datei-Synchronisierungsdienste anbietet.
  • Tao (Ersetzt von Openentk), eine Sammlung von Grafik- und Gaming -Bindungen (OpenGL, SDL, GLUT, CG).
  • XWT, ein GUI -Toolkit, das API -Aufrufe auf native Plattformaufrufe der zugrunde liegenden Plattform bildet, die eine einheitliche API auf verschiedene Plattformen aufstellt und die grafischen Benutzeroberflächen ermöglicht, natives Erscheinungsbild auf verschiedenen Plattformen zu haben. Es ermöglicht das Gebäude GUI-Basierte Desktop -Anwendungen, die auf mehreren Plattformen ausgeführt werden, ohne Code für verschiedene Plattformen anzupassen. Die XWT -API wird auf jeder unterstützten Plattform auf eine Reihe nativer Steuerelemente abgebildet. Funktionen, die auf bestimmten Plattformen nicht verfügbar sind, werden mit nativen Widgets emuliert, die als Hosting im XWT -Kontext bezeichnet werden.[75] XWT wurde teilweise als GUI -Toolkit (neben GTK#) bei der Entwicklung der Xamarin Studio.[76] Unterstützte "Backend" -Motoren sind: WPF Motor und GTK -Motor (mit Verwendung Gtk#) an Fenster, Kakao -Motor (mit Monomac) und GTK -Engine (mit GTK#) auf Mac OS Xund GTK -Engine (mit GTK#) auf Linux.[77]

Mac OS:

  • Kakao# - Wrapper um das native MacOS -Toolkit (Kakao) (veraltet).
  • Monobjc - Eine Reihe von Bindungen für die MacOS -Programmierung.
  • Monomac - Neuere Bindungen für die MacOS -Programmierung, basierend auf dem Monotouch -API -Design.

Mobile Plattformen:

  • Monodroid. Mono für das Android -Betriebssystem. Mit Bindungen für die Android -APIs.
  • Monotouch. Mono für das iPhone, iPad und iPod Touches. Mit Bindungen an die iOS -APIs.

Fenster:

  • Monotools für Visual Studio Ein Visual Studio -Plugin, mit dem Windows -Entwickler Linux und MacOS direkt von Visual Studio abzielen und sich in integrieren können SUSE Studio.

Andere Implementierungen

Microsoft hat eine Version von .net 2.0 jetzt nur für verfügbar für Windows XP, genannt Gemeinsame Quelle CLI (Rotor). Microsoft's gemeinsame Quelle Die Lizenz kann für die Bedürfnisse der Community nicht ausreichen (sie verbietet ausdrücklich den kommerziellen Gebrauch).

Kostenlose Software -Stiftung's stillgelegt Tragbar.net Projekt.[78]

Monode entwickelt

Monodevelop ist ein kostenloser Gnom integrierte Entwicklungsumgebung hauptsächlich für C# und andere .NET -Sprachen wie z. Nemerle, Boo, und Java (über Ikvm.net), obwohl es auch Sprachen wie unterstützt wie C, C ++, Python, und Vala. Monodevelop war ursprünglich ein Hafen von Sharpdevelop zu gtk#, aber es hat sich seitdem entwickelt, um den Bedürfnissen von Mono -Entwicklern zu erfüllen. Die IDE umfasst Klassenmanagement, integrierte Hilfe, Code-Abschluss, Stetike (GUI-Designer), Projektunterstützung und ein integrierter Debugger.

Der Monodoc -Browser bietet Zugriff auf API -Dokumentation und Code -Beispiele. Der Dokumentationsbrowser verwendet das Content Management im Wiki-Stil, mit dem Entwickler die Dokumentation bearbeiten und verbessern können.

Xamarin.ios und xamarin.android

Xamarin.ios und xamarin.android, beide entwickelt von Xamarin, sind Implementierungen von Mono für iPhone und Android-Basierte Smartphones. Zuvor nur für die kommerzielle Lizenz erhältlich,[79] Nach der Übernahme von Xamarin durch Microsoft im Jahr 2016 war die Mono -Laufzeit selbst Relizenz unter MIT -Lizenz[80] und sowohl Xamarin.ios als auch Xamarin.android werden frei und offen gemacht.[81]

Xamarin.ios

Veröffentlichung Geschichte
Datum Ausführung Anmerkungen
2009-09-14 Monotouch 1.0[82] Erstveröffentlichung
2010-04-05 Monotouch 2.0[83] iPad Unterstützung
2010-04-16 Monotouch 3.0[84] iPhone 4 Unterstützung
2011-04-06 Monotouch 4.0[85] iOS 4 Unterstützung
2011-10-12 Monotouch 5.0[86] iOS 5 Unterstützung
2012-09-19 Monotouch 6.0[87] iOS 6 Unterstützung
2013-02-20 Xamarin.ios 6.2[88] Visual Studio Support
2013-07-24 Xamarin.ios 6.4[89] .NET 4.5 Async/Aused Support
2013-06-19 Xamarin.ios 7.0[90] Xcode 5 und iOS 7 Unterstützung
2014-09-10 Xamarin.ios 8.0[91] iOS 8 und Xcode 6 Unterstützung
2015-09-16 Xamarin.ios 9.0[92] iOS 9 und Xcode 7 Unterstützung
2016-09-13 Xamarin.ios 10.0[93] iOS 10 und Xcode 8 Unterstützung
2017-09-19 Xamarin.ios 11.0[94] iOS 11 und Xcode 9 Unterstützung
2018-09-14 Xamarin.ios 12.0[95] iOS 12 und Xcode 10 Unterstützung
2019-09-13 Xamarin.ios 13.0[96] iOS 13 und Xcode 11 Unterstützung
2020-09-20 Xamarin.ios 14.0[97] iOS 14 und Xcode 12 Unterstützung

Xamarin.ios (zuvor benannt Monotouch) ist eine Bibliothek, mit der Entwickler C #- und .NET -basierte Anwendungen erstellen können, die auf dem iPhone-, iPod- und iPad -Geräte ausgeführt werden. Es basiert auf dem Mono -Framework und entwickelt sich in Verbindung mit Novell. Im Gegensatz zu Mono -Anwendungen werden Xamarin.IOS "Apps" für den Maschinencode zusammengestellt, der speziell auf die abzielt Apfel iPhone und iPad.[98] Dies ist notwendig, weil der iOS -Kernel verhindert Just-in-Time-Compiler von der Ausführung auf dem Gerät.

Der Xamarin.ios -Stack besteht aus:

  • Compiler
    • C# aus dem Mono -Projekt
    • Compiler von Drittanbietern wie das Oxygen von Remobject können auch auf Xamarin.ios abzielen
  • Core .net -Bibliotheken
  • Entwicklung SDK:
    • Linker - Wird verwendet, um nur den Code zu bündeln, der in der endgültigen Anwendung verwendet wird
    • MTouch - Der native Compiler und Tool, der zum Bereitstellen für das Zielgerät verwendet wird
    • Schnittstellenbauer Integrationstools
  • Bibliotheken, die die nativen Cocoatouch -APIs binden
  • Xamarin Studio IDE

Xamarin Studio wird als primäre IDE verwendet, jedoch zusätzliche Links zu Xcode und der iOS -Simulator wurde geschrieben.

Von April bis Anfang September 2010 wurde die Zukunft von Monotouch in Zweifel gestellt, als Apple neue Begriffe für iPhone -Entwickler einführte, die sie offenbar die Entwicklung in anderen Sprachen als C, C ++ und untersagten Ziel cund die Verwendung einer mittleren Schicht zwischen der iOS -Plattform und iPhone -Anwendungen. Dies machte die Zukunft von Monotouch und anderen Technologien wie Einheit, unsicher.[99] Dann, im September 2010, hob Apple diese Einschränkung auf und erklärte, dass sie die Sprachbeschränkungen entspannen, die sie früher in diesem Jahr eingeführt hatten.[100][101]

Xamarin.android

Xamarin.android (früher bekannt als Mono für Android), zunächst von entwickelt von Novell und fuhr fort Xamarin, ist ein Eigentümer[102] Implementierung von Mono für Android-Basierte Smart-Phones.[103][104][105] Es wurde erstmals am 6. April 2011 veröffentlicht.[106] Mono für Android wurde entwickelt, damit Entwickler leichter plattformübergreifende Anwendungen schreiben können, die auf allen mobilen Plattformen ausgeführt werden.[107] In einem Interview mit H-online erklärte Miguel de Icaza: "Unsere Vision ist es, Entwicklern ihren Engine- und Geschäftslogikcode auf allen mobilen Plattformen wiederzuverwenden und den Benutzeroberflächencode für eine plattformspezifische API auszutauschen."[108]

Im August 2010 erklärte ein Microsoft -Sprecher, Tom Hanrahan vom Open Source Technology Center von Microsoft passieren. Wenn ein .NET -Port nach Android durch Mono wäre, würde er unter die fallen Microsoft Community Promise Zustimmung."[109][110]

Der Xamarin.Android -Stack besteht aus den folgenden Komponenten:

  • Mono -Laufzeit
  • Ein Android UI Designer[111]
  • Bibliotheken:
    • Core .net -Klassenbibliotheken
    • Bibliotheken, die die nativen Android/Java -APIs binden
  • SDK -Tools zum Verpacken, Bereitstellen und Debuggen
  • Xamarin Studio und Visual Studio 2010 Integration zum Entwerfen der Benutzeroberfläche, des Fernsehsenders und der Bereitstellung.

Lizenz

Mono ist Dual lizenziert von Xamarin, ähnlich wie andere Produkte wie Qt und die Mozilla Application Suite. Monos C# Compiler und Tools werden unter dem veröffentlicht GNU Allgemeine öffentliche Lizenz (Nur GPLV2) (Ab Version 2.0 von Mono ist der Quellcode von Mono C# Compiler auch unter dem verfügbar MIT X11 -Lizenz),[112] Die Laufzeitbibliotheken unter dem Gnu weniger allgemeine öffentliche Lizenz (Nur LGPLV2) und die Klassenbibliotheken unter dem MIT -Lizenz. Das sind alle gratis Software und Open-Source-Lizenzen und daher ist mono frei und Quelloffene Software.

Die Lizenz des C# Compiler wurde von der GPL in die MIT X11 -Lizenz geändert[113] Damit der Compiler -Code in einigen Fällen wiederverwendet wird, in denen die GPL dies verhindert hätte:

  • Monos Compiler als Service
    • Die mono interaktive Hülle
    • Das Mono -einbettbare C# Compiler
  • Monos Implementierung des C# 4.0 Dynamic Binder.
  • Monodevelop's eingebauter Parser und Ast Graph

Am 18. März 2016 wurde die Übernahme von Xamarin durch Microsoft offiziell geschlossen.[114] Am 31. März 2016 gab Microsoft bei bekannt Microsoft Build dass sie vollständig neu lizenzieren Mono unter dem MIT -Lizenz Auch in Szenarien, in denen zuvor eine kommerzielle Lizenz erforderlich war,[115] Und Microsoft erklärte, dass sie keine "anwendbaren Patente" gegen Parteien geltend machen, die "verwenden, verkaufen, zum Verkauf, importieren oder verteilt".[116][117] Es wurde auch bekannt gegeben, dass Xamarin das Mono -Projekt zur .NET Foundation beigetragen hatte.[116]

Mono- und Microsoft -Patente

Software, die mit Mono entwickelt wurde

Banshee Media Player

Viele Programme, die eine Reihe von Anwendungen abdecken, wurden mit dem Mono entwickelt Programmierschnittstelle (API) und C#. Einige Programme, die für den Linux -Desktop geschrieben wurden Banshee, Beagle, F-Spot, Gbrainy, Werfen/GNOME Do, Monotorrent, Pinta, und Wildfang. Das Programm, Logos 5 Bibelstudiensoftware (OS X -Version), wurde für die macos geschrieben.

Eine Reihe von Videospielen, wie z. Die Sims 3 und Zweites Leben (für ihre Skriptsprachen), OpenSimulator Virtual World Server oder Spiele, die mit dem erstellt wurden Einheit oder Monogame Game Enginesbenutze auch Mono.[118] Openra Bündel seines Apple Disk Image und Linux Appimages mit Mono im Wesentlichen fast alle Abhängigkeiten aus dem Spiel entfernt.[119]

Siehe auch

Verweise

Zitate

  1. ^ https://www.mono-project.com/docs/about-mono/releases/6.12.0.122/; Abgerufen: 18. August 2021.
  2. ^ "Tags · Mono/Mono · Github".
  3. ^ Einführung von Mono auf AIX und IBM I.
  4. ^ "FAQ: Lizenzierung". Abgerufen 3. Juli 2020.
  5. ^ "Microsoft erwerben Xamarin und stärkt mehr Entwickler, Apps auf jedem Gerät zu erstellen". Offizieller Microsoft -Blog. Abgerufen 2016-02-24.
  6. ^ "Mono veröffentlicht".Mono-project.com. Abgerufen 2015-04-04.
  7. ^ "Oldreleases".Mono-project.com. Abgerufen 2013-07-17.
  8. ^ "Mono 1.0 Release -Notizen".Mono-project.com. Abgerufen 2013-07-17.
  9. ^ "Mono 1.1.1: Entwicklungsveröffentlichung".Mono-project.com. Abgerufen 2013-07-17.
  10. ^ "Mono 1.2: Release -Notizen".Mono-project.com. Abgerufen 2013-07-17.
  11. ^ "Release Notes Mono 2.0". Mono-project.com. 2008-10-06. Abgerufen 2013-07-17.
  12. ^ "Release Notes Mono 2.2".Mono-project.com. Abgerufen 2013-07-17.
  13. ^ "Linear IR - Mono".Mono-project.com. Abgerufen 2013-07-17.
  14. ^ a b "Monos SIMD -Unterstützung: Mono sicher für Spiele - Miguel de Icaza". Tirania.org. 2008-11-03. Abgerufen 2013-07-17.
  15. ^ a b "Monos C# Compiler als Dienst unter Windows. - Miguel de Icaza". Tirania.org. 2010-04-27. Abgerufen 2013-07-17.
  16. ^ a b "CSHARPREPL - MONO".Mono-project.com. Abgerufen 2013-07-17.
  17. ^ "Release Notes Mono 2.4".Mono-project.com. Abgerufen 2013-07-17.
  18. ^ "Release Notes Mono 2.6".Mono-project.com. Abgerufen 2013-07-17.
  19. ^ "Release Notes Mono 2.8".Mono-project.com. Abgerufen 2013-07-17.
  20. ^ "Versionshinweise Mono 2.10".Mono-project.com. Abgerufen 2013-07-17.
  21. ^ "Release Notes Mono 3.0".Mono-project.com. Abgerufen 2013-09-23.
  22. ^ "Versionshinweise Mono 3.2".Mono-project.com. Abgerufen 2013-09-23.
  23. ^ "Versionshinweise Mono 3.4".Mono-project.com. Abgerufen 2015-04-04.
  24. ^ "Versionshinweise Mono 3.6".Mono-project.com. Abgerufen 2015-04-04.
  25. ^ "Versionshinweise Mono 3.8".Mono-project.com. Abgerufen 2015-04-04.
  26. ^ "Versionshinweise Mono 3.10".Mono-project.com. Abgerufen 2015-04-04.
  27. ^ "Versionshinweise Mono 3.12".Mono-project.com. Abgerufen 2015-04-04.
  28. ^ "Versionshinweise Mono 4.0".Mono-project.com. Abgerufen 2015-05-03.
  29. ^ "Release Notes Mono 5.0".Mono-project.com. Abgerufen 2017-05-13.
  30. ^ "Mono 5.2.0 Versionsnotizen".
  31. ^ "Mono 5.4.0 Versionsnotizen".
  32. ^ "Mono 5.8.0 Versionsnotizen".
  33. ^ "Mono 5.10.0 Versionsnotizen".
  34. ^ "Mono 5.12.0 Versionsnotizen".
  35. ^ "Mono 5.14.0 Versionsnotizen".
  36. ^ "Mono 5.16.0 Versionsnotizen".
  37. ^ "Mono 5.18.0 Versionsnotizen".
  38. ^ "Mono 6.0.0 Versionsnotizen".
  39. ^ "Mono 6.4.0 Versionsnotizen".
  40. ^ "Mono 6.6.0 Versionsnotizen".
  41. ^ "Mono 6.8.0 Versionsnotizen".
  42. ^ "Mono 6.10.0 Versionsnotizen".
  43. ^ "Mono 6.12.0 Versionsnotizen".
  44. ^ Bonisteel, Steven (23. Juni 2000). "Microsoft sieht nichts als .net vor uns". ZDNET. Archiviert von das Original am 5. November 2011. Abgerufen 5. April, 2011.
  45. ^ "ECMA-335-Teil-II-IV-ECMA-335, 1. Ausgabe, Dezember 2001" (PDF).
  46. ^ Wilcox, Joe; Shankland, Stephen (28. Juni 2001). "Microsoft bewegt sich zum Freigeben Code". ZDNET.
  47. ^ "[Monoliste] Mono-frühe Geschichte". 2003-10-13. Archiviert von das Original Am 2011-06-06. Abgerufen 2005-03-30.
  48. ^ "OSS .NET -Implementierung Mono 1.0 veröffentlicht - ARS Technica". Arstechnica. Abgerufen 2009-10-23.
  49. ^ "Unterstützte Plattformen". Mono -Website.
  50. ^ Koep, Paul (2011-05-02). "Mitarbeiter sagen, dass Hunderte im Provo -Büro von Novell entlassen wurden". KSL-TV. Abgerufen 2011-05-07.
  51. ^ J. Vaughan-Nichols, Steven (2011-05-04). "Ist Mono tot? Stirbt Novell?". ZDNET. Abgerufen 2011-05-07.
  52. ^ Clarke, Gavin (2011-05-03). ".NET Android- und iOS -Klone von Attachmate gestreift". Das Register. Abgerufen 2011-05-07.
  53. ^ "Xamarin ankündigen - Miguel de Icaza". Tirania.org. 2011-05-16. Abgerufen 2013-07-17.
  54. ^ "Der Tod und die Wiedergeburt von Mono". infoq.com. 2011-05-17. Abgerufen 2011-05-29. Auch wenn sie es nicht unterstützen, besitzen sie ein Produkt, das sich im direkten Wettbewerb mit Xamarins zukünftigen Angeboten befindet. Ohne eine rechtliche Vereinbarung zwischen Attachmate und Xamarin würde letztere der entmutigenden Aussicht stellen, zu beweisen, dass ihre neue Entwicklung keine Technologie verwendet, die der alte tat. In Anbetracht der Tatsache, dass dies wirklich nur ein Wrapper um die native API ist, wäre es schwierig zu beweisen, dass Sie eine saubere Implementierung für ein Team hatten, selbst für ein Team, das nicht mit dem Code von AttachMate vertraut war.
  55. ^ "Suse und Xamarin Partner, um Innovation zu beschleunigen und Mono -Kunden und Community zu unterstützen". Novell. 2011-07-18. Abgerufen 2011-07-18. Die Vereinbarung gewährt Xamarin eine breite, ewige Lizenz für alle geistigen Eigentum, die Mono, Monotouch, Mono für Android- und Mono -Tools für Visual Studio abdecken. Xamarin wird auch SUSE-Kunden technische Unterstützung verwenden, die mono-basierte Produkte verwenden, und die Verwaltung des Mono Open-Source-Community-Projekts übernehmen.
  56. ^ De Icaza, Miguel (2011-07-18). "Novell/Xamarin -Partnerschaft um Mono". Abgerufen 2011-07-18.
  57. ^ a b De Icaza, Miguel (2011-03-07). "GDC 2011". Abgerufen 2011-03-11. Wir haben keine Pläne, WPF zu bauen. Wir haben einfach nicht die MAN-Befugnis, eine Implementierung in einem angemessenen Zeitrahmen (...) für Tools zu erstellen, die größtenteils openGL/DirectX basieren, Windows.Forts verwenden, wobei berücksichtigt Ein Teil ist erforderlich, da unsere Windows.Forms nicht aktiv entwickelt werden.
  58. ^ "Mono -Kompatibilitätsliste".
  59. ^ "Mono -Projekt Roadmap - Mono".Mono-project.com. Abgerufen 2013-07-17.
  60. ^ "Moonlightroadmap". Mono -Team. Abgerufen 2008-11-08.
  61. ^ "Moonlight 2, Roadmap to Moonlight 3 und 4 - Miguel de Icaza". Tirania.org. 2009-12-17. Abgerufen 2013-07-17.
  62. ^ "Moonlight 3.0 Preview 1 - Miguel de Icaza". Tirania.org. 2010-02-03. Abgerufen 2013-07-17.
  63. ^ "Xamarin verlässt sein Silberlicht für Linux -Technologie".
  64. ^ a b "ECMA-335".
  65. ^ "TechNet.com". Archiviert von das Original 2013-05-23. Abgerufen 2009-07-07.
  66. ^ "Datenbankzugriff - Mono".
  67. ^ "Mono llvm". Mono.
  68. ^ a b "Verdichtung GC". mono-project.com. Abgerufen 2008-12-16.
  69. ^ Boehm, Hans-J. "Vor- und Nachteile der konservativen Müllsammlung". Xerox Parc. Archiviert von das Original Am 2013-07-24. Abgerufen 2008-12-16.
  70. ^ ".NET Framework Architecture". Offizielle Mono -Dokumentation.
  71. ^ De Icaza, Miguel. "Statische Zusammenstellung in Mono".
  72. ^ "Kontinuationen - Mono".
  73. ^ De Icaza, Miguel. "Monovation: Montage -Injektion in lebende Prozesse".
  74. ^ "Unterstützte Plattformen - Mono".
  75. ^ Narayanaswamy, Anand (23. November 2012). "Bauen Sie Cross -Plattform -Anwendungen mit XWT auf". Infoq. Archiviert von das Original am 2016-04-15. Abgerufen 2016-04-15.
  76. ^ De Icaza, Miguel (22. Februar 2013). "Die Herstellung von Xamarin Studio". Infoq. Archiviert von das Original am 2016-04-15. Abgerufen 2016-04-15.
  77. ^ "Xwt las mich". XWT auf GitHub. 15. Januar 2012. archiviert von das Original am 2016-04-16. Abgerufen 2016-04-15.
  78. ^ "Dotgnu -Projekt". Abgerufen 2. Juni 2014.
  79. ^ "FAQ". os.xamarin.com. 2011-08-01. Monotouch ist ein kommerzielles Produkt, das auf dem Open-Source-Mono-Projekt basiert und pro Developer lizenziert.
  80. ^ "Mono Relicensed MIT". www.mono-project.com. 2016-03-31.
  81. ^ "Xamarin für alle". blog.xamarin.com. 2016-03-31. Wir kündigen heute unser Engagement für Open Source, die Xamarin SDKs für Android, iOS und Mac unter der MIT -Lizenz in den kommenden Monaten
  82. ^ De Icaza, Miguel. "Monotouch 1.0 geht live".
  83. ^ "Monotouch 2.0.0". Xamarin.
  84. ^ "Monotouch 3.0.0". Xamarin.
  85. ^ "Monotouch 4.0.0". Xamarin.
  86. ^ "Monotouch 5.0". Xamarin.
  87. ^ "Monotouch 6.0". Xamarin.
  88. ^ "Xamarin.ios 6.2". Xamarin.
  89. ^ "Xamarin.ios 6.4". Xamarin.
  90. ^ "iOS 7 und Xamarin: Bereit, wenn Sie sind". Xamarin Blog. 2013-09-18. Abgerufen 2021-03-20.
  91. ^ "iOS 8 größer und besser mit Xamarin". Xamarin Blog. 2014-09-10. Abgerufen 2021-03-20.
  92. ^ "Xamarin für iOS 9: Suchen Sie tiefer". Xamarin Blog. 2015-09-16. Abgerufen 2021-03-20.
  93. ^ "Große Updates: iOS 10, Android Nougat und andere leckere Teile". Xamarin Blog. 2016-09-13. Abgerufen 2021-03-20.
  94. ^ Spouliot. "Xamarin.ios 11.0 Versionshinweise - Xamarin". docs.microsoft.com. Abgerufen 2021-03-20.
  95. ^ Spouliot. "Xamarin.ios 12.0 Versionshinweise - Xamarin". docs.microsoft.com. Abgerufen 2021-03-20.
  96. ^ Spouliot. "Xamarin.ios 13.0 Versionshinweise - Xamarin". docs.microsoft.com. Abgerufen 2021-03-20.
  97. ^ Spouliot. "Xamarin.ios 14.0 Versionshinweise - Xamarin". docs.microsoft.com. Abgerufen 2021-03-20.
  98. ^ "Monotouch und iPhone 4". Mit Monotouch erstellte Anwendungen sind native Anwendungen, die von anderen nativen Anwendungen nicht zu unterscheiden sind.
  99. ^ "Apple zielt auf Adobe ... oder Android?".
  100. ^ "Erklärung von Apple on App Store Review -Richtlinien". Basierend auf ihren Beiträgen nehmen wir heute einige wichtige Änderungen an unserer iOS -Entwicklerprogrammlizenz in den Abschnitten 3.3.1, 3.3.2 und 3.3.9 vor, um einige Einschränkungen zu entspannen, die wir Anfang dieses Jahres eingeführt haben. Insbesondere entspannen wir alle Einschränkungen für die Entwicklungstools zum Erstellen von iOS -Apps, solange die resultierenden Apps keinen Code herunterladen. Dies sollte den Entwicklern die Flexibilität geben, die sie wollen, und gleichzeitig die Sicherheit, die wir benötigen, erhalten.
  101. ^ "Tolle Neuigkeiten für Monotouch -Benutzer". Mit diesen neuen Begriffen ist die Unklarheit weg und C# -Liebhaber und Enthusiasten können wieder Monotouch verwenden. Entwickler, die die Müllsammlung und ihre stark typisierten Sprachen mögen, können ihre Arbeit wieder aufnehmen.
  102. ^ "Wie ist Mono für Android lizenziert?". Mono für Android -FAQ. 2011-08-28. Abgerufen 2012-03-29.
  103. ^ "Novells Mono -Projekt bringt .NET -Entwicklung nach Android". Networkworld.
  104. ^ "Novells Mono -Projekt bringt .NET -Entwicklung nach Android". InfoWorld.
  105. ^ "Monodroid: .NET -Unterstützung, die zu Android kommt". Techiebuzz.
  106. ^ "Mono für Android bringt C# zu Android". Heise online. 2011-04-07. Abgerufen 2011-04-07.
  107. ^ "Novell (Mono/C#) entwickelt Monodroid". Android -Community. Dies erleichtert Entwicklern, Cross -Plattform -Apps zu erstellen und einige der vorhandenen Apps zu bringen, die mit Monotouch zu Android hergestellt werden.
  108. ^ "Mono für Android". H-online. Unsere Vision ist es, Entwicklern zu ermöglichen, ihren Engine- und Geschäftslogikcode auf allen mobilen Plattformen wiederzuverwenden und den Benutzeroberflächencode für eine plattformspezifische API auszutauschen.
  109. ^ "Microsoft wird nicht anhalten (mono) .net auf Android". Techworld. Die Art von Aktion, die Oracle gegen Google über Java ergreifen wird, wird nicht stattfinden. Wenn ein .NET -Port nach Android über Mono wäre, würde er unter das Microsoft Community Promise -Vertrag fallen.
  110. ^ "Microsoft sagt .NET on Android ist sicher, keine Rechtsstreitigkeiten wie Oracle". Entwicklerfusion.
  111. ^ "Xamarin -Designer für Android". Visual Studio Magazine. Am 14. Mai kündigte Xamarin Mono für Android 4.2 an.
  112. ^ "Mono C# Compiler unter MIT X11 -Lizenz". Novell Inc. 2008-04-08. Archiviert von das Original am 2008-05-13. Abgerufen 2008-04-09.
  113. ^ De Icaza, Miguel. "Mono C# Compiler jetzt auch MIT x11 lizenziert".
  114. ^ "Xamarin für alle". Xamarin Blog. Xamarin. 31. März 2016. archiviert von das Original am 2016-04-12. Abgerufen 2016-04-12.
  115. ^ Anderson, Tim (31. März 2016). "Microsoft, um Xamarin-Tools und Code kostenlos und offen zu machen". Das Register.
  116. ^ a b Ferraira, Bruno (31. März 2016). "Xamarin kommt jetzt kostenlos mit Visual Studio". Der Tech -Bericht.
  117. ^ "Microsoft Patentversprechen für Mono". Mono auf Github. Mono -Projekt. 2016-03-28. Archiviert von das Original am 2016-04-12. Abgerufen 2016-04-12.
  118. ^ "Unternehmen, die Mono nutzen". Monoprojekt. Monoprojekt. Abgerufen 30. August 2015.
  119. ^ Paul Chote: OpenRA: Playtest 20190825, 2019-08-25

Quellen

Externe Links