Релиз OpenSource реализации .Net-платформы Mono 2.10

Увидел свет релиз Mono 2.10, свободной многоплатформенной реализации технологии .NET, обеспечивающей поддержку спецификаций .Net Framework 4.0.

Из новшеств можно отметить:

  • Поддержка технологии Google Native Client, предоставляющей средства для портирования обычных бинарных приложений для платформы Android. Реализовав виртуальную машину Mono, сборщик мусора и JIT-компилятор внутри изолированного окружения Native Client, разработчикам удалось решить задачу с обеспечением выполнения Mono на платформе Android;
  • Новый движок для профилирования приложений, пришедший на смену устаревшим механизмам профилирования heap-shot, heap-buddy и logging. В новом профилировщике решены такие проблемы, как манипулирование большими объемами данных и оценка работы многопоточных и многодоменных (multi-appdomain) приложений. Кроме того, обеспечен доступ к расширенному числу событий сборщика мусора, что позволило предоставить разработчикам дополнительные средства для написания собственных систем профилирования и отслеживания работы с памятью;
  • Увеличение производительности сетевой подсистемы. Например, обеспечена поддержка выполнения большого числа сетевых операций в асинхронном режиме, при котором операции направляются непосредственно в пулл ввода/вывода, экономя память и ресурсы CPU. Ранее, вызов SocketAsyncEventArgs поддерживал использование только одного потока на операцию;
  • Улучшена реализация Parallel Framework;
  • Расширены возможности и увеличена производительность сборщика мусора SGen. В дополнение к консервативному алгоритму сканирования стека нитей, добавлена реализация метода точного сканирования (Precise Stack Scanning), являющегося более оптимальным для управляемого стека (managed stack) и использующего консервативный подход при работе с неуправляемым стеком (например, при вызове функций библиотек на языке Си);
  • Унифицированная поддержка runtime-компонентов для MonoTouch и Monodroid (версии Mono для iOS и Android);
  • Представлен более легкий и быстрый вариант API библиотеки Cecil, на который уже переведены все утилиты Mono;
  • Новый бэкенд для компилирования кода на языке C# (C# Compiler) - mcs, позволяющий обращаться к различным реализациям библиотеки mscorlib.dll, например, из состава Mono или Microsoft MicroFramework;
  • Обновлен компилятор VB Compiler (vbnc), который переведен на использование Cecil/light вместо Reflection, что дает возможность сборки с разными версиями runtime-компонентов, используя один компилятор. По умолчанию vbnc использует для сборки профиль Visual Basic.NET 4.0, при помощи входящего в комплект скрипта vbnc2 может задействовать профиль 2.0;
  • Обеспечена поддержка ASP.NET MVC3, шаблонизатора Razor и новый API WebPages;
  • Улучшение работы Mono на платформе Mac OS X, которая теперь приблизилась по возможностям к версии Mono для Linux;
  • Интегрирована поддержка функционального языка программирования F# 2.0, а также проектов IronRuby и IronPython;
  • Для Unix-платформ обеспечена возможность использования интерактивной командной оболочки C#Repl для запуска скриптов с заголовком "#!/usr/bin/csharp";
  • Улучшена совместимость с ASP.NET 4.0 и C# 4.0.

Кроме того, началось тестирование предварительной версии системы Moonlight 4.0 (релиз Moonlight 3 будет пропущен) с реализацией поддержки Silverlight 4 для платформы Linux. Moonlight 4.0 доступен в виде плагинов для браузеров Firefox и Google Chrome, а также поддерживает интеграцию Silverlight-приложений на Linux-десктоп, позволяя запускать их в специальном изолированном контейнере, как обычные настольные программы. Предварительная версия Moonlight 4 полностью поддерживает Silverlight 3 API и частично Silverlight 4 API, включая задействование аппаратной GPU-акселерации при выводе на экран, поддержку 3D-трансформаций, пиксельных шейдеров и наличие в комплекте H.264-кодеков для просмотра видео. В новой версии также проведена работа по увеличению производительности и уменьшению потребления памяти.

© OpenNet