Software-update: Mono 6.14.0

Mono logo Mono is een opensource-implementatie van het .NET Framework en is in 2001 door Miguel de Icaza opgezet. In 2016 is het in handen van Microsoft gekomen toen het Xamarin overnam. In 2019 is de laatste grote update verschenen. Wel bracht Microsoft nog enkele kleine updates met bugfixes uit. Uiteindelijk is de broncode begin 2024 gedoneerd aan de Wine development community en nu is met versienummer 6.14.0 de eerste uitgave van Mono onder diens beheer uitgekomen. De releasenotes voor deze uitgave kunnen hieronder worden gevonden.

Release notes

The 6.14.0 release of Framework Mono is now available. This is the first release of Framework Mono from its new home at Winehq. It includes work from the past 5 years that was never included in a stable release because no stable branch had been created in that time. Highlights are native support for ARM64 on macOS and many improvements to windows forms for X11. The current set of supported platforms is:

  • Linux: x86[3], amd64[1], arm64[3]
  • macOS: amd64[2], arm64[2]
  • Windows: x86[3], amd64[3] [1] Tested manually and automatically through GitLab CI. [2] Tested manually only, no CI implemented yet. [3] No testing process yet.

Linux armv5te is known to be broken, but a work-around is possible by disabling float optimizations. I am hoping to fix that in the near future. Binary packages are not currently available. The source is available at https://dl.winehq.org/mono/sources/mono/mono-6.14.0.tar.xz

There has also been a release of libgdiplus, version 6.2, with source code available at https://dl.winehq.org/mono/sources/libgdiplus/libgdiplus-6.2.tar.gz, which did not get its own announcement at the time.

Since this is the first release at Winehq, I wanted to give a detailed report on where this project is and what my priorities are. I'm including that below.

What's New in 6.14.0
  • Native support for macOS on ARM. Cis-compilation on ARM macOS is now assumed to be compiling for macOS, not cross-compiling for iOS.
  • System.Windows.Forms:
    • Fixed various resource leaks on X11.
    • Redesigned Clipboard and Drag And Drop implementation on X11.
    • Stability improvements on X11.
  • Improved support for generated COM interfaces.
  • Fixed some common cases where processes would hang on exit.
  • Added Georgian translation.
  • Many warning fixes. The Linux amd64 build no longer warns when compiling the C portion of the codebase, and this is enforced for new changes via CI.
  • Many bug fixes.

Mono logo breed

Versienummer 6.14.0
Releasestatus Final
Besturingssystemen Linux, macOS, Windows 10, Windows 11
Website Wine HQ
Download https://gitlab.winehq.org/mono/mono/-/releases/mono-6.14.0
Licentietype Voorwaarden (GNU/BSD/etc.)

Door Bart van Klaveren

Downloads en Best Buy Guide

09-03-2025 • 22:04

12

Bron: Wine HQ

Update-historie

09-03 Mono 6.14.0 12
11-'12 Mono 3.0.1 bèta 3
10-'10 Mono 2.8 21
07-'10 Mono 2.6.7 5
03-'10 Mono 2.6.3 4
12-'09 Mono 2.6 21
07-'09 Mono 2.4.2.3 14
03-'09 Mono 2.4 22
10-'08 Mono 2.0 19
09-'07 Mono 1.2.5 14
Meer historie

Reacties (12)

12
12
6
0
0
6
Wijzig sortering
Ik vraag me af, is er iets dat mono kam dat .net (core) niet kan momenteel? Of bestaat dit puur voor backwards compatibility e.g. oude .net Framework apps draaien op Linux?
Ik denk het laatste, maar dan binnen Wine.

Er staat ook een announcement op de homepage van Mono: https://www.mono-project.com/
Daar lees ik inderdaad dat je eigenlijk naar .NET moet kijken en niet meer naar Mono...
Volgens mij niet echt nee, het was een implementatie van het full framework .NET maar sinds .NET Core dat native op Linux draait en ook ondersteund wordt door Microsoft is het voor nieuwe applicaties in ieder geval niet meer interessant.
Is het fout als ik nu zeg dat dit om oude wijn in nieuwe zakken gaat? :P
Technisch gezien natuurlijk wel, oude wine staat hier qua broncode los van, dit is een 'nieuwe wine' in iets minder oude zakken (en .net was sowieso natuurlijk altijd al cross-platform georiënteerd). Maar mogelijk is dat iets te mierenneukerig :P
.net was sowieso natuurlijk altijd al cross-platform georiënteerd
[citation-needed]
Het enige platform waar .Net (1.0 tot pakweg 4.8) op werkte was Windows.
Dat is letterlijk de reden waarom Mono ontstaan is, om voor Wine een .Net omgeving te bieden.
Met de nieuwere .Net Core en wat nog allemaal is dat inderdaad wel het geval.
Portability was wel een core design feature, dat MS alleen verschillende hardwareplatformen ondersteunde en geen/weinig OSen (anders dan parallel veel Windowsversies tegelijk, inclusief embedded/CE/Mobile) was inderdaad wel wat beperkend daarbij.
Lijkt me toch nog altijd straf omdat ze na X aantal versies toch maar op de proppen moesten komen met .NET Core, een volledig op zichzelf staande (zeer beperkte) vervanger van alle vorige .Net versies, om écht portability te kunnen aanbieden.

Da's het ding met portability: als je niet vanaf het begin hoog schiet, ga je heel veel keuzes maken die inherent niet portable zijn. Dus nee, "core design feature" lijkt me wat sterk. Zelfs Qt, een cross-platform C++ application framework (incl networking, GUI, 2D en intussen ook 3D graphics) heeft door de jaren heen stevig moeten refactoren om relevant portable te blijven. Maar die zijn wel compatibel gebleven (tot op API verschillen die voornamelijk los staan van die portability) doorheen de jaren, en hebben hun aantal platformen enorm uitgebreid (en zo ook veel van de automotive sector maar ook dingen als thermostaten e.d. kunnen veroveren). Op dat vlak moet Microsoft nog veel leren.

Hun Maui project was wel van in den beginne cross-platform, maar lijkt na al die jaren nog steeds wat "ruw" als ik random redditors mag geloven: https://www.reddit.com/r/.../1clje39/xamarin_or_maui/
Voor niet "core" (pun intended" dingen is Microsoft vrij labiel qua support en ontwikkeling. Kijk maar naar wat ze met cpprest hebben uitgehaald. Handjes afgetrokken en nu zit iedereen die het gebruikte met de gebakken peren. Portability is niet gratis, en zoiets deftig ontwikkelen kost handenvol geld/manuren.
Ik denk dat je het ook vanuit zakelijk perspectief "moet" bekijken. cpprest is misschien niet meer supported, maar er zijn 101 andere manieren die net zo goed en beter werken.

Tegenwoordig is het zo makkelijk (en steeds lichter, zoals bv. de mogelijkheid om Docker er helemaal uit te gooien) om alles in een containertje te knikkeren en C++, Java, Type/JavaScript via Node.js oid, Python, enz. met elkaar te mixen zonder dat je ergens ook maar een enkele wrapper hoeft te schrijven, dat je je kan afvragen wat het nut nog is van een low-level implementatie van iets wat al bestaat :)

Misschien als je een purist bent, maar op een gegeven moment gaan de jaren tellen en probeer je vooral te optimaliseren waar het echt nodig is. Precies zoals Donald Knuth eigenlijk al jarenlang riep :+
Stardew Valley werd/word hiermee ontwikkeld.
Nee dat klopt niet. Stardew Valley is oorspronkelijk ontwikkeld in Microsoft's XNA, een op .Net gebaseerd framework met veel API's die het beter geschikt maken om spellen mee te ontwikkelen dan het meer zakelijk georiënteerde .Net Framework. XNA is zelf geen game engine maar je kunt er wel relatief eenvoudig een mee bouwen. XNA wordt echter al sinds 2013 niet meer door Microsoft ondersteund.

In reactie daarop is er een fork van Mono gemaakt genaamd MonoGame, die als doel had om Microsoft XNA in leven te houden via Mono, waar het bovenstaande bericht over gaat. MonoGame wordt echter doorontwikkeld en uitgebreid met meer mogelijkheden, waardoor het inmiddels meer kan dan wat XNA ooit kon. Daarom heeft ene Ethan Lee jaren geleden MonoGame geforkt en is hij het FNA project gestart, om XNA zoals de laatste versie was in stand te houden, waarbij hij echter wel de onderliggende techniek moderniseert. Zo heeft FNA een Vulkan renderer en betere ondersteuning voor controllers dan XNA ooit had. FNA zou in theorie de onderliggende code van elke game die ooit in XNA is ontwikkeld zonder problemen moeten kunnen vervangen, zonder dat er iets aangepast hoeft te worden.

Als je nu een nieuwe game gaat ontwikkelen in C# of een andere .Net taal, of je bestaande XNA game wilt doorontwikkelen en daarbij dingen wilt doen die in XNA eigenlijk niet kunnen, dan moet je MonoGame gebruiken. Volgens mij wordt Stardew Valley momenteel doorontwikkeld in MonoGame.
Erg fijn dat dit bestaat. Hiermee kunnen we een verschrikkelijk stukje software tóch onder Linux draaien (runtijd 2-3 weken). Zeker nu w11 om de haverklap er weer een update doorheen gooit en het proces onderbreekt.

Op dit item kan niet meer gereageerd worden.