Mono и Moonlight

индекс
33,08

Большие события из мира Mono/.NET — подробно обо всем

imageЗа прошедшие дни произошел целый ряд крупных анонсов и релизов из мира Mono – open source реализации платформы .NET для разнообразных операционных систем (Unix, FreeBSD, Linux, MacOS X).

Во-первых, 10 декабря вышел фреймворк MonoTouch, об этом событии более подробно можно почитать тут. Этот фреймворк позволяет .NET-разработчикам писать программы на знакомом и мощном языке C# и использовать знакомые и полюбившиеся приемы, библиотеки и наработанный код. Например, MonoTouch в полной мере поддерживает такую технологию как LINQ. Для разработчиков под MonoTouch уже доступны печатная литература, вышла книга.


Новый релиз MonoTouch – это приятное событие, но фреймворк молодой и обновляется достаточно часто. А вот выход финальной версии платформы Mono – это более значительное событие. 15 декабря Мигель де Иказа – руководитель в компании Novell ответственный за направление разработки, написал в блоге о выходе новых версий Mono 2.6 и среды разработки MonoDevelop 2.2. Работа над новой версией заняла у команды 9 месяцев и в ходе этой работы была проделана масса работы по реализации нового функционала. В блоге Мигеля описаны следующие основные моменты:
  • поддержка сервисов WCF на стороне как клиента, так и сервера;
  • поддержка LLVM для улучшения производительности;
  • новый фреймворк Mono.Tasklets для реализации сценариев многопоточности и некоторых других;
  • полная поддержка Linq To Sql через проект DbLinq;
  • новый программный отладчик, интегрированный в MonoDevelop с поддержкой MacOS и Unix;
  • этот релиз Mono включает в себя open source проекты Microsoft: ASP.NET MVC, ASP.NET AJAX, Microsoft DLR.
C другой стороны средство разработки MonoDevelop в новой версии так же получило массу нововведений:
  • код MonoDevelop переведен под лицензии LGPLv2 и MIT X11, весь GPL-код был убран из проекта для того, чтобы можно было использовать дополнения для среды под лицензиями Apache, MS-PL и другими лицензиями;
  • значительно улучшен интерфейс пользователя, реализация которого была вдохновлена идеями от Chrome, Firefox, Visual Studio, Eclipse, и XCode;
  • полная поддержка ASP.NET MVC в том числе отладка таких приложений;
  • T4-макропроцессор доступный ранее в Visual Studio теперь реализован в MonoDevelop;
  • добавлена возможность создавать проекты Moonlight;
  • новый отладчик может работать с кодом написанном для консоли, Gtk#, ASP.NET, iPhone и Moonlight;
  • куча улучшений по работе с кодом и рефакторинга;
  • плагин для Python;
  • плагин для MonoTouch.
Мигель сообщает, что при работе над новой версией Mono было обновлено 2 миллиона строк кода: изменено 7208 файлов исходного кода, изменено 1392400 строк кода, удалено 440016. Около миллиона строк кода было добавлено. Вероятно, проект Mono – один из самых крупных open source проектов текущего времени. Проект MonoDevelop так же получил значительное наполнение кодом: изменено 2427 файлов, 464284 обновленных строк, 120124 удаленных, около 300 000 строк кода добавлено.



Следующим крупным релизом стал релиз Moonlight – open source реализации технологии Silverlight от Microsoft для быстрого эффективного построения наполненных функционалом RIA-приложений. Доступен Moonlight 2.0 – финальная версия второй версии фреймворка. В новой версии масса нововведений, улучшений и исправлений ошибок. Moonlight 2.0 полностью реализует функционал Silverlight 2.0 и значительную часть Silverlight 3.0:
  • Silverlight 3 Pluggable Pipeline;
  • Easing animation functions;
  • частичную поддержку режима работы вне браузера;
  • Writable bitmaps;
  • некоторые функции привязки данных, появившуюся в Silverlight 3.0;
  • Smooth Streaming.
Прогресс впечатляет, если учесть, что проект полностью open source и реализуется силами moonlight-сообщества и компании Novell. Как пишет Мигель, проект Moonlight содержит 142 000 строк кода на С++ и 320 000 строк кода на C#, значительная часть которого составляет контрибуция open source кода от Microsoft Silverlight Controls. Еще Мигель сообщил о том, что команда Moonlight работает над официальной поддержкой Chrome под Linux. Другой приятной новостью стал обновленный сайт проекта, который теперь выглядит просто отлично.

Вместе с анонсом новой финальной версии Moonlight 2.0, стали известны планы разработчиков по выпуску следующих версий проекта:
  • первые версии Moonlight 3 выйдут в начале 2010 года, бета ожидается во втором квартале, а релиз запланирован на третий квартал 2010 года;
  • Moonlight 3 будет содержать следующие новые функции: 3D-графику, пиксельные шейдеры, кэширование сборок, полная поддержка режима вне браузера, поддержка пользовательских кодеков, нативная поддержка MPEG-4 H.264/AAC Audio;
  • первые версии Moonlight 4 запланированы на третий квартал 2010 года;
  • Moonlight 4 будет сфокусирован на поддержку следующих функций: поддержку веб-камер и микрофонов, повышенные привелегии приложений с доступом к локальным данным, нотификации, поддержка арабских языков и иврита, рендеринг HTML внутри приложения, реализация WCF RIA Services.
Таким образом, за несколько дней произошло полное обновление линейки технологий Mono. С чем поздравляю всех разработчиков .NET/Mono и всех других, кто следит за проектом. Изучая и вкладывая время в .NET вы уже сегодня можете использовать всю силу платформы как на Windows так и на Linux с использованием Mono. Кроме того, у .NET-разработчиков есть уникальная возможность писать приложения для iPhone используя свои любимые инструменты и технологии.

Следите за новостями, .NET-технологии развиваются ежедневно, и прогресс Mono – это яркий показатель.

Progg it
+40
18 декабря 2009, 20:03
10

комментарии (48)

+6
mace #
моно взрослеет и это не может не радовать
–25
hansi #
Да, холиворненько. На Лоре уже бурно обсудили. Теперь тут))
Начну:
Не нужно. Закапывайте.
+11
shai_xylyd #
На лоре не было обсуждения, было два стада: одно говорило закапывать, другое предлагало закопать первых.
+10
Mad_Fish #
Здесь не ЛОР. Там обсуждения — троллинг, провокации, холивары, срачи, и прочие прелести отсутствия системы модерирования/рейтингов (даже анонимусы есть), с содержанием ценной информации около 0. На ЛОРе люди собираются похоливарить.

А тут — обсуждать по теме, информативно.
+4
corristo #
ну, это делает лор одним из лучших юмористических ресурсов ;)
–5
hansi #
Господа минусующие могли бы отписать свое мнение по поводу темы?
Я не одобряю Моно потому что:
1. Будет в роли догоняющего
2. Является источником раздора (Столлман против GNOME)
3. Не до конца ясно с лицензией.
4. Есть Java, есть Vala, которую надо пилить и пилить.
+13
shai_xylyd #
1. Догоняющего?

Пока Хейлсберг только говорит о compiler as a service ребята из mono его уже реализовали — с версии 2.2 компилятор можно использовать как простую либу, и как пример реализовали REPL для шарпа. Об это я писал еще в январе подробности тут.

В текущей версии добавились корутины, которых опять же нет в .NET. О них можно было узнать еще в апреле в блоге Мигеля.

Коме того в mono есть поддержка SIMD, читаем тут. Благодаря этому физический движок на C# работает быстрее того же варианта на C++. По предыдущей ссылке подробности.

.NET работает под IPhone — опять же заслуга Mono.

Мигель давно предлагал отвязать moonlight от браузера и писать виджеты на нем. Если покопаться в его блоге, то можно и это найти — мне лень. И это было до анонса Silverlight 3 с этой фичей.

Поэтому это еще вопрос, кто тут догоняющий:) А с другой стороны многие компании сидят еще на второй версии .NET, поэтому то, что у .NET есть фора многих просо не волнует. У меня стоит древняя версия 2.0, которая мне не мешает писать код, который работает и в windows, и в linux.

Пункты 2,3 мне не интересны, поэтому про них не могу ничего сказать.

4. Замечательная логика, давайте отважимся от mono, потому что есть vala, которую надо пилить и пилить =)
0
troorl1985 #
А WPF в Mono планируют реализовывать?
+1
XaocCPS #
нет, зачем, если есть moonlight?
silverlight и wpf движутся в сторону максимального пересечения, вскоре разница будет минимальной
+1
troorl1985 #
Насколько минимальна? И когда? Просто интересуюсь.
0
AigizK #
ну если посмотреть на возможности силверлайта 4 и как часто выходят новые версии сильверлайта, то очень скоро.
0
simpl #
Угу. Если из сильверлайта разрешат юзать «обычные» сборки .NET — потенциальная дырища в безопасности. (Особенно вкупе с .net-injection каким-нибудь).

Если не разрешат — то всё богатство самого дотнета обломится. Не представляю пока что себе, например, что та же визуал студия или автокад смогут быстро превратиться в RIA.
0
simpl #
Да, но с третьей стороны, это разные платформы.
Всё-таки silverlight — это не совсем .net, хотя ты это лучше меня понимаешь (:

Всё-таки я думаю, что не все приложения перетекут свои гуём в облако, следовательно WPF будет жить отдельной жизнью.
НЛО прилетело и опубликовало эту надпись здесь
0
pieceofsummer #
Помнится, в версии 2.2 уже был реализован CAAS, но банально не работали элементарные вещи, вроде регэкспов с флагом Compiled | IgnoreCase.
+12
redchrom #
1. Тем не менее можно брать и использовать.
2. На Столлмана всем похуй.
3. Не до конца ясно с moonlight, с mono же всё нормально.
4. C# банально выразительнее чем Java, говорю как ocaml-кун.
–3
corristo #
кхм, каким боком сишарп выразительнее, если он (по крайней мере в ранних версиях) — калька с явы?
+5
qizz #
с тех пор много воды утекло
лямбды, выражения, type inference здорово повышает эту выразительность
0
corristo #
ну, лямбды в седьмой версии явы будут :)
+1
pieceofsummer #
Они еще только анонсированы, но с синтаксисом им уже не повезло :)
0
corristo #
ну да, # — это так ужасно!
+4
pieceofsummer #
явное указание типов из-за отсутствия выведения — вот что ужасно.
0
corristo #
это да, это печально.
–11
hansi #
«прогресс Mono – это яркий показатель» — я бы не назвал 3 поделки для Линукса «прогрессом моно».
+3
XaocCPS #
как бы не три, а гораздо больше
mono.wikia.com/wiki/Software_using_Mono
–4
hansi #
фспот, баньши, томбой. Самые популярные от моно. Владимир, я не фанатик, да еще к тому же ASP.NET разработчик и очень положительно отношусь к платформе .NET — мощная хорошо споектированая, с вкусными вещами как LINQ, WCF. Мне очень импонирует ASP.NET MVC, ADO.NET Entity framework. Но я вижу, что моно несет раздор в сообщество. Спорная вещь.
+1
XaocCPS #
я отказываюсь понимать как технологии могут быть вредны или «не нужны»
не нравятся — не ешь, имхо
+3
shai_xylyd #
Раздор несут те, кто говорит, что mono не нужно =) А mono просто существует, не нужно — не используй.

Мне импонирует писать на подмножестве .NET, который и в windows, и в linux, а не бежать сломя голову за новыми технологиями от MS.
+2
XaocCPS #
Unity3D использует моно, кстати, тоже очень популярный продукт
+3
redchrom #
Кстати регулярно читаю всякие окололинусксовые планеты, раздор похоже только на лоре.
0
PsySonic #
Ну еще Gnome Do, по крайней мере последний представляет из себя хоть что-то интересное. А три названых просто нормальные проги.

(Причем пикаса намного лучше даже с вайном; для заметок мне удобнее пользоваться оперой: она запускается быстрее томбоя, жрет меньше ресурсов, более мультиплатформена, удобнее интерфейс заметок, и заметки можно читать и с веба; баньши более менее состоятелен, но я предпочитаю эксайл).
0
dkomanov #
Mono — это (так же, как и .NET) реализация CLI. Так же как gcc и intel compiler реализуют стандарт C++.

Околостандартные вещи (как в мире C++ всякие Qt, Boost и т.п.) — это не раскол, а новые возможности. За счёт конкуренции двух сообществ (.NET и Mono) в рамках одной платформы будут появляться новые возможности для разработчиков. Чем плохо?
0
eyeofhell #
А monotouch позволяет делать приложения, совместимые с apple app store, или только cydia? И любопытно, он с каждим приложением тянет свою копию, или ставится на iPhone отдельно?
+5
XaocCPS #
позволяет, он генерирует нативный код iPhone

отправная точка для информации на monotouch.net/

здесь вводная статья с хорошим набором информации
www.infoq.com/articles/monotouch-introduction
НЛО прилетело и опубликовало эту надпись здесь
–5
webus #
Интересно. Стоит попробовать это MONO. Правда совместимость там идет так:
Linux -> Windows, и потом уже Windows < — Linux. Т.е. MSVS проекты, не всегда пойдут на MONO. А вот если вы изначально пишите на MONO, то вроде бы как совместимо. Вот если бы MONO вперед M$ убежал, я бы от души посмеялся.
+1
LoveSan #
полная поддержка Linq To Sql через проект DbLinq;

Использовал я этот DBLinq… слов нет… Полюбуйтесь:
[DbLinqToDo]
public void Refresh(RefreshMode mode, IEnumerable entities)
{
throw new NotImplementedException();
}

А ведь это функция переподключения к базе…
0
A1lfeG #
Я не хочу никого обидеть.

Но в очень крупном проекте(.Net 3.5), так ни разу эту функцию и не использовал…
0
LoveSan #
Ситуации разные бывают… Мне, например, пришлось обхоить отсутствие данного фунционала в DBLinq… к тому же при работе наблюдались странности с foreign keys (в 50% случаем программа в крэш уходила).
0
A1lfeG #
Посмотрел открытые баги по моно и мунлайту и огорчился…
В продакшен бы я Моно ещё не запускал. Слишком много крешей, включая креш в пустом бесконечном цикле.
–1
Shchvova #
Да, итересная стать. Только первые предложения ставят в тупик. Сильно. «Этот фреймворк позволяет .NET-разработчикам писать программы на знакомом и мощном языке C# и использовать знакомые и полюбившиеся приемы, библиотеки и наработанный код». А до этого фреймворка .NETчики на Java чтоль писали?
+1
XaocCPS #
пока не было MonoTouch для iPhone писали на Objective C, очевидно
–1
Shchvova #
Прочитайте статью перед катом. Найдите слово iPhone.
Написано буквально следующее «фреймворк позволяет .NET-разработчикам писать программы на знакомом и мощном языке C#», что и так ясно, и если не знать, о чем тут написано, то вставить там айфон, просто нереально.
З.Ы. Статья интересная. Это не повлияло на нее, хотя со стилем чуть проблемы. Местами хрен поймешь что читаешь…
0
taliban #
mono = .net под линукс
+1
xdemon #
Живет и живет. Плохо одно — нет биндингов к QT, посему писать приходится на ущербном GTK. Ну и как бы не стали переписывать DE/WM на mono.
0
vansickle #
Биндинги к QT очень даже есть:
techbase.kde.org/Development/Languages/Qyoto
code.google.com/p/qt4dotnet/
0
ARSolog #
а для андройда mono будет?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.