24 августа, 2007

Mono - свободная реализация .NET

Если Вы считаете, что .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 имеет свой набор инструментов:
  1. NAnt для .NET сравним как Make для GCC, или Ant для Java.
  2. Autotools: GNU Automake и Autoconf могут быть использованы в Mono в дополнении pkg-config
  3. 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/ ./

Обновляем, после чего можем качать пакеты ;)

2 комментария:

virens комментирует...

Всё здорово, но контекстная реклама зажигает... :-) Блог о Линукс, а в рекламе "Программы от Microsoft. Широкий выбор...." Жестоко :-)

В остальном здорово. Только feedburner почему-то кажет 0 читателей. И ещё: посты удобно выводить на главной странице частично, для чего можно прикрутить fullpost-хак.

va1e комментирует...

virens пишет:
Всё здорово, но контекстная реклама зажигает... :-) Блог о Линукс, а в рекламе "Программы от Microsoft. Широкий выбор...." Жестоко :-)
В посте фигурируют слова Microsoft и .NET, а так как большая часть рекламы скуплена ими -> их и показывают в адВордсе
В остальном здорово. Только feedburner почему-то кажет 0 читателей.
Подписался на сервис FeedBurner только сегодня ночью, сейчас же 3 подписчика, и это радует =)
И ещё: посты удобно выводить на главной странице частично, для чего можно прикрутить fullpost-хак.
Надеюсь ещё повозиться с шаблоном в ближайшем будущем.