Выпущенная в начале октября свободно распространяемая среда времени исполнения Mono 2.0 позволяет приложениям, разработанных для платформы .Net, работать в операционных системах Linux, Mac OS X и Unix. Она обладает возможностями, ориентированными на различные технологии .Net.
Mono 2.0 значительно отличается от предыдущей версии. В ней реализована поддержка модели программирования Microsoft .Net Framework 2.0. С помощью Mono разработчики могут создавать приложения для настольных систем и серверов, используя среды Microsoft, и развертывая эти приложения на разных платформах, в том числе на Windows. Ведущую роль в проекте Mono играет компания Novell.
«Приложения, которые созданы на Windows, теперь можно запускать на Linux или на MacOS 10. Такое может потребоваться пользователям по целому ряду причин, в число которых входит, например, консолидация платформ», — заметил Мигель де Икаса, вице-президент по платформам для разработчиков компании Novell, курирующий проект Mono.
Mono 2.0 поддерживает язык C# 3.0 и LINQ (Language Integrated Query) для получения информации из базы данных, объектов и XML-контента. Кроме того, пользователи могут обращаться к серверным приложениям, созданным для .Net, и клиентским приложениям, написанным с помощью Windows Forms.
Однако в версии Mono 2.0 отсутствует поддержка основных прикладных программных интерфейсов .Net 3.0 и .Net 3.5, в частности, Windows Communication Foundation, Windows Workflow Foundation и Windows Presentation Foundation. По словам де Икасы, сейчас они не поддерживаются потому, что не были указаны среды наиболее востребованных технологий, перечисленных первыми пользователями Mono.
«Мы не поддерживаем их, поскольку пока не создали соответствующие компоненты», — сказал он. Работа по поддержке WCF запланирована на следующий год.
В состав Mono 2.0 входит MoMA (Mono Migration Analyzer), инструментарий для оценки степени готовности сред Linux для переноса приложений .Net.
Реакцию Microsoft на появление Mono, как заметил де Икаса, можно назвать неоднозначной. «Я думаю, что это зависит от того, кого вы спрашиваете. В некоторых случаях, конечно, они бы предпочли, чтобы пользователи оставались на Windows», — заметил он. Microsoft вместе с Novell работает над системой Moonlight, которая позволит приложениям, созданным для подключаемого модуля для мультимедиа-проигрывателя Microsoft Silverlight, выполняться на Linux. Более полная версия Moonlight 1.0 должна быть выпущена в конце октября.
Mono позволит перенести на Linux больше приложений и поможет разработчикам выйти на более широкий рынок. «Мы стремимся к тому, чтобы как можно больше разработчиков могли начать развертывать свои приложения на Linux. Мы хотим обогатить экосистему Linux», — пояснил де Иказа.
По его оценкам, 45% приложений будут работать на Mono 2.0 без изменений, а 18% потребуют, чтобы разработчики потратили пару недель на модификации, что вызвано различиями в операционных системах. Около 20% приложений будут нуждаться в значительной переработке, на которую уйдет от трех месяцев до полугода, если какие-то из них тесно интегрированы с Windows.
«Компания Mindtouch, производитель платформы совместной работы Deki, выбрала Mono, поскольку стремится выпускать кроссплатформенные решения», — пояснил Аарон Фулкерсон, директор Mindtouch.
«Мы очень серьезно рассматривали вопрос об использовании Java, а затем обратили внимание на Mono, — пояснил Фулкерсон. — И Mono была признана достаточно зрелой технологией, на которую можно опираться. Фактически, до этого месяца мы разрабатывали и развертывали наш продукт только на Mono и Linux, а сейчас добавляем поддержку для Windows».
Среда времени исполнения Mono 2.0 предлагается на условиях лицензии LGPL, а библиотеки классов и компиляторы — на условиях лицензии MIT X11.
Mono была создана с помощью документации Windows, касающейся ядра и языков .Net, которые являются стандартами ISO. Работа над Mono 2.0 продолжалась около двух с половиной лет. Работы над проектом Mono начались в 2001 году.