Как стать автором
Обновить

Mono приносит C# на iPhone и Wii

Время на прочтение2 мин
Количество просмотров2.5K
Автор оригинала: Ryan Paul, http://arstechnica.com/authors/ryan-paul/
Mono, open-source реализация платформы .NET была использована для разработки игр для iPhone и Wii. Посмотрим, как статическая компиляция сделала возможным, чтобы приложения на Mono удовлетворили требованиям Apple к приложениям, размещаемым в App Store.

Mono — открытая реализация платформы .NET привнесла технологии разработки от Microsoft на несколько неожиданные платформы — iPhone, Android и Wii.

По словам ведущего разработчика Mono из Novell Мигеля де Иказа, ряд приложений в Apple App Store разработан с применением Mono. Это будет сюрпризом для тех, кто знаком с ограничениями политики Apple на включение приложений в AppStore, так как компания Apple жестко ограничивает разработчиков в использовании интерпретируемых языков и сред выполнения сторонних разработчиков — и эти ограничения исключают использование таких платформ, как .NET и Java.

Статическая компиляция — это «финт ушами» который позволяет запустить Mono на iPhone. Mono позволяет разработчикам использовать прекомпиляцию (ahead-of-time, AOT), которая преобразует код на промежуточном языке .NET (CIL) напрямую в native-код во время компиляции. Это означает, что приложение не использует компиляцию на лету (Just-in-time, JIT) чтобы генерировать native-код в процессе выполнения.

Также, есть еще ряд трюков и фишек Mono которые позволят разработчикам уменьшить размер приложений и сборок Mono для развертывания на мобильных устройствах. Вы можете использовать Mono linker чтобы уменьшить размер библиотек, можете опустить JIT и движок генерации кода из исполняемых приложений и вы можете вырезать CIL команды из сборок.

Статическая компиляция делает возможным создавать одобряемые Apple приложения для iPhone с применением Mono, но накладывает определенные ограничения. Обобщения (generics) и динамически генерируемый код не поддерживаются, когда применяется AOT-компиляция.

Есть еще множество сложностей, чтобы прямо сейчас включить в Mono возможность кросс-компиляции под iPhone, но по словам Мигеля де Иказы разработчики, которые хотят начать прямо сейчас могут использовать Unity — сторонний комерческий фреймворк для разработки 3D игр, который построен на Mono. Unity поддерживает разные платформы, включая iPhone и Wii и поставляется с собственной встроенной средой Mono с поддержкой кросс-компиляции для различных платформ.

В своем блоге-посте, Иказа указывает почти на 40 приложений (большинство из которых — игры) в Apple's App Store которые построены на Unity и Mono. Он так же пишет о My Animal Center, немецкой игре для Wii, которая так же была создана с помощью Mono и Unity.

Однако, не iPhone'ом единым жив человек. Разработчики в порядке эксперимента портировали среду выполнения Mono на Android устройство T-Mobile G1. Хотя этот порт — всего лишь экспериментальное подтверждение идеи и не может использоваться для развертывания рельных приложений на платформе в ближайшее время, он обладает потенциалом и выглядит неплохо по сравнению с Google's Dalvik в некоторых предварительных тестах.

Большие возможности по портируемости Mono и расширенная поддержка некоторых особенностей, таких как статическая компиляция, позволяют разработчикам использовать платформу в некоторых совершенно новых направлениях, применение в которых реализации Microsoft .NET невозможно. Это показывает значимость и гибкость, присущую открытым реализациям.

Теги:
Хабы:
Всего голосов 64: ↑55 и ↓9+46
Комментарии55

Публикации

Истории

Работа

.NET разработчик
64 вакансии

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область