to post messages and comments.

Новый mono5 вышел
Странно, но теперь есть поддержка винды.
Прикольно, что в их what's new есть список людей, которые трудились на благо. Там даже молодец @nagg есть, только он там записан как Егор почему то. Молодцы! теперь всякие там unity3D будут работать еще лучше!

Monodevelop ужасен. Ни файл переименовать, ни автокомплит толком выдать, ни код средней величины распарсить. Через раз сбои при попытке посмотреть кишки подключенной сборки. Еще бы набрать несколько гигабайт веса — и можно смело продаваться MS.

Кажется, много раз уже об этом говорил, но mono стоит рассматривать только как технологию, похожую на .NET. Так сказать, "по мотивам". Иначе однажды выяснится, что код ведёт себя следующим образом: на винде в .NET и в mono не падает, если на линуксовом сервере с помощью mono запускать сбилженые VS dll-ки — тоже, а вот если билдить там — таки вылетает без какого-либо осмысленного стектрейса даже в дебаг-билде. Поэтому нужно или везде юзать моно, или покупать виндовый сервак и запускать в родной CLR там. Или оставить mono для Unity-клиента, а на сервере не выёживаться и взять Java. Только на этой стадии это уже невозможно

Твой сосед под утро выделяет мумиё
Головастик ктулху, он проснулся и поёт
Семена ботвы на кальсонах педагогов
Скоро ты поймёшь меня, подожди ещё немного

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

Охуеть! О-ху-еть! Работает! Не прошло и двух дней в соитии с кривыми библиотеками и сраным ксамарином, как все заработало.

P.S. Есличо, то AlchemyWebSockets какое-то говно, а SuperWebSockets чото не работает на моно. XSockets — заебись.

что то я туплю с этим C#
есть ConnectionStateEventArgs<-CCTEventArgs<-EventArgs имеет свойство Address<-IAddress. Address имеет свойство RelatedTerminals<-ITerminal[]
делаю connectionStateEventArgs.Address.RelatedTerminals[0] as IAgentTerminal и получаю доступ к совсем другому классу ._.
вопрос: как?

Хорошо с cpp, когда у тебя есть одна стандартная библиотека(если не рассматривать глюкавый код, который разные компиляторы поймут по-своему). Хорошо с джавой, которая вообще одна и почти всюду официально есть(IcedTea не в счёт). А вот с C#, когда в visual studio все юнит-тесты проходят, а в mono начинают падать на ровном месте после перебилда, совершенно непонятно, кто виноват и что делать

А вот чем мотивируется любовь производителей всякой эмбидщины к тому, чтобы ффигачить ASP.NET веб-морду в девайс? Там есть какие-то формальные плюсы, или они там все просто упоролись?

с какого-то перепою в mono-2.0.10 не идёт Microsoft.Build.dll. A она нужна для NuGET. А без него некоторые вещи не дают, так и говорят — пользуйте package manager. А эти вещи мне нужны.
в то время как в исходникаэ эта либа есть. чзх?

Аксиома раз: нет JIT, только AOT. (Платформа виновата)
Аксиома два: нельзя использовать Emit (Джобс пидарас).

Как бы мне в рантайме заинжектить код во все методы? Так, что бы можно было например при вызове любого метода вывести в консоль "Метод METHOD_NAME вызван".

P.S. Ответы, противоречащие первым двум аксиомам так же принимаются.

Заранее спасибо.

P.P.S.
Как это сделать после компиляции я знаю (всякие Mono.Cecil и проч.), проблема в том, что мы не можем пока вклиниться в цикл сборки — Xamarin ХУЕВО генерирует мейк-файлы(не получается через них собирать), а вклиниться в нужный момент сборки в IDE нельзя — там либо prebuild, либо postbuild.

Мда. Я думал это амазон такой дорогой, а оказалось, что это софтина для синхронизации tomboy-заметок "Rainy" той (старой) версии, что я ставил наела за месяц аж 145 часов процессорного времени (это, на секундочку, $15!). Короче пойду обновлю её, что ли.

только что попробовал — приложение скомпилированное под mono без проблем запускается на домашнем компе с виндой.
при чем в прилоджении работает и многопоточность, и dynamic.
мну остался рад mono.

вот только в mono develop не запускается дебагер (

совсем немного ковырял mono на федоре
— mono framework ни в какое сравнение не идет с оригинальным .net
— пользоваться IDE можно; немного похож на SharpDevelop
пока не понял, как писать unit тесты, но радует, что есть привычный NUnit

https://github.com/mono/sysdrawing-coregraphics/blob/578a9869133e440e162b57611b40efe54b1b08b6/System.Drawing/Image.cs
Строки 61-62, 86-88 -- какое-то очень сильное колдунство.
public int Height {
			get {
				var b = this as Bitmap;
61				return b == null ? 0 : b.NativeCGImage.Height;
62				return 0;
			}
		}

public int Width {
			get {
				var b = this as Bitmap;
86				return b == null ? 0 : b.NativeCGImage.Width;
87
88				return 0;
			}
		}

А откуда пошло такое мнение, что WPF на Mono не портируют потому, что там используется много платформозависимых фич?

В Windows.Forms таких фич гораздо больше, но таки их портировали.

WPF — кроссплатформенный фреймворк, но он огромен и очень сложен. Кому кроме MS по силам разработать аналог, или хотя бы просто портировать его?

WPF не портируют по той причине, что это гигантский и очень сложный проект. Реально дико сложный. И он создан усилиями огромной команды высокооплачиваемых профессионалов. Группе энтузиастов такое просто не повторить. Ну то есть, тупо такой расклад:
Возьмем людей из опенсорса, которым интересно Mono. Возьмем из них тех, кто разбирается в GUI-фреймворках(в том числе знаком с эзотерическими подходами к GUI, типа реактивности), двумерной и трехмерной векторной графике, обработке видео, электронной, и не только, электронной типографике, accessibility и другом. Теперь возьмем из всех них тех, кому за все это дело проект Mono готов платить. Сколько народу получилось? Вот-вот.

И вот это единственная причина, а никакая не завязанность на WinAPI, никакие не козни Microsoft(MS, кстати, наоборот, даже помогает разработчикам Mono), и не что-либо еще.

Ололо! Nemerler не бутстрапится под mono: рантайм шмякается при попытке синстанцировать какой-то извратный аттрибут. Непорядок, будем чинить. Граждане, у кого есть годная книжка по потрохам дотнетов? Рихтер есть, но нет ли чего-то посвежее (по .нет 4.0 в идеале)?

Захотелось сделать парсер протокола, да так, чтобы описывать процесс последовательно, а унутре оно коль кончились данные, само сворачивало процесс парсинга и шедулилу на момент получения новой порции данных. Посидел. Подумал. Понял что хочу монаду. Написал. Глянул как выглядит монадический код без do-сахара. Вздохнул. Отложил до лучших времен.

Подскажите декомпилятор для .NET/Mono, крайне желательно, что бы мог запускаться в Linux. Накопал dotPeek и ILSpy, но при запуске одинаково ругаются: The entry point method could not be loaded

а под wine отказывается ставится .NET Framework 4.0, который им нужен

PS mono 2.10.2
PPS MS посмела .NET назвать кросплатформенным!?