Подтвердить что ты не робот

Зачем использовать Mono?

Каковы основные преимущества использования Mono над Java (или любого другого "свободного" или Linux-совместимого языка/времени выполнения)?

Моно всегда будет отставать от последних разработок в платформе .NET, почему вы хотите использовать Mono над другим традиционным языком/фреймворком с открытым исходным кодом (Java)?

EDIT: Как и кто-то, упомянутый ниже, я полагаю, что главный вопрос: зачем вы хотите использовать .NET на платформе Linux?

4b9b3361

Ответ 1

Ответ довольно очевиден: потому что вы хотите использовать .Net в Linux.

Это, конечно, задает вопрос (на мой взгляд, это то, что вы получаете): зачем вы хотите использовать .Net в Linux (через Java)?

Множество причин:

  • Общий код между вашим сервером и, скажем, WPF или Winforms app;
  • Использование определенного .Net-языка, такого как F #;
  • Языковые функции, которые не входят в Java (закрытие, перегрузка операторов, частичные классы, генераторы среды выполнения, индексы, делегаты, LINQ, типы var и т.д. и т.д.);
  • Ваши навыки или навыки вашей команды уже находятся на С#;
  • и др.

Ответ 2

Лично я больше доверяю платформе Linux как серверу, но хочу использовать С# в качестве языка программы.

Ответ 4

Некоторые люди любят С# лучше, чем Java. Кроме того, считайте, что С# является стандартным языком ISO, а Java - нет. Может быть, вы хотите запустить код ASP.NET на сервере Linux? На самом деле есть много причин.

Ответ 5

Я думаю, что это сводится к личным предпочтениям. Мне нравится С#, и я хочу разрабатывать приложения, которые я могу запускать на своем ноутбуке Ubuntu или ноутбуке Vista. Поэтому я использую моно. Если бы я был более комфортно с Java, то, вероятно, я бы использовал.

Только мои 2 цента.

Ответ 6

Я работал в компании, чей основной продукт был написан в ASP.NET. Они поняли, что они могут увеличить свою долю на рынке, если они смогут сделать свой продукт на серверах Linux. Конечно, это было бы довольно сложно, если бы не Моно. Мне было поручено потратить некоторое время на то, сколько (если они есть) их кода будут работать под Mono. Это было бы около 2 лет назад - большая часть из них была скомпилирована, но поддержка Mono для дженериков в то время оставалась немного желаемой. Я думаю, что он созрел с тех пор, но некоторые из кода даже не разобрались. Код также использовал p/invoke для вызова собственного кода, что сделало вещи немного интересными. Конечно, было весело, пытаясь заставить его работать.

Ответ 7

Так как Microsoft представляет изменения в стандарте С# ISO, прежде чем они их создают, теоретически Mono НЕ НУЖНО отслеживать .NET. В действительности, большой старый бюджет MS доходит до финиша сначала.

Ответ 8

Как все говорят, "запустить С# в Linux" или "быть кросс-платформенным" или что-то еще.

Причина, по которой меня интересует Mono - и я еще не был уверен в ее прикосновении, - это возможность воспользоваться всеми вещами, которые .NET может предложить, что Java не делает. В основном ваш вопрос сводится к сопоставлению Java и .Net, и я не собираюсь запускать миллион точек сравнения между ними (в Google вы найдете множество сравнений J2EE и ASP.NET, которая является одной частью, а Java против С#, которая является другой).

Но какова большая разница между .Net и Java? Это связано с монолитной силой .Net(Microsoft и Novell пытается перевести это на другие платформы) или на многопроцессорный подход Java. Просто для выбора сервера приложений может быть достаточно, чтобы некоторые люди выбирали Mono.

Что делает один большой монолитный поставщик, такой как Microsoft, дает вам, что Java, похоже, не имеет:

  • Централизованная документация (была "Удивительно хорошая документация, все в одном месте", но несколько человек сказали мне, что я ошибаюсь).
  • Не нужно делать отдельные варианты платформы (например, ASP.NET или ASP.NET, а не сервлеты + JSP + JSTL? + Axis)
  • Другие вещи, которые я забываю

И тогда есть другие существенные различия: Java - это один язык, а Mono (я думаю) может запускать CLR-скомпилированный код с разных языков.

Ответ 9

Моно отстает от некоторых вещей, но впереди других. Например, Mono поддерживает SSE и полную компиляцию по времени - встроенный. С другой стороны... он собирается взять Mono когда-нибудь, чтобы реализовать все новые будущий материал в предстоящем выпуске .net... например... довольно обширные параллельные библиотеки.

Ответ 10

одним словом? Кросс-платформенная

Ответ 11

Любой, кто использует Mono, сталкивается с угрозой патентования программного обеспечения от Microsoft.

Вот почему не только Mono следует избегать для новых приложений, но и С# на первом месте.

Миграция в Mono имеет смысл только в том случае, если вы уже застряли в Windows и хотите сбежать.

Почему свободное программное обеспечение не должно зависеть от Mono или С#

Ответ 12

Почему никто не упомянул, что Linux свободен?

Ответ 13

Я использовал mono как кросс-компилятор, по сути. Я добавил некоторые строки "exec" в существующий файл сборки java/ ant для вызова mono в качестве компилятора, поэтому был выполнен один, полный процесс сборки командной строки.

Мне пришлось написать слой оболочки С# вокруг некоторого кода ПК, который должен был использовать наша база кода java-on-linux, но я не мог заставить себя запускать Visual Studio (на отдельном компьютере), чтобы сделать процесс выписки и сборки.