Новости из стана .NET Micro Framework
Windows 10 развивается бурно и охватывает все больше платформ. Однако есть ниша, куда даже версия Windows 10 IoT не сможет попасть: микроконтроллеры. Но и тут прогресс не стоит на месте. Неделю назад случилось очень интересное, но мало освещенное событие: вышла новая версия .NET Micro Framework 4.4. Чем это событие так знаменательно, я расскажу далее.
.NET Micro Framework — это порт известного всем .NET под микроконтроллеры. Основная цель данной платформы — использование мощи, простоты и удобства технологии .NET на системах с ограниченными объемами памяти и вычислительных ресурсов. Проект появился в 2001 году и изначально был коммерческим. По мере развития, в 2008 году он превратился в открытую open source платформу, поддерживаемую Microsoft. Ну а в наши дни, с ростом популярности IoT, он обрел второе дыхание.
Сейчас .NET Micro Framework переехал на GitHub и оброс множеством последователей. Существует две ветки развития проекта: netmf-interpreter и LLILUM.
netmf-interpreter
Эта “классическая” ветка, продолжающая развитие первых идей .NET Micro Framework. Для каждой конкретной аппаратной платформы должен быть написан порт, реализующий работу в “железом”. Архитектура этого решения выглядит так:
Каждый слой снизу вверх все меньше зависит от конкретного микроконтроллера. Это позволяет на самом верху пользоваться всеми преимуществами управляемого кода разработки на Visual Studio.
Самым большим недостатком этого подхода является сложность портирования. Создание портов требует серьезных навыков и достаточно много времени, что отталкивает многих разработчиков.
LLILUM
Эти новое направление, построенное уже на других принципах работы. Тут центральное место занимает компиляция. Код сначала компилируется в Microsoft Intermediate Language (MSIL, предшественник CLI), а затем в Intermediate representation (IR). IR код подвергается существенной оптимизации и из него уже получается машинный код. По сути это немного измененная LLVM.
Такой подход позволяет получить существенный прирост производительности и экономию памяти. Сейчас поддерживается компиляция для наборов команд (ISA) ARMv4 и ARMv5 но без использования LLVM. Текущая версия может работать с набором команд Cortex-M, но уже с помощью LLVM.
Правда, нужно сказать, что данная ветка еще сыровата. LLILUM активно развивается, но многого еще не хватает.
.NET Micro Framework 4.4
Так чем же так примечательна .NET Micro Framework 4.4? В этой версии, помимо множества улучшений и исправлений, впервые появилась, пусть и не полная, но поддержка UWP — универсальной платформы Microsoft. Теперь .NET Micro Framework является частью единого пространства и становится в ряд с разнообразными версиями Windows 10.
Поддержка UWP в LLILUM будет развиваться и расширятся. В январе 2016 года разработчики обещают уже бета версию. Это значит, что в ближайшей перспективе можно будет использовать один и тот же код не только на устройствах с Windows 10, но и на микроконтроллерах Cortex-M. Таким образом, будут охвачены даже те устройства, на которые нельзя установить Windows 10 IoT.
Подробнее о .NET Micro Framework можно узнать прочитав статью “Знакомство с .Net Micro Framework” на хабре и посмотрев доклады “Архитектура .Net Micro Framework” и “Краткий обзор .Net Micro Framework” на techdays.