LINUX.ORG.RU

mono vs .NET Core vs оригинальный .NET Framework

 ,


0

4

Не люблю C#, как и остальных «наследников» С++ (исключение — Go). Но так уж получилось, что в университете есть курс на C# и от этого никуда не деться. Писать буду под линуксом, поэтому понятное дело выбираю между mono и .NET Core, но также интересны их отличия от оригинального поделия майкрософт. Прошу описать их различия и подсказать что же лучше выбрать (может быть вообще лучше накатить Visual Studio на виртуалку с виндой?).

*голос из криокамеры* А этот самый .NET Core/Roslyn юзабельны под онтопиком сейчас?

А вообще — зря ты так. C#, как язык, очень даже вкусный. Особенно если сравнивать с жабкой. Мне только не нравится их PascalNamingConvention.

KennyMinigun ★★★★★
()

Про IDE мысль такая: есть же их VS Code для Linux и там можно запускать/отлаживать Mono.

I-Love-Microsoft ★★★★★
()

Смотря что требовать будут. Если какой-то ознакомительный курс по C# то это скорее всего хеллоуворлд и формочки. Тут от преподавателя зависит, я без проблем сдавал на mono + gtk#.

xcariba ★★
()
Ответ на: комментарий от xcariba

С большой вероятностью gtk не прокатит, препод просто не поймет что это за хрень, а мало кто из них любит выглядеть дураком. Говорю уверенно, ибо близок к этой среде. В общем надо договариваться с преподом сразу же, а не ставить перед фактом.

bread
()

может быть вообще лучше накатить Visual Studio на виртуалку с виндой?

Да, именно так. Либо дуалбут.

bread
()

бери .net core. Оно как раз релизнулось. mono ближайшее время скорее всего протухнет, поскольку xamarin который его пилил - теперь ms.

А так C# язык получше многих.

Виртуалка с виндой - как fallback вариант, если препод не осилит.

Dark_SavanT ★★★★★
()
Последнее исправление: Dark_SavanT (всего исправлений: 1)
Ответ на: комментарий от I-Love-Microsoft

как-то уныло для «получше многих» как платформа

Платформа довольно говеная, по многим причинам. А именно язык очень даже хороший.

KennyMinigun ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Формочки-окошки если нужны, то либо берёшь gtk#, хипстерский electron либо что там ещё.

Ну и заметь я говорил про язык, а не про платформу. Платформа тащем тоже вполне интересна.

Dark_SavanT ★★★★★
()

.NET Core

Обычный .NET Framework микрософт потихоньку уже выпиливает (UWP уже на CoreCLR работают). VSCode тебе отлично зайдет. Все есть, что нужно. В том числе и дебаг, и автокомплит. Единственная проблема на данный момент это отсутствие кроссплатформенного GUI, вроде GTK#. Если нужен GUI, то бери Mono, если хочешь кодить под люнекс.

Unicode4all ★★★★★
()
Последнее исправление: Unicode4all (всего исправлений: 1)

Кстати, из IDE можешь попробовать Rider от JetBrains. Ну и MonoDevelop, само собой.

zamazan4ik ★★
()

Под .NET Core нет стандартизированного GUI тулкита. Кроме этого он вполне юзабельный, есть менеджмент зависимостей, хотя в текущей версии не дотягивает до composer/npm. Но в бете SDK для VS RC 2017 уже нормально. Короче, если твой кейс - лабораторные работы без графического интерфейса, то кор тебе в самый раз, там есть всё. В крайнем случае можешь использовать electron в качестве фронтенда для графического интерфейса. Моно - легаси.

k3rn3l
()

Скорее всего придется ставить виртуалку(а лучше дуалбут) т.к все эти курсы рано или поздно потребуют гуйню. Причем не факт что WPF.

ritsufag ★★★★★
()
Ответ на: комментарий от k3rn3l

Короче, если твой кейс - лабораторные работы без графического интерфейса, то кор тебе в самый раз, там есть всё

А с F# можно работать? OpenGL.Net?

tailgunner ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Тут лучше спрашивай тех кто это пилит. Я волей судьбы много лет назад из одинэсника и шарпоюзера в эмбедщики-линуксоиды переквалифицировался.

Dark_SavanT ★★★★★
()

Согласен с тем что C# существенно лучше Java и C++, но в то же время считаю что он не далеко от них ушёл. Всё также нет замыканий и функций высшего порядка, даже больше: функций не-методов вообще нет (как в Java), всё тот же перегруженный С++-подобный синтаксис, всё те же всевозможные излишества вроде перегрузки методов и операторов, всё та же кривая работа с ООП (здравствуй static public void). Как платформа .NET для меня, как говорил Пол Грэм, «подозрительно пахнет» (Microsoft как-никак). Не встречал ещё ни одного интерпрайзного языка, который был бы нормальным и который бы не пропихивали силой в индустрию.

Но это не важно. Спасибо всем за помощь.

zoroaster
() автор топика

Если кому интересно, препод казал что гуйки понадобятся и что их можно будет рисовать на чём угодно.

zoroaster
() автор топика

исключение — Go

ботнет который сам себя скачивает из гитхаба?найс рофлиш

выбирай моно,и monodevelop-полностью совместимое с микрософт фреймворком уже не первый год

висуал студиа генерирует одинаковый код с моно,конечно если тебе не нужен супер-удобный ГЙ студии(в каком месте правда он супер удобный мне никто так и не объяснил)

можешь хоть в текстовом редакторе код набирать и скармливать компилятору mono под линуксом

lwx51033
()
Ответ на: комментарий от zoroaster

Тогда тебе подойдет Mono c GTK# (Можно конечно WinForms, но они убоги даже на виндовсе), т.к. гуя на .NET Core еще не завезли, а GTK# портировать на CoreCLR не спешат. В качестве IDE - MonoDevelop.

Unicode4all ★★★★★
()
Ответ на: комментарий от zoroaster

C# хуже тем что он исполняется на VM которую пилит микрософт, а это само по себе зашквар. С явы ты всегд можешь соскочить в scala/clojure. А с c# только в ад...

Int0l ★★
()
Ответ на: комментарий от I-Love-Microsoft

а что для формочек-окошек?

Забудь о них. Навсегда

vertexua ★★★★★
()

По поводу гуёв. Есть такой проект https://github.com/mono/xwt. Сам не использовал, так что ничего сказать не могу. Авторы обещают кроссплатформенность. В качестве бэкендов:

Windows+WPF: Xwt.dll + Xwt.WPF.dll (requires WPF)
Windows+Gtk: Xwt.dll + Xwt.Gtk.dll (requires Gtk#)
Linux+Gtk: Xwt.dll + Xwt.Gtk.dll (requires Gtk#)
Mac+Gtk: Xwt.dll + Xwt.Gtk.dll (requires Gtk#)
Mac+Cocoa: Xwt.dll + Xwt.Mac.dll (requires MonoMac.dll)

ox55ff ★★★★★
()
Ответ на: комментарий от zoroaster

В таком случае зачем создавать себе трудности, а не просто поставить винду в дуалбут и по-легкому все делать?

whoami
()
Ответ на: комментарий от menangen

Да-да, чтобы окончательно добить препода, делать лабы вместо до-диеза на ди. Можно проще: написать фломастером на лбу «Я НЕ ТАКОЙ КАК ВСЕ!» и так ходить на пары.

anonymous
()
Ответ на: комментарий от I-Love-Microsoft

Что странно? Из-за дотнета и не взлетел. А линуксоиды слишком консервативны, до сих пор пишут гуйню на C89, о чем тут говорить.

anonymous
()
Ответ на: комментарий от bread

В общем надо договариваться с преподом сразу же, а не ставить перед фактом.

Плюсую, надо сразу же заранее в максимально корректной форме предложить «А что если я это сделаю на линуксовой версии, тем более у микрософта она есть». Думаю, если преподаватель адекват, ему это самому будет интересно.

hobbit ★★★★★
()
Ответ на: комментарий от tailgunner

Не знаю, не интересовался наличием компилятора для F#. Про Open GL тоже не в курсе.

k3rn3l
()

Какой из тебя программист, если ты неправильно выбираешь инструменты? Windows + Visual Studio без вопросов. В универе 100% будет привязка к Windows специфичным фичам, вроде COM технологии.

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

Плюсую. Это не тот случай, когда нужно выделываться с линуксом. Вот будет курс по сишке, там и конпеляй своей гццой.

anonymous
()

В дотнеткоре нет гуи. В моно работает толькл винформс и гткшарп. Полноценных средств разработки нет (пока, на подходе проджет райдер от жетбреинс). В целом от моно планируют избавиться, но оно все еще живет на ксамарине. А вообще, шарп достаточно передовой язык который задает тренд другим языкам и нельзя с ним не считаться. В принципе, жава тоже когда-то такой была.

nikolnik ★★★
()
Ответ на: комментарий от peregrine

ой, да небось там сисярп вместо турбо-паскаля используют, куда там ком-блином )))

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от nikolnik

В моно работает только винформс и гткшарп.

В моно глючит только винформс и гткшарп.Все остальное не работает.

Чемодан. Вокзал. Нормальные конторы, использующие Java. Да.

EnterpriseMobility
()
Ответ на: комментарий от zoroaster

C# существенно лучше Java и C++

C++ сейчас почти не пересекается в области применения с Java/C#. Почти всегда можно однозначно сказать, использовать C++ или Java/C#. Язык в отрыве от платформы это просто пдф со спецификациями.

функций высшего порядка

В C# есть функции высшего порядка. Не особенно изящно, но есть.

Плюс есть delegate методы.

Просто не особо надо.

нет замыканий

См. выше.

А если хочется всего и сразу, и красиво, есть Scala.

функций не-методов вообще нет

Зачем оно надо? Хоть одно преимущество?

всё та же кривая работа с ООП

Где не кривая? В Go, где ООП заканчивается на отсутствии дженериков?

Пол Грэм

Не стоит принимать позицию человека, который писал книги о LISP, как безальтернативно верную.

Не встречал ещё ни одного интерпрайзного языка, который был бы нормальным

Подумай, какой язык нужен интерпрайзу, когда над дорогими проектами работает огромное количество человек, и тебе станет понятно, почему Java и C# такие, как они есть.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.