Featured image of post Evolution of MAUI From Mono to Xamarin to MAUI

Evolution of MAUI From Mono to Xamarin to MAUI

How we went from Mono to Xamarin to MAUI

Ah, MAUI. The grand unification theory of .NET UI development.

How did we get here?……

πŸŒ… The Dawn of Time: Mono (2004)

πŸ’‘ What Was Mono?

Before .NET was truly cross-platform, Microsoft kept .NET development firmly locked inside Windows.

That didn’t sit well with Miguel de Icaza, an open-source warrior (weenie?) who thought, “Hey, what if .NET could run on Linux and macOS?”

And thus, Mono was bornβ€”a project aimed at making .NET applications work everywhere.

  • Who made it? Miguel de Icaza and the Mono team at Ximian (later Novell, later Xamarin, later Microsoft).

  • Why did it exist? Because cross-platform .NET wasn’t a thing yet.

  • What could you build? Console apps, desktop apps (with GTK#), and later, mobile apps.

πŸ› οΈ Mono Code Sample

1
2
3
4
5
6
7
8
9
using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("Hello from Mono!");
    }
}

Run this on Linux, and boom! Cross-platform C# in 2004. Revolutionary!

It might not seem exciting now.. but back then Cross- Platform was tricky and complicated… much more than now…


πŸŽ‡ The Silverlight & Moonlight Saga (2007–2012)

πŸ’‘ What Was Silverlight?

Microsoft, in a bid to take on Adobe Flash (yeah, remember Flash?), created Silverlightβ€”a browser plugin for rich web apps using .NET and XAML.

It was like WPF but… Ran in a browser! (great idea? or insane? you decide.. :) ).

  • Who made it? Microsoft.

  • Why did it exist? To compete with Flash. Spoiler: It lost.

  • What could you build? Interactive web apps with .NET.

NOTE: The code basially ran as an AxctiveX plugin… Once ActiveX lost favor due to security issues with compiled code running on a browser… Silverlight kind of died with it..

πŸ’‘ What Was Moonlight?

Since Silverlight was Windows-only, the Mono team created Moonlight, a Linux-compatible version. It almost worked!

  • Who made it? Mono/Ximian team.

  • Why did it exist? Because Linux users also wanted fancy web apps.

  • What happened? Microsoft lost interest in Silverlight, and Moonlight died with it.

πŸŒ‘ Silverlight/Moonlight Code Sample

1
2
3
4
5
6
7
<UserControl x:Class="SilverlightApp.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid>
        <TextBlock Text="Hello, Silverlight!" />
    </Grid>
</UserControl>

Silverlight was actually pretty cool, but then HTML5 happened, and Microsoft pulled the plug. RIP Silverlight (2007–2012).


πŸ“± The Rise of Xamarin (2011–2020)

πŸ’‘ What Was Xamarin?

After Silverlight’s fall, the Mono team pivoted to mobile development. Enter Xamarin, which allowed developers to build native iOS and Android apps using C#.

  • Who made it? The Mono team, now called Xamarin.

  • Why did it exist? Because writing the same app three times (Objective-C, Java, and C#) was torture.

  • What could you build? iOS, Android, and later UWP apps.

πŸ› οΈ Xamarin Code Sample

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
using Xamarin.Forms;

public class App : Application
{
    public App()
    {
        MainPage = new ContentPage
        {
            Content = new Label
            {
                Text = "Hello, Xamarin!",
                VerticalOptions = LayoutOptions.Center,
                HorizontalOptions = LayoutOptions.Center,
            }
        };
    }
}

Fun fact: Xamarin.Forms was originally a separate thing, but people liked it enough that Microsoft turned it into MAUI.


πŸ”₯ Enter .NET MAUI (2021–Present)

πŸ’‘ What Is MAUI?

Microsoft, tired of juggling WPF, UWP, Xamarin, and whatever Silverlight was, decided to merge everything into one framework: .NET MAUI (Multi-platform App UI).

  • Who made it? Microsoft.

  • Why does it exist? To unify Xamarin and .NET UI development under one framework.

  • What can you build? iOS, Android, macOS, Windows, and Blazor hybrid apps.

!!!!!!!!!!!!!!!!

πŸ› οΈ .NET MAUI Code Sample

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
using Microsoft.Maui.Controls;

public class App : Application
{
    public App()
    {
        MainPage = new ContentPage
        {
            Content = new Label
            {
                Text = "Hello, .NET MAUI!",
                VerticalOptions = LayoutOptions.Center,
                HorizontalOptions = LayoutOptions.Center,
            }
        };
    }
}

πŸ“Š Evolution Table: Mono β†’ Xamarin β†’ MAUI

EraTechnologySupported PlatformsKey FeatureWhat Happened?
2004MonoLinux, macOS, WindowsFirst cross-platform .NETKept .NET alive outside Windows
2007SilverlightWindows, Web (via plugin)Rich web appsKilled by HTML5
2008MoonlightLinux (Silverlight alternative)Open-source SilverlightMicrosoft lost interest
2011XamariniOS, AndroidNative mobile apps with C#Acquired by Microsoft in 2016
2021.NET MAUIiOS, Android, macOS, WindowsUnified UI framework in .NET 6+The ultimate evolution