Как стать автором
Обновить
0
Рейтинг

Mono и Moonlight *

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

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Как мы удвоили скорость работы с Float в Mono

Mono и Moonlight *C# *Xamarin *
Перевод

Мой друг Aras недавно написал один и тот же трассировщик лучей на разных языках, в том числе на C++, C# и компиляторе Unity Burst. Разумеется, естественно ожидать, что C# будет медленнее, чем C++, но мне показалось интересным, что Mono настолько медленнее .NET Core.

Опубликованные им показатели были плохими:

  • C# (.NET Core): Mac 17.5 Mray/s,
  • C# (Unity, Mono): Mac 4.6 Mray/s,
  • C# (Unity, IL2CPP): Mac 17.1 Mray/s

Я решил посмотреть, что происходит, и задокументировать места, которые можно улучшить.

В результате этого бенчмарка и изучения этой проблемы мы обнаружили три области, в которых возможно улучшение:

  • Во-первых, необходимо улучшить параметры Mono по умолчанию, потому что пользователи обычно не настраивают параметры у себя
  • Во-вторых, нам нужно активнее знакомить мир с бекэндом оптимизации кода LLVM в Mono
  • В-третьих, мы улучшили настройку некоторых параметров Mono.

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

Результаты на моём домашнем iMac для Mono и .NET Core были следующими:

Рабочая среда Результаты, MRay/sec
.NET Core 2.1.4, отладочная сборка dotnet run 3.6
.NET Core 2.1.4, релизная сборка dotnet run -c Release 21.7
Ванильный Mono, mono Maths.exe 6.6
Ванильный Mono с LLVM и float32 15.5
Читать дальше →
Всего голосов 31: ↑31 и ↓0 +31
Просмотры 7.5K
Комментарии 10

Подключение OpenSSL в Mono

Криптография *.NET *Mono и Moonlight *C# *Разработка под Linux *

В предыдущей статье был описан процесс интеграции ГОСТовых сертификатов КриптоПро с mono. В этой же подробно остановимся на подключении RSA сертификатов.


Мы продолжали переносить одну из наших серверных систем написанных на C# в Linux, и очередь дошла до части связанной с RSA. Если в прошлый раз сложности в подключении легко объяснялись наличием взаимодействия двух, исходно не связанных друг с другом систем, то при подключении «обычных» RSA сертификатов от mono явно никто не ожидал подвоха.


Читать дальше →
Всего голосов 16: ↑14 и ↓2 +12
Просмотры 1.9K
Комментарии 6

Подключение КриптоПро в Mono

Криптография *.NET *Mono и Moonlight *C# *Разработка под Linux *
Из песочницы

В связи с переходом на Linux возникла необходимость переноса одной из наших серверных систем написанной на C# в Mono. Система работает с усиленными ЭЦП, поэтому одной из поставленных перед нами задач была проверка работоспособности ГОСТовых сертификатов от КриптоПро в mono. Сам КриптоПро уже довольно давно реализовал CSP под Linux, но первая же попытка использования показала, что нативные классы криптографии Mono (аналогичные тем, что есть в базовом .Net — X509Store, X509Certificate2 и проч.) не только не работают с ГОСТовыми ключами, они даже не видят их в своих хранилищах. В силу этого работу с криптографией пришлось подключать напрямую через библиотеки КриптоПро.


Читать дальше →
Всего голосов 14: ↑12 и ↓2 +10
Просмотры 5.2K
Комментарии 7

Blazor: Техническое введение

.NET *Mono и Moonlight *C# *WebAssembly *
Перевод
Сегодня команда ASP.NET анонсировала, что проект Blazor был перемещён в репозиторий организации ASP.NET. Мы начинаем стадию эксперимента, чтобы понять сможем ли мы развить Blazor в поддерживаемый продукт. Это большой шаг вперёд!

image

Что такое Blazor? Это фреймворк для браузерных приложений, написанный на .NET и запускающийся с помощью WebAssembly. Он даёт вам все преимущества богатых современных одностраничных приложений (SPA), позволяя при этом использовать .NET от начала и до конца, вплоть до общего кода на сервере и клиенте. В посте с анонсом подробно описаны основные случаи применения, сроки и так далее.

В этом посте я хочу поглубже поговорить о технических деталях для тех, кому интересно как же это работает.
Читать дальше →
Всего голосов 38: ↑37 и ↓1 +36
Просмотры 65K
Комментарии 46

Тонкости value restriction в F#

Блог компании Microsoft .NET *Mono и Moonlight *C# *F# *
Перевод

Одной из отличительных особенностей языка F#, по сравнению с более распространёнными языками программирования, является мощный и всеобъемлющий автоматический вывод типов. Благодаря ему в программах на F# вы почти никогда не указываете типы явно, набираете меньше текста, и получаете в итоге более краткий, фантастически элегантный код.



Все материалы из серии переводов русскоязычного сообщества F#-разработчиков вы сможете найти по тегу #fsharplangru.
Читать дальше →
Всего голосов 37: ↑37 и ↓0 +37
Просмотры 5.8K
Комментарии 2

«Истина в вине» или пробуем программировать NanoCAD под Linux (MultiCAD.NET API)

*nix *Mono и Moonlight *API *CAD/CAM *C# *
Практически со времени выхода первой «дееспособной» версии NanoCAD, среди сообщества пользователей остро встал вопрос о необходимости реализации данной САПР под Linux

Наверное, вы подумали, что эта статья родилась, потому что разработчики наконец-то «сделали это!». Спешу вас успокоить — все осталось на своих местах. О версии NanoCAD под Linux лично мне по-прежнему ничего не известно. Поэтому мы будем пытаться использовать Wine.

Так что эта короткая заметка будет не столько об использовании NanoCAD в Linux, сколько о программировании для Nanocad в системе отличной от Windows, а если еще точнее, то о том, как я вооружился Linux Mint, MonoDevelop и попытался собрать библиотеку (.dll) для бесплатной версии NanoCAD с применением MultiCAD.NET API.

Если вам интересно, что же из этого получилось, милости прошу под кат!

image
Читать дальше →
Всего голосов 16: ↑14 и ↓2 +12
Просмотры 5.8K
Комментарии 0

Погружение в F#. Пособие для C#-разработчиков

Блог компании Microsoft .NET *Mono и Moonlight *C# *F# *
Перевод

Этот пост будет не о том, как «перевести» код с C# на F#: различные парадигмы делают каждый из этих языков лучшим для своего круга задач. Однако вы сможете оценить все достоинства функционального программирования быстрее, если не будете думать о переводе кода из одной парадигмы в другую. Настало время любопытных, пытливых и готовых изучать совершенно новые вещи. Давайте начнем!



Все материалы из серии переводов русскоязычного сообщества F#-разработчиков вы сможете найти по тегу #fsharplangru.
Читать дальше →
Всего голосов 48: ↑47 и ↓1 +46
Просмотры 68K
Комментарии 74

Что общего между конечными автоматами, анимацией и Xamarin.Forms

Блог компании Microsoft .NET *Разработка мобильных приложений *Mono и Moonlight *Xamarin *
Если вы были студентом технической специальности, то наверняка помните курс, посвященный конечным автоматам. Эта простая, но очень емкая модель (конечный автомат, он же finite state machine, он же FSM) используется довольно широко, хотя и большинство программистов о ней незаслуженно забывают. Сегодня мы поговорим о конечных автоматах и их применении в создании комплексных анимаций в приложениях на Xamarin.Forms.


Читать дальше →
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 5.9K
Комментарии 3

Повесть о невозможном баге: big.LITTLE и кэширование

Программирование *Разработка мобильных приложений *Mono и Moonlight *Компиляторы *Отладка *
Перевод
Когда кто-то произносит слово многоядерный, то мы бессознательно подразумеваем SMP. Это успешно срабатывало для нас до недавнего времени, пока ARM не объявила о big.LITTLE. Архитектура ARM big.LITTLE является первым массово производимым примером архитектуры AMP, и как мы увидим далее, она поднимает планку сложности многоядерного программирования еще выше.
Читать дальше →
Всего голосов 57: ↑57 и ↓0 +57
Просмотры 11K
Комментарии 15

.NET Portability Analyzer

.NET *Mono и Moonlight *Visual Studio *Разработка под Windows *

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

.NET Portability Analyzer актуален для разработчиков .NET, .NET Core, UWP, Xamarin и Mono.
Далее предлагаю вашему вниманию факты и описание процесса использования.
Читать дальше →
Всего голосов 26: ↑25 и ↓1 +24
Просмотры 9.3K
Комментарии 8

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

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


Читать дальше →
Всего голосов 23: ↑21 и ↓2 +19
Просмотры 8.6K
Комментарии 2

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

.NET *Mono и Moonlight *C# *Xamarin *Разработка под Windows *
Всякий раз, когда в текущем процессе появляются отклонения, надо задать следующие вопросы: «Это случилось потому, что у нас не было стандарта? Это случилось потому, что мы не следовали стандарту? Это случилось потому, что стандарт не был адекватным?»
Масааки Имаи (автор концепции Кайдзен)

image
Читать дальше →
Всего голосов 32: ↑28 и ↓4 +24
Просмотры 31K
Комментарии 37

Анонс .NET Standard 2.0

.NET *Mono и Moonlight *Xamarin *Разработка под Windows *

Не так давно в сети появился пост Immo Landwerth, который рассказывает о .NET Standard 2.0
Если вкратце, то это унификация .NET для следующих веток .NET Framework, .NET Core и Xamarin. Выражаясь понятными словами это набор API, который будет реализован всеми платформами.

И сразу значительное изменение: .NET Standard заменит библиотеки PCL. Хотя для разработчиков суть и останется прежняя, реализация будет другой. Ездить машина будет, как и раньше, но изменится название и содержимое под капотом (пожалуй, в лучшую сторону).
Читать дальше →
Всего голосов 51: ↑40 и ↓11 +29
Просмотры 37K
Комментарии 24

Подборка полезных материалов по разработке на Xamarin

Блог компании Microsoft Разработка мобильных приложений *Mono и Moonlight *C# *Xamarin *
Делимся полезным контентом по разработке на Xamarin: видео The Xamarin Show на Channel 9, базовый курс Microsoft Virtual Academy для новичков, список обучающих материалов и первый в России Moscow Xamarin Meetup.


Читать дальше →
Всего голосов 30: ↑29 и ↓1 +28
Просмотры 12K
Комментарии 8

Ищем ошибки в Mono: сотни их

Блог компании PVS-Studio Open source *.NET *Mono и Moonlight *C# *


Крупные проекты проверять интересно. Как правило, в них удаётся найти различные интересные ошибки и рассказать о них людям. Также это хороший способ тестирования нашего анализатора и улучшения различных его аспектов. Я давно хотел проверить 'Mono', и наконец-то такая возможность появилась. И, стоит сказать, проверка себя оправдала, так как удалось найти много занимательного. О том, что же нашлось, какие нюансы возникли при проверке, и будет эта статья.
Читать дальше →
Всего голосов 55: ↑51 и ↓4 +47
Просмотры 15K
Комментарии 32

Удобный REST для Xamarin-приложений

Блог компании Microsoft .NET *Разработка мобильных приложений *Mono и Moonlight *C# *
Разработчикам на Xamarin доступен богатый выбор компонентов для работы с сетью, и в сегодняшней нашей статье мы рассмотрим набор модулей, которые также могут быть использованы в PCL-проектах на Xamarin.Forms.

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


Читать дальше →
Всего голосов 31: ↑30 и ↓1 +29
Просмотры 21K
Комментарии 7

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

Блог компании Microsoft Разработка мобильных приложений *Mono и Moonlight *C# *Xamarin *
Друзья! Мы рады представить новый материал на тему разработки мобильных приложений на Xamarin.

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

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

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


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



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


Читать дальше →
Всего голосов 23: ↑23 и ↓0 +23
Просмотры 13K
Комментарии 5

Повышаем эффективность работы в Xamarin.Forms

Блог компании Microsoft Разработка мобильных приложений *Mono и Moonlight *C# *Xamarin *


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

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

Что такое бизнес-приложения?


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


Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Просмотры 13K
Комментарии 15

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

Блог компании Microsoft Разработка мобильных приложений *Mono и Moonlight *Visual Studio *Xamarin *


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

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

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


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

Начнем мы с компьютеров, на которых будет идти разработка.
Читать дальше →
Всего голосов 22: ↑21 и ↓1 +20
Просмотры 20K
Комментарии 8

.NET Core: релиза не будет, но вы держитесь, здоровья вам, хорошего настроения

.NET *ASP *Mono и Moonlight *C# *

Пост о том как не надо вести разработку фреймворков, и о том, почему жизненный цикл программного обеспечения это не пустые слова, особенно, если на вас полагаются миллионы разработчиков по всему миру. Далее следует критика подхода к разработке платформы .NET Core, и, тесно связанного с ним фреймворка, ASP.NET Core.



История версий .NET Core (шутка с просторов Интернета):


* Alpha
* Beta
* RC1
* 2RC 2Furious
* RC: Tokyo Drift
* RC4: The Big RC
* 7
* RC8
Читать дальше →
Всего голосов 52: ↑40 и ↓12 +28
Просмотры 28K
Комментарии 31

Вклад авторов