Если Вы считаете, что .NET платформа ориентирована только на запуск Windows-приложений, то Вы ошибаетесь.
Самое время познакомиться с Mono Project.
Mono - это кросс-платформенная Open Source (произносится "оупен сорс") реализация .NET платформы, которая включает в себя библиотеки и инструменты для разработки программных продуктов (ПП).
В Mono возможно использовать сторонние языки программирования: Nemerle, Java(IKVM), JavaScript, C, COBOL, Python, Eiffel, Perl, PHP, но основной язык Mono - С# (произносится "си шарп"); C# основан на языках C++ и Java.
Как и в Java, среда Mono содержит компилятор, вируальную машину и классы программных интерфейсов. Программа комрилируется в промежуточный байт-код, известный как CIL (Common Intermediate Language), независимый от конкретного процессора, затем запускается виртуальной машиной, just-in-time compilier (JIT).
Как и во многих культурах разработки ПП, Mono имеет свой набор инструментов:
- NAnt для .NET сравним как Make для GCC, или Ant для Java.
- Autotools: GNU Automake и Autoconf могут быть использованы в Mono в дополнении pkg-config
- MonoDevelop - IDE (среда разработки), сравнима с известными Windows-основанными SharpDevelop IDE, Microsoft Visual C#
Mono поддерживает все популярные платформы: x86, x86-64, SPARC, ARM, MIPS, s390, PowerPC, Alpha.
В Linux интегрировано множество библиотек:
GTK#, с помощью которой можно создавать пользовательские интерфейсы для среды Gnome. Графический интерфейс GTK# сохраняется в XML файл;
Boo, Python-подобный .NET язык программирования, для написания сценариев, которые в последующем возможно встраивать в другие приложения;
Cairo, векторный рендеринг графического интерфейса для GNOME;
Java, GStreamer, Avahi, Evolution, Cecil, D-Bus, HAL, GLib#, Gecko#, atk#, XML, rSVG#, Mono.Http, Mono.Security, Mono.Posix, OpenSystem.C
Все библиотеки устанавливаются в GAC, global assembly cache (рус. "глобальный кэш сборки"). Для установки библиотек в Linux мы используем место /usr/lib, или /usr/local/lib, в виндозе - C:\Windows.
Также можно выделить что платформа Mono умеет обрабатывать XML на основе Relax NG
Советую очень дельную книжецу O'Reilly - Mono: A Developer's Notebook (By Niel M. Bornstein, Edd Dumbill). Здесь нет UML диаграмм, блок-схем и деревьев наследования, долгих объяснений и лекций. Эта книга нацелена в первую очередь на разработчиков, которые хотят быстро освоить Mono.
Установка инструментов Mono, MonoDevelop в Debian GNU/Linux
Вообще более менее стабильные версии пакетов уже включены в основной дистрибутив, но для тех кто хочет иметь последние версии в разработке, нестабильной ветки sid, могут подключить репозиторий Mono проекта. Делается это так:
Редактируем sources.list
~# nano /etc/apt/sources.list
добавляем туда строку
deb http://debian.meebey.net/ ./
Обновляем, после чего можем качать пакеты ;)