Xamarin переносит асинхронность в моно


Mono 3.2 — это крупное обновление платформы Xamarin, включающее C # 5.0 на все поддерживаемые платформы, включая Android и iOS. Это дает мобильным разработчикам ключевые слова async и await, которые упрощают создание отзывчивого пользовательского интерфейса.

В своем блоге Xamarin Мигель де Иказа, который руководил проектом Mono с момента его создания в 2011 году, объясняет, почему это такое преимущество:
До сегодняшнего дня единственным вариантом создания адаптивных приложений, позволяющих обходить сетевые задержки, проблемы с подключением, а также сложные запросы и обработку данных, было использование традиционных методов асинхронного программирования. Хотя использование общих асинхронных шаблонов приведет к созданию лучшего приложения для ваших пользователей, разработчику это нелегко. Вы можете быстро оказаться в ситуации, когда ваш код содержит каскад вложенных обратных вызовов, которые затрудняют отладку проблем и создают больше возможностей для ошибки. Хуже того, иногда сложность такова, что разработчики стремятся срезать углы на некоторых путях кода, что приводит к неоптимальному опыту, когда приложения используются в дикой природе.
Ключевые слова async и await в C # 5.0, теперь доступные разработчикам Xamarin, делают асинхронное программирование невероятно приятным. В итоге вы получаете более линейный и понятный код. Компилятор творит за вас много волшебства, которое упрощает ваш код и вашу жизнь.

В дополнение к асинхронному использованию C # 5.0 это обновление Xamarin также обновляет Xamarin’s Mono до 3.0 для Xamarin.Android, Xamarin.Mac и Xamarin.iOS, предоставляя им преимущества изменений, внесенных в Mono за последние два года. Эти улучшения включают в себя новые .Net 4.5 API, асинхронный System.Net.Http, улучшенную поддержку отладки, более быструю версию нашего сборщика мусора и улучшенный способ работы с дженериками на устройствах iOS.
Другие основные моменты релиза:
Время выполнения — LLVM обновлен до версии 3.2 для лучшей оптимизации
Сборщик мусора — Mono теперь по умолчанию использует сборщик мусора SGen, его наиболее производительный и стабильный выпуск.
Режим низкой паузы — в этом режиме SGen выполняет основные сборы одновременно с приложениями, только ненадолго приостанавливается, чтобы завершить его.
Ясли с низким уровнем продвижения — использует старение для уменьшения временных эффектов на продвижение объекта и уменьшения нагрузки на основную кучу
В основном точное сканирование стопки — ускоряет сборы за счет уменьшения объема необходимого консервативного сканирования; уменьшает скалывание, что приводит к сокращению времени перерыва в сборе и увеличению использования пространства в детской.
Уменьшение размера — несколько функций могут быть отключены для библиотек классов, чтобы уменьшить занимаемое на мобильных устройствах место. Цели FullAOT теперь имеют гораздо лучшие резервные варианты и гораздо более удобный для компоновщика код.
Производительность — компилятор FullAOT теперь может генерировать гораздо более быстрый код для icalls и поддерживает общий доступ к типам значений, заканчивающийся один раз для всех проблем с отсутствием методов во время выполнения.
Оптимизация

Значительно увеличена производительность примитивного парсинга.
LINQ теперь работает с массивами намного быстрее.
Клонирование и бокс больших объектов происходит до двух раз быстрее.
Оптимизируйте методы Marshal.Read/Write, чтобы по возможности избежать перехода в неуправляемый режим.

Вы понимаете, что все улучшения — это глубокие изменения в реализации. О чем еще можно говорить, учитывая, что Mono должна последовать примеру Microsoft. Что действительно интересно, так это то, что произойдет теперь, когда Mono догнал последнюю версию C # от Microsoft. Будет ли Mono вводить новшества в язык, а также в его реализацию? Учитывая, что Microsoft сообщила, что в Visual Studio 2013 не будет обновлений языка, и переход на компилятор Roslyn для следующей версии, вероятно, означает несколько лет сравнительной стагнации языка.
См. Все подробности в примечаниях к выпуску Xamarin.iOS и Xamarin.Android.

Больше информации
Блог Xamarin
Скачать бесплатную версию для начинающих
Статьи по Теме
Mono 3.0 обновляет C #
Разработка Xamarin iOS в Visual Studio
Первый монофонический выпуск Xamarin
Команда Microsoft объясняет языковую стагнацию

Чтобы получать информацию о новых статьях на I Programmer, установите панель инструментов I Programmer, подпишитесь на RSS-канал, подпишитесь на нас в Twitter, Facebook, Google+ или Linkedin или подпишитесь на нашу еженедельную новостную рассылку.

Комментарии
Оставьте комментарий или просмотрите существующие комментарии с помощью Disqus
или отправьте свой комментарий по адресу: comments@i-programmer.info


Добавить комментарий