mono msi что это
Платформа Mono состоит из нескольких компонентов:
Mono Class Library – было создано множество классов с дополнительной функциональностью специально для Mono, которые выходят за рамки библиотеки базового класса, предоставляемой Microsoft.
Несмотря на предвзятое отношение разработчиков к платформе Mono, многие известные компании используют его. Например:
Так как кросс-платформенных генераторов не так уж и много, а действительно хороших, так вообще по пальцам посчитать можно, FastReports решила создать генератор отчетов для Mono. Тем более, что уже есть готовый популярный генератор отчетов FastReport.Net, на базе которого и был создан FastReport.Mono. Он появился в 2013 году, и на тот момент повторял функционал FastReport.Net. Однако сейчас, между ними есть различия. Что уж таить, FR.Net значительно продвинулся вперед. Тем не менее FastReport.Mono остается сильным конкурентом в своей нише. И лично я не знаю других генераторов отчетов под фреймворк Mono с таким богатым функционалом.
Что же предлагает FastReport.Mono?
Давайте рассмотрим детальнее. Итак, с FastReport.Mono можно работать в разных операционных системах. Ну конечно же, Mono кросс-платформенный фреймворк. Поэтому нам доступны системы: Windows, MacOs, семейство Linux.
Для работы с Mono, а соответственно и с FastReport.Mono подходят следующие среды разработки:
Microsoft Visual Studio (под Windows), MonoDevelop (Windows, MacOs, Linux) и Embarcadero Delphi Prism (Windows, MacOs, Linux).
Языки программирования, для работы с FR.Mono: C#, VB.Net, Oxygene (Embarcadero Delphi Prism).
Язык встроенного скрипта отчета: C#, VB.Net. Все также, как и в FastReport.Net.
Источники данных, доступные по умолчанию: XML, CSV. А для подключения к базам данных нужно использовать источник данных пользовательского приложения, или внешние коннекторы, устанавливаемые в систему.
Интересные особенности генератора отчетов:
Список возможных экспортов отчета достаточно большой:
Обратите внимание, последние элементы списка – Clouds – это по сути сохранение отчета в облачные сервисы.
В чем смысл Mono в Windows
12 ответов
Mono высоки модульно. Вы можете разбить его на мелкие кусочки и только развернуть ровно те части, которые вам нужны. Не нужна система.В XML? Ладно, все кончено.
Mono встраивается. Вы можете разместить его внутри приложения C/C++, чтобы позволить пользователям создавать сценарии из безопасной управляемой изолированной среды. Самый известный пример этого-mod_mono, который размещает Mono внутри Apache веб-сервер, и как ASP.NET реализуется в Mono, например. Эта функция отлично сочетается с упомянутой выше модульностью.
Это уже упоминалось: статическая связь. и идет вместе с modularization.
компилятор как Служба-это еще один. Андерс Хейльсберг уже давно говорит об этом!—3—>долго времени, и может быть, просто, возможно, он будет готов к C# 5.0. Ну, Mono уже есть он и на самом деле имел это в течение многих лет.
Mono.Simd, который дает безопасный и контролируемый доступ к инструкциям SIMD базового процессора (например, SSE на Intel или AltiVec на PowerPC). Использованный для игр и Графика.
64-битные индексы массива, которые разрешены спецификацией ECMA, но Mono-единственная виртуальная машина, которая фактически предоставляет их. Используется в суперкомпьютерах.
.Net does some things that mono doesn’t. в BCL есть несколько мест, которые еще не портированы для mono. Если вы хотите приложение, которое будет работать на mac / linux вы, вероятно, хотите сначала разработать для mono, даже если вы делаете работу в windows.
Если вы хотите разработать кросс-платформенное приложение на C#, то использование реализации Microsoft не самая умная вещь, так как нет полностью совместимой Альтернативы для других платформ.
таким образом, использование Mono в Windows для разработки приложений гарантирует, что у вас будет мало проблем с переносом его на другую ОС (при условии, что вы избегаете других ям, таких как P/Invoke).
почему поддержка Windows, когда вы можете запустить реальную вещь?
существуют различные причины:
поддержка Windows помогает нам идентифицировать портативные части Mono из непереносимых версий, помогая Mono стать более портативным в будущее.
Это помогает нам, так как мы можем изолировать проблемы в моногородах по разбиение проблемы (это проблема времени выполнения или проблема ОС?).
около половины участников Mono являются разработчиками Windows. У них есть много различных причин для внося вклад в усилия, и мы очень важно, чтобы эти разработчики запускают среду выполнения в Windows не заставляя их использовать новый операционная система.
Mono не сильно изменяет реестр windows, обновляет системные библиотеки DLL, установка DLL в Windows / System32 путь.
Это помогает Разработчики на базе Windows, чтобы проверить свой код под Mono перед развертыванием в Linux.
Mono, с другой стороны, автономно содержится в программных файлах и записывает только раздел реестра с его путем (который не требуется запускать).
Я думаю, что это глупо, но это то, что нам сказали несколько пользователей.
Это в основном там, как помощь в разработке моно приложений для моно конкретных библиотек. Также за помощь в продвижении дела, чтобы разработчики могли работать в своей естественной среде при разработке для Mono.
хотя это не представляет широкого интереса, есть несколько случаев, когда mono имеет улучшения по сравнению со стандартной средой выполнения Microsoft. Мигель выступил с докладом о некоторых из них в PDC в этом году:
Что такое MONO.EXE? Это безопасно или вирус? Как удалить или исправить это
Что такое MONO.EXE?
MONO.EXE это исполняемый файл, который является частью Сеть разработчиков Microsoft разработанный Microsoft, Версия программного обеспечения для Windows: 1.0.0.0 обычно 16043 в байтах, но у вас может отличаться версия.
MONO.EXE безопасен, или это вирус или вредоносная программа?
Первое, что поможет вам определить, является ли тот или иной файл законным процессом Windows или вирусом, это местоположение самого исполняемого файла. Например, для MONO.EXE его путь будет примерно таким: C: \ Program Files \ Microsoft \ Microsoft Developer Network \ MONO.EXE
Если статус процесса «Проверенная подписывающая сторона» указан как «Невозможно проверить», вам следует взглянуть на процесс. Не все хорошие процессы Windows имеют метку проверенной подписи, но ни один из плохих.
Наиболее важные факты о MONO.EXE:
Если у вас возникли какие-либо трудности с этим исполняемым файлом, вы должны определить, заслуживает ли он доверия, прежде чем удалять MONO.EXE. Для этого найдите этот процесс в диспетчере задач.
Найти его местоположение и сравнить размер и т. Д. С приведенными выше фактами
Если вы подозреваете, что можете быть заражены вирусом, вы должны немедленно попытаться это исправить. Чтобы удалить вирус MONO.EXE, необходимо скачайте и установите приложение полной безопасности, как это, Обратите внимание, что не все инструменты могут обнаружить все типы вредоносных программ, поэтому вам может потребоваться попробовать несколько вариантов, прежде чем вы добьетесь успеха.
Могу ли я удалить или удалить MONO.EXE?
Не следует удалять безопасный исполняемый файл без уважительной причины, так как это может повлиять на производительность любых связанных программ, использующих этот файл. Не забывайте регулярно обновлять программное обеспечение и программы, чтобы избежать будущих проблем, вызванных поврежденными файлами. Что касается проблем с функциональностью программного обеспечения, проверяйте обновления драйверов и программного обеспечения чаще, чтобы избежать или вообще не возникало таких проблем.
Однако, если это не вирус, и вам нужно удалить MONO.EXE, вы можете удалить Microsoft Developer Network со своего компьютера, используя его деинсталлятор. Если вы не можете найти его деинсталлятор, вам может потребоваться удалить Microsoft Developer Network, чтобы полностью удалить MONO.EXE. Вы можете использовать функцию «Установка и удаление программ» на панели управления Windows.
Распространенные сообщения об ошибках в MONO.EXE
Наиболее распространенные ошибки MONO.EXE, которые могут возникнуть:
• «Ошибка приложения MONO.EXE».
• «Ошибка MONO.EXE».
• «MONO.EXE столкнулся с проблемой и должен быть закрыт. Приносим извинения за неудобства».
• «MONO.EXE не является допустимым приложением Win32».
• «MONO.EXE не запущен».
• «MONO.EXE не найден».
• «Не удается найти MONO.EXE».
• «Ошибка запуска программы: MONO.EXE.»
• «Неверный путь к приложению: MONO.EXE.»
Как исправить MONO.EXE
Если у вас возникла более серьезная проблема, постарайтесь запомнить последнее, что вы сделали, или последнее, что вы установили перед проблемой. Использовать resmon Команда для определения процессов, вызывающих вашу проблему. Даже в случае серьезных проблем вместо переустановки Windows вы должны попытаться восстановить вашу установку или, в случае Windows 8, выполнив команду DISM.exe / Online / Очистка-изображение / Восстановить здоровье, Это позволяет восстановить операционную систему без потери данных.
Чтобы помочь вам проанализировать процесс MONO.EXE на вашем компьютере, вам могут пригодиться следующие программы: Менеджер задач безопасности отображает все запущенные задачи Windows, включая встроенные скрытые процессы, такие как мониторинг клавиатуры и браузера или записи автозапуска. Единый рейтинг риска безопасности указывает на вероятность того, что это шпионское ПО, вредоносное ПО или потенциальный троянский конь. Это антивирус обнаруживает и удаляет со своего жесткого диска шпионское и рекламное ПО, трояны, кейлоггеры, вредоносное ПО и трекеры.
Обновлен декабрь 2021:
Мы рекомендуем вам попробовать этот новый инструмент. Он исправляет множество компьютерных ошибок, а также защищает от таких вещей, как потеря файлов, вредоносное ПО, сбои оборудования и оптимизирует ваш компьютер для максимальной производительности. Это исправило наш компьютер быстрее, чем делать это вручную:
Загрузите или переустановите MONO.EXE
Вход в музей Мадам Тюссо не рекомендуется загружать файлы замены exe с любых сайтов загрузки, так как они могут сами содержать вирусы и т. д. Если вам нужно скачать или переустановить MONO.EXE, то мы рекомендуем переустановить основное приложение, связанное с ним. Сеть разработчиков Microsoft.
Что такое сеть разработчиков Microsoft
Информация об операционной системе
Ошибки MONO.EXE могут появляться в любых из нижеперечисленных операционных систем Microsoft Windows:
Почему Mono хорош
Мы с участниками социальной сети open-life.org решили сделать перевод статьи Джо Шилдза (Jo Shields) «Here we go again – why Mono doesn’t suck». В результате получилась статья «Почему Mono хорош». Копию данного перевода можно прочитать здесь: Почему Mono хорош — open-life.org
Прим.: Если кто захочет инвайт на open-life.org — стучитесь в личку
Я участник Debian Mono Group, Debian CLI Applications Team, и Debian CLI Libraries Team. И уже в течении года работаю над сопровождением пакетов проекта Mono и программ, которые используют его в ОС Ubuntu (и Debian). Мне хорошо известны горячие споры, угрозы и последующие переходы на личности, и сейчас я принимаю ваш «вызов». В этой статье я говорю от себя лично — не от проекта Debian, не от Ubuntu, не от Mono, и не потому, что меня попросил мой начальник.
Вам хотелось «объективного пояснения, чем хорош Mono, почему он не представляет угрозы и почему его следует включить в Ubuntu по умолчанию»? — Я отвечу на эти 3 вопроса по очереди, затем предложу общий вывод к этой статье, а так же к более широкому движению «Анти-Mono». Это сообщение подписано GPG (прим. переводчика: GPG=GNU Privacy Guard — свободная альтернатива набору криптографического ПО PGP) для подтверждения факта его публикации без изменений. Оригинальный текст доступен по адресу retro.apebox.org/herewegoagain.txt чтобы каждый желающий мог проверить его подлинность самостоятельно.
Почему Mono не опасен?
Почему Mono должен быть включен в Ubuntu по-умолчанию?
Мы не хотим, чтобы Mono был установлен по-умолчанию во всех дистрибутивах. Mono — это программная платформа, а значит он не должен быть установлен у всех пользователей. Ubuntu не поставляется по-умолчанию с Java, Scheme, Assemby, LISP и различными фреймворками, просто потому, что они не интересны большинству пользователей.
Мы хотим, чтобы по-умолчанию были хорошие программы. После загрузки Ubuntu, Kubuntu, Xubuntu или другого дистрибутива пользователь должен сказать «Ух ты, Свободное ПО настолько хорошо, что я больше не нуждаюсь в Windows». Все дистрибутивы СПО, стремящиеся обрести фанатов, должны выбирать лучшие приложения. В случае с Ubuntu, командой Desktop Team было принято решение включить в дистрибутив лучшее приложение для работы с заметками и лучший фото менеджер.
Zim — высококачественный продукт, но Desktop Team решила использовать Tomboy, поскольку это приложение удобнее для многих пользователей (и сейчас Tomboy используется как стандартное приложение в этом классе)
Также Desktop Team решила, что лучшим фото-менеджером является программа F-Spot. Приложение F-Spot можно сравнить по возможностям с проприетарными приложениями iPhoto компании Apple и Picasa от Google Inc. F-Spot нельзя сравнивать с приложениями типа файл-менеджер как gThumb, поскольку одной из ключевых особенностей является возможность прикреплять к фотографии важные метаданные, но gThumb работает для каждого каталога отдельно, а не для всех фото сразу, как F-Spot.
Как Tomboy, так и F-Spot для запуска требуют Mono JITter, а также набор библиотек таких как GTK#. Таким образом, чтобы предложить эти лучшие бесплатные программы для новых пользователей (эти программы выбраны командой Ubuntu Desktop Team), часть свободного программного обеспечения нужна для запуска других приложений, как например GNOME System Monitor требует для работы GTKmm. До тех пор, пока Tomboy и F-Spot будут лучшими в своем классе, они будут включены в дистрибутив Ubuntu, а значит вместе с ними будут включены нужные для их работы библиотеки и приложения. Если же найдутся лучшие программы, то они будут включены в стандартную поставку Ubuntu, если приложение основанное на Mono будет лучше других приложений, то Mono будет включен в дистрибутив. Это мнение не основывается на предпочтении к данному фреймфорку, хотя я думаю, что разработка на языках высокого уровня таких как C# или Python гораздо быстрее и удобна, чем на C.
Пост размещенный в Linux Today
Из вашего первого сообщения ясно, что вы не беспристрастны. Вот несколько конкретных фраз, цель которых — обругать и показать ваше уже определенное мнение на выбранные вами темы. Все фразы основываются на чистом предубеждении, что вынуждает тех, кто понимает что-то про Mono, не лезть на рожон. Поэтому всем кажется, что большинство — противники Mono.
«Есть множество приложений и получше, которые можно включить в дистрибутив» — Пожалуйста, назовите такие приложения.
«проталкивание технологий Microsoft» — Помогите! Помогите! Нас угнетают! Нет, давайте серьёзно. Хорошая технология — это хорошая технология, а не изобретение велосипеда, который никому никогда не помогал. Среди участников Desktop Team нет профессионалов в Mono (большинство из них фанаты Python) и односторонних решений связанных с включением программ в дистрибутив не было, нету и не будет. Никто ничего не проталкивает! Ни один из пакетов связанных с Mono не был помечен как «важный» (Essential:yes).
«Включение этих програм оскверняет Ubuntu» — Демагогия. Microsoft — обычная корпорация, а не нечто сверхъестественное. Обвинение Microsoft в нечестивости и проталкивании продуктов делает им слишком много чести. Они — корпорация с огромным количеством глупых менеджеров и с редкими просветами в виде компетентных разработчиков. И ничего больше.
«Фанаты Mono разводят слишком много шума на форумах Ubuntu» — На самом деле, в этом виноваты противники Mono. Если вы говорите об обвинениях в цензуре, то вы заблуждаетесь. Те, кто читал подробности этих обвинений, могут увидеть в сообщениях грубость, угрозы, споры и прочее, а в корне всего этого были противники Mono. Ни ребячество, ни друзья среди модераторов не помогли победить в споре.
«Просто включить его в стандартный репозиторий не приемлемо.» — Это абсолютно приемлемо, хотя это не единственное выдвинутое предложение — они варьируются от реклассификации Mono в non-Free репозиторий, до его полного удаления из Debian и Ubuntu. Свободные программы должны быть в стандартном репозитории, независимо от их реализации — но если реализация какого-то приложения является лучшей, то она должна быть включена по умолчанию.
«Неспособность фанатов Mono ответить на те простые вопросы меня немного беспокоит, такое впечатление, что есть куда более важные вопросы.» — Если вы обвиняете кого-то, тогда объясните суть обвинений. Если у вас есть конкретные обвинения к людям, которые не противостоят Mono, тогда напишите их или же не распространяйте мифы.
Движение против Mono
Есть люди, которые «за» какие-то вещи. Они за свободу, или за техническое превосходство, или за спортивную команду, или за что-то другое. Есть люди, которые «против». Они против некоторых политиков, или людей определенной национальности, или чего-то другого. Некоторые люди определяют себя сторонниками чего-то, а другие противниками. Mono вызывает огромный гнев среди второй группы; в частности, люди, которые используют GNU/Linux не потому, что они «за» что-либо, а потому, что они «против» Microsoft. Это можно хорошо разглядеть в использовании слов «Microshaft» или «Micro$oft» или других детских попытках определить «их» и «нас», чтобы высмеять «их». Для них все символично: если Mono — свободное ПО, то они «за», но если оно безвозмездно получено из рук Великого Сатаны, то это непростительно.
Многие из тех, кто рекламировал себя как противник Mono, откровенно говоря, выглядят жутковато, т.к. желают смерти сотрудников Microsoft (см. комментарии к Boycott Novell), или пытаются навредить людям, которые позитивно отозвались о Mono (см. недавние замечания в списках рассылки Ubuntu), или намекают на это тем, кто с ними не согласен (практически в каждой новости Boycott Novell) — это отвратительное поведение представляет из себя наихудшую рекламу «Свободному ПО». Если люди хотят быть «против» Mono, то для этого есть разумный путь — например, работа по поддержке пакетов альтернативного ПО. Если анти-Mono движение хочет быть принято всерьез, то они должны понять, что для борьбы им необходимо хорошо знать как Mono работает и почему, для того, чтобы правильно направлять свою энергию (и крики “ZOMG! MICRO$HAFT!” имеют неверное направление). Я буду СЧАСТЛИВ увидеть высококачественные приложения для GNOME на Java или Python — такая конкуренция приведет к улучшению ПО в целом.
Большинство противников Mono не являются даже создателями сборок, а не то что разработчиками ПО. Они заявляют, что программисты (которые действительно тратят время на разработку СПО) должны использовать те платформы, которые нравятся им, а не самим разработчикам. Это другая причина, почему аргументы противников Mono не получают должного внимания — предположение о том, что кто-то может решать за разработчиков очень раздражает. СПО основывается на меритократии — более способные получают больше уважения. Пока противники Mono не будут вносить свой вклад в СПО они будут выглядеть чудаковато и их вопросы останутся без ответа.
В конце концов, не найдется ничего, что заставит исчезнуть споры вокруг Mono, до тех пор, пока расплывчатые угрозы юридической атаки распространяются и подпитываются некоторыми членами сообщества. Практически ничто не сможет успокоить тех, кто уже составил свое собственное мнение без какой-либо озабоченности о реальных основаниях или фактах. Аргументы против Mono основанные на реальности или фактах я считаю хорошими и приветствую их, но встречаться с ними мне приходилось очень редко. И даже если они приводятся, то тонущими в настолько густом соусе демагогии, страха, неуверенности и сомнения, что действительно важная информация попросту невидна.
Итак, я считаю эта статья то, что вы искали. Вы можете перепечатывать её или нет. Она создана как новая глава в ежедневных личных нападках на меня со стороны уж очень искушенных противников Mono.
Поговорим про отличия Mono от MS.NET
Сегодня я приведу несколько примеров того, чем вообще могут отличаться разные рантаймы. Конечно же, все отличия привести не получится — про это целую книгу написать можно. Да и суперкрутые проблемы из production-кода тоже привести не выйдет, зачастую слишком уж сложно их отделить от контекста программной архитектуры и привести в виде маленького понятного куска кода. Моя сегодняшняя задача — просто донести мысль того, что может отличаться в Mono и MS.NET. Надеюсь, это поможет начинающим Mono-программистам шире взглянуть на возникающие проблемы и начать с ними разбираться, вместо того чтобы развернуться и уйти со словами «Mono тупой».
Пример 1. Разные версии компилятора
В Mono 2.10+ и MS.NET мы увидим примерно следующее:
Как видно из примера, значения исходных элементов хранятся в специальном массиве байт. А вот во времена Mono 2.4.4 (можете не верить, но по сей день есть люди, которые им пользуются) транслятор был не настолько умён:
На самом деле тут происходит следующее:
Функционально ничего не поменялось, но теперь у нас имеется осознание того, что разные версии компилятора могут выдавать различный код. Но этот пример не настолько интересен, т. к. поведение кода осталось прежним (если не считать небольшого проседания производительности для старых версий Mono). Давайте перейдём к более интересным примерам.
Пример 2. Отличия в работе с IL
Практика показывает, что простой «тривиальный» код работает примерно одинаково как под MS.NET, так и под Mono. А проблемы чаще всего начинаются, когда в коде появляются не такие уж и тривиальные вещи. Не так давно Джон Скит написал замечательный пост «When is a string not a string?» (русский перевод от impwx). Если кратко, то содержание поста сводится к рассмотрению следующего примера:
Проблемы заключаются в различной реализации конвертации строк между кодировками. Мне этот пример нравится тем, что при своей минималистичности он показывает, что MS.NET и Mono могут как формировать различный IL-код при компиляции, так и по-разному с ним работать при запуске приложения.
Пример 3. Баги в Mono
Да, в Mono есть баги. И да, их не очень мало, приходится с этим жить. К счастью, попадать на них приходится нечасто, а из открытых багов не так много критичных. Расскажу вам одну историю: при портировании PassportVision на Mono я наткнулся на один не очень приятный момент. Мне пришлось заниматься кодогенерацией и часть логики создавать на лету в зависимости от ряда условий. Я создавал новые типы через TypeBuilder, а типы эти реализовывали определённые интерфейсы. Я узнал очень много нового про генерацию кода в Mono, но большую часть очень сложно кратко поведать в отрыве от контекста. А вот один баг воспроизводился очень легко: метод TypeBuilder.CreateType() не проверял область видимости объявленных интерфейсов. Т. е. код
падал под MS.NET (как ему и положено), но зато прекрасно отрабатывал под Mono. Меня такое положение вещей не очень устраивало, поэтому я пошёл и завёл баг. Надо отдать ребятам из Xamarin должное — поправили они его через 5 дней. Если вы пользуетесь Mono 3.8.0 (которая вышла в августе), то у вас этот баг ещё есть, а вот Mono 3.10.0 вышел с исправлением.
Данная проблема не особо критична, но ряд неудобств она мне всё-таки доставила. А ведь в баг-трекере всё ещё висит около 5000 открытых проблем. Поэтому нужно держать в уме, что определённые ошибки в Mono могут быть и что от версии к версии поведение некоторых мелких моментов может меняться (возможно, из-за моего баг-репорта у кого-то перестало что-то работать после обновления). Если есть возможность, то лучше сидеть под последней стабильной версией Mono.
Пример 5. Тонкости реализации стандартных классов
Приведу ещё одну поучительную историю. Ребята из одной хорошей фирмы как-то раз решили использовать структуры в качестве ключей для хеш-таблиц. Ничто не предвещало беды, приложение работало нормально. Немного тормозило, но не так, чтобы прям слишком критично. А потом в один прекрасный день ребята решили запустить своё приложение под Mono. И о чудо: оно начало работать в разы быстрее. «Ох, какой хороший Mono, как же быстро под ним всё работает», — обрадовались ребята. Единственное, не давала покоя мысль, что не должно так быть, что где-то что-то не так.
Чтобы понять данный пример, нужно немножко почитать про реализацию GetHashCode у структур в MS.NET (хороший хабрапост). Если кратко, то есть две версии для хеш-функции: одна для структур без ссылочных полей и свободного пространства между полями, а другая — для всех остальных. Как мог догадаться вдумчивый читатель, со структурой-ключом у наших ребят было не всё хорошо (а именно, были «дырки» между полями; прописать явный GetHashCode() никто не удосужился). А в этом случае используется вторая версия хеш-функции, которая базируется на основе первого поля структуры. Рассмотрим на примере:
Данный код выведет False True под MS.NET. Хеши a1 и a2 буду различаться (они будут считаться на основе всех полей), а хеши для b1 и b2 совпадут (они будут считаться только на основе первого поля). Разработчики Mono решили не заморачиваться с кучей разных версий хеш-функции: они написали одну, которая работает на основе всех полей (см. GetHashCode и InternalGetHashCode). Соответственно, приведённый код выведет False False под Mono, ведь все хеши будут различными.
Вернёмся к нашим весёлым ребятам с хеш-таблицей. Если посмотреть на ситуацию под правильным углом, то их приложение не летало под Mono, а тормозило под MS.NET. А тормозило оно из-за того, что очень много ключей имело одинаковый хеш из-за совпадающего первого поля. Казалось бы, мелочь, но на производительность она оказала достаточно сильное влияние.
Также надеюсь, что у Хабражителей хватает своих весёлых историй. Буду рад их послушать =)