.NET → Логирование — производительность молчания
В обсуждениях этой статьи, возникло наконец у меня желание оценить в цифрах скоростные характеристики API логгеров.
Решил провести сравнение задержек при использовании логгеров NLog и Log4Net, а также осветить немного общих вопросов по замерам производительности участков кода в .Net и Mono.
Решил провести сравнение задержек при использовании логгеров NLog и Log4Net, а также осветить немного общих вопросов по замерам производительности участков кода в .Net и Mono.
Mono и Moonlight → Вышел MonoDevelop 2.8.2
Вышло второе обновление к релизу 2.8 среды разработки для платформ .Net, Mono, MonoTouch и MonoDroid. Все нововведения связаны с разработкой под Android и iOS. Так же немного оптимизировали дебаггер. Помимо этого, похоже, доведён до ума редактор кода. После получасовых издевательств мне не удалось заставить его сыпать ошибками (неделю назад подобная процедура выявила невозможность сохранить файл без кода, но с комментариями).
Полный список изменений можно почитать здесь. Обзор релиза 2.8 на хабре, если кто ещё не читал, можно увидеть тут.
Mono и Moonlight → Выпуск MonoDevelop 2.8.1
Вышло первое обновление к релизу 2.8 среды разработки для платформ .Net, Mono, MonoTouch и MonoDroid. Никаких нововведений не было, зато исправлено несколько весьма критичных багов, один из которых приводил к полной невозможности редактирования исходника из-за постоянно выскакивающих сообщений об ошибке. Так же исправлен набор проблем с автодополнением, подсветкой синтаксиса и ещё несколько незначительных, но неприятных вещей. Полный список изменений можно почитать здесь. Обзор релиза 2.8 на хабре, если кто ещё не читал, можно увидеть тут.
Последнюю версию для Windows и MacOS X можно скачать с официального сайта, но пакетов для большинства дистрибутивов Linux всё ещё нет, равно как и для 2.8. Впрочем, как заметили в комментариях, относительно openSuSE и NLE надпись на сайте об отсутствии пакетов нагло обманывает.
Пользователи же Debian (потребуется поставить mono из experimental репозитория) и Ubuntu при желании могут воспользоваться моим ppa, в котором можно найти как сей релиз, так и пакет, пересобираемый с каждым коммитом в github-репозитории.
Mono и Moonlight → Выпуск MonoDevelop 2.8 — интеграция с XCode 4, поддержка iOS 5 и другое
Mono и Moonlight → Проблемы обработки исключений в WCF под Mono из песочницы
По служебной необходимости мне пришлось столкнуться с задачей создания клиента WCF-службы под Mono 2.6.7.
Всё вроде бы шло хорошо – клиент работал как под .NET, так и под Mono – до тех пор, пока я не занялся обработкой исключений, которые могут возникнуть в методах WCF-службы.
Проблемы начались тогда, когда мне понадобилось обработать моё собственное исключение, содержащее не только сообщение исключения, но и некоторую дополнительную информацию.
Я решил, что организую обработку исключительных ситуаций так, как это описано в статье «Exceptions through WCF» (http://habrahabr.ru/blogs/net/41638/) уважаемого Романа RomanNikitin.
В .NET клиент работал так, как надо, а вот при запуске под Mono возникла следующая ошибка:

Всё вроде бы шло хорошо – клиент работал как под .NET, так и под Mono – до тех пор, пока я не занялся обработкой исключений, которые могут возникнуть в методах WCF-службы.
Проблемы начались тогда, когда мне понадобилось обработать моё собственное исключение, содержащее не только сообщение исключения, но и некоторую дополнительную информацию.
Я решил, что организую обработку исключительных ситуаций так, как это описано в статье «Exceptions through WCF» (http://habrahabr.ru/blogs/net/41638/) уважаемого Романа RomanNikitin.
В .NET клиент работал так, как надо, а вот при запуске под Mono возникла следующая ошибка:

Nginx → Установка Asp.Net на Linux (nginx+mono+xsp)
В этой статье я покажу, как настроить простую связку nginx + Asp.Net. Под простой надо понимать, что какие-то специфические особенности проектов, разграничение прав пользователей, высокие нагрузки и т.п. нужно настраивать отдельно (особенно это касается Asp.Net). Статья написана по просьбе хабраюзера mace.В свое время озадачившись проблемой хостинга маленьких Asp.Net-проектов я осознал одну простую вещь: покупать лицензию на Windows Server, а потом и арендовывать достаточно мощный выделенный/виртуальный сервер для каких-то домашних поделок/экспериментов — крайне неразумно. Решение как-то сразу всплыло в моей лысой голове: есть же Mono! Непродолжительный поиск по mono-project.com вывел на FAQ об Asp.Net. Фактически, документация показала мне три возможных варианта:
Программирование → Сравнительное тестирование производительности платформ .Net, Java и Mono из песочницы
Идея Java vs .Net vs Mono
Сама идея создания подобного теста появилась из-за, постоянно не дававшего мне покоя, противопоставления .Net и Java, и я решил максимально объективно оценить реальную производительность данных платформ, затем в поле зрения попала интересная opensource разработка Mono (свободная реализация .Net), и было решено включить и её, а заодно прогнать тесты под Linux. Соответственно были разработаны две аналогичных программы тестирования на языках C# и Java. Далее будут приведены фрагменты исходников на C#, полный исходный код можно получить из репозитария Google Code:
http://code.google.com/p/dotnet-java-benchmark/source/checkout
Целью данного теста является сравнение производительности различных виртуальных машин, выполняющих по сути один и тот же код на одном и том же компьютере. В соревновании принимали участие следующие платформы:
- Microsoft .Net 4.0 (Windows 7)
- Oracle Java SE Version 6 Update 24 (Windows 7)
- Oracle Java SE Version 6 Update 24 (Linux 2.6.35.27 Ubuntu 10.10)
- Novell Mono 2.11 (Linux 2.6.35.27 Ubuntu 10.10)
Mono и Moonlight → Разработчики Mono основали коммерческую компанию Xamarin
Пример Red Hat и MySQL показал, что Open Source может стать неплохим источником дохода, если грамотно подойти к делу. Основной разработчик проекта Mono Мигель де Икаса с коллегами тоже решил пойти по проторенной дорожке и заработать немного денег, в чём мы все можем пожелать ему успеха. В понедельник он объявил об основании коммерческой компании Xamarin. Вот что они планируют сделать:
- Новое коммерческое воплощение .NET для iOS
- Новое коммерческое воплощение .NET для Android
- Продолжение развития и поддержки открытых компонентов Mono и Moonlight. «Можете называть это International Mono Support», — говорит Мигель, намекая на свой прошлый проект International Gnome Support (Helix Code, Ximian)
- Изучение возможностей по применению Moonlight для мобильных устройств и Mac AppStore.
.NET → Скрипты в .NET/Mono средствами самой платформы из песочницы
Введение
Работая тут над одним проектом, потребовалось мне, что бы функциональность проекта расширялась на лету и сторонними разработчиками, причём возможностей к расширению было как можно больше, с возможностью правки кода на лету. Соответственно плагины для этого не очень годились из-за необходимости их постоянной перекомпиляции после любой правки. Выход: скрипты. До этого со скриптами я работал достаточно давно и это была Lua на C++. Вариант хороший, если бы не несколько минусов:
- Отсутствие нормальной реализации или прослойки под .NET/Mono — во всех что я видел были какие-то недоработки (может и плохо искал — как минимум пропустил Lua в TaoFramework)
- По всей видимости, нужно было писать кучу биндингов что бы среда исполнения .NET/Mono могла нормально взаимодействовать со средой Lua и обратно.
Тогда-то я и задался вопросом — а может быть в .NET/Mono уже есть что-нибудь для реализации скриптов? И ответ был да. Пространство имён "System.CodeDom.Compiler" было как раз то, что мне надо — возможность реализовать скрипты которые максимально соединялись со средой .NET/Mono.
Mono и Moonlight → Пишем первое приложение на Mono Android из песочницы
Здравствуйте. В этой статье я бы хотел поделиться своим опытом создания приложений для мобильной платформы Android с использованием Mono и разобрать простой пример.
Для начала работы с Mono Android необходимо установить:
Для начала работы с Mono Android необходимо установить:
