Как стать автором
Поиск
Написать публикацию
Обновить
0

Mono и Moonlight *

Opensource-воплощение системы .NET Framework

Сначала показывать
Период
Уровень сложности

Прикручиваем Head Up Display к MonoDevelop или о том, как криво сделано глобальное меню в Ubuntu

Время на прочтение3 мин
Количество просмотров2.2K


Проблема с неработоспособностью HUD в MonoDevelop уходит корнями в старый баг, вызванный переходом на глобальное меню и заключавшийся в том, что менюшки у MonoDevelop не показывалось вообще никакой. Его "починили", выключив использование глобального меню как такового. Это же так просто, не фиксить проблему в своей кривой либе, а сделать чёрный список приложений.
Тяга к экономии пикселей и желание таки прикрутить HUD взяли своё. Целых два часа моего драгоценного времени, несколько костылей и всё таки завелось.

Небольшой экскурс в работу глобального меню: оно экспортируется приложением через D-Bus, а чтобы разработчики не писали дополнительный код, в Canonical наклепали хитровывернутых библиотек, берущих нормальное, человеческое меню оконного тулкита и экспортирующие его за разработчика, причём, как выяснилось, весьма криво, но об этом потом. При этом возможности вручную экспортнуть это меню нет. Точнее, есть какая-то мутная библиотечка с названием libdbusmenu и полным отсутствием хоть какой-то документации, не говоря уже о биндингах к чему-либо. Этакая проприетарщина наоборот — код открыт, но использовать его толком нельзя ввиду невозможности быстро понять, как с этим вообще работать. Таким образом реализовать в GnomePlatform.cs метод SetGlobalMenu (предусмотренный специально для систем с глобальным меню и реализованный в MacPlatform.cs) не представляется возможным, что ж, придётся разбираться с тем, почему не работает костыль с экспортилкой и придумывать свои костыли, чтобы оно заработало. Я такими извращениями не занимался со времён, когда нужно было заставить работать Навител на разнокалиберных китайских железках с изувеченной до неузнаваемости WinCE 4.2.

Читать дальше →

OpenGL ES 1.1 в Windows 8 и Windows Phone 8.1

Время на прочтение7 мин
Количество просмотров16K
В далеком 1998 году я пытался сделать свою игру с OpenGL. Разработка с трудом дошла до альфы и была заброшена, но что особо запомнилось, так это как удобно было делать под GL интерфейсы — ортогональная проекция, пара трансформаций, биндинг нескольких вершин с GL_TRIANGLE_STRIP и у нас уже есть кнопка. И вот, спустя шестнадцать лет и занимаясь мобильным игростроем я столкнулся с таким же подходом в OpenGL ES 1.*, разве что 2D текстуры без вращений можно теперь рисовать через glDrawTexfOES.
Я поддерживал несколько проектов, сделанных по этому принципу и понемногу в голове выстроился коварный план: сделать кросс-платформенную 2D игру на мобильных с OpenGL ES и на C#, а на десктопах с обычным OpenGL. Цели я добился не с первого раза и было с этим много проблем, но в результате очередной проект у меня работает без изменений бизнес-логики на iOS, Android, BlackBerry, Windows XP/7, Mac OS X, Linux, ReactOS, Windows 8, Windows Phone 8.1. Материала набралось на много статей, но в этот раз я расскажу именно о поддержке Windows Runtime.
Читать дальше →

Вышел пакет MonoTools 1.1 для Visual Studio 2010

Время на прочтение1 мин
Количество просмотров950
Группа разработчиков Mono выпустила обновления для своего набора инструментов MonoTools, который позволяет разрабатывать проекты Mono в Visual Studio и создавать пакеты для Linux. Этот бета-выпуск принес совместимость с Visual Studio 2010!

image

Кроме того в этом выпуске:
— добавлена поддержка проверки на наличие обновлений;
— улучшена функция копирования файлов при разворачивании или обновлении контента;
— интеграция с последней версией Visual Studio 2010 RC;
— добавлена функция помогающая создавать прекомпилированные пакеты приложений;
— много исправлений ошибок и других улучшений.

Официальный анонс здесь. Команда Mono просит сообщество протестировать данные инструменты и сообщать о всех ошибках и впечатлениях.

Ищем ошибки в MonoDevelop

Время на прочтение18 мин
Количество просмотров12K

В жизни анализатора PVS-Studio состоялось важное событие — в последней версии была добавлена возможность проверки кода, написанного на C#. Являясь одним из разработчиков данного анализатора, я просто не мог пройти мимо, не проверив какой-нибудь проект. Понятно, что мало кому будет интересно читать про проверку маленьких и неизвестных проектов, поэтому нужно было выбрать что-то известное, и выбор пал на MonoDevelop.
Читать дальше →

Уязвимость в Xamarin для Android: подменяем dll и едим бесплатно

Время на прочтение2 мин
Количество просмотров28K

Введение


Эта история началась еще прошлым летом: мы с друзьями ночью зашли в заведение быстрого питания, которое только-только внедрило мобильное скидочное приложение. Приложение было установлено, бесплатная еда получена, трафик сохранен в .pcap-файл, и, естественно, было желание покопаться в нем, узнать, как оно работает. Программа оказалась написана на C# с использованием мультиплатформенного фреймворка для разработки мобильных приложений Xamarin; в то время apktool не мог правильно собрать измененный apk и завершался с ошибкой. Долгое время я пользовался этим приложением, накапливал баллы, тратил их, иногда натыкаясь на посты о накрутках на форумах, однако, аккаунты накрутчиков довольно быстро банили.

Азарт и желание что-то исследовать, как это обычно у меня случается, не появляется из ниоткуда. На этот раз спонсором выступил вор, который упер у меня кошелек со всеми банковскими карточками, и у меня не было иного выхода, кроме как купить себе обед в этом заведении, предварительно накрутив баллы. Да и кофе я, в отличие от @Chikey, не люблю. Однако, статья совсем не об этом.

image
Измененное название чрезвычайно похоже на настоящее название заведения
Читать дальше →

Вышли MonoTouch 3.0 и Moonlight 3 Preview 6

Время на прочтение1 мин
Количество просмотров771
imageМигель Де Иказа в своем блоге анонсировал доступность новых версий продуктов из семейства Mono: MonoTouch и Moonlight.

Moonlight 3 Preview 6 — это большое обновление свободной реализации Silverlight, релиз которого сопровождается со следующим списком изменений:

— поддержку chrome-приложений (без системной рамки);
— значительные улучшения в плане производительности;
— заявлено, что поддерживается большая часть функционала Silverlight 3, в том числе out of browser;
— внесены сотни изменения для улучшения кода, совместимости или исправления багов.

Спустя неделю с момента выхода iPhone OS 4 вышла версия MonoTouch 3.0.0, которая поддерживает разработку под эту операционную систему. Список изменений:

— поддержка разработки фоновых приложений;
— поддержка платформы iAd;
— поддержка Local notifications (уведомлений);
— поддержка платформы Game Center;
— поддержка API enterprise data protection.

Кроме того заявлены улучшения в генерации кода и лучшей поддержки возможностей C# через Objective-C blocks.

Для работы с MonoTouch 3 вам потребуется iPhone 4.0 SDK.

.NET Portability Analyzer

Время на прочтение4 мин
Количество просмотров11K

.NET Portability Analyzer это совсем не новое приложение, которое, по причине появления .NET Standard должно бы стать интересным для разработчиков. Портируемость кода ускоряет работу команд в разы. Если вам интересно узнать насколько переносим на другую платформу ваш код, то вы можете использовать .NET Portability Analyzer, который доступен в виде расширения для Visual Studio и в виде отдельного консольного приложения.

.NET Portability Analyzer актуален для разработчиков .NET, .NET Core, UWP, Xamarin и Mono.
Далее предлагаю вашему вниманию факты и описание процесса использования.
Читать дальше →

.NET Standard Library – адекватный стандарт?

Время на прочтение5 мин
Количество просмотров35K
Всякий раз, когда в текущем процессе появляются отклонения, надо задать следующие вопросы: «Это случилось потому, что у нас не было стандарта? Это случилось потому, что мы не следовали стандарту? Это случилось потому, что стандарт не был адекватным?»
Масааки Имаи (автор концепции Кайдзен)

image
Читать дальше →

Новая версия MonoDevelop 2.4

Время на прочтение1 мин
Количество просмотров2.1K
image
Можно по разному относится к разработке Mono, кто-то её терпеть не может, считая, что это поделка только оттягивает на себя силы сообщества, которые можно направить на более насущные задачи. Другие наоборот — довольны тем, что проект дает возможность, используя язык C# писать приложения под три самых популярных платформы — Microsoft Windows, GNU Linux и Apple MacOS X.
Как бы то ни было, Люди используют эту платформу и используют её инструменты. Один из главных инструментов — MonoDevelop объявил о выходе новой версии.
Сама среда визуально копирует Microsoft Visual Studio и может быть интересна не только как среда разработки Mono и .Net приложений, но и как замена (на первое время) MSVS для разработчиков мигрирующих с MS Windows так как прекрасно понимает файлы проектов .sln
Официальный релиз IDE
Читать дальше →

Перенос ASP.NET приложения на Mono. Поддержка русского языка

Время на прочтение3 мин
Количество просмотров3.8K
Недавно перенёс небольшое ASP-приложение c .NET на Mono. Столкнулся с практически полным отсутствием поддержки русского языка при настройках по умолчанию. Использовалась связка Debian lenny (netinst) + Apache2 + mono-apache-server2.

Решение проблем:
Читать дальше →

Работаем с состояниями экранов в Xamarin.Forms

Время на прочтение5 мин
Количество просмотров15K
Друзья! Мы рады представить новый материал на тему разработки мобильных приложений на Xamarin.

В новой статье мы рассмотрим, как в Xamarin.Forms реализовывать управлениями состояниями окон (идет загрузка данных, отсутствует интернет и другие) на XAML.

Все статьи из колонки можно найти и прочитать по ссылке #xamarincolumn

Один экран, много состояний


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



Мобильные приложения, в отличие от веб-сайтов должны гораздо быстрее взаимодействовать с пользователем, поэтому показывать длительное время пустой экран во время загрузки данных, считается не очень правильным. Дополнительно, приложение должно уведомлять пользователя об ошибках загрузки данных или отсутствии интернет-соединения. Ленивые разработчики могут обойтись отображением всплывающих уведомлений в духе “Ошибка загрузки данных”, но мы пойдем другим путем.


Читать дальше →

Xamarin SDK в Open Source и многое другое на Xamarin Evolve 2016

Время на прочтение2 мин
Количество просмотров10K


Невероятное количество событий произошло в этому году и несомненно присоединение компании Xamarin к Microsoft одно из самых ярких. Казалось, после анонсов на конференции Build 2016, удивить разработчиков кросс-платформенных приложений и поклонников фреймворка Xamarin совершенно нечем, однако, сегодня на конференции Evolve 2016, команде Xamarin это удалось.

Xamarin SDK, как и было обещано, сегодня официально стал проектом с открытым исходным кодом, и у всех желающих появилась возможность приложить собственные усилия к развитию этой технологии. Открыты bindings API для iOS, Android и Mac, инструменты командой строки, Xamarin.Forms и т.д. Подробности по ссылке: open.xamarin.com
Читать дальше →

MonoMac — проект Mono для MacOSX

Время на прочтение1 мин
Количество просмотров5.2K
imageМигель де Иказа в своем блоге анонсировал новый проект из семейства Mono — MonoMac. MonoMac — это новый фреймворк, который позволяет строить Cocoa-приложения для OSX с помощью Mono. Как пишет Мигель, в этом фреймворке воплотился весь опыт компании Novell в развитии Mono на Linux и iPhone.

На текущей ранней стадии проекта, реализованы следующие привязки:

— CoreFoundation;
— CoreText;
— CoreGraphics;
— Foundation;
— AppKit (осталось сделать около 30%).

MonoMac не привязан к языку C#. Как говорит Мигель: «Привязки MonoMac на OSX можно использовать с IronPython, F# и IronRuby, не только с C#». И это здорово.

В посте Мигеля можно найти подробную информацию о целях и идеологии проекта. MonoMac — это opensource-проект, который лицензирован под свободной лицензией MIT X11 совместимой с GPL. Создана рассылка проекта. Исходники доступны с SVN проекта для monomac и maccore.

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

Новогодняя проверка .NET Core Libraries (CoreFX)

Время на прочтение7 мин
Количество просмотров12K
Около года назад Microsoft выложила в открытый доступ исходный код таких проектов, как CoreCLR и CoreFX. Последний проект до недавнего времени не был нам интересен, потому что написан на языке C#, а не C++. Но с выходом новой версии PVS-Studio 6.00, поддерживающей проекты и на языке программирования C#, я решил вернуться к CoreFX и написать статью.

Введение


.NET Core это модульная реализация библиотек и среды выполнения, которая включает подмножество .NET Framework. .NET Core состоит из набора библиотек, называемых «CoreFX» и небольшой оптимизированной рабочей среды «CoreCLR».

.NET Core распространяется с открытым исходным кодом, который доступен на GitHub:
Это крупные продукты от Microsoft, содержащие качественный исходный код, но подозрительные участки кода всё равно можно найти.

О проверке CoreCLR можно прочитать в статье "PVS-Studio: 25 подозрительных фрагментов кода из CoreCLR".

Проект CoreFX, о котором подойдёт речь в статье, проверялся с помощью статического анализатора PVS-Studio 6.00, который теперь поддерживает и C#!
Читать дальше →

Готовим Xamarin.Forms: настройка окружения и первые шаги

Время на прочтение7 мин
Количество просмотров22K


Друзья! Мы продолжаем колонку на тему разработки мобильных приложений на Xamarin. И
после небольшого перерыва готовы вернуться к рассмотрению особенностей использования Xamarin.Forms при разработке бизнес-приложений для iOS и Android. Все статьи из колонки можно будет найти и прочитать по ссылке #xamarincolumn

В сегодняшней статье мы рассмотрим вопросы производительности приложений и оптимизации самого процесса разработки.

Правильные пчелы


В замечательной сказке про Винни-Пуха пчелы делились на правильных и неправильных. Аналогично и окружения, в которых будет идти разработка приложений могут быть условно разделены на правильные и неправильные.

Начнем мы с компьютеров, на которых будет идти разработка.
Читать дальше →

Обновление MonoDevelop 2.2 Beta

Время на прочтение1 мин
Количество просмотров688

Обновилась среда разработки MonoDevelop 2.2 Beta. Обновление значительное, приведу самое интересное:

* полноценная официальная поддержка Windows и MacOSX;
* поддержка проектов для разных версий .net;
* отладчик Win32;
* ASP.NET MVC add-in
* IPhone add-in
* Moonlight add-in
* множество улучшений в редакторах;
* улучшения в функции рефакторинга;
* еще множество изменений перечислено здесь.

Подборка видео-материалов по разработке на Xamarin + ключевые новости Connect(); //2016

Время на прочтение5 мин
Количество просмотров9.1K
Несколько дней назад прошло одно из крупнейших мероприятий для разработчиков Microsoft, Connect(); //2016, и мы рассказывали про ключевые новости, анонсированные на открытии. В этом материале мы собрали весь контент, который затронул изменения в фреймворке Xamarin и дополнили подборкой видео The Xamarin Show на Channel 9. Также напоминаем, что в ноябре-декабре проходят первые митапы по разработке на Xamarin в Москве и Санкт-Петербурге, а в Telegram есть канал для разработчиков на Xamarin.


Читать дальше →

Вышел MonoTouch 1.4 и новости о Mono/C# 4.0

Время на прочтение1 мин
Количество просмотров922
image

Сегодня появились две замечательные новости из мира open source проекта Mono. Во-первых, обновился фреймворк MonoTouch, который позволяет разрабатывать приложения для iPhone на языке C# и реализации .NET/Mono. Нововведения значительные:

* значительно увеличена скорость запуска приложений;
* на треть уменьшен размер скомпилированных приложений;
* улучшения в дебагере;
* улучшен биндинг Objective C API на MonoTouch API;
* AudioToolbox — новый низкоуровневый API для работы с аудио;
* другие мелкие и не очень изменения и багфиксы.
image
Вторая новость касается реализации компилятора C# в Mono. Marek Safar — разработчик из команды Mono сообщил в блоге, что компилятор C# в Mono теперь полностью поддерживает все функции C# 4.0, что не может не радовать так как релиз платформы .NET 4.0 от Microsoft состоится уже через несколько месяцев и оперативная реализация функций в свободном open source проекте только увеличит популярность новой платформы. В очередной раз не правы оказались те, кто предсказывал отставание Mono от .NET.

Мастер-класс по разработке на Xamarin: обзор технологии и погружение в разработку решений

Время на прочтение2 мин
Количество просмотров10K


Друзья, супер-новость для всех поклонников кросс-платформенных технологий и участников DevCon 2016 — в первый день конференции состоится мастер-класс по Xamarin!

В мастер-классе примут участие эксперты компании Microsoft и представители Xamarin-сообщества в России — компаний-партнеров, успевших овладеть технологией и готовых поделиться реальными историями разработки разнообразных кросс-платформенных решений.

Напоминаем, что в этом году мы предлагаем упрощенное участие в DevCon 2016 с новой категорией билетов Guest Pass за 2500 рублей, в которые входит трансфер до места проведения, посещение всех докладов и мастер-классов первого дня конференции, и интерактивная выставка!
Читать дальше →

PlayScript

Время на прочтение6 мин
Количество просмотров8.2K
Примечание переводчика: неделю назад Zynga открыла исходники проекта, упрощающего перенос игр с Flash на мобильные платформы. Так как на хабре много людей, которые пишут игры на флеше, либо под мобильные платформы, представляю вам перевод текста со страницы данного проекта. Вполне вероятно, что вы захотите использовать его в своих разработках.

Что такое PlayScript?


PlayScript это проект с открытым исходным кодом, представляющий из себя ActionScript-совместимый компилятор и Flash-совместимую среду выполнения, которая работает на Mono .NET и предназначена для создания мобильных приложений с помощью MonoTouch и Mono for Android. Сочетание Adobe FlashBuilder для создания веб-приложений и Xamarin Studio для мобильных позволит разрабатывать мультиплатформенные приложения с использованием всех преимуществ данных IDE, а также с возможностью доступа к нативным API на мобильных платформах.

Читать дальше →