From Java Wars to Mono’s Hand‑off: How Open‑Source Shaped .NET’s Evolution
The article traces the historical rivalry between Microsoft and open‑source communities, detailing how Java’s early promise led to .NET, Miguel de Icaza’s creation of GNOME and Mono, the rise of Ximian and Xamarin, Microsoft’s eventual acquisition, and the recent handover of Mono’s upstream to the Wine project.
Background: Java, .NET and the CLI
In the 1990s Microsoft dominated the operating‑system market. Java introduced the slogan “write once, run anywhere”, but early desktop implementations suffered from poor UI and performance. Sun shifted Java toward server‑side development with the J2EE specifications, cementing Java’s role in enterprise software. Microsoft responded by creating .NET, which defined a Common Intermediate Language (IL) and a Common Language Runtime (CLR) – the equivalents of Java bytecode and the JRE. Microsoft also authored the Common Language Infrastructure (CLI) standard (ECMA/ISO), enabling multiple languages (C#, F#, VB.NET, C++) to compile to the same IL.
Mono project
Miguel de Icaza, co‑founder of the GNOME desktop, launched the open‑source Mono project to implement the CLI and CLR on Linux. Mono provided a .NET runtime for non‑Windows platforms, allowing developers to write .NET applications in their preferred language and run them on Linux, filling the gap before Microsoft released .NET Core.
Evolution through Ximian, Xamarin and Microsoft acquisition
1999 – de Icaza and Nat Friedman founded Ximian to support GNOME.
2003 – Ximian was acquired by Novell; de Icaza became vice‑president.
2011 – Novell was acquired by Attachmate, which discontinued Mono work in the United States.
2011 – de Icaza and Friedman founded Xamarin to continue Mono development.
Xamarin released Xamarin.iOS and Xamarin.Android , enabling .NET code to run on iOS and Android devices.
2016 – Microsoft acquired Xamarin for US$400 million, integrating Xamarin and Mono into the .NET ecosystem.
.NET unification
Starting with .NET 5, Microsoft unified .NET Framework, .NET Core and Mono into a single platform that targets desktop, web, cloud, mobile, gaming, IoT and AI workloads. The unified runtime continues to use the CLI/IL model and supports the same set of languages.
Transfer of Mono upstream to WineHQ
On 27 August 2024 Microsoft transferred ownership of the Mono upstream repository to the WineHQ team, the developers of the Windows compatibility layer for Linux. The repository remains publicly available at https://github.com/mono/mono (clone URL: git clone https://github.com/mono/mono.git), and future development will be coordinated by the Wine project.
Technical impact
Mono enabled .NET applications to run on Linux and macOS before .NET Core existed.
The Unity game engine adopted Mono as its scripting runtime, providing cross‑platform C# execution for games.
The CLI specification remains an open standard; any implementation can interoperate with .NET runtimes.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
dbaplus Community
Enterprise-level professional community for Database, BigData, and AIOps. Daily original articles, weekly online tech talks, monthly offline salons, and quarterly XCOPS&DAMS conferences—delivered by industry experts.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
