Qual é a diferença entre xamarin e mono?

Mono é uma implementação alternativa da linguagem C #, uma abordagem para executar um .NET independente de plataforma. Está lentamente convergindo para o .NET core, outra abordagem independente de plataforma da própria Microsoft.

Xamarin é a empresa que desenvolve o Mono. Foi comprado recentemente pela Microsoft, mas continua seu desenvolvimento. Além do mono, eles também têm o Xamarin.Forms, uma estrutura móvel multiplataforma, que permite usar cerca de 90% do mesmo código para ambas as plataformas, mas ainda parece e parece nativa. Eles também têm invólucros diretos nas APIs do iOS e Android, para que você possa escrever um código móvel totalmente nativo em C #.

Mono é uma implementação de código aberto da estrutura .net. O Mono começou no início de 2001 e foi liderado por Miguel de icaza. Ele cresceu no conjunto de recursos, mas não obteve muito sucesso no mercado por si só.

Xamarin é uma empresa. Xamarin começou como um pequeno grupo dentro da Novell. O produto deles foi uma implementação de mono para o iPhone chamado monotouch. Ao longo de vários anos, este produto cresceu. Um produto irmão para Android foi criado. Para encurtar a história, a Xamarin é uma empresa que pegou os ativos de monotouch e mono para android e começou a se basear neles, os nomes foram alterados, a Microsoft os comprou e os produtos agora florescem. Seus produtos atuais são Xamarin.ios, xamarin.android, Xamarin.max, xamarin forms, uma grande nuvem de testes e algumas outras coisas que não me lembro.

Bottom line, mono é uma estrutura. Xamarin é uma empresa.