01 сентября, 2007

Учитесь плавать, или На острове Mono

Небольшой экскурс для начинающих разработчиков. Из чего же состоит Mono? Давайте посмотрим, что в коробке.
Вы дожны знать как использовать программы коммандной строки для Mono программирования, в частности msc (Mono C# компилятор) и mono (виртуальная машина Mono, или интерпретатор байткода)

mcs

mcs это СиШарп'овский Mono компилятор. mcs может не только компилировать, но и внедрять ресурсы, а также связывать отдельные файлы проекта.

Для практического примера скомпилируйте следующий исходный код:

public class HelloWorld {
public static void Main (string [] args) {
System.Console.WriteLine ("Hello, Tuxedo Live");
}
}


Делается это просто:

~$ mcs Hello.cs

В итоге получиться байткод файл Hello.exe. Да, как уже говорилось раньше, программы компилятся не в конечный исполняемый файл, а именно в промежуточный байткод Common Intermediate Language (CIL).

mono

Комманда mono исполняет скомпиленую программу виртуальной машиной. mono использует JIT компилятор для перевода CIL байткода в машинный язык перед его исполнением.
Hello.exe может быть исполнен так:
~$ mono Hello.exe

monop

Эта команда очень полезна, если Вам необходимо быстро проверить какой вид имеют классы и методы
Можно сделать это так:
~$ monop System.Byte

monodoc

Как можно было уже догадаться, это документация по всем программным интерфейсам (API) Mono.

gacutil

Для установки библиотек в Linux мы используем место /usr/lib, в виндозе - C:\Windows.
gacutil призвана управлять содержимым GAC (Global Assembly Cache). Системные сборки сохраняются именно в глобальный кэш.
Листинг всех сборок можно получить коммандой
~$ gacutil -l

P.S. Для тех, кто переходит с Java на C# рекомендую заглянуть сюда:
Сравнение C Sharp и Java - Википедия

P.S.S. Интересно как будут складываться дела Sun Microsystems после открытия исходного кода jvm. Опять же holy wars: .NET vs Java. Вопрос времени или силы хватки монстров IT?

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

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

Переношу обсуждение про "Печатать эту статью" сюда, если ты не против. Я имел в виду совсем другое :-)

На блоге есть куча элементов, которые на печати не желательны. Идея была в том, чтобы применить особый "стиль" - для печати, без всех этих рюшечек. Жмёшь на "печатать эту статью" и получаешь текст на белом фоне без оформления блога. Как на многих ресурсах сделано... Вот что имелось в виду.

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

2virens:
Я понял твою мысль, но пока что не охотно горю желанием это проделать. Как только найду решение сразу сообщю ;)