83
Karma
0.7
Rating
Никита Цуканов @kekekeks

Гуру велосипедостроения

Apple получила отказ в регистрации товарного знака дополненной реальности в России

0

Что характерно, Apple не пытается использовать свой товарный знак для торговли яблоками.

Геймификация против пропаганды: устойчивость к дезинформации можно развить с помощью простых игр

AvaloniaUI: особенности на примере MessageBox

+2

Чтобы его поставить в сам фреймворк, его нужно нормально сделать. В понятие "нормально" входит "кроссплатформенно". Те же мобильные платформы работают несколько иначе чем десктопные, да и пользователю лучше работать в этом плане с нативным интерфейсом. Так что как минимум необходимо задейтствовать NSAlert, UIAlert и AlertDialog, а апи самого мессаджбокса сделать таким, чтобы оно отражало и их особенности. До всего этого должны дойти руки.

AvaloniaUI: особенности на примере MessageBox

Перенос десктопных приложений на .NET Core

+1

У Uno есть очень интересная особенность: огромное количество типов из UWP там представляют из себя заглушки наподобие вот этой. А поскольку разрабатывать они предлагают с использованием штатных средств UWP, получаем NotImplementedException после уже после деплоя на устройство.


Что касается WASM, то оно там безбожно тормозит, что предсказуемо.

Правительство РФ предлагает Huawei использовать ОС «Аврора» (экс-Sailfish) для своих смартфонов

+6

Под Linux на ARM-то? Есть, отчего же не быть. CoreCLR дополнительно libicu и libunwind потребует, Mono вообще ничего не надо.


И вообще, я на N900 с Maemo (предшественница sailfish) цельнотянутый MonoDevelop запускал.


А поскольку там у них Wayland в качестве дисплейного сервера, то и AvaloniaUI не особо сложно будет завести.

Правительство РФ предлагает Huawei использовать ОС «Аврора» (экс-Sailfish) для своих смартфонов

+2
основное средство разработки ПО — C++

Основное средство разработки ПО — Qt и QML. То есть, берём какой-нибудь qmlnet и "основным средством" становится C#.

Vivaldi: Блокировка рекламы должна быть выбором пользователя

+7

Вы можете отключить блокировщик и любоваться рекламой, без которой сайт всё равно отказывается работать. Все счастливы.

GitHub Sponsors: новый способ внести свой вклад в open source

Серверы HPE в Selectel

+2

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

Представлен .NET 5

+1

Там сейчас отдельно CoreCLR (рантайм), CoreFX (BCL), Mono (рантайм, куски своего BCL + взятые из CoreFX), CoreRT (рантайм).


Будет общий на всех CoreFX и два рантайма — CoreCLR и Mono. CoreRT продолжает жить как жило (куски CoreCLR + свой AOT-генератор + CoreFX).

Представлен .NET 5

0

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

Мост из мира .NET в мир JavaScript

Мост из мира .NET в мир JavaScript

0

Я для этого изделия городил реализацию React-компонентов на Razor. Получаются вот такие вот монстрики. И даже в райдере нормально работает автокомплит.


Но в прод это дело не потащил просто потому, что BCL там свой и порезаный (нет и не будет вещей типа WeakReference, например), а потому любые библиотеки под него надо перекомпилировать. Опять же нет аналога IL Linker, так что размер JS-кода выходит неприлично большой, тот же блазор можно ужать до меньших размеров.

Переговоры провалены: как Oracle убила Java EE

+1

Там имеется ввиду адаптация Mono-вского моста к JNI используемого в Xamarin.Android. Теперь и на десктопе обещают вроде как.

Переговоры провалены: как Oracle убила Java EE

0

Для default interface methods нужна поддержка со стороны CLR, которой в legacy фреймворке нет.
Для нормальной работы со спанами нужна поддержка со стороны CLR и наборы перегрузок в тех же стримах, которых в legacy фреймворке нет.


Собственно, процесс слома совместимости новых фич C# с legacy фреймворком уже пошёл и останавливаться не собирается.


А async/await, да, я даже на .NET 2.0 заводил.

Microsoft Build 2019 — прямая трансляция на русском

0
Например, Visual Studio из коробки может создать проект данного типа.

А с каких пор Visual Studio из коробки умеет создавать шаблоны проектов сторонних разработчиков? Мы же не Microsoft.


Это как я понимаю, полная замена WPF'а будет?

По сути да, идейный последователь и кроссплатформенная замена. WPF не особо приспособлен для работы на айфонах, например.

Переговоры провалены: как Oracle убила Java EE

+10

.NET Framework — проприетарщина. Но его и закопали уже по сути, новых фич не будет, поддержки C# 8 не будет, теперь только опенсурсный неткор и моно в тандеме.

Microsoft Build 2019 — прямая трансляция на русском

+1

Смотря что иметь ввиду под "полноценным релизом". В нашем понимании 1.0 — это обещание стабильного API. А мы знаем, что его точно сломаем даже при добавлении вещей типа поддержки внешних методов ввода, Wayland и улучшенной интеграции для мобилок (списки там выпадающие итп).


Сейчас фреймворк вполне пригоден к использованию на десктопе зрячими людьми на "западных" локалях (текст слева направо, для ввода текста не нужны наэкранные подсказки как для иероглифов).

Microsoft Build 2019 — прямая трансляция на русском

0

Если вы задали DataContext до того как отработал XAML, то да. В противном случае они отработают в момент задания этого самого DataContext-а.
Когда дойдут руки до компилируемых биндингов, в них будет отладочная информация.

Microsoft Build 2019 — прямая трансляция на русском

+3

Помимо кроссплатформенности оно, например:


  • рисует быстрее за счёт использования более современных API отрисовки
  • стартует быстрее за счёт возможности использования CoreRT
  • стартует и обрабатывает шаблоны быстрее за счёт компиляции XAML в MSIL (ультра-комбо с CoreRT)
  • имеет нормальные стектрейсы в конвертерах и markup extension-ах за счёт компиляции XAML в MSIL, имеет возможность дебажить XAML
  • имеет ряд плюшек в биндингах (типа IsVisible="{Binding !IsHidden}", нормального понимания Task и Observable и прочих
  • CSS-like система стилей на селекторах, больше не надо копипастить весь штатный шаблон стандартного контрола для того чтобы перекрасить полосу прокрутки скроллбара

SpaceVIL — кроссплатфоремнный GUI фреймворк для разработки на .Net Core, .Net Standard и JVM

+6
не WPF like код, слишком много времени нужно потратить на портацию

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

SpaceVIL — кроссплатфоремнный GUI фреймворк для разработки на .Net Core, .Net Standard и JVM

0
но нужно ее предоставить в триангулированном виде

Ну вот триангуляция самопересекающихся полигонов с кривыми безье — это вообще говоря то самое место, где собака порылась.

SpaceVIL — кроссплатфоремнный GUI фреймворк для разработки на .Net Core, .Net Standard и JVM

+3

Будете заниматься разметкой — гляньте на https://github.com/kekekeks/XamlIl Мы его сейчас вкручиваем для компиляции XAML-а билд-таской в MSIL. В итоге после сборки в отладчике это выглядит примерно вот так:


Скрытый текст

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

SpaceVIL — кроссплатфоремнный GUI фреймворк для разработки на .Net Core, .Net Standard и JVM

0

Нет, с использованием NSWindow, как предписывает эпловская документация.

SpaceVIL — кроссплатфоремнный GUI фреймворк для разработки на .Net Core, .Net Standard и JVM

0
Mac OS X же вообще запрещает создавать мультиоконные приложения, ибо требует, чтобы GUI был запущен только в главном потоке приложения.

Я не знаю, что именно у вас там за ограничения, но мы вообще успешно рисуем в несколько окон с одного NSOpenGLContext. Есть подозрение, что вы пытаетесь использовать OpenGL на виртуалке, в таком случае случаются знатные спецэффекты.

SpaceVIL — кроссплатфоремнный GUI фреймворк для разработки на .Net Core, .Net Standard и JVM

+3

По всей видимости оно вполне себе пригодно как встраиваемое решение для игр, благо рендерится самостоятельно средствами OpenGL.

SpaceVIL — кроссплатфоремнный GUI фреймворк для разработки на .Net Core, .Net Standard и JVM

+5

1) Что с разметкой? Всё кодом? Если есть нормальная разметка, то есть ли к ней визуальный дизайнер/превьювер?
2) Как обстоят дела с data binding и прочими MVVM?
3) Есть ли виртуализация списков?


Если ничего этого нет, то можно с тем же успехом взять GTK#/QML.NET.


Далее, у вас указано, что оно базируется на glfw. Как обстоят дела с непрямоугольными векторными элементами интерфейса типа кривых безье? Все векторные иконки сейчас на них.

Релиз кросс-платформенного .NET UI-тулкита AvaloniaUI 0.8

0

Ну и надо понимать, что всё веселье с вещами типа ANGLE и MoltenVK ляжет на вас.

Релиз кросс-платформенного .NET UI-тулкита AvaloniaUI 0.8

0

В версии с nuget.org нормально нельзя, только через WriteableBitmap с копированием в CPU-память и обратно и просадкой FPS.


Чтобы сделать нормально, нужны https://github.com/AvaloniaUI/Avalonia/pull/2364 (подстановка своей реализации контекста OpenGL/Vulkan) и https://github.com/AvaloniaUI/Avalonia/pull/2371 (прямой доступ к SkCanvas с рендер-потока), которые перед релизом не стали мержить. За подробностями, как реализовать, можно попробовать обратиться к MarchingCube, у них кейс "отрисовать в написанном на авалонии игровом редакторе собственно выхлоп их игрового движка".

Релиз кросс-платформенного .NET UI-тулкита AvaloniaUI 0.8

Релиз кросс-платформенного .NET UI-тулкита AvaloniaUI 0.8

+1

На сегодня могу только предложить через Shell_NotifyIcon создать иконку самостоятельно. Нормальная реализация работы с notification area будет скорее всего ближе к 0.9.

Релиз кросс-платформенного .NET UI-тулкита AvaloniaUI 0.8

0

Там библиотеке libssl версии 1.0.0 нужна. А с libssl целый зоопарк несовместимых между собой версий. Повторюсь, нужно смотреть выхлоп ldd.

Релиз кросс-платформенного .NET UI-тулкита AvaloniaUI 0.8

+1

Чего-то не хватает для загрузки сишной библиотеки для работы с телеграмом, скорее всего libssl-1.0.0. Натравите ldd на libtdjson.so

Релиз кросс-платформенного .NET UI-тулкита AvaloniaUI 0.8

+2
А насколько можно/удобно использовать для разработки приложений продукты jetbrains?

Совсем неудобно. Нет превьювера и их XAML-движок не понимает половину наших конструкций. С превьювером мне уже полгода обещают что-то сделать и утверждают, что прогресс есть. По XAML-движку, видимо, придётся нам писать свой плугин


Под win можно ли приложения в трей сворачивать?

Пока только руками через P/Invoke. С треем проблема в том, что он, зараза, в 2019-ом году не кроссплатформенный по своим концепциям. В частности, на OSX/Linux мы не можем показать к иконке своё меню, нужно обязательно использовать системное. А это отдельная проблема, которая будет решаться в рамках поддержки глобальных (эскспортируемых) меню.

Релиз кросс-платформенного .NET UI-тулкита AvaloniaUI 0.8

+2

Собственно, визуализатор:


Скрытый текст

Редактор:


Скрытый текст

Т. е. если надо делать приложение под десктоп и вы знаете WPF — можно брать авалонию. Когда допилим поддержку мобилок, можно будет и мобильные приложения писать а ля Flutter.

Релиз кросс-платформенного .NET UI-тулкита AvaloniaUI 0.8

0

Кейсы использования по сути те же, что и у WPF, только кроссплатформенно.


Ну или вот из последнего, мы в субботу в рамках MskDotNet проводили хакатон по написанию гоночных ботов по заранее неразведанной гексокарте, я к нему прокси-визуализатор для отображения поведения бота и видимых им клеток после запросов к серверу на авалонии делал. Писал сидя на линуксе, участники использовали на Windows и OSX. Соответственно на той же кодовой базе был и редактор карт.

Реверс-инжиниринг приложений после обфускации

0

Хотите нормально убрать IL-код — собирайте с CoreRT. Только для этого UI-тулкит должен быть соответствующим (сейчас только AvaloniaUI умеет).

Госуслуги проапгрейдят по методологии SCRUM, чиновников заменят на софт

+9

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

C# является языком низкого уровня?

0

В CoreRT рантайм практически весь на C# уже. В изделии от Unity в принципе тоже. В JIT-based рантаймах, да, много либо C, либо C++.

1 There