Если говорить кратко, то под линукс есть две основные реализации CLR и BCL: Mono и .NET Core.
С Mono все понятно, сторонняя реализация возглавляемая Мигелем де Икаса (один из основателей GNOME). Mono уже переболела свои детские болезни, и очень даже хорошо справляется со своей задачей. Более того, с открытием исходников .NET, разработчики постепенно заменяют свой код для большей совместимости с MS-реализацией.
Но не так давно Microsoft объявила о разработке своей собственной реализации под названием .NET Core. Грубо говоря это привычный нам CLR (CoreCLR) и урезанная BCL (CoreFx), но не требующая установки и с открытым исходным кодом. И самое главное - кроссплатформенность. Официально портируется на Linux и Mac OS X, но разработчики с радостью принимают пулл-реквесты, так что силами сторонних разработчиков постепенно делается поддержка Free BSD.
Параллельно с этим ведется разработка ASP.NET 5 и EF7, которые будут работать и на .NET Core. Так что да, в скором времени ASP.NET и консольные приложения будут хорошо себя чувствовать и на Linux, и на других ОС.
Более того, совсем недавно Microsoft объявила о начале работы над LLILC - компилятор IL -> IR, что позволит для работы .NET приложений использовать LLVM вместо CLR. Что это даст? Больше поддерживаемых платформ, .NET приложения смогут работать на всех архитектурах, поддерживаемых LLVM.
Хотите узнать как обстоят дела? Следите за гитхабом:
.NET Core и
ASP.NET. Оба проекта принимают пулл-реквесты, так что вы всегда можете помочь проектам.