Jak už padlo v diskusi, mimo Windows se dá C# a .NET používat pomocí projektů Mono a Xamarin. Dohromady to pokrývá OS X, iOS, Android, FreeBSD, Solaris a Linux.
Mono je relativně kompletní implementace. Podpora WinForms dost špatná, úplně chybí Windows Presentation Foundation, Windows Communication Foundation a Windows Workflow Foundation, plus sem tam něco v různých dalších třídách. Jinými slovy GUI aplikace psané v C# pro Windows pod Mono nejspíš nespustíte. Můžete ale napsat separátní GUI, na OS X pomocí MonoMac, na Linuxu pomocí QtSharp nebo Gtk#. Serverové aplikace na tom budou většinou lépe.
Xamarin je verze Mono projektu pro smartphony. Pomocí Xamarin.Forms můžete použít to samé GUI pro všechny platformy; bez Xamarin.Forms můžete používat binding na nativní GUI framework dané platformy (tj. máte subprojekty pro Windows Phone, iOS a Android), mezi platformami sdílíte jen ne-GUI kód. Nevýhodou je trochu delší čas natahování aplikace ve srovnání s těmi nativními.